Sync, health & status
Synced, healthy, and diffs.
Argo CD constantly compares the desired state (from Git) with the live state (in the cluster) and reports two independent statuses per Application. Sync status is whether the cluster matches Git: Synced (identical) or OutOfSync (they differ, with a diff you can inspect). Health status is whether the workloads are actually working: Healthy, Progressing, Degraded, Missing. An app can be Synced but Degraded (deployed as declared, but the pods are crashing) — the two answers are separate and both matter.
$ argocd app get payments-apiName: payments-apiSync Status: OutOfSync (to v1.4.0)Health Status: HealthyGROUP KIND NAMESPACE STATUS HEALTHapps Deployment payments OutOfSync Healthy$ argocd app diff payments-api # exactly what differs from Git
Syncing
When an app is OutOfSync, syncing applies the Git state to the cluster. You can sync manually (argocd app sync, or the UI) or automatically (next lesson). The diff view is central: before syncing, you see precisely which resources and fields differ, so a sync is never a black box. Health is computed with built-in rules per resource kind (a Deployment is Healthy when its replicas are available) and can be extended with custom health checks for CRDs.
$ argocd app sync payments-api # apply the Git state now$ argocd app wait payments-api --health # block until Healthy# Synced = matches Git; Healthy = actually working. Watch both.