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.
Helm Operator features
- 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 (optional) helm test gating of installs and upgrades.
- 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 with the Helm Operator
Get started installing the Helm Operator or just browse through the documentation.
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
Community & Developer information
We welcome all kinds of contributions to the Helm Operator, be it code, issues you found, documentation, external tools, help and support or anything else really.
The Helm Operator and other projects in the FluxCD umbrella adhere to the CNCF Code of Conduct.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a Flux project maintainer, or the CNCF mediator, Mishi Choudhary firstname.lastname@example.org.
To familiarise yourself with the project and how things work, you might be interested in the following:
If you have any questions about the Helm Operator and continuous delivery:
- Read the Helm Operator docs.
- 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!
+k8s:deepcopy-gen=package,register +groupName=helm.fluxcd.io Package v1 is the v1 version of the API.
|+k8s:deepcopy-gen=package,register +groupName=helm.fluxcd.io Package v1 is the v1 version of the API.|
This package has the automatically generated clientset.
|This package has the automatically generated clientset.|
This package has the automatically generated fake clientset.
|This package has the automatically generated fake clientset.|
This package contains the scheme of the automatically generated clientset.
|This package contains the scheme of the automatically generated clientset.|
This package has the automatically generated typed clients.
|This package has the automatically generated typed clients.|
Package fake has the automatically generated clients.
|Package fake has the automatically generated clients.|
This package is for maintaining the link between `HelmRelease` resources and the Helm releases to which they correspond.
|This package is for maintaining the link between `HelmRelease` resources and the Helm releases to which they correspond.|
Package lockedfile creates and manipulates files whose contents should only change atomically.
|Package lockedfile creates and manipulates files whose contents should only change atomically.|
Package filelock provides a platform-independent API for advisory file locking.
|Package filelock provides a platform-independent API for advisory file locking.|