From 63c36f6add52db80f2e66acb66b3e55604afa761 Mon Sep 17 00:00:00 2001 From: kalipso Date: Tue, 19 Nov 2024 13:31:09 +0100 Subject: [PATCH] [microvm] put vm creation into function --- machines/configuration.nix | 54 ++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/machines/configuration.nix b/machines/configuration.nix index 08f1cd4a..f62f7bd8 100644 --- a/machines/configuration.nix +++ b/machines/configuration.nix @@ -41,12 +41,33 @@ let ]; defaultModules = baseModules; - defaultMicroVMModules = [ + makeMicroVM = hostName: ipv4Addr: modules: [ inputs.microvm.nixosModules.microvm { - microvm.hypervisor = "qemu"; + microvm = { + hypervisor = "qemu"; + interfaces = [ + { + type = "tap"; + id = "vm-${hostName}"; + mac = "02:00:00:00:00:01"; + } + ]; + }; + + systemd.network.enable = true; + + systemd.network.networks."20-lan" = { + matchConfig.Type = "ether"; + networkConfig = { + Address = [ "${ipv4Addr}/24" ]; + Gateway = "10.0.0.1"; + DNS = ["1.1.1.1"]; + DHCP = "no"; + }; + }; } - ] ++ defaultModules; + ] ++ defaultModules ++ modules; in { louise = nixosSystem { @@ -60,33 +81,8 @@ in durruti = nixosSystem { system = "x86_64-linux"; specialArgs.inputs = inputs; - modules = defaultMicroVMModules ++ [ + modules = makeMicroVM "durruti" "10.0.0.5" [ ./durruti/configuration.nix - - { - microvm = { - interfaces = [ - { - type = "tap"; - id = "vm-test1"; - mac = "02:00:00:00:00:01"; - } - ]; - }; - - systemd.network.enable = true; - - systemd.network.networks."20-lan" = { - matchConfig.Type = "ether"; - networkConfig = { - Address = ["10.0.0.3/24" "2001:db8::b/64"]; - Gateway = "10.0.0.1"; - DNS = ["1.1.1.1"]; - IPv6AcceptRA = true; - DHCP = "no"; - }; - }; - } ]; };