Gitops ArgoCD
Références externes :
- https://www.linkedin.com/posts/richardsonalexis_hi-everyone-i-am-very-sad-to-announce-activity-7160295096825860096-ZS67/
- Weaveworks, principal contributeur à Flux les dernières années, ferme ses portes
- Le projet est libre, mais le taux de contribution en a pris un coup
- https://argo-cd.readthedocs.io/en/stable/operator-manual/secret-management/
Contexte et description de la problématique
Problèmes rencontrés
- La gestion Gitops de TeDomum appuyée sur Flux est difficile à appréhender
- Flux ne dispose pas d’interface de supervision tèrs intuitive
- Flux est peu maîtrisé par les membres de l’association, notamment du fait de la complexité
Alternatives considérées
- Conserver l’existant Flux et renforcer l’outillage https://fluxcd.io/
- Le principal complément à Flux est Weave Gitops https://github.com/weaveworks/weave-gitops
- Une alternative moins maintenue est Flux UI https://github.com/fluxcd/webui
- Le principal concurrent ArgoCD https://argo-cd.readthedocs.io
- Abandonner la démarche GitOps et passer en déploiement continu actif depuis Gitlab CI
Éléments moteurs de la décision
- La baisse du support sur Flux correspond à un regain d’activité sur le projet ArgoCD
- Nous investissons aujourd’hui fortement sur la démarche GitOps, il est donc perinent de s’engager sur une technologie supportée
- Deux administrateurs ont une bonne expérience de ArgoCD, bientôt, trois, alors que un seul pour Flux
- L’interface Web de ArgoCD, testée et décevante en 2021, est mûre aujourd’hui :
- Elle offre un retour en temps réel sur l’état du cluster, délégable à des membres moins techniques
- Elle permet une investigation approfondie y-compris pour un utilisateur pointu
- Les concepts et la manipulation de Flux sont plus abordable, à en juger après 2 mois de tests :
- 2 concepts (
ApplicationetApplicationProject) suffisent à à peu près tout gérer, contre 6 (Kustomization,HelmRelease,GitRepository,HelmRepository,HelmChart,Buckets) pour Flux - La compréhension de l’état est plus simple et le premier niveau de debugging plus accessible, par
exemple sur un échec de synchronisation, Flux requiert de suspendre et réactiver une
HelmRelease, voire de manuellementhelm uninstall, tandis que ArgoCD affiche aisément le diff entre l’état et la cible et propose un bouton et une commande poursync
- 2 concepts (
- Flux embarque nativement une gestion de secrets SOPS que nous employions, il est donc nécessaire de
basculer:
- External Secrets, Vault, Bank Vault, aws secrets, ArgoCD Vault plugin, ArgoCD Vault replacer, et Vals nécessitent un stockage externe de secrets contraire à notre pratique de chiffrement des secrets dans le dépôt Git
- KSOPS est relativement peu matûre pour maintenir une compatibilité SOPS
- Helm Secrets nécessite une généralisation de Helm, Kustomize secret generator plugins nécessite une généralisation de Kustomize, hors nous employons les deux
- Reste Bitnami Sealed Secrets
Conclusion
- ✅ Adoption de ArgoCD pour le GitOps
- ✅ Adoption de Bitnami Sealed Secrets pour la gestion de secrets
Conséquences
- 👍 Simplification de la logique Gitops
- 👍 Mise à disposition d’une interface Web de suivi du GitOps
- 👍 Baisse rapide du facteur bus sur la GitOps
- 👎 Investissement sur Flux par plusieurs membres à reprendre