What is helm ?
Helm is a package manager for Kubernetes. Helm is the K8s equivalent of yum or apt.
What is package manager ?
Package managers automate the process of installing, configuring, upgrading, and removing programs/apps.
Helm deploys charts, which are packaged application. It is a collection of all your versioned, pre-configured application resources which can be deployed as one unit. You can then deploy another version of the chart with a different set of configuration
Why helm ?
Writing and maintaining Kubernetes YAML manifests for all the required Kubernetes objects can be a time consuming and tedious task :(
For the simplest of deployments, you would need at least 3 YAML manifests with duplicated and hardcoded values. Helm simplifies this process and creates a single package that can be advertised to your cluster.
Helm components and terminology
- Helm: A command-line interface (CLI) that installs charts into Kubernetes, creating a release for each installation.
- Chart: An application package that contains templates for a set of resources that are necessary to run the application. A template uses variables that are substituted with values when the manifest is created. The chart includes a values file that describes how to configure the resources.
- Repository: Storage for Helm charts.
- Release: An instance of a chart that is running in a Kubernetes cluster. You can install the same chart multiple times to create multiple releases.
How to install/deploy application using helm chart
The Helm install command deploys an application.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install nginx-release bitnami/nginx
above will install nginx in your cluster with the default values provided by bitnami
If those values are to be overwritten
1. Use set flag ( — set key=value)
helm install nginx-release --set imagePullPolicy=Always bitnami/nginx
2. Pass with -f values.yaml
helm install nginx-release -f values.yaml bitnami/nginx
How to test a chart before deploying to cluster ?
- Use — dry-run flag
helm install nginx-release bitnami/nginx --dry-run
How to list all helm charts ?
helm list
How to uninstall helm chart ?
helm uninstall nginx-release
This should be good point to start with helm for creating packages for kubernetes
Please feel free to reach out for any queries