[AI] OSAC-2398: VMaaS: ComputeInstance stuck in STARTING forever when Kubernetes CRD validation fails - #917
Conversation
…rnetes CRD validation fails Co-authored-by: osac-dev-bot <osac-automation@redhat.com>
|
@osac-jira-ai-issue-solver[bot]: This pull request references OSAC-2398 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 bug 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. |
|
AI Session Costs
|
|
CI failures addressed in no-changes. |
2 similar comments
|
CI failures addressed in no-changes. |
|
CI failures addressed in no-changes. |
|
/ok-to-test |
|
Labeled |
|
/hold |
|
I've put a hold on this PR because I think there might be some parallel work being done on something similar |
Acknowledged the hold. No code changes needed — this is a coordination comment about potential parallel work, not a code change request. The implementation is ready for review once the hold is lifted and any overlap with parallel work is clarified. |
ygalblum
left a comment
There was a problem hiding this comment.
Also, in some cases, the code checks if Status exists (and adds it if not) while other cases don't
Co-authored-by: osac-dev-bot <osac-automation@redhat.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: osac-jira-ai-issue-solver[bot] The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Removed |
Fixed — added Addressed in 5433a15. |
|
/rebase |
|
/retest |
|
Re-triggered failed runs:
|
|
/retest-required |
|
Re-triggered failed runs:
|
needs a rebase |
|
@osac-jira-ai-issue-solver sync |
|
Merge from main -> osac-jira-ai-issue-solver/OSAC-2398: already up to date |
Co-authored-by: osac-dev-bot <osac-automation@redhat.com>
|
Removed |
|
/ok-to-test |
|
Labeled |
|
@osac-jira-ai-issue-solver see the unit tests results: https://github.com/osac-project/fulfillment-service/actions/runs/30113281234/job/89564806580?pr=917. The test code you added end with a panic |
Dismissing my review to allow progress while I'm away
|
The bot has exhausted its quota. Closing this PR for #957 |
## Summary - When the per-ticket AI cost cap is exceeded, applies an `ai-budget-exceeded` GitHub PR label to all open PRs for the ticket, making the bot's state visible where reviewers are actually looking - The label reflects live state: re-applied if removed while the condition holds, cleared when the bot runs again (e.g., after the cap is raised) - Participates in PR validation label mutual exclusivity (replaces `ai-validation-failed` / `ai-nonzero-exit` when set, and vice versa) - Defaults to `"ai-budget-exceeded"` when not configured; set `cost_cap_exceeded: ""` to disable - Stops setting the Jira `blocked` label for cost-cap-exceeded (still set for general pipeline failures) **Motivation:** PR [osac-project/fulfillment-service#917](osac-project/fulfillment-service#917) — a reviewer asked the bot to fix a failing test, but the bot silently stopped because the $20 per-ticket cost cap was exhausted. The only signal was a Jira label the reviewer never saw. ## Test plan - [x] `go test -race ./models/...` — `CostCapLabel()`, `All()`, YAML loading with nil/empty/set pointer - [x] `go test -race ./projectresolver/...` — default applied when nil, custom value passthrough, explicit empty disables - [x] `go test -race ./executor/...` — `applyCostCapPRLabel` (apply, remove, disabled no-op, multi-repo, error swallowing), mutual exclusivity with all 3 labels - [x] `make lint` — clean (only pre-existing gosec warnings) Assisted-by: Claude <noreply@anthropic.com>
Resolves OSAC-2398
Summary
spec.cores > 128)hubClient.Create()orhubClient.Patch()returns a 422 Invalid error, the resource now transitions to FAILED state with the validation error message instead of being silently retried indefinitelyTest plan
golangci-lint run --fixpasses with 0 issues--cores 150and confirm it transitions to FAILED with the validation error messageFixes: OSAC-2398