We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.

ArgoCD with Helm: why use this combo and how it works

Hi everyone! Today we're talking about ArgoCD and Helm — two popular, powerful tools in the Kubernetes ecosystem for deploying and managing application configuration. The combination unlocks new levels of GitOps productivity.

CloudScript Technology
November 14, 20244 min read
ArgoCD with Helm: why use this combo and how it works

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).
ArgoCD and Helm logos

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

  1. Repository configuration: First, ArgoCD needs to be configured to connect to the Git repository where the Helm Charts live.
  2. 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.
  3. 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-aplicacao

This 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: true

In 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/.

Infrastructure automation: essential tools for DevOps
Hey everyone! Today we’re going to talk about how digital transformation has accelerated the need for companies to adapt quickly to market changes.

SEE ALSO

Stay up to date

Get our articles on DevOps, Kubernetes, Platform Engineering and Cloud Native delivered to your inbox.

No spam. Unsubscribe anytime.