Skip to content

What is Helm

  • is a templating engine (you can use it to template a static configuration, i.e. microservice)
  • package manager for Kubernetes
  • basically provides a bunch of configuration for a specific application like elastic stack to be implemented in the K8s cluster
  • Helm Charts is the bundle of these YAML files
  • you can create your own Helm Charts and push them to Helm repository
  • typical Helm Charts:
    • database apps
    • monitoring apps

You can search for charts via helm search <keyword> CLI or via helm repository on the browser.

Templating usage

# pod.yml
apiVersion: v1
kind: Pod
metadata:
    name: {{ .Values.name }}
spec:
    containers:
    - name: {{ .Values.container.name }}
      image: {{ .Values.container.image }}
      port: {{ .Values.container.port}}
# values.yml
name: my-app
container:
    name: my-app-container
    image: my-app-image
    port: 9000

This packaging is also very useful when it comes to using your Kubernetes configuration in different cluster. Instead of re-writing the configuration, the chart can be installed and used in different clusters.

Helm Release Management

helm install <chartName> helm upgrade <chartName> helm rollback <chartName>

With this you can easily run through managing a release.