fix(controllers): requeue on gate conditions instead of relying on watch events - #129
Conversation
… events
Gates (placement not ready, HC not available, VR not ready, version
mismatch) returned reconcile.Result{} with no requeue, relying entirely
on watch events to re-trigger reconciliation. If no watch event fired
(e.g. no update to the cluster object), the nodepool would stall
indefinitely. Return RequeueAfter: 15s so the controller periodically
re-checks gate conditions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Same issue as the nodepool controller: placement, VR, and version mismatch gates returned with no requeue, relying entirely on watch events. If no watch event fired, the cluster would stall indefinitely. Return RequeueAfter: 15s so the controller periodically re-checks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Skipping CI for Draft Pull Request. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: openshift-online/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
Included review availability: Your plan includes up to 12 reviews per rolling hour; 10 remain after this review. WalkthroughHostedCluster and NodePool reconciliation now explicitly requeue after 15 seconds when placement, availability, or version prerequisites are not ready. Tests now expect these requeue results, including status-update conflict cases. ChangesReconciliation requeues
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The controllers now periodically recheck gate conditions instead of relying only on watch events; no actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 10 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (10 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Log "requeueing after 15s" only after the status update succeeds, not before — avoids misleading log entries when the status update returns an error and we don't actually requeue. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cristianoveiga, patjlm The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
46b00f1
into
openshift-online:main
Summary
reconcile.Result{}with no requeue, relying entirely on watch events to re-trigger reconciliationRequeueAfter: 15sso controllers periodically re-check gate conditionsTest plan
🤖 Generated with Claude Code
Summary by CodeRabbit