Background

This document is about learning and working with Helm.  This is an draft document as I learn more about Helm.

Walkthrough

# helm releases found here
# https://github.com/helm/helm/releases

Chapter 2 Notes


Note
1

Helm is a single go binary.  Installation is easy for all supported platforms.

The current stable versoin is Helm 3.  Use Helm 3.

2

Helm follows semantic versioning.  See https://semver.org/

Version example:  X.Y.Z with stability marker (alphas, betas and release candidates).

  • Major version - breaking compatibility changes with previous versions.
  • Minor version - No breaking changes.  There may be security fixes that can necessitate breaking changes, but will be announced.
  • Patch version - Compatible bug fixes have been made.  Recommended to state on the latest patch release.
3

Run helm help  for the help text.

4

Using the official script to install:

curl -fsSL -o get_helm.sh \
https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

Recommended to use this method, if it is important to always have the latest Helm.

5

Building from source is more involved.  Use this developer doc to help build from source:

https://helm.sh/docs/community/developers/

6

Helm needs to interact directly with the k8s API server, to do this, it reads the same configuration files used by kubectl .

Helm will:

  • Try to read the env variable KUBECONFIG 
  • Try to search default locations such as $HOME/.kube/config 

The search path can be overriden by:

  • HELM_KUBECONTEXT 
  • --kube-context  to the Helm utility.

It is recommended to use kubectl to manage the k8s credentials and let Helm autodetect the settings.

7

In Helm 3, there is no default repository.  Consider the user of Artifact Hub: https://artifacthub.io/

8

Adding a Helm repo

helm repo add bitnami https://charts.bitnami.com/bitnami


9

Searching the Helm repo

# helm search repo drupal --versions

# helm search repo drupal --versions | head
NAME            CHART VERSION   APP VERSION     DESCRIPTION
bitnami/drupal  12.2.10         9.3.16          Drupal is one of the most versatile open source...
bitnami/drupal  12.2.9          9.3.15          Drupal is one of the most versatile open source...
bitnami/drupal  12.2.8          9.3.15          Drupal is one of the most versatile open source...
bitnami/drupal  12.2.7          9.3.15          Drupal is one of the most versatile open source...
bitnami/drupal  12.2.5          9.3.14          Drupal is one of the most versatile open source...
bitnami/drupal  12.2.4          9.3.14          Drupal is one of the most versatile open source...
bitnami/drupal  12.2.3          9.3.13          Drupal is one of the most versatile open source...
bitnami/drupal  12.2.2          9.3.13          Drupal is one of the most versatile open source...
bitnami/drupal  12.2.1          9.3.13          Drupal is one of the most versatile open source...


Chart version - The version of the Helm chart.

App version - The version of the application packaged in the Helm chart.


10

When installing a Helm chart, there are two important pieces of information.

  • The installation and the chart that you want to install.

The installation identifies the instance that you want to install, because you can have multiple instances of an application in the k8s cluster.

# helm install <installation> <chart>
helm install mysite bitnami/drupal


11




Appendix


DocumentLink
1Learning Helm bookhttps://learning.oreilly.com/library/view/learning-helm/9781492083641/
2Helm releaseshttps://github.com/helm/helm/releases
3Semantic Versioninghttps://semver.org/