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

How does ArgoCD determine the health of a resource?

Intermediate

Answer

ArgoCD has built-in health assessments for standard resources (Deployments ready replicas, Services, Ingress with load balancer, PVCs bound, etc.). For custom resources, it uses configurable Lua health check scripts. Health reflects operational readiness, distinct from whether the resource matches Git (sync).
# argocd-cm custom health for a CRD (Lua)
resource.customizations.health.example.com_MyKind: |
  hs = {}
  if obj.status.phase == "Running" then hs.status = "Healthy" end
  return hs
Real-world example A custom operator CRD gets a Lua health script so ArgoCD can report it Healthy only when its status is Ready.

Common follow-ups: Why do CRDs need custom health checks? | What determines Deployment health?