ArgoCD·

Optimisez le Déploiement Continu avec ArgoCD

Découvrez comment ArgoCD peut transformer votre processus de déploiement continu en automatisant et simplifiant la gestion des applications Kubernetes.
Optimisez le Déploiement Continu avec ArgoCD

Introduction

ArgoCD est devenu mon outil de déploiement continu de référence pour Kubernetes. Je l'utilise chez KNDS (Défense), Padam Mobility, Bloomflow, Earny SA et F2R2. C'est l'outil qui a transformé ma vision du déploiement : Git devient la source de vérité, et le cluster se synchronise automatiquement. Voici comment tirer le maximum d'ArgoCD en production.

GitOps : pourquoi c'est un game-changer

Le principe GitOps est simple : l'état désiré du cluster est décrit dans Git, et ArgoCD s'assure que le cluster reflète cet état. Concrètement, chez Padam Mobility, un développeur merge une PR qui change la version d'une image Docker dans le repo de manifests Kubernetes. ArgoCD détecte le changement en 30 secondes et synchronise le cluster. Pas de kubectl apply manuel, pas de script de déploiement, pas de pipeline CD complexe. Le rollback est un git revert. L'audit trail est l'historique Git. Quand l'auditeur ISO 27001 de Bloomflow demande "qui a déployé quoi et quand", la réponse est dans Git.

ApplicationSets : gérer des dizaines d'applications

Chez Bloomflow, on gère 30+ applications réparties sur 3 clusters (AWS, Scaleway, Outscale). Définir 90 objets Application ArgoCD manuellement serait ingérable. Les ApplicationSets génèrent automatiquement les Applications à partir d'une matrice (application x environnement x cluster). Un seul ApplicationSet définit le pattern, et ArgoCD crée les 90 Applications. Quand une nouvelle application arrive, il suffit d'ajouter un répertoire dans le repo de manifests, et l'ApplicationSet la détecte et la déploie automatiquement.

Sync Waves et Hooks : orchestrer les déploiements complexes

Les applications réelles ne sont pas des pods isolés : elles ont des dépendances (bases de données, migrations, cache). ArgoCD gère cela avec les Sync Waves. Chez Okeiro (e-Santé HDS), le déploiement du serveur FHIR suit un ordre précis : d'abord la base de données (wave -2), puis les migrations (wave -1 avec un Job Kubernetes), puis l'application (wave 0), puis les tests de smoke (wave 1 avec un Job post-sync). Si une étape échoue, les suivantes ne se lancent pas, et ArgoCD signale l'erreur. Ce mécanisme a éliminé les crashloops liés à des dépendances non prêtes.

Tableau de bord et visibilité

Le dashboard ArgoCD est un atout opérationnel majeur. Chez KNDS, l'équipe ops a une vue en temps réel de toutes les applications : état de synchronisation, santé des pods, dernière synchronisation, et diff entre l'état Git et l'état cluster. Quand un déploiement est en cours, le dashboard montre la progression en temps réel. Quand un pod est en erreur, le dashboard affiche les logs et les événements Kubernetes. Chez Bloomflow, on a configuré des notifications ArgoCD vers Slack pour les changements de statut (Healthy, Degraded, Progressing, Missing).

Sécurité et RBAC granulaire

ArgoCD intègre un RBAC puissant. Chez KNDS, les développeurs peuvent visualiser l'état de leurs applications et déclencher une synchronisation, mais ne peuvent pas modifier les configurations ArgoCD ni accéder aux applications d'autres équipes. Les admins ont un accès complet. L'intégration SSO (via OIDC) permet d'utiliser les mêmes identités que pour les autres outils. Les secrets de déploiement (credentials des registries, clés de chiffrement) sont gérés par Vault et injectés par le Vault Agent, jamais stockés dans ArgoCD. Cette séparation des responsabilités est essentielle dans les environnements réglementés.

Conclusion

ArgoCD est bien plus qu'un outil de déploiement : c'est un changement de paradigme. Git comme source de vérité, synchronisation automatique, rollback instantané, visibilité complète. Après l'avoir déployé chez plus de 5 clients, dans des contextes allant de la startup au secteur défense, je peux affirmer que c'est l'outil de CD le plus mature et le plus fiable de l'écosystème Kubernetes.



RDV