Gitops ArgoCD

ArgoCD

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

É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 et ApplicationProject) 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 manuellement helm uninstall, tandis que ArgoCD affiche aisément le diff entre l’état et la cible et propose un bouton et une commande pour sync
  • 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