Argo CD
Argo CD is a fully declarative continuous delivery tool for Kubernetes. It follows GitOps principles that use Git as the main source of configuration-as-code. Argo CD monitors and automatically synchronizes applications' state in a cluster with the Kubernetes manifests stored in a Git repository. Helm charts, Kustomize, JSonnet, and YAML/JSON plain manifests are fully supported.
We consider Argo CD a complete GitOps continuous delivery solution for our Kubernetes-native projects. Thanks to both its CLI tool and a user-friendly GUI that not only allows for arbitrary manual syncing, but also gives an overview of the application status, health, logs, version history, and more. As it tracks the history of rollouts, it can perform rollbacks to one of the past application states.
Yet another feature we value ArgoCD for is the Sync Hooks and Waves, allowing for defining the order in which specific resources are synchronized. This is important if the application depends on specific services or resources that are required to be synchronized before or after.
Argo CD, in its basic setup, requires read-only access to the Git repository only. It is a more secure variant, compared to a traditional CD pipeline that needs access to the Kubernetes cluster to deploy an application.
Argo CD is easy to start off with. However, it becomes complex when implementing its more advanced features. It can be both DevOps and developer-oriented thanks to a variety of features and the ability to define access control for individual users and groups. Therefore, the initial time investment to configure it and gain experience and efficient usage of Argo CD is relatively high. Thus, teams that prefer a less complex and fully declarative GitOps tool without a built-in GUI may choose Flux.