Documentation menu

Upgrading klimax

Upgrading is two commands: pull the new release, then re-create the VM so it re-provisions on the new version. The image cache survives, so the rebuild is fast.

The two steps

klimax ships as a single binary with its VM provisioning baked in. Bump the binary, then rebuild the VM on it:

# 1. Refresh the tap, then pull the new release
$ brew update
$ brew upgrade --cask klimax

# 2. Rebuild the VM on it (sudo — the host route is re-added)
$ klimax destroy && klimax up

brew update refreshes the bcollard/klimax tap so Homebrew sees the newest cask version — without it, brew upgrade may report you're already up to date.

Built from source instead of Homebrew? Replace step 1 with a git pull and go build (see Getting started), then run the same klimax destroy && klimax up.

Always re-create the VM after an upgrade. A plain klimax down/up only restarts the existing VM — it does not re-provision it, so Docker, containerd, the guest agent, and the routing rules keep running the old version until you destroy and rebuild.

Why a rebuild?

klimax provisions the VM once, on first klimax up: it installs a specific Docker and containerd, downloads the matching Lima guest agent, writes the registry-mirror and DNS config, and applies the iptables rules that make L3 routing work. All of that logic lives in the binary. A new release can change any of it — a containerd bump, a new certs.d layout, a routing fix — but an already-provisioned VM won't pick those changes up just by restarting. Destroying and re-creating the VM is what re-runs provisioning against the new binary.

What survives, what's recreated

ItemOn destroy && up
~/.klimax/config.yaml Survives. Your CPUs, memory, bridge CIDR, and mirror tweaks are untouched.
Registry image cache Survives with the default cacheStorage: "host" — kept in ~/.klimax/registry-cache/, so the rebuild pulls from local disk, not the internet.
The VM Recreated from scratch on the new binary.
kind clusters Removed — cluster state lives inside the VM. Re-create the ones you need afterwards.
🔄

Bring your clusters back with klimax cluster create <name> once the VM is up — the warm image cache keeps that quick. Need to wipe config and caches too for a truly clean slate? See Reset.

Verify the upgrade

Confirm the new version is running, then check the VM, route, and iptables rules came back healthy:

$ klimax version        # confirms the new binary
$ klimax status         # VM state, clusters, route, iptables
$ klimax doctor         # diagnoses issues, prints fix commands

Where to next

  • Changelog — what actually changed between releases.
  • Reset — the deeper wipe-and-reinstall levels.
  • CLI referenceup, down, destroy, status, doctor, and every other verb.