@@ -23,6 +23,7 @@ import (
2323
2424 corev1 "k8s.io/api/core/v1"
2525 "k8s.io/apimachinery/pkg/api/errors"
26+ "k8s.io/apimachinery/pkg/api/meta"
2627 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2728 "k8s.io/apimachinery/pkg/runtime"
2829 "k8s.io/client-go/tools/record"
@@ -333,7 +334,6 @@ func (r *TensorFusionWorkloadReconciler) updateStatus(
333334
334335 // Determine workload phase
335336 var phase tfv1.TensorFusionWorkloadPhase
336- var conditions []metav1.Condition
337337
338338 // Update Ready condition based on readyReplicas and desired replicas
339339 readyCondition := metav1.Condition {
@@ -365,7 +365,8 @@ func (r *TensorFusionWorkloadReconciler) updateStatus(
365365 readyCondition .Reason = "WaitingForWorkers"
366366 readyCondition .Message = fmt .Sprintf ("Ready replicas: %d/%d" , readyReplicas , * workload .Spec .Replicas )
367367 }
368- conditions = append (conditions , readyCondition )
368+
369+ conditionsChanged := meta .SetStatusCondition (& workload .Status .Conditions , readyCondition )
369370
370371 // Check if we need to update status
371372 totalReplicasChangedInDynamicReplicaMode :=
@@ -374,13 +375,11 @@ func (r *TensorFusionWorkloadReconciler) updateStatus(
374375 workload .Status .WorkerCount = int32 (len (pods ))
375376 }
376377 statusChanged := totalReplicasChangedInDynamicReplicaMode || workload .Status .ReadyWorkers != readyReplicas ||
377- workload .Status .Phase != phase ||
378- ! utils .EqualConditionsDisregardTransitionTime (workload .Status .Conditions , conditions )
378+ workload .Status .Phase != phase || conditionsChanged
379379
380380 if statusChanged {
381381 log .Info ("Updating workload status" , "phase" , phase , "readyReplicas" , readyReplicas )
382382 workload .Status .Phase = phase
383- workload .Status .Conditions = conditions
384383 workload .Status .ReadyWorkers = readyReplicas
385384 if err := r .Status ().Update (ctx , workload ); err != nil {
386385 return fmt .Errorf ("update workload status: %w" , err )
0 commit comments