OSAC-3985: requeue instead of firing CaaS storage job when no tier definitions registered - #286
Conversation
…istered
On fresh install, the storage controller fired osac-create-tenant-cluster-storage
before any StorageTiers were registered, producing a predictable failure
("storage_tier_definitions must be non-empty"). The system self-healed on retry
but generated a failed job record and log noise.
Guard before handleClusterStorageProvisioning: if TiersClient is configured but
tier definitions resolve to an empty list, requeue with StatusPollInterval and
skip the job.
Assisted-by: Claude Code <noreply@anthropic.com>
Signed-off-by: Zoltan Szabo <zszabo@redhat.com>
|
@zszabo-rh: This pull request references OSAC-3985 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "5.0.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
🤖 Finished Review · ✅ Success · Started 1:03 PM UTC · Completed 1:18 PM UTC Commit: |
ReviewFindingsLow
Previous runReviewFindingsLow
Labels: PR fixes a storage controller bug - adding component and type labels |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: akshaynadkarni, zszabo-rh 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 |
- Add BackendsClient nil check to guard condition for consistency with resolveAndInjectTierContext which requires both clients - Drop requeueAfter log key to match established controller log pattern - Add test case covering tier API error path in Stage 2 context Assisted-by: Claude Code <noreply@anthropic.com> Signed-off-by: Zoltan Szabo <zszabo@redhat.com>
|
New changes are detected. LGTM label has been removed. |
|
🤖 Review · ❌ Terminated · Started 11:04 AM UTC · Ended 11:18 AM UTC Commit: |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: osac-project/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
WalkthroughThe storage reconciler now requeues when configured fulfillment clients have no tier definitions. Tests cover empty tier definitions and tier-resolution failures without creating cluster-storage provisioning jobs. ChangesStorage tier retry handling
Estimated code review effort: 2 (Simple) | ~10 minutes Mergeability Score: ⚪ Minimal · up to The change only delays storage job creation until tier definitions are available and adds focused test coverage; no actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 11✅ Passed checks (11 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
🤖 Finished Review · ✅ Success · Started 11:04 AM UTC · Completed 11:18 AM UTC Commit: |
|
/retest |
|
Re-triggered failed runs:
|
|
/retest |
|
Re-triggered failed runs:
|
|
/retest |
|
Re-triggered failed runs:
|
Summary
osac-create-tenant-cluster-storagefired before any StorageTiers were registered, producing a predictable AAP job failure (storage_tier_definitions must be non-empty). Self-healed on retry but generated noise.handleUpdate(): ifTiersClientis configured but tier definitions are empty, requeue withStatusPollIntervalinstead of firing the job.RequeueAfter = pollIntervalwhen TiersClient returns empty tier list.Fixes: OSAC-3985
Test plan
make test— 633 passed, 0 failedmake lint— 0 issuesBreaking changes
Summary by CodeRabbit