1.5 KiB
1.5 KiB
SmartVM Base Image Bundles
This directory documents the project-owned base image manifest format. The actual kernel and rootfs binaries should be hosted as release assets or in object storage, not committed to git.
Bundle Layout
A hosted bundle should expose three files:
smartvm-minimal-v1-x86_64.manifest.json
vmlinux
rootfs.ext4
The manifest is the only file shape smartvm needs to know. It points at the hosted kernel and rootfs artifacts and records checksums.
Manifest Fields
schemaVersion: currently1bundleId: stable cache key, using letters, numbers, dot, underscore, and dash onlyarch:x86_64oraarch64firecrackerVersion: Firecracker version validated with this bundlerootfsType:ext4orsquashfsrootfsIsReadOnly: usetruefor squashfs or immutable rootfs imagesbootArgs: kernel boot args to use with the bundlekernel: hosted kernel artifact URL/path plussha256for URL artifacts and optionalsizeBytesrootfs: hosted rootfs artifact URL/path plussha256for URL artifacts and optionalsizeBytesfileName: optional plain output filename; path separators are rejected
sha256 is required for hosted URL artifacts. sizeBytes is optional but helps catch incomplete downloads.
Cache Behavior
Downloaded bundles are cached under /tmp/.smartvm/base-images by default. The cache keeps two bundles unless maxStoredBaseImages is configured. Eviction is announced with console.warn.