Skip to content

local kind vm

Kadyapam edited this page Jul 9, 2026 · 1 revision

Local kind VM — Podman machine hygiene

The local end-to-end validation cluster (kind-noetl) runs inside a Podman machine VM named noetl-dev on the developer host. The kind node is the rootful noetl-control-plane container inside that VM. The node container does not auto-restart if the VM reboots, so treat VM restarts as cluster-destroying events and avoid them while a cluster is live.

VM shape

Property Value
Machine name noetl-dev
Hypervisor applehv
CPU / RAM / disk 6 vCPU / 20 GiB RAM / 200 GiB disk
Guest OS Fedora CoreOS (43.x)
Root filesystem xfs on /dev/vda4
SSH user root (passwordless sudo)
Port mappings per ci/kind/config.yaml — server localhost:8082, gateway localhost:8090, postgres localhost:54321

Swap (added 2026-07-08)

The VM originally shipped with swap = 0. Heavy Rust worker builds (noetl-worker, noetl-server) peak well past available RAM on a 20 GiB box, so with no swap the kernel hard-OOM-kills the build (and has taken pods down under build load) instead of degrading gracefully. A swapfile gives the box a safety cushion.

What was added:

Property Value
Swapfile /var/swapfile
Size 8 GiB
Allocation dd (not fallocate — xfs swapfiles need a real allocation; fallocate leaves holes swapon rejects)
Permissions 0600, root-owned
vm.swappiness 10 (swap is a cushion, not a first resort)
Persistence /etc/fstab entry + /etc/sysctl.d/90-swappiness.conf (both under /etc, which persists on CoreOS)

/var and /etc are the writable, persistent trees on Fedora CoreOS (the ostree root is otherwise immutable), so a swapfile in /var plus an fstab entry survives reboots and ostree updates.

Re-adding after a VM recreate

If noetl-dev is ever destroyed and recreated, the swap is gone — re-add it live (no VM restart needed; swapon takes effect immediately):

podman machine ssh noetl-dev -- '
  dd if=/dev/zero of=/var/swapfile bs=1M count=8192 status=none
  chmod 600 /var/swapfile
  mkswap /var/swapfile
  swapon /var/swapfile
  sysctl -w vm.swappiness=10
  printf "vm.swappiness=10\n" > /etc/sysctl.d/90-swappiness.conf
  grep -q "^/var/swapfile" /etc/fstab || echo "/var/swapfile none swap sw 0 0" >> /etc/fstab
  systemctl daemon-reload
'

Adding the fstab line + systemctl daemon-reload makes systemd-fstab-generator emit a var-swapfile.swap unit, so the swap comes back on the next boot without further action. Verify:

podman machine ssh noetl-dev -- 'free -h; swapon --show; sysctl vm.swappiness'
podman machine ssh noetl-dev -- 'systemctl is-active var-swapfile.swap'

Adding swap live does not require podman machine stop/start — never restart the machine to enable swap while a kind cluster is running, because the noetl-control-plane node container will not come back on its own.

Cross-references

Clone this wiki locally