From dc54a050b51ab3dee58f2b74942391746c81df6f Mon Sep 17 00:00:00 2001 From: QianChenglong Date: Wed, 22 Apr 2020 15:03:34 +0800 Subject: [PATCH] feat(tke-installer): add retry for register apiservices --- cmd/tke-installer/app/installer/installer.go | 24 ++++++++++++-------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/cmd/tke-installer/app/installer/installer.go b/cmd/tke-installer/app/installer/installer.go index 689ebea26..fa7adee50 100644 --- a/cmd/tke-installer/app/installer/installer.go +++ b/cmd/tke-installer/app/installer/installer.go @@ -1739,17 +1739,23 @@ func (t *TKE) registerAPI() error { }, } - _, err := client.ApiregistrationV1().APIServices().Get(apiService.Name, metav1.GetOptions{}) - if err == nil { - err := client.ApiregistrationV1().APIServices().Delete(apiService.Name, &metav1.DeleteOptions{}) - if err != nil { - return err + err = wait.PollImmediate(5*time.Second, 10*time.Minute, func() (bool, error) { + _, err := client.ApiregistrationV1().APIServices().Get(apiService.Name, metav1.GetOptions{}) + if err == nil { + err := client.ApiregistrationV1().APIServices().Delete(apiService.Name, &metav1.DeleteOptions{}) + if err != nil { + return false, nil + } } - } - if _, err := client.ApiregistrationV1().APIServices().Create(apiService); err != nil { - if !errors.IsAlreadyExists(err) { - return err + if _, err := client.ApiregistrationV1().APIServices().Create(apiService); err != nil { + if !errors.IsAlreadyExists(err) { + return false, nil + } } + return true, nil + }) + if err != nil { + return pkgerrors.Wrapf(err, "register apiservice %v error", one) } err = wait.PollImmediate(5*time.Second, 10*time.Minute, func() (bool, error) {