The Helm Operator is a Kubernetes operator, allowing one to declaratively manage Helm chart releases. Combined with Flux this can be utilized to automate releases in a GitOps manner, but the usage of Flux is not a strict requirement.
The desired state of a Helm release is described through a Kubernetes
Custom Resource named
HelmRelease. Based on the creation, mutation or
removal of a
HelmRelease resource in the cluster, Helm actions are
performed by the operator.
- Declarative install, upgrade, and delete of Helm releases
- Pulls chart from any chart source;
- Public or private Helm repositories over HTTP/S
- Public or private Git repositories over HTTPS or SSH
- Any other public or private chart source using one of the available Helm downloader plugins
- Allows Helm values to be specified;
- In-line in the
- In (external) sources, e.g.
Secretresources, or a (local) URL
- In-line in the
- Automated purging on release install failures
- Automated (optional) rollback on upgrade failures
- Automated image upgrades using Flux
- Automated (configurable) chart dependency updates for Helm charts from Git sources on install or upgrade
- Detection and recovery from Helm storage mutations (e.g. a manual Helm release that was made but conflicts with the declared configuration for the release)
- Parallel and scalable processing of different
HelmReleaseresources using workers
- Supports both Helm 2 and 3
Get started installing the Helm Operator:
As the Helm Operator is Open Source, integrations are very straight-forward. Here are a few popular ones you might want to check out:
- Progressive Delivery workshop
- Managing Helm releases the GitOps way
- GitOps for Istio Canary deployments
If you have any questions about the Helm Operator and continuous delivery:
- Invite yourself to the CNCF community slack and ask a question on the #flux channel.
- To be part of the conversation about Helm Operator's development, join the flux-dev mailing list.
- File an issue.
Your feedback is always welcome!