Skip to content

✨ report ClusterObjectSet teardown as Ready=False/Archiving - #3000

Closed
perdasilva wants to merge 1 commit into
cos-ready-objectsnotreadyfrom
cos-ready-archiving
Closed

perdasilva wants to merge 1 commit into
cos-ready-objectsnotreadyfrom
cos-ready-archiving

Conversation

@perdasilva

@perdasilva perdasilva commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Description

Part 2/5 of a series completing the ClusterObjectSet (COS) Ready condition vocabulary.

While spec.lifecycleState=Archived and teardown is in progress but not yet complete, report a dedicated Ready=False/Archiving reason instead of the generic RetryableError, so the archival phase is distinguishable from a transient error. Archived remains the terminal reason once
teardown completes.

Changes

  • Add ClusterObjectSetReasonArchiving and a markAsArchiving helper; emit it from archive() on the teardown-in-progress path (requeue 5s).
  • A teardown error stays a transient error (RetryableError for now; unified in the later "remove RetryableError" PR).
  • CE reconstruction: progressingFromReady maps Archiving → Progressing=True/RollingOut (neutral).

Scope

Experimental API only. Updates the archival unit tests, the concept doc, and regenerates CRD/manifests/API reference. (Also corrects a pre-existing concept-doc row that listed Archived as Unknown; the controller sets it False.)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Cluster object sets now report an Archiving status while owned objects are being removed, instead of reporting a retryable error.
    • Incomplete archival operations continue to retry, and the associated revision is reported as progressing during teardown.
  • Documentation
    • Updated condition references to distinguish the Archiving state from Archived, which applies after teardown is complete.

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 12, 2026
@openshift-ci

openshift-ci Bot commented Oct 12, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign joelanford for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai

coderabbitai Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: bfe70868-2e58-4865-af2b-eeb3d1af555c

📥 Commits

Reviewing files that changed from the base of the PR and between 2658f34 and 84b69b6.


📒 Files selected for processing (3)
  • applyconfigurations/api/v1/clusterobjectsetstatus.go
  • internal/object-controller/controllers/clusterobjectset_controller.go
  • internal/object-controller/controllers/clusterobjectset_controller_test.go

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review.



📝 Walkthrough

Walkthrough

Incomplete archive teardown now reports a Ready=False condition with reason Archiving. The API and condition documentation describe this state. Tests check the condition and its mapping to RollingOut.

Changes

ClusterObjectSet Archiving Condition

Layer / File(s) Summary
Define the Archiving condition
api/v1/clusterobjectset_types.go, docs/draft/concepts/clusterobjectsets.md, helm/olmv1/base/object-controller/crd/experimental/olm.operatorframework.io_clusterobjectsets.yaml, manifests/experimental*.yaml, applyconfigurations/api/v1/clusterobjectsetstatus.go
The API and condition documentation describe Archiving as a Ready=False reason during owned-object teardown. The concepts documentation changes the Archived status from Unknown to False.
Report incomplete archive teardown
internal/object-controller/controllers/clusterobjectset_controller.go, internal/object-controller/controllers/clusterobjectset_controller_test.go, internal/operator-controller/controllers/common_controller_test.go
When teardown remains incomplete, the archive path sets the Archiving condition instead of a retryable-error condition. Tests check its message and assert that an incomplete revision with this condition maps to RollingOut.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Suggested reviewers: fao89


Merge Risk: ⚪ Minimal · up to 84b69

Incomplete, error-free teardown reports Archiving and requeues; errors remain RetryableError, and completed teardown remains Archived. The status is accepted by the checked-in schemas, with no merge-blocking concern identified.

Pre-merge checks | Passed 4 | Failed 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 16.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 6 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check Passed The description clearly explains the change, motivation, scope, test updates, and deferred error handling. It does not include the template's Reviewer Checklist, but the core required information is c…
Title check Passed The title uses the required ✨ prefix and clearly summarizes the main change: reporting ClusterObjectSet teardown as Ready=False with reason Archiving.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR

🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@perdasilva
perdasilva added this pull request to stack #3004 October 12, 2026 17:50
@netlify

netlify Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for olmv1 ready!

Name Link
🔨 Latest commit 84b69b6
🔍 Latest deploy log https://app.netlify.com/projects/olmv1/deploys/6acd2a008897eeb7d7a7b3ae
😎 Deploy Preview https://deploy-preview-3000--olmv1.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@perdasilva
perdasilva marked this pull request as ready for review October 12, 2026 17:59
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 12, 2026
@openshift-ci
openshift-ci Bot requested review from fgiudici and tmshort October 12, 2026 17:59
@perdasilva
perdasilva marked this pull request as draft October 12, 2026 18:12
@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 12, 2026
@codecov

codecov Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 64.68%. Comparing base (f4cf2b1) to head (84b69b6).

Additional details and impacted files
@@                      Coverage Diff                      @@
##           cos-ready-objectsnotready    #3000      +/-   ##
=============================================================
+ Coverage                      64.67%   64.68%   +0.01%     
=============================================================
  Files                            133      133              
  Lines                           9822     9825       +3     
=============================================================
+ Hits                            6352     6355       +3     
  Misses                          3036     3036              
  Partials                         434      434              
Flag Coverage Δ
unit 64.68% <100.00%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

While spec.lifecycleState=Archived and teardown is in progress but not yet
complete, report a dedicated Archiving reason on the Ready condition instead of
RetryableError; Archived stays terminal. A teardown error remains a transient
error (RetryableError for now; unified in a later change). ClusterExtension
Progressing maps Archiving to RollingOut (neutral).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Per G. da Silva <pegoncal@redhat.com>
@perdasilva
perdasilva marked this pull request as ready for review October 12, 2026 19:09
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 12, 2026
@openshift-ci
openshift-ci Bot requested review from grokspawn and pedjak October 12, 2026 19:10
@perdasilva

Copy link
Copy Markdown
Contributor Author

/hold for #2999

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 13, 2026
@perdasilva

Copy link
Copy Markdown
Contributor Author

closing since stacks are a problem for prow - re-opened at #3010

@perdasilva perdasilva closed this Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant