Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Features] Supports upper-layer modification of the InstanceSet's UpdateStrategy #7913

Open
YTGhost opened this issue Aug 2, 2024 · 2 comments · May be fixed by #7939 or #8577
Open

[Features] Supports upper-layer modification of the InstanceSet's UpdateStrategy #7913

YTGhost opened this issue Aug 2, 2024 · 2 comments · May be fixed by #7939 or #8577

Comments

@YTGhost
Copy link
Contributor

YTGhost commented Aug 2, 2024

What is the user interaction of your feature
Users can control the UpdateStrategy of the underlying InstanceSet by modifying top-level CR resources, such as the Clusterresource.

Is your feature request related to a problem? Please describe.
If users wish to modify the UpdateStrategy on the InstanceSet to implement the capability for partitioned rolling updates, they currently can only achieve this by directly modifying the InstanceSet, as there is a lack of upper-layer API interfaces.

If this is a new feature, please describe the motivation and goals.
Able to expose the capability to configure the InstanceSet UpdateStrategy in the upper-layer API.

Describe the solution you'd like
Expose the configuration entry for the InstanceSet UpdateStrategy in the upper-layer ClusterComponentSpec.

@starnop
Copy link
Contributor

starnop commented Feb 19, 2025

Similar to StatefulSet's StatefulSetUpdateStrategy, it is possible to effectively control the gradual release pace and concurrency of Pod instances.

For example, if we have 100 instances, during the first phase, we want to gradually release 10 instances with a concurrency of 2. This means that if the first two instances fail during the gradual release, the subsequent 8 instances will not proceed with the release. In the second phase, the gradual release will expand to 50 instances, and finally, in the third phase, we will achieve a 100% gradual release.

@starnop
Copy link
Contributor

starnop commented Feb 19, 2025

Below is the complete set of requirements related to grayscale control:

Feature Component API (Instance Level Control) Sharding API (Component Level Control)
Create/Expand Concurrency control Concurrency control
Scale in 1. Concurrency control
2. Role-based order
(No related requirements)
Scale out first and then Scale in Specify instance to scale in First scale out and then scale in the specified shard
Rolling Update 1. Gray progress control, partition
2. Gray concurrency, max unavailable
3. Role-based order
4. Support upgrade and rollback capability
1. Gray progress control, partition
2. Gray concurrency, max unavailable

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