This is a very interesting approach that we are starting to fully adopt in our organization for our Kubernetes deployments.
We switched from Helm (using Helmfile) to ArgoCD to deploy applications into our clusters.
The main challenge here is how to design a good repository structure to organize the ArgoCD applications because there is nothing said about which is the best approach that must be followed.
Finally we decided to use ApplicationSets to deploy umbrella charts that are defined in the repo. The Chart.yaml
of our umbrellas contain the charts that we really want to deploy as if they were dependencies (such as as Ingress Nginx) and their chart versions and the values.yaml
contains the values for a particular cluster.
Another interesting issue is how we manage secrets. We were using sops along with helm secrets plugin to automatically decrypt secrets when running helmfile apply
. Fortunatelly the helm secrets plugin can be installed as an addon on ArgoCD via an initScript or developing a custom ArgoCD image.