ArgoCD est une plateforme de Continuous Delivery (CD) GitOps qui permet le déploiement de manière déclarative d’applications dans des clusters Kubernetes.
ArgoCD est un outil open source de Continuous Delivery (CD) pour Kubernetes, basé sur une approche GitOps. Il déploie des ressources dans des clusters, en utilisant un ou plusieurs repositories Git comme source de vérité. L'outil utilise une Custom Resource appelée Application, où l'on définit des paramètres tels que le repository source, le namespace, le cluster Kubernetes de destination, et la stratégie de réconciliation. ArgoCD supporte plusieurs types de sources pour déployer des ressources dans Kubernetes : charts Helm, applications Kustomize, fichiers Jsonnet ou encore de simples manifestes.
Pour subvenir à des besoins plus avancés, la Custom Resource ApplicationSet et son contrôleur associé permet de générer plusieurs Applications ArgoCD à partir d’un unique manifeste. En utilisant les generators et les templates d’ApplicationSet, il est alors possible de déployer plusieurs applications dans plusieurs clusters Kubernetes, tout ceci dans une spécification centralisée !
C’est une plateforme qui trouve son intérêt dans le fait que la gestion des applications et des ressources dans Kubernetes peuvent mener à des erreurs humaines ou des incohérences. Par son fonctionnement, ArgoCD se veut simple à utiliser et à configurer : ce qui est défini dans votre repository Git représente ce qui est déployé dans votre cluster Kubernetes. En effet, il bénéficie d’une fonctionnalité qui lui permet de vérifier l’état des ressources à intervalle régulier, afin de le réconcilier automatiquement si nécessaire. Par conséquent, c’est un outil sécurisant tant pour les développeurs que pour les administrateurs.
ArgoCD se veut aussi modulaire : vous pouvez gérer et mettre à jour automatiquement les versions d'images de conteneurs dans votre cluster avec ArgoCD Image Updater, suivant les principes GitOps. Avec ArgoCD Notifications, vous obtenez du monitoring et de l’alerting sur les déploiements d'applications, bien que cette fonctionnalité soit encore immature.
La force d’ArgoCD réside dans son interface utilisateur, qui permet en un clin d’œil de comprendre l’état actuel des ressources, leur statut de synchronisation avec le repository source ou encore l’état des Pods associés à l’Application. En quelques clics seulement, nous arrivons vite à comprendre que cette Application déploie plusieurs ressources, comme un Service ou un Deployment. À son tour, un Deployment provoque la création d’un ou plusieurs Pods, ce qui est également pris en compte dans l’interface.
Pour ces raisons, ArgoCD est devenu chez Theodo Cloud le standard vers lequel se tourner lorsqu’il s’agit de déployer des applications dans Kubernetes. Chez nombre de nos clients, l’implémentation d’ArgoCD a permis aux développeurs de mettre un pied dans le monde de l’infrastructure, en utilisant un environnement rassurant et une utilisation au quotidien qui s’avère simplissime.