diff --git a/hosts/yveltal.nix b/hosts/yveltal.nix index 84f3386..c35c595 100644 --- a/hosts/yveltal.nix +++ b/hosts/yveltal.nix @@ -4,7 +4,7 @@ { config, pkgs, lib, inputs, ... }: -let iface = import ../iface-templates.nix; +let iface = import ../iface-templates.nix {inherit lib;}; in { imports = [ # Include the results of the hardware scan. diff --git a/iface-templates.nix b/iface-templates.nix index b8355b1..3ee6097 100644 --- a/iface-templates.nix +++ b/iface-templates.nix @@ -1,26 +1,28 @@ -let build = iface: mac: rest: { +{lib,...}: + +let build = iface: mac: rest: lib.recursiveUpdate rest { systemd.network.enable = true; systemd.network.links."${iface}" = { linkConfig.Name = iface; matchConfig.PermanentMACAddress = mac; }; systemd.network.networks."${iface}".enable = true; -} // rest; in +}; in { - bridge = bridge: ip: gateway: build { - systemd.network.networks."${iface}".bridge = [ bridge ]; - systemd.network.networks."${bridge}" = { + bridge = br: ip: gateway: iface: mac: build iface mac { + systemd.network.networks."${iface}".bridge = [ br ]; + systemd.network.networks."${br}" = { address = [ ip ]; gateway = [ gateway ]; }; - systemd.network.netdevs."${bridge}" = { + systemd.network.netdevs."${br}" = { netdevConfig = { - Name = bridge; + Name = br; Kind = "bridge"; }; }; }; - dhcp = build { + dhcp = iface: mac: build iface mac { systemd.network.networks."${iface}" = { DHCP = "yes"; }; diff --git a/modules/server.nix b/modules/server.nix index fc37abf..114c0ac 100644 --- a/modules/server.nix +++ b/modules/server.nix @@ -5,7 +5,12 @@ { config, pkgs, lib, flake-inputs, ... }: { + services.resolved.enable = false; networking.networkmanager.enable = false; + networking.nameservers = [ + "172.16.1.53" + "172.16.1.8" + ]; virtualisation = { kvmgt.enable = true;