Aller au contenu
GitOps avec Argo CD

GitOps avec Argo CD

200 Pratiquer ⏱ 11 h 45 argocdkubernetesgitopshelmkustomize

À la fin, vous saurez

  • Expliquer les principes du GitOps et ce que le modèle tiré change par rapport à un déploiement poussé
  • Installer Argo CD, déclarer des applications et lire leurs états de synchronisation et de santé
  • Organiser les dépôts de configuration et promouvoir une version d'un environnement à l'autre
  • Ordonner un déploiement avec les vagues, les hooks et les options de synchronisation
  • Générer des applications en série avec ApplicationSet et piloter plusieurs clusters
  • Gérer les secrets sans les écrire dans Git
  • Cloisonner les équipes avec les projets, le RBAC et l'authentification unique
  • Adopter des déploiements existants et exploiter Argo CD en production

Prérequis

Le cours GitHub Actions s'arrêtait à un commit : le pipeline écrivait l'étiquette de la nouvelle image dans un fichier de valeurs, et « Argo CD déploie ». Ce cours ouvre cette boîte. Il s'adresse aux personnes qui exploitent des applications sur Kubernetes, ou qui vont devoir le faire, et suppose les objets de base de Kubernetes (Deployment, Service, namespace) et le cours CI/CD : les principes.

L'approche

Tout se fait sur votre poste, dans un laboratoire monté par un script : un cluster Kubernetes local (kind), Argo CD 3.5, et une forge Git, Forgejo, qui tourne dans le cluster. Pas de compte chez un fournisseur, pas de dépôt public : la forge de l'équipe, le cluster et l'outil de déploiement vivent sur votre machine. Les sorties montrées dans les leçons 1 à 7 ont été capturées dans ce laboratoire ; les leçons 8 à 10 (secrets, sécurité, exploitation) s'appuient sur la documentation, le code source d'Argo CD et l'expérience de production de Lyneko, et ne présentent pas de sortie de commande.

L'application qui sert d'exemple est Signalements, la petite API Flask et PostgreSQL des cours précédents. Le cours s'appuie aussi sur l'expérience réelle de Lyneko, qui déploie ses applications avec Argo CD sur Kapsule, le Kubernetes managé de Scaleway, y compris sur les incidents qui ont appris quelque chose.

Ce qu'il faut installer

  • Docker, kubectl 1.36, git, jq et openssl.
  • kind 0.33 et la ligne de commande argocd 3.5, deux binaires à télécharger (leçon 1).
  • Environ 4 Go de mémoire libre et 10 Go de disque pour le cluster local.
  • Pour la leçon 7, un second cluster kind : prévoyez 2 Go de mémoire de plus. Sous Linux, deux clusters kind dépassent souvent la limite fs.inotify.max_user_instances (128 par défaut sur de nombreuses distributions) ; le symptôme est un kube-proxy qui redémarre en boucle avec too many open files. La documentation de kind recommande de relever cette limite (sudo sysctl fs.inotify.max_user_instances=512).

Les leçons

  1. Les principes du GitOps : la boucle de réconciliation, écrite à la main avant de la confier à un outil.
  2. Installer Argo CD et déployer une application
  3. L'Application en détail : synchronisation automatique, auto-réparation, élagage, différences ignorées.
  4. Structurer les dépôts et promouvoir : valeurs par environnement, application racine, promotion par demande de fusion.
  5. Synchronisation avancée : vagues, hooks, migration de base de données.
  6. ApplicationSet : générateurs, environnements d'aperçu, protections.
  7. Plusieurs clusters : enregistrement limité, générateur de clusters, fenêtres de synchronisation.
  8. Les secrets : Sealed Secrets, External Secrets Operator et Scaleway Secret Manager.
  9. Sécuriser Argo CD : projets, RBAC, SSO Google.
  10. Exploiter Argo CD : adoption de Helm, notifications, métriques, mises à jour.

Pour valider : le quiz (niveau 100) et le lab (niveau 200).

Plan du cours

  1. GitOps : les principes et le modèle tiré 1 h 200 Pratiquer
    Ce que recouvre réellement le GitOps : les quatre principes d'OpenGitOps, la boucle de réconciliation, l'écart entre état voulu et état réel, et ce que change le modèle tiré, montré en écrivant un agent de réconciliation de vingt lignes avant de passer à Argo CD.
  2. Installer Argo CD et déployer une application 1 h 200 Pratiquer
    Les composants d'Argo CD et leur rôle, les variantes d'installation, la première connexion et le compte d'administration, puis une première Application : écart, différence, synchronisation, santé, historique et retour arrière, et pourquoi ce retour arrière n'est pas du GitOps.
  3. L'Application en détail 1 h 15 200 Pratiquer
    Les sources d'une Application (manifestes, Helm, Kustomize), la synchronisation automatique, l'auto-réparation et l'élagage, avec leurs comportements réels et parfois surprenants, les champs ignorés, le suivi des ressources et la suppression d'une application avec ou sans cascade.
  4. Structurer les dépôts et promouvoir 1 h 15 300 Concevoir
    Où ranger la configuration de déploiement, comment décrire plusieurs environnements sans dupliquer, comment promouvoir une version de la recette à la production par une demande de fusion, et comment amorcer toutes les applications à partir d'une seule, l'application racine.
  5. Ordonner un déploiement : vagues, hooks et options 1 h 15 300 Concevoir
    Faire passer une base de données avant l'application et une migration entre les deux : phases et vagues de synchronisation, hooks PreSync, Sync, PostSync et SyncFail, politiques de suppression, réessais par défaut, options de synchronisation, et ce qui se passe réellement quand une migration échoue.
  6. ApplicationSet : des applications en série 1 h 15 300 Concevoir
    Générer des Applications à partir d'un modèle : générateurs de répertoires Git, de listes, de matrices et de demandes de fusion, environnements d'aperçu éphémères, migration sans redémarrage, et les protections indispensables contre la suppression en cascade d'un environnement.
  7. Plusieurs clusters 1 h 10 300 Concevoir
    Piloter un second cluster depuis Argo CD : ce que fait vraiment argocd cluster add, un enregistrement déclaratif limité à un namespace, le générateur de clusters, le déplacement d'une application entre clusters et les fenêtres de synchronisation.
  8. Les secrets 1 h 10 300 Concevoir
    Où mettre les mots de passe quand tout est dans Git : pourquoi Argo CD recommande de résoudre les secrets dans le cluster de destination, Sealed Secrets, External Secrets Operator avec Scaleway Secret Manager, les secrets d'Argo CD lui-même, et la rotation.
  9. Sécuriser Argo CD 1 h 10 300 Concevoir
    Argo CD détient les clés de vos clusters : restreindre le projet default, cloisonner par AppProject, écrire une politique RBAC sans droits par défaut, se connecter par SSO Google, désactiver le compte admin, limiter les fonctions risquées et suivre les vulnérabilités.
  10. Exploiter Argo CD 1 h 15 300 Concevoir
    Vivre avec Argo CD en production : adopter une release Helm existante sans rien casser, être prévenu des échecs, surveiller les bonnes métriques, dimensionner, mettre à jour, sauvegarder, automatiser la mise à jour des images, et situer Flux. Avec deux incidents réels chez Lyneko.

Sources