code for article pfeilbr/helm-playground
learn Helm - The package manager for Kubernetes
concepts
- 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 thetemplates/*.yaml
files
$ helm create demo
Creating demo
$ tree demo
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
resources
- Helm: Quickstart Guide
- Kubernetes and Helm in a Nutshell
- Helm Charts: Kubernetes Tutorial and Examples
- ArtifactHUB - Find, install and publish Kubernetes packages
Twitter • Reddit