learn Helm - The package manager for Kubernetes


  • similar to apt, yum, homebrew, but for k8s
  • Helm is the only package manager specifically for Kubernetes applications. You can package your applications as a Helm Chart, and then install, update, and roll back your Kubernetes applications using Helm.
  • a vanilla k8s app deployment consists of several yaml files to describe the k8s artifacts in a declarative manner.

Helm is a tool that allows you to create deployment templates. This template is called a helm chart, which consists of the yaml files that look more or less like a regular k8s yaml file but have some variables in them. Those variables can be defined through an additional values.yaml file.

helm chart dir structure

  • Chart.yaml - top-level chart metadata. e.g. name, version, etc.
  • values.yaml - declare variables here that are used in the templates/*.yaml files
$ helm create demo
Creating demo
$ tree demo
├── Chart.yaml
├── charts
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── service.yaml
│   ├── serviceaccount.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml