Skip to content

Clarify cluster operator Progressing condition#2829

Open
hongkailiu wants to merge 1 commit intoopenshift:masterfrom
hongkailiu:co-progressing
Open

Clarify cluster operator Progressing condition#2829
hongkailiu wants to merge 1 commit intoopenshift:masterfrom
hongkailiu:co-progressing

Conversation

@hongkailiu
Copy link
Copy Markdown
Member

@hongkailiu hongkailiu commented May 1, 2026

Clarify cluster operator Progressing condition

It clarifies that a new node from cluster scaleup or rebooting during cluster upgrade does not trigger COs to go Progressing. DaemonSet is an example and commonly seen in CI. It could be any Kubernetes resource that manages pods.

I hope that this helps reduce the confusion from CO owners [1].

Todo: Sync the change to counterpart in o/enhancement [2] if it is accepted.

[1]. https://redhat.atlassian.net/browse/OCPBUGS-62629?focusedCommentId=16850780

[2]. https://github.com/openshift/enhancements/blob/master/dev-guide/cluster-version-operator/dev/clusteroperator.md#conditions

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 1, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@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 May 1, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 1, 2026

Hello @hongkailiu! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@openshift-ci openshift-ci Bot added the size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label May 1, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 1, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 6d82c08b-ce9d-4767-996b-057a75d3e3c1

📥 Commits

Reviewing files that changed from the base of the PR and between ecde678 and e9c797f.

📒 Files selected for processing (1)
  • config/v1/types_cluster_operator.go
✅ Files skipped from review due to trivial changes (1)
  • config/v1/types_cluster_operator.go

📝 Walkthrough

Walkthrough

The OperatorProgressing documentation comment was edited to broaden the criterion: operators should not report Progressing solely because operator-owned resources (explicitly naming DaemonSets and Deployments) adjust during cluster scale-up or upgrade-driven node reboots. No exported/public Go type or function signatures were changed.

🚥 Pre-merge checks | ✅ 12
✅ Passed checks (12 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: clarifying documentation for the cluster operator Progressing condition, which is the primary focus of the pull request.
Description check ✅ Passed The description is directly related to the changeset, providing context about why the clarification is needed and referencing relevant issues and documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
Stable And Deterministic Test Names ✅ Passed The pull request only modifies documentation comments in config/v1/types_cluster_operator.go and does not add or modify any Ginkgo test files, so the check does not apply.
Test Structure And Quality ✅ Passed PR contains only type definitions and documentation comments; no test code of any kind was added or modified.
Microshift Test Compatibility ✅ Passed This PR only updates documentation comments in types_cluster_operator.go and does not add any new Ginkgo e2e tests.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR contains only documentation updates to OperatorProgressing condition comment in config/v1/types_cluster_operator.go; no Ginkgo e2e tests were added.
Topology-Aware Scheduling Compatibility ✅ Passed This PR only adds a new API type definition file with documentation comments. It contains no deployment manifests, operator code, or controllers.
Ote Binary Stdout Contract ✅ Passed The pull request modifies a library-level type definition file with only documentation comment clarifications, containing no executable code that could write to stdout.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed Pull request contains no new Ginkgo e2e tests; only documentation updates in type definition files.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.11.4)

Error: build linters: unable to load custom analyzer "kubeapilinter": tools/_output/bin/kube-api-linter.so, plugin: not implemented
The command is terminated due to an error: build linters: unable to load custom analyzer "kubeapilinter": tools/_output/bin/kube-api-linter.so, plugin: not implemented


Review rate limit: 8/10 reviews remaining, refill in 10 minutes and 48 seconds.

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
config/v1/types_cluster_operator.go (1)

159-166: ⚡ Quick win

Clarify “any pods-managing owned resource” to avoid re-narrowing intent.

The updated doc now says operators should not report Progressing “only because resources owned by them, such as DaemonSets and Deployments” are adjusting due to node scale-up / upgrade reboots. While “such as” signals examples, explicitly naming only those two kinds may still lead some CO owners to incorrectly assume the rule is limited to DaemonSets/Deployments.

Consider tweaking the sentence to directly match the broader intent (e.g., “owned Kubernetes resources that manage pods, such as …”), or add “including, but not limited to” to make it unambiguous that the guidance applies to any relevant owned pods-managing controller.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/v1/types_cluster_operator.go` around lines 159 - 166, Update the
Progressing status doc string to avoid narrowing scope: replace the phrase "such
as DaemonSets and Deployments" with wording that clearly covers all owned
pod-managing resources, e.g. "owned Kubernetes resources that manage pods
(including, but not limited to, DaemonSets and Deployments)"; edit the comment
block that documents Progressing in types_cluster_operator.go so the guidance
applies to any relevant owned pods-managing controller rather than implying only
DaemonSets and Deployments.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@config/v1/types_cluster_operator.go`:
- Around line 159-166: Update the Progressing status doc string to avoid
narrowing scope: replace the phrase "such as DaemonSets and Deployments" with
wording that clearly covers all owned pod-managing resources, e.g. "owned
Kubernetes resources that manage pods (including, but not limited to, DaemonSets
and Deployments)"; edit the comment block that documents Progressing in
types_cluster_operator.go so the guidance applies to any relevant owned
pods-managing controller rather than implying only DaemonSets and Deployments.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 194e02aa-c4b9-4f1e-950d-aca16a7e3360

📥 Commits

Reviewing files that changed from the base of the PR and between 589eff0 and 82e203c.

📒 Files selected for processing (1)
  • config/v1/types_cluster_operator.go

It clarifies that a new node from cluster scaleup or rebooting during cluster upgrade does not trigger COs to go Progressing. DaemonSet is an example and commonly seen in CI. It could be any Kubernetes resource that manages pods.

I hope that this helps reduce the confusion from CO owners [1].

Todo: Sync the change to counterpart in o/enhancement [2] if it is accepted.

[1]. https://redhat.atlassian.net/browse/OCPBUGS-62629?focusedCommentId=16850780

[2]. https://github.com/openshift/enhancements/blob/master/dev-guide/cluster-version-operator/dev/clusteroperator.md#conditions
@hongkailiu hongkailiu marked this pull request as ready for review May 1, 2026 15:54
@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 May 1, 2026
@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Clarify cluster operator Progressing condition documentation

📝 Documentation

Grey Divider

Walkthroughs

Description
• Clarifies Progressing condition to include all resource types
• Expands example from DaemonSets to include Deployments
• Improves documentation clarity for cluster operator owners
Diagram
flowchart LR
  A["Progressing Condition<br/>Documentation"] -->|"Clarifies scope"| B["Resources: DaemonSets<br/>and Deployments"]
  B -->|"Adjusting to"| C["New nodes from<br/>scaleup or reboot"]
  A -->|"Specifies when NOT<br/>to report Progressing"| D["Reconciling known<br/>state"]
Loading

Grey Divider

File Changes

1. config/v1/types_cluster_operator.go 📝 Documentation +3/-2

Expand Progressing condition documentation scope

• Expanded documentation to clarify that Progressing condition should not be reported when resources
 owned by operators adjust to new nodes
• Changed example from only DaemonSets to include Deployments and other resources
• Improved wording to use "resources owned by them, such as DaemonSets and Deployments" for broader
 clarity
• Maintains existing guidance about not reporting Progressing during normal reconciliation

config/v1/types_cluster_operator.go


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown

qodo-code-review Bot commented May 1, 2026

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Qodo Logo

@openshift-ci openshift-ci Bot requested review from JoelSpeed and everettraven May 1, 2026 15:55
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 1, 2026

@hongkailiu: all tests passed!

Full PR test history. Your PR dashboard.

Details

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 kubernetes-sigs/prow repository. I understand the commands that are listed here.

Copy link
Copy Markdown
Member

@wking wking 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 May 1, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Pipeline controller notification

No second-stage tests were triggered for this PR.

This can happen when:

  • The changed files don't match any pipeline_run_if_changed patterns
  • All files match pipeline_skip_if_only_changed patterns
  • No pipeline-controlled jobs are defined for the master branch

Use /test ? to see all available tests.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 1, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: wking
Once this PR has been reviewed and has the lgtm label, please assign deads2k 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm Indicates that a PR is ready to be merged. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants