Repository navigation
✨ add Available condition to ClusterObjectDeployment - #3046
perdasilva wants to merge 1 commit into
Conversation
✅ Deploy Preview for olmv1 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Report a per-deployment Available condition alongside Progressing. It is True (reason Available) when at least one active, non-archived revision is Ready, so the deployment stays available across rollouts while a prior revision remains Ready; False with reason Unavailable when active revisions exist but none are Ready, or NoActiveRevision when none exist. Adds an Available print column, expands the status godoc, and asserts the condition in the cod_rollout e2e feature. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Per G. da Silva <pegoncal@redhat.com>
a7400dc to
c23d187
Compare
|
/approve I do see a failure in the experimental-e2e. Not sure if it is related, but I think the change itself looks good. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: joelanford 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 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3046 +/- ##
==========================================
+ Coverage 64.04% 64.11% +0.06%
==========================================
Files 145 145
Lines 10338 10358 +20
==========================================
+ Hits 6621 6641 +20
Misses 3268 3268
Partials 449 449
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Description
Adds a per-deployment
Availablecondition toClusterObjectDeployment, complementing the existingProgressingcondition introduced with the controller MVP (#3034).Today a
ClusterObjectDeploymentonly reports rollout progress. There's no single signal for whether the deployment is actually serving desired content. This PR adds that signal:Availablereflects whether at least one active revision isReady, so consumers can gate on availability independently of whether a new revision is mid-rollout.Behavior
Availableis derived from the ownedClusterObjectSetrevisions each reconcile:TrueAvailableReadyFalseUnavailableReadyyetFalseNoActiveRevisionBecause it keys off any active Ready revision, the deployment stays
Available=Trueacross rollouts while a previous revision remains Ready and a new one is still progressing.What's included
Availablecondition type +Available/Unavailable/NoActiveRevisionreason constants; expandedstatus.conditionsgodoc.Availableshown inkubectl get clusterobjectdeploymentalongsideProgressing.setAvailablecomputed every reconcile;Progressing/Availablenow share a smallsetConditionhelper.Testing
Test_ClusterObjectDeploymentReconciler_Available) cover all three states plus the cross-rollout case: a deployment staysAvailablewhile a new revision rolls out as long as a prior revision is stillReady.go build,go vet, andgo test ./internal/object-controller/... ./api/v1/...pass.Notes
Availablecondition; no changes tocollisionProtection, COS types, or indexing.Availableis a planned follow-up oncod_rollout.feature.Reviewer Checklist
Summary by CodeRabbit
Availablestatus condition for ClusterObjectDeployments.Availablecolumn to ClusterObjectDeployment listings.