Update first in RetryOnConflict

Signed-off-by: ashley-rongfang <rongfang@huawei.com>
This commit is contained in:
ashley-rongfang 2022-01-18 11:05:27 +08:00
parent 8ceb9df2b9
commit a1c25ae4a8
1 changed files with 13 additions and 4 deletions

View File

@ -127,15 +127,24 @@ func (c *ServiceImportController) updateServiceStatus(svcImport *mcsv1alpha1.Ser
}
err := retry.RetryOnConflict(retry.DefaultRetry, func() (err error) {
if err = c.Get(context.TODO(), client.ObjectKey{Namespace: derivedService.Namespace, Name: derivedService.Name}, derivedService); err != nil {
return err
}
derivedService.Status = corev1.ServiceStatus{
LoadBalancer: corev1.LoadBalancerStatus{
Ingress: ingress,
},
}
return c.Status().Update(context.TODO(), derivedService)
updateErr := c.Status().Update(context.TODO(), derivedService)
if updateErr == nil {
return nil
}
updated := &corev1.Service{}
if err = c.Get(context.TODO(), client.ObjectKey{Namespace: derivedService.Namespace, Name: derivedService.Name}, updated); err == nil {
derivedService = updated
} else {
klog.Errorf("failed to get updated service %s/%s: %v", derivedService.Namespace, derivedService.Name, err)
}
return updateErr
})
if err != nil {