ArgoCD › Sync Waves & Hooks

How do you order a multi-tier application deployment with waves?

Advanced

Answer

Assign ascending waves by dependency: namespaces/CRDs (wave -1/0), configuration and secrets (wave 0), stateful backends like databases (wave 1) with a readiness gate, then backend services (wave 2), then frontends (wave 3). ArgoCD waits for each wave to be Healthy, ensuring dependencies are ready before dependents deploy.
# db: sync-wave "1"; api: sync-wave "2"; web: sync-wave "3"
Real-world example The database (wave 1) must be Healthy before the API (wave 2), which must be up before the web tier (wave 3).

Common follow-ups: How does ArgoCD know a wave is done? | What if a wave never becomes Healthy?