Skip to content

Helm Charts

Helm scaffolds a standard chart structure with a single command.

Terminal window
helm create my-app
Creating my-app
Terminal window
tree my-app
my-app
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── hpa.yaml
│ ├── httproute.yaml
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
4 directories, 11 files

You edit values.yaml almost exclusively. That’s the whole point — the templates read from values.yaml, so you change the values and the templates generate the right YAML for you.

Chart.yaml you touch once to set the name and description, then basically never again unless you bump the version.

The templates work as-is for 95%+ of standard web app deployments. The scaffold covers deployment, service, ingress, service account, and HPA — exactly what a website needs. You only touch a template if you need something the defaults don’t support: adding a second container, mounting a config file, or adding a custom annotation that isn’t passed through from values.

The workflow: edit Chart.yaml once, then live in values.yaml and your per-environment values files from that point on.