Skip to content
Learni
View all tutorials
DevOps

Comment implémenter GitOps avec ArgoCD en 2026

18 minINTERMEDIATE

Introduction

GitOps transforme la gestion des infrastructures en plaçant Git au centre des opérations. Avec ArgoCD, les changements de code déclenchent automatiquement des déploiements sur Kubernetes. Cette approche garantit traçabilité, reproductibilité et rollback instantané. En 2026, les équipes DevOps adoptent massivement GitOps pour réduire les erreurs manuelles et améliorer la sécurité. Ce tutoriel vous guide pas à pas vers une implémentation intermédiaire solide.

Prérequis

  • Kubernetes 1.28+ avec cluster configuré
  • kubectl et helm installés
  • Accès à un dépôt Git (GitHub ou GitLab)
  • Connaissances de base des manifests Kubernetes

Installation d'ArgoCD

terminal
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'

Cette commande crée le namespace et déploie ArgoCD. Le patch expose le service via LoadBalancer pour un accès initial. Attendez que tous les pods soient prêts avant de continuer.

Récupération du mot de passe admin

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

ArgoCD génère un mot de passe initial stocké dans un secret. Cette commande le récupère pour la première connexion via l'interface web.

Création du dépôt GitOps

argocd-app.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: myapp
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/votre-org/gitops-repo.git
    targetRevision: HEAD
    path: manifests
  destination:
    server: https://kubernetes.default.svc
    namespace: production
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

Ce manifest déclare une Application ArgoCD qui synchronise automatiquement le dossier manifests du dépôt Git vers le namespace production.

Déploiement d'une application exemple

manifests/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: production
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.25
        ports:
        - containerPort: 80

Ce fichier Deployment est versionné dans Git. ArgoCD le détecte et le déploie automatiquement sur le cluster.

Configuration du Service

manifests/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: production
spec:
  selector:
    app: nginx
  ports:
  - port: 80
    targetPort: 80
  type: ClusterIP

Le Service expose le Deployment à l'intérieur du cluster. Il est synchronisé en même temps que le Deployment via la même Application ArgoCD.

Bonnes pratiques

  • Toujours activer prune et selfHeal dans la syncPolicy
  • Utiliser des branches protégées et des pull requests pour les changements
  • Séparer les environnements par dossiers (dev, staging, prod)
  • Ajouter des health checks personnalisés dans les Applications
  • Versionner les charts Helm plutôt que les valeurs inline

Erreurs courantes à éviter

  • Oublier de configurer le webhook Git pour déclencher les syncs
  • Laisser des secrets en clair dans le dépôt Git
  • Ne pas activer le mode automated sur les environnements de production critiques
  • Ignorer les conflits de merge lors de mises à jour simultanées

Pour aller plus loin

Découvrez nos formations avancées sur GitOps et ArgoCD : https://learni-group.com/formations