pub struct VmStartConfig {Show 14 fields
pub name: String,
pub rootfs_path: String,
pub kernel_path: Option<String>,
pub initrd_path: Option<String>,
pub revision_hash: String,
pub flake_ref: String,
pub profile: Option<String>,
pub cpus: u32,
pub memory_mib: u32,
pub ports: Vec<VmPortMapping>,
pub volumes: Vec<VmVolume>,
pub config_files: Vec<VmFile>,
pub secret_files: Vec<VmFile>,
pub runner_dir: Option<String>,
}Expand description
Backend-agnostic configuration describing what to run.
Callers build a VmStartConfig from CLI arguments and build output.
Each backend converts this into its own internal config type, filling
in backend-specific details (Firecracker: kernel path, TAP slot;
Apple Container: VZ block attachment; Docker: container image).
§Examples
let config = VmStartConfig {
name: "my-vm".into(),
rootfs_path: "/nix/store/.../rootfs.ext4".into(),
cpus: 2,
memory_mib: 512,
..Default::default()
};
backend.start(&config)?;Fields§
§name: StringVM name (user-provided or auto-generated).
rootfs_path: StringAbsolute path to the root filesystem (ext4 image).
kernel_path: Option<String>Absolute path to the kernel image (Firecracker needs this; others may ignore).
initrd_path: Option<String>Absolute path to the initial ramdisk (NixOS stage-1), if present.
revision_hash: StringNix store revision hash.
flake_ref: StringOriginal flake reference (for display / status).
profile: Option<String>Flake profile name (e.g. “worker”, “gateway”).
cpus: u32Number of vCPUs.
memory_mib: u32Memory in MiB.
ports: Vec<VmPortMapping>Declared port mappings (host:guest) for forwarding and guest config.
volumes: Vec<VmVolume>Extra volumes to mount in the guest.
config_files: Vec<VmFile>Extra config files to make available to the guest.
secret_files: Vec<VmFile>Secret files (written with restricted permissions).
runner_dir: Option<String>Directory containing microvm.nix runner scripts (microvm.nix backend only).
Trait Implementations§
Source§impl Clone for VmStartConfig
impl Clone for VmStartConfig
Source§fn clone(&self) -> VmStartConfig
fn clone(&self) -> VmStartConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more