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 (
Application
etApplicationProject
) 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