2025-01-30Hünkar Döner
What is Helmfile? Why is it used for EKS?
HelmfileHelmEKSIaC
W
What is Helmfile? Why is it used for EKS?
Helm is great, but if you have dozens of microservices and a separate Helm chart for each, installing them one by one with helm install is difficult. Also, keeping track of which version of which chart is installed becomes impossible.
Helmfile is like "Helm for Helm". It allows you to define all your Helm charts, their versions, and value files in a single helmfile.yaml file.
Why Helmfile?
- Declarative: You describe the Desired State of your system. The
helmfile applycommand brings the system to that state. - Environment Management: Easily manages different
values.yamlfiles for Dev, Staging, and Prod. - Ordering: Can manage dependencies like "install database first, then backend".
Example helmfile.yaml
repositories:
- name: ingress-nginx
url: https://kubernetes.github.io/ingress-nginx
releases:
- name: my-ingress
namespace: ingress
chart: ingress-nginx/ingress-nginx
version: 4.0.0
values:
- ./values/ingress-prod.yaml
- name: my-app
namespace: default
chart: ./charts/my-app
values:
- ./values/app-prod.yaml
In our Amazon EKS projects, Helmfile is our indispensable tool for managing infrastructure in the stage before switching to GitOps (ArgoCD).