Détection automatique des écarts entre les manifests GitHub et l'état réel des clusters Kubernetes. Avant qu'un écart ne devienne un incident.
Après avoir déployé Self-Healing Platform v2 sur mon homelab — 244 incidents traités, 85% de confiance IA, MTTR réel de 12 secondes — une question s'est posée naturellement : et si on pouvait éviter ces incidents en amont ?
En production, les dérives de configuration sont fréquentes et souvent invisibles.
Un kubectl scale pour tester une montée en charge.
Un kubectl edit pour débugger en urgence.
Une image taguée latest poussée sans commit Git.
Au début, ce n'est qu'un écart. Quelques jours plus tard, c'est souvent un incident. GitOps Config Drift Detector détecte ces écarts avant qu'ils n'évoluent.
Le scanner tourne toutes les 5 minutes via APScheduler sur le cluster K3s. À chaque cycle, il lit les manifests YAML depuis les dépôts GitHub via l'API, interroge kubectl pour l'état live, et compare champ par champ.
Toute dérive détectée est immédiatement enregistrée dans PostgreSQL avec son type, sa sévérité,
la valeur Git attendue et la valeur réelle du cluster.
Un mécanisme d'upsert anti-duplication évite les doublons :
si la dérive persiste, seuls last_seen
et occurrences sont mis à jour.
L'API REST expose /health,
/scan,
/drifts et
/stats.
Un scan manuel peut être déclenché à tout moment via POST /scan.
Le dashboard Grafana se connecte directement à PostgreSQL et affiche les métriques en temps réel.
Le champ decision_source et recommended_action ont été inclus dès le départ —
même sans être utilisés en Phase 1 — pour éviter une migration de schéma lors du passage en Phase 3 (PR automatique)
et Phase 4 (classification IA). Même approche que Self-Healing v2 avec confidence_score
et action_taken.
Les trois types de dérives critiques ont été validés sur infrastructure réelle : replicas_drift (LOW), image_tag_drift (HIGH) et resource_limit_drift (HIGH). Chaque dérive a été détectée au scan suivant, enregistrée dans PostgreSQL et visible dans Grafana en temps réel.
L'upsert anti-duplication garantit qu'une dérive persistante ne génère pas de lignes en double —
seules last_seen et
occurrences sont incrémentées.
Cela permet de mesurer la durée réelle d'une dérive et le nombre de cycles pendant lesquels elle est restée non corrigée.
Le scanner tourne sur srv-kubernetes (192.168.0.37) — cluster K3s hébergeant également n8n, ArgoCD, Traefik et une douzaine de SaaS exposés via Cloudflare Tunnel. PostgreSQL dédié sur NodePort 30301, API REST sur NodePort 30300. Le dashboard Grafana est servi depuis srv-monitor (192.168.0.29) avec datasource PostgreSQL directe.
C'est en cassant volontairement mes propres déploiements — les mêmes qui hébergent mes SaaS en production — que j'ai validé chaque type de dérive. Pas un cluster temporaire. Pas un environnement isolé. Infrastructure réelle.
Contactez-moi pour discuter de la mise en place de GitOps Config Drift Detector sur votre infrastructure Kubernetes.