Skip to content

Enhancement 235: Enable ManifestWorkReplicaSet by default - #178

Open
augustrh wants to merge 1 commit into
open-cluster-management-io:mainfrom
augustrh:235-enable-mwrs-by-default
Open

Enhancement 235: Enable ManifestWorkReplicaSet by default#178
augustrh wants to merge 1 commit into
open-cluster-management-io:mainfrom
augustrh:235-enable-mwrs-by-default

Conversation

@augustrh

@augustrh augustrh commented May 14, 2026

Copy link
Copy Markdown
Member

Summary

Propose changing the MWRS feature gate default from false to true so it is enabled out of the box without requiring explicit ClusterManager CR configuration.

Motivation

  • MWRS is a key component of several active OCM projects (flower-addon, federated-learning-controller, dynamic-scoring-framework, clusteradm)
  • Multiple enhancements build on MWRS as a foundation (229 rollback, 231 rollout plugins, 232 ignoreField selectors)
  • Users currently must discover and enable a feature gate before they can use MWRS, creating unnecessary friction

Prerequisites

  • ocm#1522: Fix misleading PlacementDecisionEmpty error masking
  • ocm#1380: Use generateName for child ManifestWorks
  • ocm#1198: Validate or document advanced use-case limitations

/cc @mikeshng

Summary by CodeRabbit

  • Documentation
    • Added enhancement proposal for enabling ManifestWorkReplicaSet by default, graduating it from Alpha to Beta status. Includes implementation details, prerequisites, risk mitigations, test plans, and upgrade strategies.

Review Change Stack

Propose changing the MWRS feature gate default from false to true
so it is enabled out of the box without requiring ClusterManager
CR configuration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: august simonelli <august@redhat.com>
@openshift-ci
openshift-ci Bot requested a review from mikeshng May 14, 2026 04:12
@coderabbitai

coderabbitai Bot commented May 14, 2026

Copy link
Copy Markdown

Walkthrough

This PR adds a formal enhancement proposal to enable the ManifestWorkReplicaSet feature by default in OCM. It introduces a README documenting the proposal rationale, implementation approach, and operational considerations, along with structured metadata identifying the enhancement and its ownership.

Changes

Enable ManifestWorkReplicaSet by Default

Layer / File(s) Summary
Enhancement proposal and metadata
enhancements/sig-architecture/235-enable-mwrs-by-default/README.md, enhancements/sig-architecture/235-enable-mwrs-by-default/metadata.yaml
README proposes changing the feature gate default from false to true and promoting prerelease stage to Beta, detailing user stories, prerequisites for correctness, risk/mitigation analysis, test strategy, graduation criteria, and upgrade/downgrade procedures. Metadata YAML provides enhancement identity, author/reviewer placeholders, timestamps, status, and references to supporting documentation.

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: enabling ManifestWorkReplicaSet by default, which directly matches the PR's primary objective and the documented enhancement.
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.

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

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

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@enhancements/sig-architecture/235-enable-mwrs-by-default/README.md`:
- Around line 92-103: The prerequisites vs blocking criteria are inconsistent:
the "Prerequisites that must be resolved before this change lands" list includes
issue `#1198` but the "Blocking criteria" section (around lines 149-153) only
lists `#1522` and `#1380`; update the document so both sections match by either
moving `#1198` into the Blocking criteria or removing it from the Prerequisites
list, and ensure the headings "Prerequisites that must be resolved before this
change lands" and "Blocking criteria" mention the same set of issues (`#1522`,
`#1380`, and `#1198` if it is intended to block) so merge readiness is unambiguous.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 481df16d-14df-4d28-b467-8998e208f690

📥 Commits

Reviewing files that changed from the base of the PR and between 5b06921 and 7c9fd5c.

📒 Files selected for processing (2)
  • enhancements/sig-architecture/235-enable-mwrs-by-default/README.md
  • enhancements/sig-architecture/235-enable-mwrs-by-default/metadata.yaml

Comment on lines +92 to +103
**Prerequisites that must be resolved before this change lands:**

- [#1522](https://github.com/open-cluster-management-io/ocm/issues/1522):
MWRS reports `PlacementDecisionEmpty` when ManifestWork apply fails, masking
the real error. A default-enabled feature must not hide errors from users.
- [#1380](https://github.com/open-cluster-management-io/ocm/issues/1380):
Should use `generateName` to create ManifestWork from MWRS.
- [#1198](https://github.com/open-cluster-management-io/ocm/issues/1198):
Advanced MWRS use-cases need to be validated or documented as known
limitations.

NOTE: There may be more. See Open Questions below.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Align blocking criteria with stated prerequisites.

Line 92 says #1198 must be resolved before landing, but Lines 149-153 only list #1522 and #1380 as blocking criteria. Please make these sections consistent so merge readiness is unambiguous.

Suggested doc diff
- - All blocking bugs resolved (`#1522`, `#1380`).
+ - All blocking prerequisites resolved (`#1522`, `#1380`, `#1198`), or `#1198` explicitly documented as non-blocking with accepted limitations.

Also applies to: 149-153

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@enhancements/sig-architecture/235-enable-mwrs-by-default/README.md` around
lines 92 - 103, The prerequisites vs blocking criteria are inconsistent: the
"Prerequisites that must be resolved before this change lands" list includes
issue `#1198` but the "Blocking criteria" section (around lines 149-153) only
lists `#1522` and `#1380`; update the document so both sections match by either
moving `#1198` into the Blocking criteria or removing it from the Prerequisites
list, and ensure the headings "Prerequisites that must be resolved before this
change lands" and "Blocking criteria" mention the same set of issues (`#1522`,
`#1380`, and `#1198` if it is intended to block) so merge readiness is unambiguous.

@mikeshng mikeshng left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

MWRS is a feature that has been used by the community for a while now.

My opinion is that it might not be necessary to resolve all the prereq issues you have listed. They are not blocking issues as far as I can tell.

@openshift-ci

openshift-ci Bot commented May 14, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: augustrh, mikeshng
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

@mikeshng

Copy link
Copy Markdown
Member

@annelau21 @ncr38 please sign off or provide feedback if object. Thanks!


- 2024: MWRS introduced behind a feature gate (default disabled).
- Enhancement 229: Rollback support for MWRS (building on MWRS as foundation).
- Enhancement 231: Rollout plugin extensibility for MWRS.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

229 and 231 has not been implemented yet, I think we need to setup a plan for these. Also we need a plan for promoting to beta.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

229 we are working on, we can share our work maybe in 2nd week of July

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants