Aller au contenu

Argo et Flux sont dans un Kargo, lequel tombe à l'eau ?

·3 mins
conférence argocd fluxcd flamingo kargo gitops
Romain Boulanger
Auteur
Romain Boulanger
Ingénieur DevSecOps et Architecte Cloud
Sommaire

Un petit mot pour commencer
#

J’ai eu l’occasion de participer au Voxxed Days Luxembourg 2024 et de parler d’un sujet qui représente l’approche GitOps tout en faisant l’état de l’art des différents outils s’y référant.

Pour ceux qui souhaitent en savoir plus sur l’événement, n’hésitez pas à consulter mon article sur le premier jour au Voxxed Days Luxembourg !

Présentation du sujet
#

L’objectif de ce talk était dans un premier temps d’évoquer une définition du GitOps basée sur trois points :

  • Modèle déclaratif : L’ensemble des ressources à déployer est contenu dans des fichiers ;
  • Utiliser des outils associés au développement : Des outils de CI/CD et surtout Git sont utilisés pour le déploiement ;
  • Git est la source de vérité : Git est votre référence de ce qui est déployé que ce soit de l’infractructure ou des objets Kubernetes.

De plus, il était aussi de question d’aborder les différences entre les approches Push et Pull.

  • Push : un outil de CI/CD ayant accès au cluster vient pousser les modifications directement à l’intérieur. Ce qui crée une forte dépendance avec l’outil utilisé et nécessite de stocker des informations sensibles au sein de cet outil pour permettre le déploiement des objets Kubernetes.

  • Pull : utilisation d’un opérateur Kubernetes qui utilisera une boucle de réconciliation permettant de synchroniser en permanence l’état désiré (celui dans Git) et l’état courant (celui dans le cluster).

Une fois le GitOps défini, j’ai souhaité mettre en avant deux outils très connus du marché : Argo CD et Flux CD, en les présentant et en faisant un comparatif non exhaustif sur leurs différentes fonctionnalités et utilisations.

En plus de ces deux incontournables, j’ai eu l’occasion d’introduire nouveaux outils à savoir :

  • Flamingo qui combine Argo CD et Flux CD dans un même outil. L’idée est de prendre les forces d’Argo CD comme son interface graphique et ses Custom Resource Definition (CRD) comme les Application ou ApplicationSet, pour les associer au moteur de réconcialisation de Flux CD qui, lui, peut utiliser des Controllers pour faire du Helm, Kustomize voire Terraform de manière native. Enfin, il est tout à fait possible de choisir entre les boucles de réconcilisation d’Argo ou Flux à travers des annotations Kubernetes.

  • Kargo, quant à lui, offre une interface graphique pour pousser des changements d’un environnement à l’autre en ajoutant la possibilité de promouvoir les changements et de les écrire dans Git. Cette couche visualisation est très clairement ce qu’il manquait aux outils comme Argo CD pour suivre et déployer jusqu’en production.

Vous l’aurez compris l’objectif était de mettre en avant deux autres outils pas forcement très connus, et pour cause, ils sont encore au stade de développement et ont besoin de gagner en maturité pour s’imposer comme incontournable dans des environnements de production.

Visionner la conférence
#

Pour revoir tout ou partie de la conférence, celle-ci est disponible en intégralité sur Youtube.

Support de présentation et démos
#

Vous pouvez également récupérer le support de la présentation avec le code pour les démos à l’adresse suivante :

filador-public / flamingo-and-kargo-demos

0
0

À savoir que les démonstrations s’appuient sur une infrastructure déployée dans Google Cloud utilisant un cluster Google Kubernetes Engine (GKE). Néanmois, vous pouvez utiliser n’importe quel autre type de cluster Kubernetes sans problème.

Le mot de la fin
#

J’espère que cette conférence vous a plu et que vous avez découvert voire redécouvert certains outils mais surtout appris des choses.

N’hésitez pas à utiliser les différentes ressources à disposition pour reproduire les démonstrations mais surtout à suivre Argo CD, Flux CD, Flamingo et Kargo dans leurs évolutions !

Articles connexes

Retour sur le Voxxed Days Luxembourg 2024
·14 mins
conférence cloud luxembourg voxxed days 2024 devops sécurité flux argocd kargo flamingo
Kargo, déployez d'un environnement à l'autre en mode GitOps
·7 mins
gitops argocd container git kargo cd helm kustomize yaml
Approche GitOps avec Flamingo, le meilleur des deux mondes
·8 mins
gitops flamingo flux argocd cd kubernetes