Deploying a Helm Chart from ArgoCD
ArgoCD, the declarative GitOps tool for continuous delivery in Kubernetes is emerging not only as one of the leaders in CD but also has taken a top spot in my toolbox for its simplicity and "cool factor". Here I am going to display a super simple proof of concept for deploying a Helm chart from ArgoCD. This is aimed at consumers which are new to the platform and I will keep things simple. This is not an introduction to GitOps but before we move on, lets review a few important things:
With all of that said, we have a simple task to achieve; create an application in ArgoCD to deploy from a Helm chart. We will use the Helm chart for external secrets in an "external-secrets" namespace, we assume you have a cluster of some sort and ArgoCD installed somewhere. If none of this is familiar but you're interested, jump over to the following link and get some super informative knowledge. https://demo.openshift.com/en/dev/argocd/
Build your application in ArgoCD, this is super simple!
To create the initial application, populate the name, the project (default, unless you've created additional ArgoCD projects) and the sync policy. I generally avoid an automatic sync policy until I have thoroughly tested my setup.
For the source for the ArgoCD, we will define 3 things:
When adding the repo, if you have appropriate permission, your chart and versions should be available in the UI to select.
Utilizing Helm with a defaults values.yaml file, this will auto populate in the Parameters section for the Argo App. If you would like to add custom variables, you can do so easily by manually editing the values box.
Recommended by LinkedIn
Sync your application
With your application properly built, you will see the application in a non-sync state, unless an automatic sync policy was set on build, which I recommend against until you have appropriately tested your applications.
Finally, if we successfully sync the application, we will see the deployment via Helm take place.
In it's simplest form, it's that easy!
Check ArgoCD out and start to explore version controlled ArgoCD applications, utilizing private repos, multiple projects and more here: https://argoproj.github.io/argo-cd/
TL;DR Super Shortcut
Build an ArgoCD application and point it at the following repo, see if you can determine what takes place and why: https://github.com/pbmoses/external-secrets-app.git
what if I want to store my values.yaml files in a versioned way (git repo) ?