← Tous les articles
Ven. 24 juillet 2026 · 3 min de lecture

🚀 Argo CD : le GitOps sur k3s, le dĂ©pĂŽt Git comme source de vĂ©ritĂ©

Argo CD

📚 Introduction

Ta CI construit et teste l’image — GitLab CI ou GitHub Actions font ça trĂšs bien. Mais ensuite ? Qui applique les manifestes sur le cluster Kubernetes ? Si la rĂ©ponse est « quelqu’un lance kubectl apply depuis son poste », tu as un problĂšme : aucun historique, aucune trace de qui a dĂ©ployĂ© quoi, et un cluster qui dĂ©rive doucement de ce que dĂ©crivent tes fichiers.

Le GitOps rĂ©pond Ă  ça, et Argo CD est son implĂ©mentation la plus rĂ©pandue pour Kubernetes. C’est un projet open source, diplĂŽmĂ© de la CNCF. L’idĂ©e : le dĂ©pĂŽt Git dĂ©crit l’état souhaitĂ© du cluster, et Argo CD s’assure en permanence que le cluster y ressemble. On va le poser sur un k3s local.

🔎 C’est quoi, le GitOps ?

Le GitOps repose sur une inversion simple : au lieu de pousser des changements vers le cluster, on les déclare dans Git, et un agent dans le cluster les tire et les applique. Trois principes :

  • DĂ©claratif : tout l’état (dĂ©ploiements, services, config) est dĂ©crit en fichiers YAML — Ă©ventuellement gĂ©nĂ©rĂ©s par Helm ou Kustomize.
  • VersionnĂ© : ces fichiers vivent dans Git. Le dĂ©pĂŽt est la source de vĂ©ritĂ© unique.
  • RĂ©conciliĂ© en continu : Argo CD compare sans arrĂȘt l’état rĂ©el du cluster Ă  ce que dit Git, et corrige les Ă©carts.

La boucle GitOps : Git comme source de vérité, Argo CD compare et synchronise le cluster k3s

🚀 Installer Argo CD sur k3s

L’installation officielle tient en deux commandes, plus un accùs à l’interface :

kubectl create namespace argocd
kubectl apply -n argocd --server-side --force-conflicts \
  -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
 
# accéder à l'interface web (et à l'API)
kubectl port-forward svc/argocd-server -n argocd 8080:443

La version stable au moment oĂč j’écris est Argo CD 3.4.5. Une fois les pods dĂ©marrĂ©s, l’interface est disponible sur https://localhost:8080.

đŸ§± Une Application, c’est un pointeur vers Git

Le cƓur d’Argo CD est un objet Kubernetes : la ressource Application. Elle dit « voici un dĂ©pĂŽt, un chemin, et un cluster de destination — garde-les synchronisĂ©s » :

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: mon-app
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/moi/mon-repo-gitops
    targetRevision: main
    path: apps/mon-app
  destination:
    server: https://kubernetes.default.svc
    namespace: mon-app
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

Les deux options de automated sont les plus parlantes : selfHeal ramĂšne le cluster vers Git s’il dĂ©rive (un kubectl edit sauvage est annulĂ©), et prune supprime ce qui a disparu du dĂ©pĂŽt. À partir de lĂ , dĂ©ployer = commiter.

🎯 Pourquoi c’est puissant

  • Historique et audit gratuits. L’historique Git est l’historique des dĂ©ploiements : qui a changĂ© quoi, quand, et pourquoi. Un rollback, c’est un git revert.
  • SĂ©paration propre CI / CD. La CI construit l’image et met Ă  jour le tag dans le dĂ©pĂŽt GitOps ; Argo CD s’occupe du dĂ©ploiement. Chacun son rĂŽle.
  • SĂ©curitĂ© du modĂšle « pull ». Argo CD tire depuis Git, Ă  l’intĂ©rieur du cluster. Nul besoin de confier les identifiants du cluster Ă  un pipeline externe.

⚠ Quelques prĂ©cautions

  • Git devient critique. Le dĂ©pĂŽt est la source de vĂ©ritĂ© : on le protĂšge (branches, revues) comme le code applicatif.
  • Ne commite pas de secrets en clair. Les manifestes sont versionnĂ©s : mots de passe et clĂ©s passent par des outils dĂ©diĂ©s (Sealed Secrets, SOPS, External Secrets), jamais en dur dans le YAML.
  • Automatise la mise Ă  jour des tags d’image. Sans mĂ©canisme (bump du manifeste par la CI, ou Argo CD Image Updater), le tag reste figĂ© dans Git et rien ne se redĂ©ploie.

🎉 Conclusion

Argo CD transforme le dĂ©ploiement en un acte versionnĂ© et rĂ©versible : le cluster suit Git, pas l’humeur du dernier kubectl apply. Sur un k3s de homelab, c’est un excellent terrain pour apprendre le GitOps sans risque : une Application, un dĂ©pĂŽt, et tu regardes Argo CD garder le cluster alignĂ© tout seul. Le jour oĂč quelqu’un bidouille la prod Ă  la main, le self-heal remet les choses en place — et l’historique dira qui a essayĂ©.

🔗 Liens utiles

/faq

Questions fréquentes

Qu'est-ce que le GitOps ?

+

Le GitOps est une approche oĂč un dĂ©pĂŽt Git dĂ©crit l'Ă©tat souhaitĂ© de l'infrastructure et des dĂ©ploiements, et oĂč un agent rĂ©concilie en continu le systĂšme rĂ©el avec ce que dit Git. Le dĂ©pĂŽt devient la source de vĂ©ritĂ© unique : tout changement passe par un commit, et rien n'est appliquĂ© Ă  la main.

Argo CD pousse-t-il ou tire-t-il les changements ?

+

Argo CD fonctionne en mode « pull » : il tourne Ă  l'intĂ©rieur du cluster et tire les manifestes depuis Git pour les appliquer. Aucun accĂšs au cluster n'a besoin d'ĂȘtre exposĂ© Ă  la CI, ce qui est plus sĂ»r qu'un « push » oĂč un pipeline externe dĂ©tiendrait les identifiants du cluster.

Comment faire un rollback avec Argo CD ?

+

Puisque l'état vécu du cluster suit Git, revenir en arriÚre se fait par un « git revert » du commit fautif : Argo CD détecte le changement et resynchronise le cluster sur l'état précédent. L'historique Git devient l'historique des déploiements.