nixos: Add actual IP / CIDR calculation
This commit is contained in:
@@ -8,6 +8,9 @@ let
|
||||
inherit (lib.flake) defaultSystems;
|
||||
in
|
||||
rec {
|
||||
attrsToNVList = mapAttrsToList nameValuePair;
|
||||
|
||||
inherit (import ./net.nix { inherit lib; }) net;
|
||||
# Yoinked from nixpkgs/nixos/modules/services/networking/nat.nix
|
||||
isIPv6 = ip: length (lib.splitString ":" ip) > 2;
|
||||
parseIPPort = ipp:
|
||||
@@ -22,8 +25,6 @@ rec {
|
||||
ip = checked (elemAt m 0);
|
||||
ports = checked (elemAt m 1);
|
||||
};
|
||||
naiveIPv4Gateway = ip: "${head (elemAt (split ''([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+'' ip) 1)}.1";
|
||||
attrsToNVList = mapAttrsToList nameValuePair;
|
||||
|
||||
mkDefaultSystemsPkgs = path: args': genAttrs defaultSystems (system: import path ((args' system) // { inherit system; }));
|
||||
mkApp = program: { type = "app"; inherit program; };
|
||||
@@ -209,50 +210,30 @@ rec {
|
||||
pubDomain = "nul.ie";
|
||||
dockerNetAssignment =
|
||||
assignments: name: with assignments."${name}".internal; "ip=${ipv4.address},ip=${ipv6.address}";
|
||||
colony = rec {
|
||||
colony = {
|
||||
domain = "ams1.int.${pubDomain}";
|
||||
start = {
|
||||
prefixes = with net.cidr; rec {
|
||||
all = {
|
||||
v4 = "10.100.";
|
||||
v6 = "2a0e:97c0:4d2:1";
|
||||
v4 = "10.100.0.0/16";
|
||||
v6 = "2a0e:97c0:4d2:10::/60";
|
||||
};
|
||||
base = {
|
||||
v4 = "${start.all.v4}0.";
|
||||
v6 = "${start.all.v6}0::";
|
||||
v4 = subnet 8 0 all.v4;
|
||||
v6 = subnet 4 0 all.v6;
|
||||
};
|
||||
vms = {
|
||||
v4 = "${start.all.v4}1.";
|
||||
v6 = "${start.all.v6}1::";
|
||||
v4 = subnet 8 1 all.v4;
|
||||
v6 = subnet 4 1 all.v6;
|
||||
};
|
||||
ctrs = {
|
||||
v4 = "${start.all.v4}2.";
|
||||
v6 = "${start.all.v6}2::";
|
||||
v4 = subnet 8 2 all.v4;
|
||||
v6 = subnet 4 2 all.v6;
|
||||
};
|
||||
oci = {
|
||||
v4 = "${start.all.v4}3.";
|
||||
v6 = "${start.all.v6}3::";
|
||||
v4 = subnet 8 3 all.v4;
|
||||
v6 = subnet 4 3 all.v6;
|
||||
};
|
||||
vip1 = "94.142.241.22";
|
||||
};
|
||||
prefixes = {
|
||||
all = {
|
||||
v4 = "${start.base.v4}0/16";
|
||||
v6 = "${start.base.v6}/60";
|
||||
};
|
||||
base.v6 = "${start.base.v6}/64";
|
||||
vms = {
|
||||
v4 = "${start.vms.v4}0/24";
|
||||
v6 = "${start.vms.v6}/64";
|
||||
};
|
||||
ctrs = {
|
||||
v4 = "${start.ctrs.v4}0/24";
|
||||
v6 = "${start.ctrs.v6}/64";
|
||||
};
|
||||
oci = {
|
||||
v4 = "${start.oci.v4}0/24";
|
||||
v6 = "${start.oci.v6}/64";
|
||||
};
|
||||
vip1 = "${start.vip1}4/30";
|
||||
vip1 = "94.142.241.224/30";
|
||||
};
|
||||
fstrimConfig = {
|
||||
enable = true;
|
||||
|
1322
lib/net.nix
Normal file
1322
lib/net.nix
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user