refactor: combine both status updates under one call

This commit is contained in:
Asaf Haim 2024-06-08 23:51:25 +03:00 committed by Asaf Haim
parent 7dda986370
commit a8b1b0e618
2 changed files with 34 additions and 35 deletions

View File

@ -294,7 +294,7 @@ type AutoscalingRunnerSetStatus struct {
// +optional
// +kubebuilder:validation:Minimum:=0
DesiredMinRunners int `json:"desiredMinRunners,omitempty"`
DesiredMinRunners int `json:"desiredMinRunners"`
// +optional
ScheduledOverridesSummary *string `json:"scheduledOverridesSummary,omitempty"`
}

View File

@ -318,9 +318,20 @@ func (r *AutoscalingRunnerSetReconciler) Reconcile(ctx context.Context, req ctrl
var overridesSummary string
// Update the status of the desired min runners and scheduled overrides summary
if autoscalingRunnerSet.Status.DesiredMinRunners != minRunners {
currentReplicasOutOfDate := latestRunnerSet.Status.CurrentReplicas != autoscalingRunnerSet.Status.CurrentRunners
minReplicasOutOfDate := autoscalingRunnerSet.Status.DesiredMinRunners != minRunners
// Update the status of autoscaling runner set.
if minReplicasOutOfDate || currentReplicasOutOfDate {
if err := patchSubResource(ctx, r.Status(), autoscalingRunnerSet, func(obj *v1alpha1.AutoscalingRunnerSet) {
if currentReplicasOutOfDate {
obj.Status.CurrentRunners = latestRunnerSet.Status.CurrentReplicas
obj.Status.PendingEphemeralRunners = latestRunnerSet.Status.PendingEphemeralRunners
obj.Status.RunningEphemeralRunners = latestRunnerSet.Status.RunningEphemeralRunners
obj.Status.FailedEphemeralRunners = latestRunnerSet.Status.FailedEphemeralRunners
}
if minReplicasOutOfDate {
obj.Status.DesiredMinRunners = minRunners
if (active != nil && upcoming == nil) || (active != nil && upcoming != nil && active.Period.EndTime.Before(upcoming.Period.StartTime)) {
@ -343,27 +354,15 @@ func (r *AutoscalingRunnerSetReconciler) Reconcile(ctx context.Context, req ctrl
} else {
obj.Status.ScheduledOverridesSummary = nil
}
}
}); err != nil {
log.Error(err, "Failed to update autoscaling runner set status with desired min runners")
log.Error(err, "Failed to update autoscaling runner set status")
return ctrl.Result{}, err
}
return ctrl.Result{}, nil
}
// Update the status of autoscaling runner set.
if latestRunnerSet.Status.CurrentReplicas != autoscalingRunnerSet.Status.CurrentRunners {
if err := patchSubResource(ctx, r.Status(), autoscalingRunnerSet, func(obj *v1alpha1.AutoscalingRunnerSet) {
obj.Status.CurrentRunners = latestRunnerSet.Status.CurrentReplicas
obj.Status.PendingEphemeralRunners = latestRunnerSet.Status.PendingEphemeralRunners
obj.Status.RunningEphemeralRunners = latestRunnerSet.Status.RunningEphemeralRunners
obj.Status.FailedEphemeralRunners = latestRunnerSet.Status.FailedEphemeralRunners
}); err != nil {
log.Error(err, "Failed to update autoscaling runner set status with current runner count")
return ctrl.Result{}, err
}
}
return ctrl.Result{RequeueAfter: DefaultScaleSetHealthyRequeueAfter}, nil
}