diff --git a/config/cluster.nix b/config/cluster.nix index c8bc5cd..b6aa9d0 100644 --- a/config/cluster.nix +++ b/config/cluster.nix @@ -86,6 +86,14 @@ up4 = { cls-gw = "2a00:8180:2c00:284::1"; server1 = "2a00:8180:2c00:284::130"; + server2 = "2a00:8180:2c00:284::12"; + server3 = "2a00:8180:2c00:284::13"; + server4 = "2a00:8180:2c00:284::14"; + server5 = "2a00:8180:2c00:284::15"; + server6 = "2a00:8180:2c00:284::16"; + server7 = "2a00:8180:2c00:284::17"; + server8 = "2a00:8180:2c00:284::18"; + server9 = "2a00:8180:2c00:284::19"; server10 = "2a00:8180:2c00:284::110"; server11 = "2a00:8180:2c00:284::111"; server12 = "2a00:8180:2c00:284::112"; @@ -96,7 +104,6 @@ server17 = "2a00:8180:2c00:284::117"; server18 = "2a00:8180:2c00:284::118"; server19 = "2a00:8180:2c00:284::119"; - server2 = "2a00:8180:2c00:284::12"; server20 = "2a00:8180:2c00:284::120"; server21 = "2a00:8180:2c00:284::121"; server22 = "2a00:8180:2c00:284::122"; @@ -107,14 +114,7 @@ server27 = "2a00:8180:2c00:284::127"; server28 = "2a00:8180:2c00:284::128"; server29 = "2a00:8180:2c00:284::129"; - server3 = "2a00:8180:2c00:284::13"; server30 = "2a00:8180:2c00:284::130"; - server4 = "2a00:8180:2c00:284::14"; - server5 = "2a00:8180:2c00:284::15"; - server6 = "2a00:8180:2c00:284::16"; - server7 = "2a00:8180:2c00:284::17"; - server8 = "2a00:8180:2c00:284::18"; - server9 = "2a00:8180:2c00:284::19"; }; }; subnet4 = "172.20.77.0/27"; @@ -124,8 +124,29 @@ }; }; - site.hosts = { + site.hosts = + let + makeServer = { + role = "client"; + model = "proxmox"; + interfaces = builtins.foldl' (interfaces: net: + interfaces // { + "${net}".type = "bridge"; + } + ) {} [ + "cluster" + "core" + "mgmt" + "serv" + "c3d2" + "pub" + "priv23" + "bmx" + ]; + }; + in { cls-gw = { + role = "container"; interfaces = { cluster = { hwaddr = "0A:14:48:01:06:02"; @@ -136,83 +157,13 @@ type = "veth"; }; }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream1" "upstream3" "anon1" "freifunk" ]; - }; - role = "container"; - }; - server3 = { - interfaces = { - bmx.type = "bridge"; - c3d2.type = "bridge"; - cluster.type = "bridge"; - core.type = "bridge"; - mgmt.type = "bridge"; - priv23.type = "bridge"; - pub.type = "bridge"; - serv.type = "bridge"; - }; - }; - server5 = { - interfaces = { - bmx.type = "bridge"; - c3d2.type = "bridge"; - cluster.type = "bridge"; - core.type = "bridge"; - mgmt.type = "bridge"; - priv23.type = "bridge"; - pub.type = "bridge"; - serv.type = "bridge"; - }; - }; - server6 = { - interfaces = { - bmx.type = "bridge"; - c3d2.type = "bridge"; - cluster.type = "bridge"; - core.type = "bridge"; - mgmt.type = "bridge"; - priv23.type = "bridge"; - pub.type = "bridge"; - serv.type = "bridge"; - }; - }; - server7 = { - interfaces = { - bmx.type = "bridge"; - c3d2.type = "bridge"; - cluster.type = "bridge"; - core.type = "bridge"; - mgmt.type = "bridge"; - priv23.type = "bridge"; - pub.type = "bridge"; - serv.type = "bridge"; - }; - }; - server8 = { - interfaces = { - bmx.type = "bridge"; - c3d2.type = "bridge"; - cluster.type = "bridge"; - core.type = "bridge"; - mgmt.type = "bridge"; - priv23.type = "bridge"; - pub.type = "bridge"; - serv.type = "bridge"; - }; - }; - server9 = { - interfaces = { - bmx.type = "bridge"; - c3d2.type = "bridge"; - cluster.type = "bridge"; - core.type = "bridge"; - mgmt.type = "bridge"; - priv23.type = "bridge"; - pub.type = "bridge"; - serv.type = "bridge"; - }; + ospf.allowedUpstreams = [ "upstream4" "upstream1" "upstream3" "anon1" "freifunk" ]; }; + server3 = makeServer; + server5 = makeServer; + server6 = makeServer; + server7 = makeServer; + server8 = makeServer; + server9 = makeServer; }; }