# helmfile/helmfile

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/helmfile-helmfile).**

4,987 stars · 330 forks · Go · mit

## Links

- GitHub: https://github.com/helmfile/helmfile
- Homepage: https://helmfile.readthedocs.io
- awesome-repositories: https://awesome-repositories.com/repository/helmfile-helmfile.md

## Topics

`helm` `kubernetes` `kustomize`

## Description

Helmfile is a declarative tool for managing Kubernetes Helm releases across multiple environments. It defines the desired state of releases in version-controlled YAML files and synchronizes the cluster to match that state, acting as both a release manager and a state sync orchestrator. The tool layers environment-specific values, secrets, and lifecycle hooks onto shared release definitions, enabling consistent multi-environment deployments.

Helmfile distinguishes itself through several integrated capabilities: it generates separate dependency lockfiles per environment for staged rollout of chart updates, and it runs user-defined commands at configurable points before and after sync operations to customize deployment workflows. Secrets are injected from external stores like Vault or AWS SSM via plugins, and the tool supports GitOps workflows by rendering manifests for review and automated synchronization. Modular configuration patterns can be packaged into reusable modules distributed through Git or S3, and helmfile includes periodic automation for updating chart versions and reconciling cluster state.

The tool provides a Go template rendering pipeline with helper functions for collection manipulation, data transformation, math, and IP subnet calculation. It supports layered YAML composition, external value sourcing from shell commands or remote URLs, pre-install patching of charts and resources, and deployment from OCI-compliant registries. Release operations include label-based selection, change previews with diff tools, dependency visualization, and validation steps such as linting and chart testing.

## Tags

### DevOps & Infrastructure

- [Helm Release State Reconciliation](https://awesome-repositories.com/f/devops-infrastructure/cluster-state-reconciliation/helm-release-state-reconciliation.md) — Managing Kubernetes Helm releases through declarative YAML state files that define desired configuration in version control. ([source](https://cdn.jsdelivr.net/gh/helmfile/helmfile@main/README.md))
- [Helm Chart Deployment](https://awesome-repositories.com/f/devops-infrastructure/helm-chart-management/helm-chart-deployment.md) — Orchestrates Helm chart operations including temporary chart generation, manifest patching, and dependency management.
- [Environment Configuration Frameworks](https://awesome-repositories.com/f/devops-infrastructure/helm-chart-management/helm-chart-deployment/helm-values-configuration/environment-configuration-frameworks.md) — A framework that layers environment-specific values, secrets, and hooks onto shared Helm release definitions for consistent multi-environment deployments.
- [Manifest Rendering for GitOps](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/gitops-tools/gitops-deployment-management/manifest-rendering-for-gitops.md) — Generating rendered manifests from declarative configurations for review and GitOps-driven deployment synchronization. ([source](https://helmfile.readthedocs.io/en/latest/integrations/))
- [Declarative Release Managers](https://awesome-repositories.com/f/devops-infrastructure/cluster-state-reconciliation/helm-release-state-reconciliation/declarative-release-managers.md) — A declarative configuration tool to define, version, and synchronize Kubernetes Helm releases across environments from YAML files.
- [Configuration File Inclusion Directives](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-file-loading/configuration-file-splitting/configuration-file-inclusion-directives.md) — Includes other configuration files so common release definitions are shared across teams. ([source](https://helmfile.readthedocs.io/en/latest/shared-configuration-across-teams/))
- [Configuration Merging](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-file-loading/configuration-merging.md) — Merges values from environments, releases, and secrets with defined override precedence. ([source](https://helmfile.readthedocs.io/en/latest/values-and-merging/))
- [Label-Based Selection](https://awesome-repositories.com/f/devops-infrastructure/label-based-selection.md) — Helmfile selects a subset of releases to operate on by matching user-defined or built-in labels, with support for inversion and multiple selectors. ([source](https://helmfile.readthedocs.io/en/latest/))
- [Release Configuration Tools](https://awesome-repositories.com/f/devops-infrastructure/release-automation/git-release-automators/release-configuration-tools.md) — Helmfile writes the desired state of releases in a YAML file that is version-controlled and reproducible. ([source](https://cdn.jsdelivr.net/gh/helmfile/helmfile@main/README.md))
- [Release-as-Code Definitions](https://awesome-repositories.com/f/devops-infrastructure/release-automation/git-release-automators/release-configuration-tools/release-as-code-definitions.md) — Helmfile stores chart values and release definitions in version-controlled files for reproducibility. ([source](https://helmfile.readthedocs.io/))
- [Release Removals](https://awesome-repositories.com/f/devops-infrastructure/release-lifecycle-management/release-removals.md) — Helmfile uninstalls and purges all defined releases from the cluster to cleanly tear down an environment. ([source](https://helmfile.readthedocs.io/en/latest/cli/))
- [Reusable Helm Release Modules](https://awesome-repositories.com/f/devops-infrastructure/reusable-helm-release-modules.md) — Packaging common release configurations into reusable modules distributed via Git or S3 for consistent use across teams. ([source](https://cdn.jsdelivr.net/gh/helmfile/helmfile@main/README.md))
- [Infrastructure Change Diffs](https://awesome-repositories.com/f/devops-infrastructure/scalable-infrastructure-planning/infrastructure-change-diffs.md) — Helmfile shows the diff between current and desired state using a diff tool, with optional AI-driven risk analysis. ([source](https://helmfile.readthedocs.io/en/latest/cli/))
- [YAML](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-file-loading/configuration-merging/yaml.md) — Merges multiple state files in order, extracting common parts into a base file to avoid repetition. ([source](https://helmfile.readthedocs.io/en/latest/writing-helmfile/))
- [Chart Validations](https://awesome-repositories.com/f/devops-infrastructure/helm-chart-management/helm-chart-deployment/chart-validations.md) — Helmfile runs linting, unit tests, and chart tests across all charts to catch errors before deployment. ([source](https://helmfile.readthedocs.io/en/latest/cli/))
- [Kustomize-to-Helm Conversion](https://awesome-repositories.com/f/devops-infrastructure/manifest-based-deployments/kustomize-scaffolding/manifest-rendering/kustomize-deployment/kustomize-to-helm-conversion.md) — Helmfile transforms an overlay configuration into a local chart by running a build process as a hook. ([source](https://helmfile.readthedocs.io/en/latest/hooks/))
- [Release Definition Templates](https://awesome-repositories.com/f/devops-infrastructure/release-automation/git-release-automators/release-configuration-tools/release-definition-templates.md) — Helmfile abstracts repetitive release definitions into templates using anchors for inheritance across all fields. ([source](https://helmfile.readthedocs.io/en/latest/writing-helmfile/))

### Artificial Intelligence & ML

- [Configuration Layering Pipelines](https://awesome-repositories.com/f/artificial-intelligence-ml/model-composition-architectures/hybrid-layer-compositions/modular-layer-compositions/configuration-layering-pipelines.md) — Uses templates in state files with inherited environment values from earlier layers. ([source](https://helmfile.readthedocs.io/en/latest/writing-helmfile/))

### Development Tools & Productivity

- [Deployment Dependency Visualizers](https://awesome-repositories.com/f/development-tools-productivity/data-structure-visualizers/deployment-dependency-visualizers.md) — Helmfile displays a grouped dependency graph showing release order and concurrency. ([source](https://helmfile.readthedocs.io/en/latest/cli/))
- [Go Template Rendering](https://awesome-repositories.com/f/development-tools-productivity/data-transformation/template-helpers/go-template-rendering.md) — Provides Go template rendering with custom helper functions for dynamic deployment configuration. ([source](https://helmfile.readthedocs.io/en/latest/templating/))
- [Per-Environment Overrides](https://awesome-repositories.com/f/development-tools-productivity/deployment-environments/per-environment-overrides.md) — Defining separate value sets per environment so Helm charts deploy differently across development, staging, and production.
- [External Command Execution](https://awesome-repositories.com/f/development-tools-productivity/external-command-execution.md) — Helmfile executes external commands during templating to dynamically generate and inject values. ([source](https://helmfile.readthedocs.io/en/latest/templating/))
- [Secret Store Integrations](https://awesome-repositories.com/f/development-tools-productivity/external-configuration-integration/secret-store-integrations.md) — Helmfile imports parameters from secret stores like AWS SSM or Vault for injection into deployments. ([source](https://helmfile.readthedocs.io/en/latest/advanced-features/))
- [Environment-Specific Configurations](https://awesome-repositories.com/f/development-tools-productivity/feature-flag-management/environment-specific-configurations.md) — Helmfile defines separate value sets for each environment so charts deploy differently across stages. ([source](https://helmfile.readthedocs.io/en/latest/environments/))
- [Environment-Scoped Lockfiles](https://awesome-repositories.com/f/development-tools-productivity/reproducible-build-environments/deterministic-dependency-locking/environment-scoped-lockfiles.md) — Generates separate lockfiles per environment for staged rollout of Helm chart dependency updates.
- [Automated Dependency Updaters](https://awesome-repositories.com/f/development-tools-productivity/package-dependency-managers/automated-dependency-updaters.md) — Automatically updates chart versions and container image tags inside YAML configuration files. ([source](https://helmfile.readthedocs.io/en/latest/integrations/))
- [Release Lifecycle Hooks](https://awesome-repositories.com/f/development-tools-productivity/release-lifecycle-hooks.md) — Runs arbitrary commands before and after each release operation like sync, apply, or delete. ([source](https://helmfile.readthedocs.io/en/latest/hooks/))

### Security & Cryptography

- [Encrypted Secret Management](https://awesome-repositories.com/f/security-cryptography/encrypted-secret-management.md) — Helmfile decrypts encrypted values files automatically and merges decrypted secrets into environment-specific values. ([source](https://helmfile.readthedocs.io/en/latest/environments/))

### Software Engineering & Architecture

- [Secret Injection Providers](https://awesome-repositories.com/f/software-engineering-architecture/external-content-handlers/external-content-inclusions/external-resource-references/secret-injection-providers.md) — Loads secret values from external stores via plugins and injects them as high-priority overrides during deployment.
- [Layered Providers](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/layered-providers.md) — Provides a lower-priority layer of default values overridden by environment-specific values. ([source](https://helmfile.readthedocs.io/en/latest/environments/))
- [Configuration Distribution](https://awesome-repositories.com/f/software-engineering-architecture/project-management-governance/project-governance/standards-rule-enforcement/team-configuration-standards/configuration-distribution.md) — Helmfile distributes modular configuration patterns across teams through Git or S3 for consistent reuse. ([source](https://helmfile.readthedocs.io/))

### User Interface & Experience

- [File-Based Template Inclusion](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/html-template-renderers/go-template-renderers/file-based-template-inclusion.md) — Processes template strings and includes templates from files within the project directory for reuse across releases. ([source](https://helmfile.readthedocs.io/en/latest/templating_funcs/))
- [Go Template Renderers](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/html-template-renderers/go-template-renderers.md) — Processes configuration files through Go's text/template engine with custom helper functions for dynamic values.

### Programming Languages & Runtimes

- [Lifecycle Hook Executions](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-management-utilities/run-lifecycle-controls/lifecycle-hook-executions.md) — Runs user-defined commands at configurable points before and after sync stages to customize deployment workflows.
