Merge pull request #4226 from ctripcloud/fix-binding-status
only update necessary part of binding status
This commit is contained in:
commit
954f807aab
|
@ -45,8 +45,6 @@ func AggregateResourceBindingWorkStatus(
|
||||||
resourceTemplate *unstructured.Unstructured,
|
resourceTemplate *unstructured.Unstructured,
|
||||||
eventRecorder record.EventRecorder,
|
eventRecorder record.EventRecorder,
|
||||||
) error {
|
) error {
|
||||||
binding.GetName()
|
|
||||||
|
|
||||||
workList, err := GetWorksByBindingNamespaceName(c, binding.Namespace, binding.Name)
|
workList, err := GetWorksByBindingNamespaceName(c, binding.Namespace, binding.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -59,19 +57,18 @@ func AggregateResourceBindingWorkStatus(
|
||||||
|
|
||||||
fullyAppliedCondition := generateFullyAppliedCondition(binding.Spec, aggregatedStatuses)
|
fullyAppliedCondition := generateFullyAppliedCondition(binding.Spec, aggregatedStatuses)
|
||||||
|
|
||||||
currentBindingStatus := binding.Status.DeepCopy()
|
|
||||||
currentBindingStatus.AggregatedStatus = aggregatedStatuses
|
|
||||||
err = retry.RetryOnConflict(retry.DefaultRetry, func() (err error) {
|
err = retry.RetryOnConflict(retry.DefaultRetry, func() (err error) {
|
||||||
|
currentBindingStatus := binding.Status.DeepCopy()
|
||||||
|
|
||||||
|
binding.Status.AggregatedStatus = aggregatedStatuses
|
||||||
// set binding status with the newest condition
|
// set binding status with the newest condition
|
||||||
currentBindingStatus.Conditions = binding.Status.Conditions
|
meta.SetStatusCondition(&binding.Status.Conditions, fullyAppliedCondition)
|
||||||
meta.SetStatusCondition(¤tBindingStatus.Conditions, fullyAppliedCondition)
|
|
||||||
if reflect.DeepEqual(binding.Status, *currentBindingStatus) {
|
if reflect.DeepEqual(binding.Status, *currentBindingStatus) {
|
||||||
klog.V(4).Infof("New aggregatedStatuses are equal with old resourceBinding(%s/%s) AggregatedStatus, no update required.",
|
klog.V(4).Infof("New aggregatedStatuses are equal with old resourceBinding(%s/%s) AggregatedStatus, no update required.",
|
||||||
binding.Namespace, binding.Name)
|
binding.Namespace, binding.Name)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.Status = *currentBindingStatus
|
|
||||||
updateErr := c.Status().Update(context.TODO(), binding)
|
updateErr := c.Status().Update(context.TODO(), binding)
|
||||||
if updateErr == nil {
|
if updateErr == nil {
|
||||||
return nil
|
return nil
|
||||||
|
@ -118,18 +115,17 @@ func AggregateClusterResourceBindingWorkStatus(
|
||||||
|
|
||||||
fullyAppliedCondition := generateFullyAppliedCondition(binding.Spec, aggregatedStatuses)
|
fullyAppliedCondition := generateFullyAppliedCondition(binding.Spec, aggregatedStatuses)
|
||||||
|
|
||||||
currentBindingStatus := binding.Status.DeepCopy()
|
|
||||||
currentBindingStatus.AggregatedStatus = aggregatedStatuses
|
|
||||||
err = retry.RetryOnConflict(retry.DefaultRetry, func() (err error) {
|
err = retry.RetryOnConflict(retry.DefaultRetry, func() (err error) {
|
||||||
|
currentBindingStatus := binding.Status.DeepCopy()
|
||||||
|
|
||||||
|
binding.Status.AggregatedStatus = aggregatedStatuses
|
||||||
// set binding status with the newest condition
|
// set binding status with the newest condition
|
||||||
currentBindingStatus.Conditions = binding.Status.Conditions
|
meta.SetStatusCondition(&binding.Status.Conditions, fullyAppliedCondition)
|
||||||
meta.SetStatusCondition(¤tBindingStatus.Conditions, fullyAppliedCondition)
|
|
||||||
if reflect.DeepEqual(binding.Status, *currentBindingStatus) {
|
if reflect.DeepEqual(binding.Status, *currentBindingStatus) {
|
||||||
klog.Infof("New aggregatedStatuses are equal with old clusterResourceBinding(%s) AggregatedStatus, no update required.", binding.Name)
|
klog.Infof("New aggregatedStatuses are equal with old clusterResourceBinding(%s) AggregatedStatus, no update required.", binding.Name)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.Status = *currentBindingStatus
|
|
||||||
updateErr := c.Status().Update(context.TODO(), binding)
|
updateErr := c.Status().Update(context.TODO(), binding)
|
||||||
if updateErr == nil {
|
if updateErr == nil {
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue