Helm Basics

Helm is a package manager for Kubernetes, which install, uninstall wizards and also its acts as a release manager helping us to upgrade pr rollback applications.

helm charts:

charts are a collection of files. They consists of the configuration details and information that is needed to create a collection of objects in your cluster.

Q. what is a release in helm ?
Ans: A release is an instance of a chart running in a Kubernetes cluster.

when a chart is applied to your cluster, a release is created.

one chart can be installed multiple times in to the same cluster. Each time its installed, a new release is created. within each release you can have multiple revisions and every time you make a change (upgrade, image update etc...) a new revision is created.

helm repo list/ls # to list the repositories
helm repo add <DESIRED_REPO_NAME> <HELM_REPO_URL> # add a helm repository

helm search repo <REPO_NAME>
helm search repo abichart --version # it will list all the versions
helm repo update

helm installation

helm install <RELEASE_NAME> <CHART_NMAE>
helm install abinginx mybitnami/nginx
helm list/ls # list the helm releases

we can provide the --version flag for installation of desired version

helm install <RELEASE_NAME> <CHART_NMAE> --version "<version_number>"
helm install abirelease1 abihelming/abichart1 --version "0.1.1"

helm upgrade

helm upgrade <RELEASE_NAME> <CHART_NMAE>
helm upgrade abirelease1 abihelming/abichart1
# with out --version flag it will upgrade to the latest version

helm upgrade <RELEASE_NAME> <CHART_NMAE> --version "version_number"
helm upgrade abirelease1 abihelming/abichart1 --version "0.1.1"

helm rollback

you can simply rollback by using helm rollback command, but make sure you have specified the release name and revision.

helm robbback <RELEASE_NAME> <REVISION>
helm rollback abirelease1 abihelming/abichart1 1

helm status

this command is very usefull as it provide you the details of the release. and you can add --show-resource flag to list all the resource under your release.

helm status abirelease1 --show-resources

helm history

helm history <RELEASE_NAME>
helm history abirelease1

Helm Builtin Objects

Objects are getting passed in to the template from the template engine.

Objects can be simple, and have just one value (Or) they can contain other objects or functions.
For example: A Release object contains below objects

{{ Release.Name }}
{{ Release.Namespace }}
{{ Release.IsUpgrade }}
{{ Release.IsInstall }}
{{ Release.Revision }}

root object/dot/period " . "

It is the top level helm object.
At top level helm instalizes dot "." to an object with below keys.
1) Release
2) Values
3) chart
4) Capabilities
5) Template
6) File

Helm Dependency Concepts