Fix excessive runnerreplicaset update issue since 0.25.0 (#1651)
Fixes #1643
This commit is contained in:
parent
fea1457f12
commit
6762c5c096
|
|
@ -165,6 +165,8 @@ func (r *RunnerDeploymentReconciler) Reconcile(ctx context.Context, req ctrl.Req
|
||||||
return ctrl.Result{}, err
|
return ctrl.Result{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.V(1).Info("Updated runnerreplicaset due to selector change")
|
||||||
|
|
||||||
// At this point, we are already sure that there's no need to create a new replicaset
|
// At this point, we are already sure that there's no need to create a new replicaset
|
||||||
// as the runner template hash is not changed.
|
// as the runner template hash is not changed.
|
||||||
//
|
//
|
||||||
|
|
@ -182,7 +184,14 @@ func (r *RunnerDeploymentReconciler) Reconcile(ctx context.Context, req ctrl.Req
|
||||||
//
|
//
|
||||||
// If we missed taking the EffectiveTime diff into account, you might end up experiencing scale-ups being delayed scale-down.
|
// If we missed taking the EffectiveTime diff into account, you might end up experiencing scale-ups being delayed scale-down.
|
||||||
// See https://github.com/actions-runner-controller/actions-runner-controller/pull/1477#issuecomment-1164154496
|
// See https://github.com/actions-runner-controller/actions-runner-controller/pull/1477#issuecomment-1164154496
|
||||||
if currentDesiredReplicas != newDesiredReplicas || newestSet.Spec.EffectiveTime != rd.Spec.EffectiveTime {
|
var et1, et2 time.Time
|
||||||
|
if newestSet.Spec.EffectiveTime != nil {
|
||||||
|
et1 = newestSet.Spec.EffectiveTime.Time
|
||||||
|
}
|
||||||
|
if rd.Spec.EffectiveTime != nil {
|
||||||
|
et2 = rd.Spec.EffectiveTime.Time
|
||||||
|
}
|
||||||
|
if currentDesiredReplicas != newDesiredReplicas || et1 != et2 {
|
||||||
newestSet.Spec.Replicas = &newDesiredReplicas
|
newestSet.Spec.Replicas = &newDesiredReplicas
|
||||||
newestSet.Spec.EffectiveTime = rd.Spec.EffectiveTime
|
newestSet.Spec.EffectiveTime = rd.Spec.EffectiveTime
|
||||||
|
|
||||||
|
|
@ -192,6 +201,13 @@ func (r *RunnerDeploymentReconciler) Reconcile(ctx context.Context, req ctrl.Req
|
||||||
return ctrl.Result{}, err
|
return ctrl.Result{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.V(1).Info("Updated runnerreplicaset due to spec change",
|
||||||
|
"currentDesiredReplicas", currentDesiredReplicas,
|
||||||
|
"newDesiredReplicas", newDesiredReplicas,
|
||||||
|
"currentEffectiveTime", newestSet.Spec.EffectiveTime,
|
||||||
|
"newEffectiveTime", rd.Spec.EffectiveTime,
|
||||||
|
)
|
||||||
|
|
||||||
return ctrl.Result{}, err
|
return ctrl.Result{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue