Documentation menu

Helm with klimax

klimax clusters are ordinary kind clusters, so Helm "just works" — with one bonus: a chart's LoadBalancer service gets a real, routable IP you can hit straight from your Mac.

Prerequisites

  • A running klimax cluster — see Getting started.
  • helm on your PATH (brew install helm).

klimax does not install or wrap Helm, and it has no helm subcommands. You use the standard Helm CLI against the cluster's kubeconfig context, exactly as you would anywhere else.

Install a chart

Any chart works. To show off the routing bonus, install one that exposes a LoadBalancer service — here, ingress-nginx (the same applies to the bitnami nginx chart):

$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
$ helm repo update
$ helm install ingress ingress-nginx/ingress-nginx \
    --set controller.service.type=LoadBalancer

Reach it by real IP

MetalLB assigns the LoadBalancer an IP in the cluster's pool (172.30.N.x), which your Mac routes directly to the VM. Read the assigned IP and curl it:

$ kubectl get svc ingress-ingress-nginx-controller \
    -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
$ curl http://<that-ip>/

No kubectl port-forward, no NodePort juggling — the service IP printed by kubectl get svc is the address you connect to. See how routing works.

Faster chart pulls

Chart images are pulled through klimax's registry mirrors (docker.io, quay.io, gcr.io) automatically, so repeated installs and multi-cluster rollouts hit the local cache instead of re-pulling over the network. See Registry mirrors.

Tip: metrics-server on kind

kind's kubelet serves its metrics endpoint with a self-signed cert, so a stock metrics-server install fails its TLS handshake. Add the --kubelet-insecure-tls flag:

$ helm install metrics-server metrics-server/metrics-server \
    --set 'args[0]=--kubelet-insecure-tls'
🖥

The Klimax UI app can do this metrics-server install for you with one click — no flags to remember.

See also