Skip to content

helm

"The Kubernetes Package Manager" - https://github.com/kubernetes/helm

These notes are all about helm version 3. Charts that require helm 3 should use apiVersion: v2, though helm 3 does support v1.

Tips

List all versions of a chart in a given repo

helm search repo -l repo_name/chart_name --devel

Get values of a deployed chart

$release_name is the NAME column in helm list

helm get values -o yaml "$release_name" > values.yaml

Show notes for a deployed service

Notes are printed when you install a service, but they can be viewed again by running helm status <release_name> where <release_name> is one of the releases from helm list.

Install the stable repo

helm repo add stable https://charts.helm.sh/stable

Install the incubator repo

https://github.com/helm/charts#how-do-i-enable-the-incubator-repository

helm repo add incubator https://charts.helm.sh/incubator

Show raw data about what helm sent to the k8s server for a recent release

First, find the secret that you will want to search. You can get the release number from helm history -n "$NS" foo or dig in kubectl -n $NS get secret

$ k -n "$NS" get secret | grep sh.helm.release | tail -n 3 | column -t
sh.helm.release.v1.foo.v338  helm.sh/release.v1  1  14d
sh.helm.release.v1.foo.v339  helm.sh/release.v1  1  13d
sh.helm.release.v1.foo.v340  helm.sh/release.v1  1  4d23h

Then send that secret into the following command to get the full manifest that was sent to the k8s api:

k -n "$NS" get secret sh.helm.release.v1.foo.v339 -o jsonpath='{.data.release}' | base64 -d | base64 -d | gzip -d

The result is a json blob with all the details of how the helm chart was applied, including hook manifests, app manifests, and other metadata.