Skip to content

Commit 105c6ef

Browse files
authored
Merge pull request #7226 from Ady0333/fix/fullyapplied-condition-retry
fix: recompute FullyApplied condition inside RetryOnConflict to avoid stale spec evaluation
2 parents a573ddf + 24205df commit 105c6ef

File tree

1 file changed

+2
-8
lines changed

1 file changed

+2
-8
lines changed

pkg/util/helper/workstatus.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,20 +65,17 @@ func AggregateResourceBindingWorkStatus(
6565
if err != nil {
6666
return err
6767
}
68-
6968
aggregatedStatuses, err := assembleWorkStatus(workList.Items, binding.Spec.Resource)
7069
if err != nil {
7170
return err
7271
}
7372

74-
fullyAppliedCondition := generateFullyAppliedCondition(binding.Spec, aggregatedStatuses)
75-
7673
var operationResult controllerutil.OperationResult
7774
if err = retry.RetryOnConflict(retry.DefaultRetry, func() error {
7875
operationResult, err = UpdateStatus(ctx, c, binding, func() error {
7976
binding.Status.AggregatedStatus = aggregatedStatuses
8077
// set binding status with the newest condition
81-
meta.SetStatusCondition(&binding.Status.Conditions, fullyAppliedCondition)
78+
meta.SetStatusCondition(&binding.Status.Conditions, generateFullyAppliedCondition(binding.Spec, aggregatedStatuses))
8279
return nil
8380
})
8481
return err
@@ -108,20 +105,17 @@ func AggregateClusterResourceBindingWorkStatus(
108105
if err != nil {
109106
return err
110107
}
111-
112108
aggregatedStatuses, err := assembleWorkStatus(workList.Items, binding.Spec.Resource)
113109
if err != nil {
114110
return err
115111
}
116112

117-
fullyAppliedCondition := generateFullyAppliedCondition(binding.Spec, aggregatedStatuses)
118-
119113
var operationResult controllerutil.OperationResult
120114
if err = retry.RetryOnConflict(retry.DefaultRetry, func() error {
121115
operationResult, err = UpdateStatus(ctx, c, binding, func() error {
122116
binding.Status.AggregatedStatus = aggregatedStatuses
123117
// set binding status with the newest condition
124-
meta.SetStatusCondition(&binding.Status.Conditions, fullyAppliedCondition)
118+
meta.SetStatusCondition(&binding.Status.Conditions, generateFullyAppliedCondition(binding.Spec, aggregatedStatuses))
125119
return nil
126120
})
127121
return err

0 commit comments

Comments
 (0)