73 lines
1.8 KiB
Nix
73 lines
1.8 KiB
Nix
{ lib, pkgs, config, ... }:
|
|
let
|
|
hostname = "dev";
|
|
in
|
|
{
|
|
# Create persist directories on the host
|
|
# UID 1000 = dominik user inside the microvm
|
|
systemd.tmpfiles.rules = [
|
|
"d /var/lib/microvm-persist 0755 root root -"
|
|
"d /var/lib/microvm-persist/dev 0755 root root -"
|
|
"d /var/lib/microvm-persist/dev/home 0755 root root -"
|
|
"d /var/lib/microvm-persist/dev/home/dominik 0700 1000 100 -"
|
|
];
|
|
|
|
microvm.vms.dev = {
|
|
# Use host's pkgs which already has overlays applied
|
|
inherit pkgs;
|
|
|
|
config = {
|
|
imports = [
|
|
../dev/configuration.nix
|
|
./network-prefix.nix
|
|
];
|
|
|
|
networkPrefix = config.networkPrefix;
|
|
|
|
microvm = {
|
|
mem = 4096;
|
|
vcpu = 2;
|
|
|
|
shares = [
|
|
{
|
|
source = "/nix/store";
|
|
mountPoint = "/nix/.ro-store";
|
|
tag = "ro-store";
|
|
proto = "virtiofs";
|
|
}
|
|
{
|
|
source = "/var/lib/microvm-persist/dev";
|
|
mountPoint = "/persist";
|
|
tag = "persist";
|
|
proto = "virtiofs";
|
|
}
|
|
{
|
|
source = "/var/lib/microvm-persist/dev/home";
|
|
mountPoint = "/home";
|
|
tag = "home";
|
|
proto = "virtiofs";
|
|
}
|
|
];
|
|
|
|
volumes = [{
|
|
image = "rootfs.img";
|
|
mountPoint = "/";
|
|
size = 51200;
|
|
}];
|
|
|
|
interfaces = [{
|
|
type = "tap";
|
|
id = "vm-${hostname}";
|
|
mac = "02:00:00:00:02:01";
|
|
}];
|
|
};
|
|
|
|
systemd.network.networks."10-lan" = {
|
|
matchConfig.PermanentMACAddress = "02:00:00:00:02:01";
|
|
address = [ "${config.networkPrefix}.97.15/24" ];
|
|
gateway = [ "${config.networkPrefix}.97.1" ];
|
|
dns = [ "${config.networkPrefix}.97.1" ];
|
|
};
|
|
};
|
|
};
|
|
}
|