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