ArgoCD et Flux v2 dominent le paysage GitOps en 2026. UI graphique vs approche operator-native, multi-tenancy, Helm support : voici un comparatif complet pour guider votre choix.
Rappel des principes GitOps
GitOps repose sur quatre principes fondamentaux définis par la CNCF OpenGitOps : l'état désiré est déclaratif, versionné dans un dépôt Git qui est la source de vérité unique, et un agent logiciel réconcilie automatiquement l'état réel avec l'état désiré. ArgoCD et Flux v2 implémentent tous les deux ces principes, mais avec des philosophies d'architecture radicalement différentes.
Architecture d'ArgoCD
ArgoCD est composé de plusieurs microservices :
- argocd-server : API REST + interface web graphique
- argocd-repo-server : clone les dépôts Git et génère les manifests (Helm, Kustomize, plain YAML)
- argocd-application-controller : compare l'état désiré (Git) avec l'état réel (cluster) et déclenche les syncs
- argocd-notifications : envoie des notifications Slack, Teams, PagerDuty sur les événements de sync
- argocd-dex : IdP intégré pour l'authentification SSO (GitHub, SAML, OIDC)
Architecture de Flux v2
Flux v2 est un ensemble de controllers Kubernetes (Flux CD GitOps Toolkit) :
- source-controller : surveille les sources (GitRepository, HelmRepository, OCIRepository, Bucket)
- kustomize-controller : applique les manifests Kustomize ou plain YAML
- helm-controller : gère les releases Helm (HelmRelease CRD)
- notification-controller : gère les alertes et les webhooks
- image-reflector-controller + image-automation-controller : surveille les nouvelles images Docker et met à jour automatiquement les manifests Git
Flux n'a pas d'interface web native — tout se gère via kubectl et le CLI flux.
Tableau de comparaison des fonctionnalités
| Fonctionnalité | ArgoCD | Flux v2 |
|---|---|---|
| Interface web graphique | Oui (riche) | Non (Weave GitOps en option) |
| Multi-tenancy | Via Projects + RBAC | Via Tenants + isolation namespace |
| RBAC natif | Oui (argocd-rbac-cm) | Via RBAC Kubernetes standard |
| Support Helm | Oui (helm template) | Oui (HelmRelease CRD, natif) |
| Support Kustomize | Oui | Oui |
| Image automation | Argo CD Image Updater | Natif (image-automation) |
| Progressive delivery | Argo Rollouts | Flagger (intégration native) |
| SSO / OIDC | Dex intégré | Via Weave GitOps ou Kubernetes |
| Multi-cluster | ApplicationSet | Multi-tenant + remote clusters |
| Notifications | argocd-notifications | notification-controller |
| OCI Registry sources | Oui | Oui (OCIRepository) |
| Scalabilité | Bonne (sharding) | Excellente (operator pattern) |
ArgoCD ApplicationSet : déploiement multi-cluster
ApplicationSet permet de générer des Applications ArgoCD dynamiquement pour plusieurs clusters ou namespaces :
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: my-app-all-clusters
namespace: argocd
spec:
generators:
- clusters:
selector:
matchLabels:
environment: production
template:
metadata:
name: '{{name}}-my-app'
spec:
project: production
source:
repoURL: https://github.com/move2cloud/app-config
targetRevision: HEAD
path: 'overlays/{{metadata.labels.region}}'
destination:
server: '{{server}}'
namespace: my-app
syncPolicy:
automated:
prune: true
selfHeal: true
Flux Image Automation
Flux surveille automatiquement les nouvelles images Docker et met à jour les manifests Git — sans pipeline CI/CD externe :
# ImageRepository : surveiller le registre
apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImageRepository
metadata:
name: my-app
namespace: flux-system
spec:
image: ghcr.io/move2cloud/my-app
interval: 5m
---
# ImagePolicy : quelle politique de mise à jour (semver)
apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImagePolicy
metadata:
name: my-app
namespace: flux-system
spec:
imageRepositoryRef:
name: my-app
policy:
semver:
range: '>=1.0.0 <2.0.0'
---
# ImageUpdateAutomation : commit automatique dans Git
apiVersion: image.toolkit.fluxcd.io/v1beta1
kind: ImageUpdateAutomation
metadata:
name: flux-system
namespace: flux-system
spec:
interval: 1m
sourceRef:
kind: GitRepository
name: flux-system
git:
checkout:
ref:
branch: main
commit:
author:
email: fluxcdbot@move2cloud.fr
name: fluxcdbot
messageTemplate: 'chore: update images'
push:
branch: main
update:
path: ./clusters/production
strategy: Setters
Argo Rollouts : livraison progressive
Argo Rollouts étend ArgoCD avec des stratégies canary et blue/green natives, avec analyse automatique des métriques pour valider ou rollback un déploiement :
apiVersion: argoproj.io/v1alpha1
kind: Rollout
spec:
strategy:
canary:
steps:
- setWeight: 5
- pause: {duration: 10m}
- analysis:
templates:
- templateName: error-rate-check
- setWeight: 25
- pause: {duration: 10m}
- setWeight: 100
analysis:
templates:
- templateName: error-rate-check
Multi-tenancy : Flux gagne en isolation stricte
Pour les environnements avec des équipes multiples qui ne doivent pas avoir accès aux configurations des autres, Flux offre une isolation plus stricte grâce à son modèle operator-native. Chaque tenant a son propre ServiceAccount avec des RBAC Kubernetes standards, sans besoin d'un control plane centralisé comme ArgoCD Server.
Matrice de décision
| Contexte | Recommandation |
|---|---|
| Besoin d'une UI graphique riche pour les équipes non-Kubernetes | ArgoCD |
| RBAC granulaire sur les Applications avec SSO | ArgoCD |
| Progressive delivery avec Argo Rollouts | ArgoCD |
| Multi-cluster avec ApplicationSet | ArgoCD |
| Approche operator pure, pas de UI, équipe Kubernetes-native | Flux v2 |
| Isolation stricte multi-tenant sans control plane centralisé | Flux v2 |
| Image automation sans pipeline CI dédié | Flux v2 |
| Grande scalabilité (1000+ applications) | Flux v2 |
Conclusion
En 2026, ArgoCD et Flux v2 sont tous les deux des outils de production matures. ArgoCD excelle si vous avez besoin d'une interface visuelle, d'un RBAC applicatif avancé, ou de la livraison progressive via Argo Rollouts. Flux v2 est supérieur pour les environnements avec une stricte isolation multi-tenant, une philosophie operator-native, ou un besoin d'image automation intégrée. Le "meilleur" outil est celui que votre équipe adoptera — et les deux sont excellents.
