diff --git a/lib/systems.nix b/lib/systems.nix index 656bc20..7e53fba 100644 --- a/lib/systems.nix +++ b/lib/systems.nix @@ -160,7 +160,12 @@ rec { lib.nixosSystem { inherit system; specialArgs = { - inherit inputs server system; + inherit + inputs + server + system + src + ; }; modules = [ @@ -208,7 +213,7 @@ rec { inherit inputs src configPath; hostname = name; } - // import configPath { inherit inputs; } + // import configPath { inherit inputs src; } ); } ) (lib.rad-dev.lsdir path) diff --git a/modules/microvm-host.nix b/modules/microvm-host.nix deleted file mode 100644 index 7e8aaed..0000000 --- a/modules/microvm-host.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - config, - lib, - inputs, - ... -}: -let - cfg = config.rad-dev.microvm-host; - inherit (inputs.microvm.nixosModules) microvm; -in -{ - # imports = [microvm.host]; - options.rad-dev.microvm-host = { - enable = lib.mkEnableOption "microvm-host"; - }; - config = lib.mkIf cfg.enable { - networking.useNetworkd = true; - # microvm.shares = [ - # { - # tag = "ro-store"; - # source = "/nix/store"; - # mountPoint = "/nix/.ro-store"; - # } - # ]; - # systemd.tmpfiles.rules = map (vmHost: - # let - # machineId = lib.addresses.machineId.${vmHost}; - # in - # # creates a symlink of each MicroVM's journal under the host's /var/log/journal - # "L+ /var/log/journal/${machineId} - - - - /var/lib/microvms/${vmHost}/journal/${machineId}" - # ) (builtins.attrNames lib.addresses.machineId); - }; -} diff --git a/modules/opt/default.nix b/modules/opt/default.nix new file mode 100644 index 0000000..d8147ea --- /dev/null +++ b/modules/opt/default.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + +} diff --git a/modules/opt/microvm-host.nix b/modules/opt/microvm-host.nix new file mode 100644 index 0000000..42c9a0f --- /dev/null +++ b/modules/opt/microvm-host.nix @@ -0,0 +1,41 @@ +{ + config, + lib, + inputs, + ... +}: +let + cfg = config.rad-dev.microvm-host; + microvm = inputs.microvm.nixosModules; +in +{ + imports = [ microvm.host ]; + options.rad-dev.microvm-host = { + vms = lib.mkOption { + type = lib.types.attrset; + default = { }; + description = "A list of VMs to construct on the host"; + }; + }; + config = { + networking.useNetworkd = true; + microvm.vms = cfg.vms; + microvm.shares = [ + { + tag = "ro-store"; + source = "/nix/store"; + mountPoint = "/nix/.ro-store"; + } + ]; + + # TODO: deprecate this once we have syslog forwarders + systemd.tmpfiles.rules = map ( + vmHost: + let + machineId = lib.addresses.machineId.${vmHost}; + in + # creates a symlink of each MicroVM's journal under the host's /var/log/journal + "L+ /var/log/journal/${machineId} - - - - /var/lib/microvms/${vmHost}/journal/${machineId}" + ) (builtins.attrNames lib.addresses.machineId); + }; +} diff --git a/systems/palatine-hill/default.nix b/systems/palatine-hill/default.nix index 199a7c8..05c0017 100644 --- a/systems/palatine-hill/default.nix +++ b/systems/palatine-hill/default.nix @@ -1,4 +1,4 @@ -{ inputs, ... }: +{ inputs, src, ... }: { users = [ "alice" @@ -6,6 +6,6 @@ ]; modules = [ inputs.attic.nixosModules.atticd - inputs.microvm.nixosModules.host + (src + "/modules/opt/microvm-host.nix") ]; } diff --git a/systems/palatine-hill/microvms.nix b/systems/palatine-hill/microvms.nix index 73fde98..9cad8d2 100644 --- a/systems/palatine-hill/microvms.nix +++ b/systems/palatine-hill/microvms.nix @@ -4,7 +4,6 @@ pkgs, ... }: - { - rad-dev.microvm-host.enable = true; + # rad-dev.microvm-host.enable = true; }