Aller au contenu principal
DEVOPS

GitOps avec ArgoCD : Setup et Best Practices

Comment mettre en place GitOps avec ArgoCD pour automatiser vos déploiements Kubernetes.

Florian Courouge
12 min de lecture
👁️1.5k vues
GitOps
ArgoCD
Kubernetes
CD
Automation
Niveau:
Intermédiaire

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.