@@ -36,6 +36,7 @@ import (
3636 "k8s.io/client-go/discovery"
3737 "k8s.io/client-go/kubernetes"
3838 "k8s.io/client-go/rest"
39+ "k8s.io/client-go/util/retry"
3940 apiregv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
4041 aggregatorclient "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset"
4142)
@@ -279,19 +280,22 @@ func getServerVersion(discoveryClient discovery.DiscoveryInterface) (semver.Vers
279280}
280281
281282func updateAPIService (ctx context.Context , logger logr.Logger , client aggregatorclient.Interface , caProvider dynamiccertificates.CAContentProvider ) error {
282- apiService , err := client .ApiregistrationV1 ().APIServices ().Get (ctx , apiServiceName , metav1.GetOptions {})
283- if err != nil {
284- return fmt .Errorf ("error getting APIService %s: %v" , apiServiceName , err )
285- }
283+ if err := retry .RetryOnConflict (retry .DefaultRetry , func () error {
284+ apiService , err := client .ApiregistrationV1 ().APIServices ().Get (ctx , apiServiceName , metav1.GetOptions {})
285+ if err != nil {
286+ return fmt .Errorf ("error getting APIService %s: %v" , apiServiceName , err )
287+ }
286288
287- caBundle := caProvider .CurrentCABundleContent ()
288- if bytes .Equal (apiService .Spec .CABundle , caBundle ) {
289- return nil
290- }
289+ caBundle := caProvider .CurrentCABundleContent ()
290+ if bytes .Equal (apiService .Spec .CABundle , caBundle ) {
291+ return nil
292+ }
291293
292- logger .Info ("Syncing CA certificate with APIServices" )
293- apiService .Spec .CABundle = caBundle
294- if _ , err := client .ApiregistrationV1 ().APIServices ().Update (ctx , apiService , metav1.UpdateOptions {}); err != nil {
294+ logger .Info ("Syncing CA certificate with APIServices" )
295+ apiService .Spec .CABundle = caBundle
296+ _ , err = client .ApiregistrationV1 ().APIServices ().Update (ctx , apiService , metav1.UpdateOptions {})
297+ return err
298+ }); err != nil {
295299 return fmt .Errorf ("error updating kapp-controller CA cert of APIService %s: %v" , apiServiceName , err )
296300 }
297301 return nil
0 commit comments