diff --git a/pkg/controllers/nodeclaim/disruption/consolidation.go b/pkg/controllers/nodeclaim/disruption/consolidation.go index 1e993129fd..5b9e6b867a 100644 --- a/pkg/controllers/nodeclaim/disruption/consolidation.go +++ b/pkg/controllers/nodeclaim/disruption/consolidation.go @@ -69,8 +69,12 @@ func (c *Consolidation) Reconcile(ctx context.Context, nodePool *v1.NodePool, no return reconcile.Result{RequeueAfter: consolidatableTime.Sub(c.clock.Now())}, nil } - // 6. Otherwise, add the consolidatable status condition + // 3. Otherwise, add the consolidatable status condition if not already set nodeClaim.StatusConditions().SetTrue(v1.ConditionTypeConsolidatable) + // We sleep here after a set operation since we want to ensure that we are able to read our own writes + // so that we avoid duplicating log lines due to quick re-queues from our node watcher + time.Sleep(100 * time.Millisecond) + if !hasConsolidatableCondition { log.FromContext(ctx).V(1).Info("marking consolidatable") }