ruk·si

⛵️ Helm

Updated at 2024-02-24 17:43

Helm allows managing application installs that run on Kubernetes.

Helm has charts and releases. A chart is a set of instructions how to install an application on Kubernetes. A release is the installed application after the chart is ran.

You share charts through repositories. Artifact Hub lists common repositories.

The most common spell to cast is:

helm repo add --force-update some-repository https://charts.example.com
helm upgrade --install \
  -n my-namespace \
  --create-namespace \
  my-release-name \
  some-repository/some-chart \
  -f - <<EOF
my-name: ruksi
other-settings: false
EOF

Helm stores installation details in the Kubernetes cluster secrets. You probably don't need to touch these but good to know.

kubectl -n redis \
    get secret/sh.helm.release.v1.redis.v1 \
    -o jsonpath='{.metadata.name}'

Chart Development

# check manifest template formatting
helm lint

# compile the manifests using mock values
helm template

# compile the manifests offline without applying anything
helm install --dry-run --debug

# show already applied manifests, usually for debugging
helm get manifest

# show current values used for a previously installed release
helm get values

# upgrade or install to the latest version of the chart
helm upgrade --install ...