Back to results for “Sync Waves & Hooks”
ArgoCD › Sync Waves & Hooks

How do you ensure a hook runs on every sync versus only on change?

Advanced

Answer

Hooks run each time a sync applies them. To force a hook (like tests) to run every sync even without changes, ensure the resource differs (e.g., generateName or a changing annotation) or trigger a sync explicitly. For run-once semantics, use appropriate delete policies and stable naming.
metadata:
  generateName: smoke-test-
Real-world example Using generateName makes a fresh smoke-test Job on every sync rather than skipping an unchanged one.

Common follow-ups: How do you force a hook to rerun? | What gives run-once behavior?