Helmfile is a declarative spec for deploying helm charts. It lets you...
To avoid upgrades for each iteration of
helmfile executable delegates to
helm - as a result,
helm must be installed.
Declarative: Write, version-control, apply the desired state file for visibility and reproducibility.
Modules: Modularize common patterns of your infrastructure, distribute it via Git, S3, etc. to be reused across the entire company (See #648)
Patch: JSON/Strategic-Merge Patch Kubernetes resources before
helm-installing, without forking upstream charts (See #673)
March 2022 Update - The helmfile project has been moved to helmfile/helmfile from the former home
roboll/helmfile. Please see roboll/helmfile#1824 for more information.
Even though Helmfile is used in production environments across multiple organizations, it is still in its early stage of development, hence versioned 0.x.
Helmfile complies to Semantic Versioning 2.0.0 in which v0.x means that there could be backward-incompatible changes for every release.
Note that we will try our best to document any backward incompatibility. And in reality, helmfile had no breaking change for a year or so.
pacman -S helmfile
zypper in helmfileassuming you are on Tumbleweed; if you are on Leap you must add the kubic repo for your distribution version once before that command, e.g.
zypper ar https://download.opensuse.org/repositories/devel:/kubic/openSUSE_Leap_\$releasever kubic
scoop install helmfile
brew install helmfile
Make sure to run
helmfile initonce after installation. Helmfile uses the helm-diff plugin.
Let's start with a simple
helmfile and gradually improve it to fit your use-case!
helmfile.yaml representing the desired state of your helm releases looks like:
repositories: - name: prometheus-community url: https://prometheus-community.github.io/helm-charts releases: - name: prom-norbac-ubuntu namespace: prometheus chart: prometheus-community/prometheus set: - name: rbac.create value: false
Sync your Kubernetes cluster state to the desired one by running:
Congratulations! You now have your first Prometheus deployment running inside your cluster.
Iterate on the
helmfile.yaml by referencing:
Please read complete documentation
Welcome to contribute together to make helmfile better: contributing doc
Helmfile has been used by many users in production:
For more users, please see: Users