From a86c9431d356b3e027edd6916559858736c33743 Mon Sep 17 00:00:00 2001 From: Ta-Ching Chen Date: Tue, 18 Sep 2018 16:30:56 +0800 Subject: [PATCH] Check CRD creation error instead of doing return directly (#897) --- crd/crd.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/crd/crd.go b/crd/crd.go index cf4c5bc2..32b8ca99 100644 --- a/crd/crd.go +++ b/crd/crd.go @@ -38,17 +38,14 @@ func ensureCRD(clientset *apiextensionsclient.Clientset, crd *apiextensionsv1bet maxRetries := 5 for i := 0; i < maxRetries; i++ { - _, err = clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Get(crd.ObjectMeta.Name, metav1.GetOptions{}) + _, err = clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd) if err == nil { return nil } - if errors.IsNotFound(err) { - // crd resource not found error - _, err = clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd) - if err != nil { - return err - } + // return if the resource already exists + if errors.IsAlreadyExists(err) { + return nil } else { // The requests fail to connect to k8s api server before // istio-prxoy is ready to serve traffic. Retry again.