Theory
Theory: Diff Algorithms Decide What “Out of Sync” Means
Argo compares live Kubernetes objects to rendered Git. Ignore differences, jq paths, and server-side apply all change that predicate.
Invariants
- Webhook vs polling is how fast Git is noticed, not how sync works.
- Health is controllers’ opinion (Deployment available), not Git.
- External clusters need credentials in Argo’s DB/secret store.
desired YAML vs live JSON → sync status
live conditions → health status
What can break
- Ignoring
/spec/replicaswhile HPA owns replicas (or vice versa).
How to read this chapter
Registration, poll vs webhook, diffs, health.