Prerequesites
You should already be familiar with containers and Docker specifically, how to use docker hub, and spin up containers.
Helm is the package manager for Kubernetes, so you will have wanted to have used Kubernetes a little also, and understand how services and ingress controllers work. How pods are deployed, as that is what Helm pretty much does, helm manages Kubernetes deployments.
All the configuration files and manifests for helm are written in Yaml, so you’ll want to be familiar with Yaml, and how it is constructed.
What is Package management
These are some package management systems for operating systems:
Yum - Redhat Apt - debian / ubuntu Brew - OSx Chocolatey - Windows
These package management solutions provide: - Automated installation - Version control - Automatic updates - Dependency Management - Automated removal
Package management in kubernetes
Tiller interfaces with the kubernetes api, and what makes the helm charts work.
Example helm install
List the helm charts that are installed:
helm ls
Search for helm chart
helm search wordpress
Install the wordpress helm chart
helm install stable/wordpress
View the helm chart again
helm ls
Remove a helm installation
helm delete <HELM_INSTALL_NAME>
View the installed helm charts again
helm ls
Install specific version of a helm chart
helm install stable/wordpress --version 5.0.1
Upgrade the 5.0.1 installation to the latest
helm upgrade <HELM_INSTALL_NAME> stable/wordpress
Now we can see that the REVISION is on 2, as we have the initial deployment and the upgrade that we just performed, we can also see that the app version is now at the latest version
helm ls
Dependency management
If I want to view the dependencies I can download the chart by using helm fetch
helm fetch stable/wordpress
This has downloaded the chart in the form of a tar file (wordpress-5.1.3.tgz)
But we can actually fetch the chart untarred with –untar command
helm fetch --untar stable/wordpress
Now if we look in the wordpress directory, and look at requirements.yaml, we can see that there is a dependency on mariadb. We can see that there is a version, a repository location for it to download that helm chart.
Helm automatically puts these charts in /charts directory
We can view the dependency list by running the following:
helm dep list