GitOps failures
What it gives you — investigations triggered by Flux Kustomization/HelmRelease or Argo CD
Application going Ready=False, not just alerts.
Minimal config
gitops:
engine: flux # or "argocd"
sources:
gitops:
enabled: true # also react to Flux/Argo CD Ready=False
triggers:
gitops_failures:
debounce: 60s # require a failure to persist this long before investigatingVerify it locally
Break a Kustomization (or Application) on a real or local (k3d/kind) cluster and watch it get
picked up:
flux suspend kustomization <name> # or edit it to reference a bad image/values
kubectl -n runlore logs deploy/runlore | grep -E 'watching gitops failures|msg=incident'Expected: a watching gitops failures line at startup, then msg=incident … investigate=true once
the resource sits Ready=False past the debounce window.
Notes
- Presence +
enabled: trueboth gate it —sources.gitopsmust be present andenabled: true; a missing key orenabled: falsedisables the watcher entirely. - Cascade failures (a child resource failing only because its parent already did) are dropped before they ever reach the trigger policy — only the root failure investigates.
gitops_failures.debounce(default 60s) requires the failure to persist before investigating;0sfires immediately on everyReady=False. This is separate fromincidents.debounce, which governs the Alertmanager path.- Any conformant Flux or Argo CD install works — EKS, GKE, AKS, or local k3d/kind; RunLore only needs
the engine running, selected via
config.gitops.engine.
Reference
- Configuration →
sourcesandtriggersfor the full key reference. - Data sources — the
GitOpsProviderinterface behind thewhat_changedtool.