46 lines
978 B
Nix
46 lines
978 B
Nix
{
|
|||
|
|
writeText,
|
||
|
|
|
||
|
|
pigeon-vcpu-count ? 1,
|
||
|
|
pigeon-memory-size-mb ? 512,
|
||
|
|
pigeon-kernel,
|
||
|
|
pigeon-rootfs
|
||
|
|
}:
|
||
|
|
|
||
|
|
writeText "pigeon-vm.json" (builtins.toJSON {
|
||
|
|
boot-source = {
|
||
|
|
kernel_image_path = "${pigeon-kernel}";
|
||
|
|
boot_args = "reboot=k panic=1 quiet init=/init nomodule 8250.nr_uarts=0 i8042.noaux i8042.nomux i8042.dumbkbd swiotlb=noforce";
|
||
|
|
};
|
||
|
|
drives = [
|
||
|
|
{
|
||
|
|
drive_id = "rootfs";
|
||
|
|
path_on_host = "${pigeon-rootfs}";
|
||
|
|
is_root_device = true;
|
||
|
|
is_read_only = true;
|
||
|
|
}
|
||
|
|
{
|
||
|
|
drive_id = "student";
|
||
|
|
path_on_host = "";
|
||
|
|
is_root_device = false;
|
||
|
|
is_read_only = true;
|
||
|
|
}
|
||
|
|
{
|
||
|
|
drive_id = "grader";
|
||
|
|
path_on_host = "";
|
||
|
|
is_root_device = false;
|
||
|
|
is_read_only = true;
|
||
|
|
}
|
||
|
|
{
|
||
|
|
drive_id = "results";
|
||
|
|
path_on_host = "";
|
||
|
|
is_root_device = false;
|
||
|
|
is_read_only = false;
|
||
|
|
}
|
||
|
|
];
|
||
|
|
machine-config = {
|
||
|
|
vcpu_count = pigeon-vcpu-count;
|
||
|
|
mem_size_mib = pigeon-memory-size;
|
||
|
|
};
|
||
|
|
})
|