Argo CD Sync Wave: Cross‑Namespace Ordering Guarantee Unresolved
0 reputation · 16 Feb 2024, 15:11 UTC
0 reputation · 16 Feb 2024, 15:11 UTC
When migrating a small application, the argocd.argoproj.io/sync-wave annotation is often used to orchestrate resource updates so that new components are deployed before old ones are terminated. The intended workflow is to assign lower wave numbers to resources that should appear first, wait until those resources report Healthy, and then apply resources in higher waves.
Argo CD evaluates wave numbers per namespace during a sync. All resources with the same wave number in a given namespace are applied concurrently, and the controller blocks until every resource in that wave reports a healthy status before moving to the next wave. This behavior is documented in the Argo CD 2.12+ release notes and the official Sync Wave guide.
However, the implementation does not explicitly state whether the ordering is enforced across namespaces. In practice, a sync operation may include resources from multiple namespaces, each with identical wave numbers, and the controller appears to apply them in parallel without cross‑namespace sequencing. This leads to uncertainty when a migration spans several namespaces and the application requires a strict order of operations.
There is no documented guarantee that wave ordering is respected when resources share the same wave number but reside in different namespaces. This missing constraint poses a risk for zero‑downtime migrations that rely on a global ordering of resource updates.
A thoughtful contribution can make all the difference. Be the first to share one.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.