Helm cheat sheet
There is a comprehensive helpful list while using Helm
. When command is self-explanatory, there is no description.
Chart repositories
$ helm repo add bitnami https://charts.bitnami.com/bitnami "bitnami" has been added to your repositories $ helm search repo apache NAME CHART VERSION APP VERSION DESCRIPTION bitnami/apache 9.0.1 2.4.52 Chart for Apache HTTP Server bitnami/airflow 11.4.1 2.2.3 Apache Airflow is a platform to programmaticall... bitnami/cassandra 9.1.5 4.0.1 Apache Cassandra is an open source distributed ... [...] # get all available versions $ helm search repo apache --versions NAME CHART VERSION APP VERSION DESCRIPTION bitnami/apache 9.0.1 2.4.52 Chart for Apache HTTP Server bitnami/apache 9.0.0 2.4.52 Chart for Apache HTTP Server bitnami/apache 8.12.1 2.4.52 Chart for Apache HTTP Server bitnami/apache 8.12.0 2.4.52 Chart for Apache HTTP Server bitnami/apache 8.11.1 2.4.52 Chart for Apache HTTP Server [...] $ helm repo update Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "bitnami" chart repository Update Complete. ⎈Happy Helming!⎈ $ helm repo remove bitnami "bitnami" has been removed from your repositories
Install & upgrade
# uninstall without removing history (keeps secrets in k8s) $ helm uninstall release-name --keep-history # create namespace if do not exists $ helm install release-name bitnami/redis --namespace production --create-namespace # rollback to #1 release $ helm rollback release-name 1 # wait for pods to be up & running for 5 minutes # without --wait flag, helm just sends manifests to api server, without waiting for pods to be ready & healthy $ helm install release-name bitnami/redis --wait --timeout 5m # automatically roll to previous deployment if current one failed after 5m $ helm install release-name bitnami/redis --timeout 5m --atomic # DELETE & recreate - not RollingUpdate $ helm upgrade release-name bitnami/redis --force $ helm upgrade release-name bitnami/redis --cleanup-on-failure
Misc
$ helm get notes release-name # show all custom values used during installation $ helm get values release-name $ helm get values release-name --revision 1 $ helm get values release-name --all # get manifest files for current release $ helm get manifest release-name $ helm history release-name
–dry-run, template & lint
# hence --dry-run does not apply changes to cluster, it needs to connect to k8s api and can be used with install or upgrade commands $ helm install release-name --dry-run $ helm upgrade release-name --dry-run # on the other hand, 'template' command does not need to connect to cluster $ helm template release-name $ helm lint chart-folder ==> Linting chart-folder [INFO] Chart.yaml: icon is recommended 1 chart(s) linted, 0 chart(s) failed
packaging
$ helm create firstchart Creating firstchart $ helm package firstchart Successfully packaged chart and saved it to: /Users/user/Documents/helm-training/firstchart-0.1.0.tgz
templates
dependencies
$ cat Chart.yml [...] dependencies: - name: redis version: 15.5.4 repository: "https://charts.bitnami.com/bitnami" # after this step, any dependencies will appear in folder charts/ $ helm dependency update . Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "ingress-nginx" chart repository ...Successfully got an update from the "bitnami" chart repository Update Complete. ⎈Happy Helming!⎈ Saving 1 charts Downloading redis from repo https://charts.bitnami.com/bitnami Deleting outdated charts # passing custom values to dependent charts - under the same key as name in dependencies array in Chart.yml $ cat values.yaml redis: service: ClusterIP