GitOps avec ArgoCD : Setup et Best Practices
GitOps révolutionne la façon dont nous déployons et gérons nos applications Kubernetes. ArgoCD est l'un des outils les plus populaires pour implémenter cette approche.
Qu'est-ce que GitOps ?
GitOps est une méthodologie qui utilise Git comme source de vérité unique pour la configuration de l'infrastructure et des applications. Les principes clés :
- Déclaratif : Tout est défini dans des manifests
- Versionné : Git comme source de vérité
- Automatique : Déploiements automatisés
- Observable : Monitoring et alerting intégrés
Installation d'ArgoCD
Installation via Manifests
# Créer le namespace
kubectl create namespace argocd
# Installer ArgoCD
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
# Attendre que tous les pods soient prêts
kubectl wait --for=condition=available --timeout=300s deployment/argocd-server -n argocd
Installation via Helm
# Ajouter le repo Helm
helm repo add argo https://argoproj.github.io/argo-helm
helm repo update
# Installation avec values personnalisées
helm install argocd argo/argo-cd \
--namespace argocd \
--create-namespace \
--values argocd-values.yaml
Configuration des Applications
Manifest Application
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/mon-org/mon-app
targetRevision: HEAD
path: k8s/overlays/production
destination:
server: https://kubernetes.default.svc
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true
Best Practices
1. Structure des Repositories
- App Repository : Code applicatif
- Config Repository : Manifests Kubernetes
- Séparation claire des responsabilités
2. Stratégies de Branching
- Git Flow pour les environnements multiples
- Feature branches pour les développements
- Tags pour les releases
Monitoring et Alerting
Métriques ArgoCD
# ServiceMonitor pour Prometheus
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argocd-server-metrics
spec:
selector:
matchLabels:
app.kubernetes.io/name: argocd-server-metrics
Conclusion
GitOps avec ArgoCD transforme la gestion des déploiements :
- Fiabilité : Source de vérité unique
- Traçabilité : Historique complet dans Git
- Sécurité : Review process intégré
- Scalabilité : Gestion multi-cluster
L'adoption progressive et la formation des équipes sont clés pour le succès.
Découvrez mes formations complètes sur GitOps et ArgoCD pour maîtriser ces outils en profondeur.