À quoi sert ArgoCD
ArgoCD est un contrôleur Kubernetes open-source qui implémente le pattern GitOps : il prend en entrée un dépôt Git contenant des manifests (YAML, Helm charts, Kustomize overlays) et garantit que l'état du cluster correspond à tout moment à ce dépôt. Si un opérateur modifie une ressource directement sur le cluster, ArgoCD détecte le drift et propose, ou applique automatiquement, un retour à l'état souhaité.
Le projet est issu d'Intuit, donné à la CNCF en 2020, et a atteint le statut Graduated en décembre 2022. Il est aujourd'hui le contrôleur GitOps le plus déployé dans les environnements Kubernetes d'entreprise, avec une part de marché estimée à plus de 60% selon le rapport CNCF Annual Survey.
Pourquoi ArgoCD plutôt qu'un script CI/CD
Avant ArgoCD, le pattern dominant était le push : un job CI exécutait kubectl apply ou helm upgrade après chaque merge. Ce modèle a deux faiblesses majeures.
D'abord, le CI doit avoir des credentials d'administration sur le cluster cible, ce qui ouvre une surface d'attaque non négligeable si le runner CI est compromis. Avec ArgoCD, le contrôleur tire les changements depuis Git ; aucune machine externe n'a besoin d'accès écriture au cluster.
Ensuite, le push ne détecte pas les drifts. Si un opérateur applique un patch d'urgence en console, ce patch n'est pas dans Git et la prochaine PR risque de l'écraser silencieusement. ArgoCD réconcilie en continu et signale les divergences.
Interface et expérience opérateur
ArgoCD propose trois modes d'interaction :
- Interface web : visualisation graphique de l'application, ressources Kubernetes, statut de synchronisation, history des déploiements. Particulièrement appréciée pour le debug.
- CLI
argocd: commandes pour les opérations courantes (sync, rollback, list). - CRD Kubernetes :
ApplicationetAppProjectpeuvent être versionnés dans Git pour un app-of-apps pattern (ArgoCD se gère lui-même via GitOps).
ArgoCD vs Flux
Les deux contrôleurs CNCF Graduated couvrent le même besoin. ArgoCD a une UI plus poussée, idéale pour les équipes qui veulent de la visibilité visuelle ; Flux est plus modulaire et plus léger, adapté aux usages purement code/CRD sans UI. Sur les missions Hidora, nous recommandons ArgoCD aux équipes de moins de 30 ingénieurs (UI = gain d'autonomie) et Flux pour les organisations avec plus de 100 clusters à gérer (modularité = passage à l'échelle).
En pratique sur une mission Hidora
Le déploiement type d'ArgoCD prend 2 à 5 jours selon la complexité existante :
- Installation du contrôleur via Helm chart officiel
- Configuration de l'authentification (OIDC vers votre IdP)
- Bootstrap d'un premier dépôt Git avec arborescence par environnement
- Migration des déploiements existants en mode tracking (sans auto-sync) pour mesurer les drifts
- Bascule progressive en auto-sync une fois les drifts résorbés
Limitations à connaître
ArgoCD ne gère bien que les ressources Kubernetes. Pour Terraform, des produits dédiés (Atlantis, Terraform Cloud) restent plus adaptés. ArgoCD ne remplace pas non plus un CI : il déploie ce que le CI a construit, mais ne construit pas les images lui-même.
Services Hidora associés
- Consulting : choix entre ArgoCD et Flux, conception de l'architecture multi-cluster, formation.
- Managed Services : exploitation des contrôleurs ArgoCD avec monitoring 24/7.
- GitOps, Kubernetes, Helm : briques techniques associées.