Argo CD est un outil GitOps open-source qui permet de synchroniser automatiquement les manifests présents dans un dépôt Git avec vos clusters Kubernetes. Grâce à une interface web et à des Custom Resource Definitions (CRD), Argo CD garantit que l’état déclaré dans Git correspond à l’état réel de vos environnements.
Prérequis
- Un cluster Kubernetes (>=1.20)
kubectl
configuré- Un dépôt Git (GitHub, GitLab, Bitbucket…)
- Helm (optionnel pour l’installation)
Installation d’Argo CD
1. Création du namespace et installation
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
2. Accès à l’interface web
Exposez le service argocd-server
:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Puis accédez à https://localhost:8080
.
- Identifiant par défaut :
admin
- Mot de passe :
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Configuration d’une Application Argo CD
1. Définir le CRD d’application
Créez app-gitops.yaml
:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: 'https://github.com/monorg/monrepo.git'
path: 'k8s/manifests'
targetRevision: main
destination:
server: 'https://kubernetes.default.svc'
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true
Appliquez :
kubectl apply -f app-gitops.yaml
2. Synchronisation et self-heal
- Automatique : Argo CD applique les changements Git dès push
- Self-heal : Il restaure l’état si modification manuelle
Gestion multi-environnements
- Projets Argo CD : définition des permissions et cibles
- Applications multiples pointant vers différents dossiers (dev, staging, prod)
- Paramètres : override via kustomize ou Helm values
Bonnes pratiques
- Versionnez vos manifests et Kustomize/Helm charts
- Utilisez des Pull Requests pour valider les changements
- Mettez en place des RBAC Argo CD pour sécuriser l’accès
- Configurez des Webhooks ou GitOps triggers pour pipeline automatisé
- Supervisez Argo CD avec Grafana (Exporter metrics)
Avantages
- Déploiement déclaratif et automatisé
- Restauration rapide de l’état souhaité
- Audit complet des modifications via Git
- Multi-cluster natif et gestion centralisée
Limites
- Complexité initiale pour définir GitOps
- Dépendance à la disponibilité de Git
- Surcoût opérationnel pour la surveillance et la maintenance du serveur Argo CD
Conclusion
En adoptant Argo CD, vous bénéficiez d’un workflow GitOps cohérent, traçable et résilient, facilitant la collaboration entre équipes et garantissant que l’état de vos clusters Kubernetes correspond toujours à votre dépôt Git.