Skip to content

Conversation

@youngbupark
Copy link
Contributor

  • Support rollback for ManifestWorkReplicaSet


## Design Details

The `abort` operation cancels the progressing rollout and rolls it back to the stable revision automatically without updating `.spec.manifestWorkTemplate`, whereas `rollback` requires explicit manual action by updating `.spec.manifestWorkTemplate`.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am following the same concept of abort and rollback of argo rollout. See this - https://argo-rollouts.readthedocs.io/en/stable/getting-started/#4-aborting-a-rollout


### ManifestWorkReplicaSet API Object

To support abort and rollback feature, we will have the following API changes:
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I wonder if I need to split the enhancement for rollback and abort features.


## Summary

This enhancement proposes adding rollback capabilities to ManifestWorkReplicaSet (MWRS) to enable safe recovery from failed multi-cluster deployments. The solution leverages Kubernetes ControllerRevision resources to maintain a historical record of MWRS template changes, similar to how StatefulSet and DaemonSet controllers track revision history.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I will update the plugin enhancment proposal after this proposal is approved - #160 I would rename rollback to abort in plugin hook name.

Copy link
Member

@qiujian16 qiujian16 left a comment

Choose a reason for hiding this comment

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

thanks, I'd like to have two examples on how mwrs status looks like during rollback:

  1. upgrade and abort, how will the status changes (conditions/reasons/summary etc) among each state. And how user can know whether a rollback is done in which revision?
  2. manual rollback, how user set rollback and check if rollback is finished.

@qiujian16
Copy link
Member

I do not see any outstanding issue, I think it is fine to be merged with this #164 (comment) updated.

/approve

leave to @haoqing0110 for final tag.

@openshift-ci openshift-ci bot added the approved label Dec 2, 2025
@youngbupark youngbupark force-pushed the add-rollback branch 3 times, most recently from 947ba04 to bffc10a Compare December 2, 2025 03:41
@qiujian16
Copy link
Member

/approve
/lgtm

@openshift-ci
Copy link

openshift-ci bot commented Dec 3, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: qiujian16, youngbupark

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

The pull request process is described here

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-merge-bot openshift-merge-bot bot merged commit 2ece292 into open-cluster-management-io:main Dec 3, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants