@@ -144,22 +144,23 @@ func (r *TrainJobReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
144144 err = errors .Join (err , statusErr )
145145 }
146146
147- if deadlineResult , deadlineErr := r .reconcileDeadline (ctx , & trainJob ); deadlineErr != nil || deadlineResult .RequeueAfter > 0 {
148- if ! equality .Semantic .DeepEqual (& trainJob .Status , & prevTrainJob .Status ) {
149- return deadlineResult , errors .Join (err , r .client .Status ().Patch (ctx , & trainJob , client .MergeFrom (prevTrainJob )))
150- }
151- return deadlineResult , errors .Join (err , deadlineErr )
152- }
147+ deadlineResult , deadlineErr := r .reconcileDeadline (ctx , & trainJob )
148+ err = errors .Join (err , deadlineErr )
153149
154150 if ! equality .Semantic .DeepEqual (& trainJob .Status , prevTrainJob .Status ) {
155151 // TODO(astefanutti): Consider using SSA once controller-runtime client has SSA support
156152 // for sub-resources. See: https://github.com/kubernetes-sigs/controller-runtime/issues/3183
157- return ctrl.Result {}, errors .Join (err , r .client .Status ().Patch (ctx , & trainJob , client .MergeFrom (prevTrainJob )))
153+ if statusErr := r .client .Status ().Patch (ctx , & trainJob , client .MergeFrom (prevTrainJob )); statusErr != nil {
154+ return ctrl.Result {}, errors .Join (err , statusErr )
155+ }
158156 }
159157
160- // RHAI progression tracking (use APIReader to avoid pod watches)
161- result , progressionErr := progression .ReconcileProgression (ctx , r .client , r .apiReader , log , & trainJob )
162- return result , errors .Join (err , progressionErr )
158+ // RHAI progression tracking
159+ result , _ := progression .ReconcileProgression (ctx , r .client , r .apiReader , log , & trainJob )
160+ if deadlineResult .RequeueAfter > 0 && (result .RequeueAfter == 0 || deadlineResult .RequeueAfter < result .RequeueAfter ) {
161+ return deadlineResult , err
162+ }
163+ return result , err
163164}
164165
165166func (r * TrainJobReconciler ) reconcileObjects (ctx context.Context , runtime jobruntimes.Runtime , trainJob * trainer.TrainJob ) error {
0 commit comments