Skip to content

📖 Add ClusterObjectSet documentation#2615

Merged
openshift-merge-bot[bot] merged 1 commit intooperator-framework:mainfrom
perdasilva:cos-docs
Apr 1, 2026
Merged

📖 Add ClusterObjectSet documentation#2615
openshift-merge-bot[bot] merged 1 commit intooperator-framework:mainfrom
perdasilva:cos-docs

Conversation

@perdasilva
Copy link
Copy Markdown
Contributor

Description

Adds initial documentation for the ClusterObjectSet API

Reviewer Checklist

  • API Go Documentation
  • Tests: Unit Tests (and E2E Tests, if appropriate)
  • Comprehensive Commit Messages
  • Links to related GitHub Issue(s)

Copilot AI review requested due to automatic review settings March 31, 2026 12:10
@openshift-ci openshift-ci bot requested review from fgiudici and joelanford March 31, 2026 12:10
@netlify
Copy link
Copy Markdown

netlify bot commented Mar 31, 2026

Deploy Preview for olmv1 ready!

Name Link
🔨 Latest commit e51ddfd
🔍 Latest deploy log https://app.netlify.com/projects/olmv1/deploys/69cbca455394a900081e313e
😎 Deploy Preview https://deploy-preview-2615--olmv1.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

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

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds initial concept documentation for the ClusterObjectSet API, describing how it enables phased rollouts and how operator-controller uses it for ClusterExtension installs/upgrades.

Changes:

  • Introduces a new draft concepts page explaining ClusterObjectSet purpose, lifecycle, phases, collision protection, and status conditions.
  • Documents operator-controller phase ordering, readiness probing behavior, and large-bundle Secret externalization.
  • Provides YAML examples (inline objects and Secret references) plus basic kubectl inspection commands.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 31, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.84%. Comparing base (435e9c5) to head (e51ddfd).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2615      +/-   ##
==========================================
- Coverage   68.86%   68.84%   -0.03%     
==========================================
  Files         139      139              
  Lines        9872     9872              
==========================================
- Hits         6798     6796       -2     
- Misses       2557     2558       +1     
- Partials      517      518       +1     
Flag Coverage Δ
e2e 37.45% <ø> (-0.03%) ⬇️
experimental-e2e 52.57% <ø> (ø)
unit 53.50% <ø> (-0.02%) ⬇️

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

☔ View full report in Codecov by Sentry.
📢 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.

Copilot AI review requested due to automatic review settings March 31, 2026 12:52
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings March 31, 2026 13:05
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Member

@fgiudici fgiudici left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 31, 2026
Signed-off-by: Per G. da Silva <pegoncal@redhat.com>
Copilot AI review requested due to automatic review settings March 31, 2026 13:21
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Mar 31, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +71 to +74
| Order | Phase | Resource Kinds |
| --- | --- | --- |
| 1 | `namespaces` | Namespace |
| 2 | `policies` | NetworkPolicy, PodDisruptionBudget, PriorityClass |
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phase-ordering table is written with a double leading pipe (|| ... |), which renders as an extra empty column in standard Markdown. Use a single leading | for the header/separator/rows so the table has exactly the intended 3 columns.

Copilot uses AI. Check for mistakes.
Comment on lines +162 to +165
| Status | Reason | Meaning |
| --- | --- | --- |
| True | `RollingOut` | Actively making progress |
| True | `Retrying` | Encountered a retryable error |
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The condition tables under "Status conditions" are formatted with a double leading pipe (||), which adds an extra empty column in Markdown. Update these tables to use a single leading | so they render correctly.

Copilot uses AI. Check for mistakes.

- It is removed from the owner list of all previously managed objects
- Objects that did not transition to a succeeding revision are deleted
- The revision cannot be un-archived
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor wording: "The revision cannot be un-archived" is typically written without a hyphen ("unarchived" / "un-archived" -> "unarchived").

Suggested change
- The revision cannot be un-archived
- The revision cannot be unarchived

Copilot uses AI. Check for mistakes.
Comment on lines +7 to +9
A `ClusterObjectSet` is a cluster-scoped Kubernetes API that represents a versioned set of Kubernetes resources organized into ordered phases. It provides a declarative way to roll out a group of related resources sequentially, with built-in readiness checks between phases.

The revision content — the `revision` number, `collisionProtection` strategy, and `phases` (including all objects within them) — is immutable once set. This guarantees that the record of what was deployed at a given revision cannot change after creation. Other fields like `lifecycleState` can change over the object's lifecycle (e.g. transitioning from `Active` to `Archived`), and optional fields like `progressDeadlineMinutes` and `progressionProbes` can be configured independently.
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The doc says the revision content (including phases) is immutable “once set” and implies it cannot change after creation. In the current API validation, spec.phases can still be set/changed if the existing value is empty (XValidation: self == oldSelf || oldSelf.size() == 0). Consider clarifying this as “write-once after it becomes non-empty” (or documenting the exception) so the behavior matches the API.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

@camilamacedo86 camilamacedo86 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am ok with LGTM

@michaelryanpeter WDYT?

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Apr 1, 2026
@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Apr 1, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: grokspawn

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

The pull request process is described 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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 1, 2026
@openshift-merge-bot openshift-merge-bot bot merged commit 5d89b4e into operator-framework:main Apr 1, 2026
30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants