Intermédiaire
⭐ Article vedette

GitOps avec ArgoCD : Setup et Best Practices

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

Publié le
15 octobre 2024
Lecture
12 min
Vues
1.5k
Auteur
Florian Courouge
GitOps
ArgoCD
Kubernetes
CD
Automation

Table des matières

📋 Vue d'ensemble rapide des sujets traités dans cet article

Cliquez sur les sections ci-dessous pour naviguer rapidement

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.

À propos de l'auteur

Florian Courouge - Expert DevOps et Apache Kafka avec plus de 5 ans d'expérience dans l'architecture de systèmes distribués et l'automatisation d'infrastructures.

Cet article vous a été utile ?

Découvrez mes autres articles techniques ou contactez-moi pour discuter de vos projets DevOps et Kafka.