← CertifHub
DevOps 6 juin 2026 · 5 min · par L'équipe CertifApp

GitOps avec Argo CD : automatiser les déploiements Kubernetes

Découvrez comment implémenter le pattern GitOps avec Argo CD pour rendre vos déploiements Kubernetes fiables, traçables et entièrement automatisés.

Introduction au GitOps

Le terme GitOps désigne une approche où le git devient la source unique de vérité pour l’état désiré d’une infrastructure. Chaque modification, qu’il s’agisse d’une mise à jour de configuration ou d’une nouvelle version d’application, est d’abord commitée dans le dépôt Git. Un opérateur dédié synchronise alors cet état avec le cluster Kubernetes.

Cette méthode apporte deux bénéfices majeurs :

  • Traçabilité : chaque changement est historisé dans Git, facilitant les revues de code et les audits.
  • Déploiement automatisé : le processus de mise à jour du cluster est déclenché par le commit, éliminant les interventions manuelles.

Parmi les outils GitOps, Argo CD se démarque par sa simplicité d’installation, son tableau de bord riche et sa capacité à gérer plusieurs clusters.

Installation d’Argo CD

Argo CD s’installe comme un ensemble de ressources Kubernetes. Voici les étapes essentielles :

# Créez le namespace dédié
timeout 60s kubectl create namespace argocd

# Installez les manifests officiels
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

Une fois les pods en état Running, exposez l’interface web (exemple avec port‑forward) :

kubectl port-forward svc/argocd-server -n argocd 8080:443

Le premier compte est admin. Récupérez le mot de passe initial :

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo

Déclarer une application GitOps

Une Application Argo CD décrit le lien entre le dépôt Git et le cluster cible. Voici un manifest minimal :

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: guestbook
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/argoproj/argocd-example-apps
    targetRevision: HEAD
    path: guestbook
  destination:
    server: https://kubernetes.default.svc
    namespace: guestbook
  syncPolicy:
    automated:
      prune: true        # supprime les ressources orphelines
      selfHeal: true    # réapplique si le cluster dérive de l’état Git

Appliquez‑le :

kubectl apply -f guestbook-app.yaml

Argo CD détectera le nouveau manifest, le comparera à l’état actuel du cluster et affichera le diff dans le tableau de bord. En activant syncPolicy.automated, le contrôle de conformité devient continu : dès qu’un commit modifie les manifests, Argo CD synchronise automatiquement le cluster.

Gestion des secrets en mode GitOps

Le principe GitOps décourage de placer des secrets en clair dans le dépôt. Deux solutions courantes s’intègrent avec Argo CD :

  1. Sealed Secrets (Bitnami) : les secrets sont chiffrés avec la clé publique du contrôleur et stockés dans Git. Le contrôleur les déchiffre au moment du déploiement.
  2. External Secrets Operator : les secrets sont récupérés depuis un coffre (AWS Secrets Manager, HashiCorp Vault, Azure Key Vault) au moment de la synchronisation.

Exemple avec Sealed Secrets :

apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
  name: db-credentials
  namespace: guestbook
spec:
  encryptedData:
    username: AgB...==
    password: AgC...==

Le fichier SealedSecret est versionné, mais le contenu reste illisible sans la clé du contrôleur.

Bonnes pratiques pour un pipeline GitOps robuste

  • Revue de code obligatoire : imposez des PR/MR avant toute modification d’infrastructure.
  • Tests de validation : utilisez kube‑test ou kuttl dans votre pipeline CI pour vérifier la validité des manifests avant le merge.
  • Politique de branche : maintenez une branche main (ou master) contenant l’état de production, et une branche staging pour les pré‑productions.
  • Audit des changements : activez les logs d’Argo CD et configurez des notifications (Slack, Teams) sur les événements de synchronisation.
  • Gestion des droits : limitez les accès Git et Argo CD aux équipes concernées, et utilisez des rôles RBAC pour restreindre les actions possibles sur le cluster.

Conclusion

Argo CD rend le concept GitOps concret et opérationnel. En centralisant la définition de l’infrastructure dans Git, vous gagnez en visibilité, en reproductibilité et en sécurité. Couplé à des solutions de gestion de secrets et à une chaîne CI rigoureuse, le workflow devient entièrement automatisé, du commit à la mise en production. Cette approche répond aux exigences des certifications DevOps modernes : maitrise du versioning, automatisation fiable et conformité auditable.

Envie d’aller plus loin avec CertifApp ?

Découvrir CertifApp