[#33] Refactored existing network config #34

Merged
nerf merged 1 commit from nerf/nixConfig:nerf/networkConfig into main 2024-04-03 13:30:20 +00:00
3 changed files with 50 additions and 17 deletions
Showing only changes of commit cabd210aa6 - Show all commits

View file

@ -4,7 +4,7 @@
../../modules/jitsi.nix ../../modules/jitsi.nix
../../roles ../../roles
../../roles/vm.nix ../../roles/vm.nix
./network.nix ../../modules/vmNetwork.nix
]; ];
services.mathebau-jitsi = { services.mathebau-jitsi = {
@ -14,5 +14,6 @@
# System configuration here # System configuration here
networking.hostName = "ghatanothoa"; networking.hostName = "ghatanothoa";
vmNetwork.ipv4 = "192.168.0.25";
system.stateVersion = "23.11"; system.stateVersion = "23.11";
} }

View file

@ -1,16 +0,0 @@
# We sohuld put that config somewhere in roles and give it a parameter or something,
# everyone gets the same nameserver and the same prefixLength and address vs defaultGateway alsways
# depend on the same thing
{
imports = [];
networking = {
interfaces.enX0.ipv4.addresses = [
{
address = "192.168.0.25";
prefixLength = 16;
}
];
defaultGateway = "192.168.0.152";
nameservers = ["130.83.2.22" "130.83.56.60" "130.83.22.60" "130.82.22.63"];
};
}

View file

@ -0,0 +1,48 @@
{
lib,
config,
...
}: let
inherit
(lib)
mkOption
types
last
init
;
inherit
(lib.strings)
splitString
concatStringsSep
toInt
;
cfg = config.vmNetwork;
in {
imports = [];
options.vmNetwork = {
ipv4 = mkOption {
type = types.str;
description = "the ipv4 adress of this machine";
};
};
config = {
networking = {
interfaces.enX0.ipv4.addresses = [
{
address = cfg.ipv4;
prefixLength = 16;
}
];
defaultGateway = let
addr = splitString "." cfg.ipv4;
addrInit = init addr;
addrLastInt = builtins.toString (toInt (last addr) + 127);
in
concatStringsSep "." (addrInit ++ [addrLastInt]);
# https://www.hrz.tu-darmstadt.de/services/it_services/nameserver_dns/index.de.jsp
nameservers = ["130.83.22.63" "130.83.22.60" "130.83.56.60"];
};
};
}