Various esoteric Lima VM templates used at Riptides — mostly for building and testing the kernel driver against specific distro/kernel combos.
| Template | What it is | Arch |
|---|---|---|
templates/riptides.yaml |
Plain latest Ubuntu (inherited from upstream Lima's _images/ubuntu) that installs the Riptides daemon + driver on first boot and joins a control plane with a join token. |
x86_64 + aarch64 |
templates/amazon.yaml |
Amazon Linux 2023 (AL2023) on a KVM image, ~ mounted via reverse-sshfs. |
x86_64 + aarch64 |
templates/proxmox.yaml |
Debian 13 (trixie) booting the Proxmox VE 9 kernel (6.17.13-2-pve) — build & run the driver against the Proxmox kernel. |
x86_64 (TCG-emulated on Apple Silicon) |
templates/firecracker.yaml |
Ubuntu 24.04 with nested virtualization + Firecracker v1.16.0 — boots its own microVMs one level deeper. Provisioning runs a microVM boot smoke test. | aarch64 (native KVM) + x86_64 |
limactl start --name=riptides \
--param controlplaneUrl=https://<env-id>.console.riptides.io \
--param token=<join-token> \
./templates/riptides.yaml
limactl shell riptides -- systemctl status riptides
limactl start --name=amazon ./templates/amazon.yaml
limactl shell amazon
limactl start --name=proxmox ./templates/proxmox.yaml
limactl restart proxmox # one reboot to land on the PVE kernel
limactl shell proxmox uname -r
limactl start --name=firecracker ./templates/firecracker.yaml # needs M3+/macOS 15+ for nested virt
limactl shell firecracker -- sudo /opt/firecracker/smoke-test.shfirecracker.yaml note: provisioning pulls a ~100 MB CI rootfs from S3, which can be slow (several minutes) before the boot smoke test runs. Nested virt needs an Apple silicon M3 or newer on macOS 15+ (or an Intel Mac); on M1/M2 there is no
/dev/kvmand provisioning fails fast by design.
Per-template notes (why each VM is shaped the way it is, gotchas, reboot dance) live as comments at the top of the respective YAML.
riptides.yaml note: requires
--param controlplaneUrl=...and--param token=...(generate a join token in the Riptides UI → Nodes → Add node). First boot is slower because the installer compiles the kernel driver against the running kernel. The join is idempotent — once installed, reboots skip the installer so a single-use token is not re-consumed.
- riptides.yaml — no image versions to maintain; it inherits
_images/ubuntufrom upstream Lima, which always tracks the latest Ubuntu release. - amazon.yaml — browse https://cdn.amazonlinux.com/al2023/os-images/latest/,
then update the
locationURLs anddigestvalues from the per-archSHA256SUMSfiles (kvm/andkvm-arm64/). - proxmox.yaml — uses Debian's rotating
trixie/latestcloud image (no pinned digest). To pin a reproducible build, swap in a dated build URL + digest (see the commented example in the file).