Home Helm101
Post
Cancel

Helm101

Helm

Helm is package manager for K8s application. It can be compare with YUM and APT in Linux or Homebrew for Mac. We can install K8s application by add repository and then install. If we want to package own application the deploy in K8s which might have complex K8s component setup. Helm can help us by organized it using template.

Why we need Helm

When we deploy appliaction in K8s, usually we have to deploy Deployment, Service, ConfigMap and so on, depends on application design which is hard to do manually. Helm helps to simplify those step by provide template and ability to inject variable(value) to template.

Terminology

  • Chart : It is packaging format. Including a set of k8s definition depends on application and Chart definition file.

Chart file structure (only important)

1
2
3
4
5
6
7
8
helm/
    Chart.yaml      # Contain metadata of Chart. Eg. Chart name, version
    values.yaml     # default configuration
    templates/      # K8s manifest
        deployment.yaml
        service.yaml
        ingress.yaml
        ...

Helm dependencies

In case that we want to add another Helm application as dependency, we can add its information in Chart.yaml. For example, Create own ELK Chart that consist of Kinaba, ElasticSearch and Logstash by declear them as dependencies. Value can pass down to subchart by add prefix to value.

Install

1
2
3
4
When install parameter in template will be replaced by value in values.yaml
templates/
    +   =>  Kubernetes manifest => Go into K8s
values.yaml
This post is licensed under CC BY 4.0 by the author.