What is Helm
- is a templating engine (you can use it to template a static configuration, i.e. microservice)
- package manager for Kubernetes
- basically provides a bunch of configuration for a specific application like elastic stack to be implemented in the K8s cluster
- Helm Charts is the bundle of these YAML files
- you can create your own Helm Charts and push them to Helm repository
- typical Helm Charts:
- database apps
- monitoring apps
You can search for charts via helm search <keyword> CLI or via helm repository on the browser.
Templating usage
# pod.yml
apiVersion: v1
kind: Pod
metadata:
name: {{ .Values.name }}
spec:
containers:
- name: {{ .Values.container.name }}
image: {{ .Values.container.image }}
port: {{ .Values.container.port}}
# values.yml
name: my-app
container:
name: my-app-container
image: my-app-image
port: 9000
This packaging is also very useful when it comes to using your Kubernetes configuration in different cluster. Instead of re-writing the configuration, the chart can be installed and used in different clusters.
Helm Release Management
helm install <chartName>
helm upgrade <chartName>
helm rollback <chartName>
With this you can easily run through managing a release.