Declaratively deploy your Kubernetes manifests, Kustomize configs, and Charts as Helm releases in one shot
Go to file
dependabot[bot] e8cbe7ea46
build(deps): bump github.com/helmfile/vals from 0.43.7 to 0.43.8 (#2518)
Bumps [github.com/helmfile/vals](https://github.com/helmfile/vals) from 0.43.7 to 0.43.8.
- [Release notes](https://github.com/helmfile/vals/releases)
- [Commits](https://github.com/helmfile/vals/compare/v0.43.7...v0.43.8)

---
updated-dependencies:
- dependency-name: github.com/helmfile/vals
  dependency-version: 0.43.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 08:25:11 +08:00
.github build(deps): bump azure/setup-helm from 4.3.1 to 5.0.0 (#2499) 2026-03-25 06:06:45 +08:00
cmd feat: add an arg that passing description to `helm upgrade` command (#2497) 2026-03-24 21:01:44 +08:00
docs fix: error on missing secret key when using vals (#2496) 2026-03-24 09:42:54 +08:00
examples fix: configure kubedog rate limiter to prevent context cancellation (#2446) 2026-03-03 19:24:28 +08:00
hack
logo Add logo as .png and .ai (Adobe Illustrator) files (#263) 2022-08-24 07:37:52 +09:00
pkg fix: keep all chart dependencies key / values (#2501) 2026-03-26 13:16:54 +08:00
skills/helmfile feat: add helmfile agent skill for skills.sh (#2441) 2026-03-01 12:06:21 +08:00
test fix: keep all chart dependencies key / values (#2501) 2026-03-26 13:16:54 +08:00
.dockerignore rework dockerfiles (#519) 2022-11-25 10:14:27 +09:00
.editorconfig Improve capitalization and formats of README.md. (#1545) 2020-10-19 08:47:19 +09:00
.gitignore feat: add duration to failed releases summary (#1066) 2023-10-12 18:49:07 -05:00
.golangci.yaml refactor(filesystem): add CopyDir method and optimize Fetch function (#2111) 2025-07-28 16:10:25 -04:00
.goreleaser.yml feat: add helmfile archive configuration in goreleaser (#2000) 2025-04-19 12:11:39 +08:00
.readthedocs.yaml update python3 version for mkdoc.yaml (#1712) 2024-09-18 07:11:12 +08:00
AGENTS.md Fix 2337 helm4 stale repo indexes (#2369) 2026-01-21 19:55:56 -05:00
CHANGELOG.md Add CHANGELOG.md (#2457) 2026-03-05 09:50:08 +08:00
CODEOWNERS Add @aditmeno to CODEOWNERS (#2413) 2026-02-20 15:27:21 +08:00
CONTRIBUTING.md chore: update go version to 1.25.8 (#2514) 2026-04-03 18:34:48 +08:00
Dockerfile build: update helm-diff to v3.15.3 (#2498) 2026-03-24 17:28:41 +08:00
Dockerfile.debian-stable-slim build: update helm-diff to v3.15.3 (#2498) 2026-03-24 17:28:41 +08:00
Dockerfile.ubuntu build: update helm-diff to v3.15.3 (#2498) 2026-03-24 17:28:41 +08:00
KUBEDOG_CONFIG.md fix: configure kubedog rate limiter to prevent context cancellation (#2446) 2026-03-03 19:24:28 +08:00
LICENSE
Makefile feat: add Helm 4 support while maintaining Helm 3 compatibility (#2262) 2025-11-19 07:49:30 +08:00
README-zh_CN.md docs: add zread badge to README (#2219) 2025-10-13 14:10:00 +08:00
README.md docs(README): add mise alternate installation documentation (#2342) 2025-12-24 08:21:58 +08:00
SECURITY.md Create SECURITY.md (#135) 2022-06-05 17:11:54 +09:00
USERS.md Add RightCapital to USERS.md (#1676) 2024-08-24 05:14:38 +08:00
go.mod build(deps): bump github.com/helmfile/vals from 0.43.7 to 0.43.8 (#2518) 2026-04-08 08:25:11 +08:00
go.sum build(deps): bump github.com/helmfile/vals from 0.43.7 to 0.43.8 (#2518) 2026-04-08 08:25:11 +08:00
main.go Make helmfile respect signals send by kill command (not only Ctrl+C in terminal) (#750) 2023-04-29 15:25:29 +09:00
mkdocs.yml docs: add comprehensive values merging and data flow guide (#2461) 2026-03-09 07:34:05 +08:00

README.md

Helmfile

Tests Container Image Repository on GHCR Go Report Card Slack Community #helmfile Documentation Gurubase zread

Deploy Kubernetes Helm Charts

English | 简体中文

About

Helmfile is a declarative spec for deploying helm charts. It lets you...

  • Keep a directory of chart value files and maintain changes in version control.
  • Apply CI/CD to configuration changes.
  • Periodically sync to avoid skew in environments.

To avoid upgrades for each iteration of helm, the helmfile executable delegates to helm - as a result, the following must be installed

Highlights

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)

Versatility: Manage your cluster consisting of charts, kustomizations, and directories of Kubernetes resources, turning everything to Helm releases (See #673)

Patch: JSON/Strategic-Merge Patch Kubernetes resources before helm-installing, without forking upstream charts (See #673)

Status

May 2025 Update

  • Helmfile v1.0 and v1.1 has been released. We recommend upgrading directly to v1.1 if you are still using v0.x.
  • If you haven't already upgraded, please go over this v1 proposal here to see a small list of breaking changes.

Installation

1: Binary Installation

download one of releases

2: Package Manager

  • Archlinux: install via pacman -S helmfile
  • openSUSE: install via zypper in helmfile assuming 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
  • Windows (using scoop): scoop install helmfile
  • macOS (using homebrew): brew install helmfile
  • Linux/macOS/Windows (using mise): mise use -g helmfile@latest

3: Container

For more details, see run as a container

Make sure to run helmfile init once after installation. Helmfile uses the helm-diff plugin.

Getting Started

Let's start with a simple helmfile and gradually improve it to fit your use-case!

Suppose the 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:

helmfile apply

Congratulations! You now have your first Prometheus deployment running inside your cluster.

Iterate on the helmfile.yaml by referencing:

More complex examples

See: multi-env-helmfile

Docs

Please read complete documentation

Contributing

Welcome to contribute together to make helmfile better: contributing doc

Attribution

We use:

  • semtag for automated semver tagging. I greatly appreciate the author(pnikosis)'s effort on creating it and their kindness to share it!

Users

Helmfile has been used by many users in production:

For more users, please see: Users

License

MIT

Star History

Star History Chart