Summary
Add support for grouping Applications in Progressive Syncs for ApplicationSets.
Currently Progressive Syncs work globally across all generated Applications. This makes it difficult to model independent rollout flows inside a single ApplicationSet.
Motivation
In real-world deployments, Applications are often logically separated into groups such as:
- clusters
- environments
- teams
Right now Progressive Syncs treat all Applications as a single rollout pipeline.
Example:
wave-1:
wave-2:
If app-a-prod is unhealthy, app-b-dev is also blocked, even though they are unrelated deployments.
This becomes especially problematic for multi-cluster or multi-tenant ApplicationSets where independent rollouts are expected.
Proposal
Add optional grouping support to RollingSync strategy.
Example:
spec:
strategy:
type: RollingSync
rollingSync:
groupKey: "environment"
steps:
- matchExpressions:
- key: tier
operator: In
values: ["backend"]
- matchExpressions:
- key: tier
operator: In
values: ["frontend"]
Applications sharing the same groupKey label value would progress independently through waves.
Example:
dev:
backend -> frontend
prod:
backend -> frontend
instead of:
all backends -> all frontends
This would allow safer and more scalable progressive deployments while keeping existing behavior unchanged when groupKey is not specified.
Summary
Add support for grouping Applications in Progressive Syncs for ApplicationSets.
Currently Progressive Syncs work globally across all generated Applications. This makes it difficult to model independent rollout flows inside a single ApplicationSet.
Motivation
In real-world deployments, Applications are often logically separated into groups such as:
Right now Progressive Syncs treat all Applications as a single rollout pipeline.
Example:
wave-1:
wave-2:
If app-a-prod is unhealthy, app-b-dev is also blocked, even though they are unrelated deployments.
This becomes especially problematic for multi-cluster or multi-tenant ApplicationSets where independent rollouts are expected.
Proposal
Add optional grouping support to RollingSync strategy.
Example:
Applications sharing the same groupKey label value would progress independently through waves.
Example:
instead of:
This would allow safer and more scalable progressive deployments while keeping existing behavior unchanged when groupKey is not specified.