Helm

Helm

Package manager for Kubernetes

Separation of templates (called chart) and values

Supports install/upgrade/uninstall and upgrade/rollback

Based on go templates and sprig library

Many charts from the community on ArtifactHub

Concepts


Demo: Helm 1/2

Install nginx using a Helm chart:

  1. Go To ArtifactHub
  2. Search for nginx
  3. Select nginx by Bitnami
  4. Click on Install

     # Add repository
     helm repo add bitnami https://charts.bitnami.com/bitnami
     # Install chart
     helm install my-nginx bitnami/nginx
    

  5. Click on Default values
  6. Check release

     helm list
    


Demo: Helm 2/2

Modify release

  1. Fix service type to ClusterIP

     helm upgrade my-nginx bitnami/nginx --set service.type=ClusterIP
    

  2. Use nginx stable release

     helm upgrade my-nginx bitnami/nginx --reuse-values --set image.tag=1.24.0
    

When setting very few fields, use --set

When settings many fields, use --values:

helm update my-nginx bitnami/nginx --values values.yaml

Custom Helm Chart

Clocks drift - even in VMs

Time drift can cause authentication issues

Helm chart for ntp

File Description
Chart.yaml Metadata
values.yaml Default values
templates/ Templates
templates/daemonset.yaml Daemonset
templates/_helpers.tpl Variables