Helmfile¶
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, Helm must be installed.
This page will offer some usage examples of deplying Kubedeploy chart with Helmfile. It's by no means a replacement for Helmfile documentation, for full reference of configuration values and Helmfile options, please visit the official Helmfile page.
Quick start¶
-
Install Helmfile or use it from container
-
Create helmfile.yaml configuration
helmfile.yaml | |
---|---|
- Deploy with helmfile
Deploying multiple releases¶
From quickstart we might not get really great benefits while handling single deploymet. Where Helmfile shines is the managing multiple releases, and their dependencies, while helping you template repetitive values.
Deploy multiple applications with dependencies
Deploy command
When making modification to our release values we can also do preview of changes prior to applying them directly to the cluster
Templating releases¶
If we wish to follow the Best practices for multiple releases managed with Helmfile we can easily define all the best practices in release template, and reuse it in all our releases:
Release templating
All releases referencing the default
anchor will inherit settings from default template. We can then easily keep common configuration values in one place, and override them per release if we need to.
Using environment variables¶
Helmfile can use environment variables as inputs for chart values which can be pretty useful in defining variable values via CI/CD pipelines.
Users can define variables or secrets in CI/CD settings on GitHub or GitLab projects and then reference them in helmfile.yaml
Using environment variables
Let's export the env vars before running helmfile
Deploy command