Skip to content

ArgoCD — алерт когда приложение drift-нулось от git-state

Кто-то сделал `kubectl edit` напрямую на cluster — manifest расходится с git. ArgoCD показывает OutOfSync, но auto-sync выключен. Манифест дальше расходится, drift накапливается.

Рецепт

bash
#!/usr/bin/env bash
# /etc/cron.d/argocd-drift
# */10 * * * * root /opt/argocd-drift.sh

ARGO=${ARGOCD_URL:-https://argocd.internal}
TOKEN=${ARGOCD_TOKEN}

OOS=$(curl -fsS -H "Authorization: Bearer $TOKEN" "$ARGO/api/v1/applications" \
  | jq -r '[.items[] | select(.status.sync.status != "Synced") | .metadata.name]')

COUNT=$(echo "$OOS" | jq 'length')

if [ "${COUNT:-0}" -gt 0 ]; then
  NAMES=$(echo "$OOS" | jq -r '.[]' | head -10 | tr '\n' ',')
  curl -fsS "$HEARTBEAT_URL" --data-urlencode "out_of_sync=$COUNT,apps=$NAMES"
  exit 2
fi
echo "OK (all apps Synced)"

То же самое в Enterno.io

Заверните в Enterno heartbeat — daily-report «что drift-нулось вчера» поможет команде быстро восстанавливать gitops-инвариант.

Настроить API monitor → ← Все рецепты

Похожие рецепты

Readiness-probe внутри пода есть, но никто не видит, что LB отказался роутить трафик на новый deploy.