Skip to main content
In this guide, we’ll dive into the Flux Helm Controller and its interaction with the Source Controller to manage Helm charts in a GitOps workflow. You’ll learn how to fetch Helm artifacts, define HelmRelease resources, and understand the responsibilities of the Helm Controller.

Source Controller: Fetching Helm Charts

The Source Controller in Flux can retrieve Helm charts from multiple source types and package them as tarballs or YAML index files. Common source types include Git repositories, OCI registries, S3 buckets, and Helm repositories (e.g., Bitnami, Artifactory). Register your sources using flux create source:
Ensure your credentials (--cert-file, --key-file, --ca-file) are stored securely and referenced via Kubernetes Secrets.
After a reconciliation cycle, inspect the contents of the Source Controller’s data directory:

Defining a HelmRelease

A HelmRelease is a Flux custom resource that declares the desired state of a Helm chart deployment. The Helm Controller watches these resources and orchestrates Helm operations accordingly. Create a HelmRelease resource:
This command generates a HelmChart object, which the Source Controller will reconcile and produce as an artifact:
Verify the published chart artifact:

Helm Controller Responsibilities

The Flux Helm Controller automates the lifecycle of Helm releases:
  • Watches HelmRelease CRs and reconciles them into HelmChart artifacts.
  • Retrieves packaged charts from the Source Controller.
  • Executes Helm commands: install, upgrade, test, rollback, and uninstall.
  • Supports automatic rollbacks on failed deployments.
  • Cleans up resources when a HelmRelease is deleted.
Deleting a HelmRelease object will trigger the uninstallation of the associated release. Backup any persistent data before removal.

Watch Video