Skip to main content

MicroVM tutorials (FluxVM)

Schedule a VM like a Pod. Run it on the host VMM.

Short, copy-paste guides for scheduled MicroVMs on Kubernetes — shadow Pods, node agent, Jobs, warm pools, GuestImage catalog, and the DisposableVm bridge.

API group: microvm.fluxvm.zyvor.io. Controllers: fluxvm-system. Design: microvm.md.

TutorialFocusTime
01 — Getting startedCRDs, deploy, first MicroVM, phases~15 min
02 — MicroVMJobRun-to-completion + vsock command~15 min
03 — MicroVMPoolWarm pool + claimFrom~15 min
04 — Convert DisposableVmcontroller --convert (opt-in)~10 min
05 — GuestImageHost-file Ready + catalog spec.image~10 min

Prerequisites​

  1. Linux nodes with KVM and images staged under /var/lib/fluxvm/images (or your state_dir).
  2. fluxvm-kube DaemonSet running so fluxctl serve is on 127.0.0.1:7788 (deploy/k8s/README.md).
  3. Nodes labeled ragnarok.io/fluxvm-capable=true.
  4. fluxvm-microvm binary (or image ghcr.io/zyvorai/fluxvm with that entrypoint).

CLI cheat sheet​

TaskCommand
Print CRDsfluxvm-microvm --print-crd
Apply MicroVM stackkubectl apply -f deploy/k8s/microvm/
List guestskubectl get mvm -A
Watch phasekubectl get mvm <name> -w
Jobs / poolskubectl get mvmj,mvmp -A
GuestImageskubectl get gimg -A
Controller logskubectl -n fluxvm-system logs deploy/fluxvm-microvm-controller
Node agent logskubectl -n fluxvm-system logs ds/fluxvm-microvm-node
Local fluxvm healthcurl -sf http://127.0.0.1:7788/readyz

Automated checks​

cargo test -p fluxvm-microvm
./scripts/test-microvm.sh
python3 scripts/test-microvm-policy.py
# lab k3s (shadow budget, driven-by, GuestImage Ready+resolve):
./scripts/test-microvm-k8s-smoke.sh