diff --git a/lib/default.nix b/lib/default.nix index a69fa64..1e6a564 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -64,8 +64,9 @@ rec { machineF = import (../machines + "/${name}/default.nix"); in evalMeta - (machineF ((mapAttrs (_: _: null) (builtins.functionArgs machineF)) // { inherit inputs; })) - .machine.meta + (machineF ( + (mapAttrs (_: _: null) (builtins.functionArgs machineF)) // { inherit inputs profiles; } + )).machine.meta ) (final.filterAttrs (_: v: v == "directory") (readDir ../machines))) // mapAttrs (_: evalMeta) non_local_machines; diff --git a/machines/gustave/default.nix b/machines/gustave/default.nix index e1e5c3d..b2fb224 100644 --- a/machines/gustave/default.nix +++ b/machines/gustave/default.nix @@ -1,4 +1,9 @@ -{ pkgs, inputs, ... }: +{ + pkgs, + inputs, + profiles, + ... +}: { imports = [ ./hardware.nix @@ -10,6 +15,7 @@ arch = "x86_64-linux"; nixpkgs_version = inputs.nixpkgs; hm_version = inputs.home-manager; + profiles = with profiles; [ vm-simple-network ]; ips = { public.ipv4 = "82.67.34.230"; local.ipv4 = "192.168.0.90"; @@ -27,16 +33,6 @@ disko = import ./disko.nix; - systemd.network.enable = true; - systemd.network.networks."10-wan" = { - matchConfig.Name = "ens18"; - networkConfig = { - DHCP = "ipv4"; - Address = "2a01:e0a:de4:a0e1:eb2:aaaa::45/128"; - }; - linkConfig.RequiredForOnline = "routable"; - }; - systemd.network.netdevs = { "20-wg0" = { netdevConfig = { diff --git a/modules/meta/default.nix b/modules/meta/default.nix index b1bd347..7e6b864 100644 --- a/modules/meta/default.nix +++ b/modules/meta/default.nix @@ -44,4 +44,8 @@ default = { }; }; + config = { + machine.meta.profiles = [ profiles.base ]; + }; + } diff --git a/profiles/vm-simple-network.nix b/profiles/vm-simple-network.nix new file mode 100644 index 0000000..43f0049 --- /dev/null +++ b/profiles/vm-simple-network.nix @@ -0,0 +1,13 @@ +{ config, ... }: +{ + systemd.network.enable = true; + systemd.network.networks."10-wan" = { + matchConfig.Name = "ens18"; + networkConfig = { + DHCP = "ipv4"; + Address = config.machine.meta.ips.public.ipv6; + }; + linkConfig.RequiredForOnline = "routable"; + }; + +}