Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

lima-templates

Various esoteric Lima VM templates used at Riptides — mostly for building and testing the kernel driver against specific distro/kernel combos.

Templates

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

Usage

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.sh

firecracker.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/kvm and 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.

Updating image versions

  • riptides.yaml — no image versions to maintain; it inherits _images/ubuntu from upstream Lima, which always tracks the latest Ubuntu release.
  • amazon.yaml — browse https://cdn.amazonlinux.com/al2023/os-images/latest/, then update the location URLs and digest values from the per-arch SHA256SUMS files (kvm/ and kvm-arm64/).
  • proxmox.yaml — uses Debian's rotating trixie/latest cloud image (no pinned digest). To pin a reproducible build, swap in a dated build URL + digest (see the commented example in the file).

About

various Lima VM templates used at Riptides Labs

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors