Sync & Health

29 questions found

OutOfSync means the live cluster state differs from the desired state in Git. You review the diff to see the difference, then either sync to apply Git's state, or update Git if the live change is desired. With auto-sync it reconciles automatically.
Real-world example After a manifest edit, the app shows OutOfSync; reviewing the diff confirms the intended change before syncing.

Common follow-ups: How do you inspect what's OutOfSync? | Does auto-sync fix it automatically?

Applications GitOps Principles Sync & Health
Degraded means a resource has failed to reach or maintain a working state—e.g., a Deployment whose pods are crash-looping or not becoming ready. It signals an operational problem distinct from sync status, and turns the aggregated Application health red.
Real-world example A bad image causes crash-looping pods, so the Deployment and the Application show Degraded.

Common follow-ups: Is Degraded about sync or operation? | What commonly causes it?

Applications Sync Waves & Hooks Sync & Health
For a Deployment, ArgoCD checks the rollout status: it's Healthy when the desired replicas are updated, available, and the rollout has completed; Progressing while pods are still rolling; and Degraded if it fails to progress (e.g., timeout, unavailable replicas). It reads the Deployment status conditions to decide.
Real-world example A Deployment stuck with unavailable replicas past its progress deadline is reported Degraded.

Common follow-ups: What conditions does it read? | When is a Deployment Progressing?

Applications Sync Waves & Hooks Sync & Health
Suspended indicates a resource is intentionally paused, such as a suspended CronJob or a paused Argo Rollout. ArgoCD reports it distinctly so it's not confused with a failure; the resource isn't Degraded, it's deliberately not active.
Real-world example A CronJob with spec.suspend true shows Suspended rather than Degraded or Healthy.

Common follow-ups: Is Suspended a failure? | What resources can be Suspended?

Applications Sync Waves & Hooks Sync & Health
Sync success means resources applied, but health depends on runtime readiness. Check pod status/logs, readiness/liveness probes, events, and for CRDs whether a custom health check exists (else it may stay Progressing/Unknown). Fix the root cause—failing probes, missing dependencies, or an absent health script.
argocd app get app --refresh
kubectl get pods -n ns; kubectl describe pod <p>
Real-world example An app stays Progressing because a readiness probe path is wrong; correcting it lets the app report Healthy.

Common follow-ups: Why might a CRD stay Progressing forever? | What runtime issues block Healthy?

Applications Sync Waves & Hooks Sync & Health
Use ignoreDifferences to exclude controller-managed fields from diffs (preventing false OutOfSync), and custom health scripts to define health for CRDs. For fields set by admission/webhooks, ignoring them or using ServerSideApply avoids perpetual drift and health noise.
spec:
  ignoreDifferences:
    - group: apps
      kind: Deployment
      jsonPointers: [ /spec/replicas ]
Real-world example Ignoring HPA-managed replicas stops the app flapping between Synced and OutOfSync every reconcile.

Common follow-ups: Which fields commonly need ignoring? | How does SSA reduce noise?

Applications GitOps Principles Sync & Health
Sync windows, defined on an AppProject, allow or deny syncs on a cron schedule for matching apps—useful for change freezes or maintenance windows. A deny window blocks automated (and optionally manual) syncs during sensitive periods; allow windows restrict syncs to approved times.
syncWindows:
  - kind: allow
    schedule: '0 9 * * 1-5'
    duration: 8h
    applications: ['prod-*']
Real-world example Production apps can only auto-sync during business hours via an allow window, freezing deploys overnight.

Common follow-ups: Where are sync windows defined? | Can they block manual syncs?

Applications RBAC Sync & Health
A dry-run sync asks the API server to validate what would be applied without persisting changes, surfacing errors (schema, admission) before a real sync. It's a safety check to catch problems early, though some issues only appear on actual apply.
argocd app sync app --dry-run
Real-world example A dry-run reveals an invalid field so the manifest is fixed before the real sync runs.

Common follow-ups: What does dry-run catch? | What might it miss?

Applications GitOps Principles Sync & Health
Argo Rollouts runs AnalysisRuns (querying Prometheus, etc.) during canary/blue-green steps; if analysis fails, the Rollout is marked Degraded and can auto-abort. With the Rollouts health extension, ArgoCD reflects the Rollout's progressive status, so a failing canary shows as unhealthy and can gate promotion.
analysis:
  templates: [ { templateName: success-rate } ]
Real-world example A canary with a failing success-rate analysis is auto-aborted and shows Degraded in ArgoCD.

Common follow-ups: What is an AnalysisRun? | How does a failed analysis affect health?

Applications Sync Waves & Hooks Sync & Health

Showing 21–29 of 29