← Tous les projets

GitOps · Argo CD

Git comme seule source de vérité

Argo CD applique les manifestes de l'application de démonstration depuis son dépôt public et annule tout écart fait à la main, sans prendre au pipeline le choix de l'image.

  • Argo CD
  • Helm
  • Kubernetes
  • GitLab CI

Le problème

Les manifestes étaient appliqués à la main avec kubectl apply. Rien ne garantissait que le cluster restait identique au dépôt : une modification faite à la main y restait.

Ce que j'ai construit

  • Argo CD v3.5.5 installé avec Helm (chart 10.10.5), valeurs versionnées. Version allégée : ni SSO, ni notifications, ni ApplicationSet, environ 300 Mio de mémoire.
  • Synchronisation automatique : un objet retiré du dépôt est supprimé (prune), un objet modifié à la main est remis comme dans le dépôt (self-heal).
  • Un AppProject qui limite l'application à un dépôt, un namespace et six types d'objets : un manifeste qui viserait autre chose est refusé.
  • Interface réservée à l'administrateur, HTTPS terminé par l'ingress.

Choix et raisons

  • Le pipeline garde le choix de l'image, après l'analyse Trivy. Argo CD ignore ce seul champ (ignoreDifferences avec RespectIgnoreDifferences) : les deux ne se battent pas.
  • Commencer par une seule application, publique. Les autres attendront : leurs dépôts sont privés, et le bac à sable du lab est modifié en direct par les visiteurs.

Vérifié

  • L'application passée à 3 réplicas à la main est revenue à 2 en 5 secondes.
  • Un vrai pipeline a ensuite déployé une nouvelle version : l'application est restée « Synced » et « Healthy », avec la nouvelle image.

Limites et suite

Une seule application suivie, un seul environnement. La suite : un dépôt d'environnements (préproduction puis production par merge request) et le déploiement progressif avec Argo Rollouts.