You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/en/docs/concepts/work-distribution/manifestworkreplicaset.md
+20-12Lines changed: 20 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -181,30 +181,38 @@ In the example above, the `placementRefs` references `placement-rollout-all` wit
181
181
182
182
## Rollout Mechanism
183
183
184
-
The `ManifestWorkReplicaSet` rollout process is based on the `Progressing` and `Degraded` conditions of each `ManifestWork`. These conditions are not built-in but must be defined using [Custom CEL Expressions](https://open-cluster-management.io/docs/concepts/work-distribution/manifestwork/#custom-cel-expressions) in the `manifestConfigs` section.
184
+
The `ManifestWorkReplicaSet` rollout process is based on the `Applied`, `Progressing`, and `Degraded` conditions of each `ManifestWork`. These conditions are not built-in but must be defined using [Custom CEL Expressions](https://open-cluster-management.io/docs/concepts/work-distribution/manifestwork/#custom-cel-expressions) in the `manifestConfigs` section.
185
185
186
186
### Condition Requirements
187
187
188
-
- **Progressing condition (required)**: Tracks whether the ManifestWork is currently being applied to the cluster. The rollout controller uses this condition to determine if a cluster deployment is in progress or completed.
188
+
- **Applied condition (required)**: Indicates whether the ManifestWork has been successfully applied by the hub controller.
189
+
- This is a **built-in condition** that is automatically set by the ManifestWork controller.
190
+
- The controller checks this condition **first** to ensure the work has been properly applied before evaluating other conditions.
191
+
- If the `Applied` condition is missing, has Status=False/Unknown, or has a stale ObservedGeneration, it will never proceed to the next cluster.
192
+
- This ensures that rollout decisions are based on current status information, not stale data from previous generations.
193
+
194
+
- **Progressing condition (required)**: Tracks whether the ManifestWork is currently being applied to the managed cluster by the spoke agent.
189
195
- For rollout strategies `Progressive` and `ProgressivePerGroup`, this is a **required** condition to determine if the rollout can proceed to the next cluster.
190
-
- When the `Progressing` condition is `False`, the deployment is considered complete and succeeded, and the rollout will continue to the next cluster based on `minSuccessTime`.
191
-
- If this condition is not defined, the rollout will never proceed to the next cluster (it will remain stuck waiting for the condition).
196
+
- When the `Progressing` condition is `False` (and `Applied` is ready), the deployment is considered complete and succeeded, and the rollout will continue to the next cluster based on `minSuccessTime`.
197
+
- If this condition is not defined or has a stale ObservedGeneration, it will never proceed to the next cluster.
192
198
193
-
- **Degraded condition (optional)**: Indicates if the ManifestWork has failed or encountered issues.
199
+
- **Degraded condition (optional)**: Indicates if the ManifestWork has failed or encountered issues on the managed cluster.
194
200
- This is an **optional** condition used only to determine failure states.
195
201
- If the `Degraded` condition status is `True`, the rollout may stop or count towards `maxFailures`.
202
+
- If this condition exists but has a stale ObservedGeneration, the rollout will wait for it to catch up to avoid using stale status information.
196
203
- If this condition is not defined, the workload is assumed to never be degraded.
197
204
198
205
**Rollout Status Determination:**
199
206
200
-
The rollout controller determines the status of each ManifestWork based on the combination of `Progressing` and `Degraded` condition values:
207
+
The rollout controller determines the status of each ManifestWork based on the combination of `Applied`, `Progressing`, and `Degraded` condition values:
201
208
202
-
| Progressing | Degraded | Rollout Status | Description |
0 commit comments