Hey everyone! Today we’re going to talk about ArgoCD and Helm, two powerful and popular tools in the Kubernetes ecosystem for running deploys and managing application configurations. Combining the two enables an efficient workflow and an easy way to roll out changes to Kubernetes clusters.
Overview
- ArgoCD: a GitOps tool for Kubernetes that automates application deployment, keeping the cluster state in sync with the Git repository.
- Helm: a package manager for Kubernetes that simplifies building and installing applications on the cluster using charts (configuration templates).

Why use ArgoCD with Helm?
ArgoCD is a GitOps tool that lets you deploy to Kubernetes using Git repositories as the source of truth. It automatically syncs the cluster state with what’s defined in the repository. Helm, on the other hand, is a Kubernetes package manager that simplifies installing and managing applications using templates and configurable values, known as Helm Charts. When combined, you gain the control and flexibility to manage application lifecycles in a centralized, automated way.
How ArgoCD with Helm Works
- Repository configuration: First, ArgoCD needs to be configured to connect to the Git repository where the Helm Charts live.
- Application configuration in ArgoCD: ArgoCD lets you define an application that uses Helm Charts. You can specify the repository location, the chart path, and custom values for the installation.
- Deploy and sync: Once the application is configured, ArgoCD applies the chart to the Kubernetes cluster. If the charts or values change, ArgoCD detects it and can sync automatically, keeping the environment up to date.
Configuring ArgoCD to use Helm
Let’s walk through a practical example of how to configure ArgoCD to work with Helm Charts. This involves defining an application in ArgoCD that uses a Helm Chart — either from your own repository or from a public source.
Step 1: Creating a Helm Chart
If you don’t have a chart set up yet, you can create one with the command:
helm create minha-aplicacaoThis command generates the basic chart structure. Inside the minha-aplicacao directory, you’ll have folders and files like templates/, values.yaml, Chart.yaml, which are the base for customizing and parameterizing your deployment.
Step 2: Configuring the application in ArgoCD
In ArgoCD, you create an application that points to your Helm Chart in Git, configuring it to automatically update your cluster. Whether you use ArgoCD through the web UI or via YAML, the principle is the same. Here’s an example of how to configure an application in ArgoCD that uses a Helm Chart:
piVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: minha-aplicacao
namespace: argocd
spec:
project: default
source:
repoURL: 'https://github.com/seu-usuario/seu-repositorio'
targetRevision: main
path: charts/minha-aplicacao
helm:
valueFiles:
- values.yaml
parameters:
- name: replicaCount
value: "3"
destination:
server: 'https://kubernetes.default.svc'
namespace: default
syncPolicy:
automated:
prune: true
selfHeal: trueIn this example:
- repoURL: the link to the Git repository where the Helm Chart lives.
- targetRevision: the branch or tag of the repository.
- path: the path inside the repository to the Helm Chart.
- valueFiles: the list of Helm values files to customize the deployment.
- parameters: parameters that override settings in
values.yaml. - syncPolicy: configuration to automatically update and fix drifts in the cluster.
Step 3: Management and sync
With ArgoCD configured, you can view and monitor the state of your application via the web UI or CLI. When you make changes in the Git repository (like updating values.yaml), ArgoCD will automatically detect them and run the sync, applying the changes to the cluster.
Overriding parameters with ArgoCD
If you need to quickly adjust a specific Helm value (like the replica count, without touching the values.yaml file), you can override parameters directly in ArgoCD. This is useful for temporary changes or quick customizations.
For example:
parameters:
- name: image.tag
value: "v1.2.3"With this setup, you define a new value for the image tag directly in ArgoCD, without touching the Helm Chart or values.yaml.
Benefits of the ArgoCD + Helm integration
- GitOps automation: with ArgoCD, every change made in the repository is automatically reflected in the environment.
- Easy customization: Helm makes it straightforward to customize and version application parameters, an efficient approach for multi-cluster environments or different configurations.
- Simplified rollback: ArgoCD and Helm make version rollback easy, enabling safe and controlled release management.
Conclusion
Combining ArgoCD with Helm is a great choice for anyone looking for a robust CI/CD solution on Kubernetes, pairing the flexibility of Helm Charts with the automation and monitoring GitOps of ArgoCD. This duo can significantly simplify application management while delivering a secure, repeatable deploy infrastructure.
If you’re already using this setup, share your experience! Let’s keep the conversation going and swap tips on how to optimize our Kubernetes workflows even more.
See you next time!
References:
Helm. Helm documentation. Available at: https://helm.sh/pt/docs/.
Argo CD. Argo CD documentation. Available at: https://argo-cd.readthedocs.io/en/stable/.

SEE ALSO
