summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2026-09-24 10:56:18 +0200
committerGregor Kleen <gkleen@yggdrasil.li>2026-09-24 10:56:18 +0200
commit801594dd2168c6d99b34de0bc26ec037aa91ebee (patch)
treeaf9183fd71cc7ed5fd8a01b19f3979ed632640ec /modules
parent7cbc2ab91426b555d01fb90d056119c9677b1a77 (diff)
downloadnixos-801594dd2168c6d99b34de0bc26ec037aa91ebee.tar
nixos-801594dd2168c6d99b34de0bc26ec037aa91ebee.tar.gz
nixos-801594dd2168c6d99b34de0bc26ec037aa91ebee.tar.bz2
nixos-801594dd2168c6d99b34de0bc26ec037aa91ebee.tar.xz
nixos-801594dd2168c6d99b34de0bc26ec037aa91ebee.zip
...
Diffstat (limited to 'modules')
-rw-r--r--modules/nix-access-tokens/default.nix2
-rw-r--r--modules/nix-access-tokens/nix.conf20
-rw-r--r--modules/yggdrasil-wg/default.nix23
-rw-r--r--modules/yggdrasil-wg/hosts/4/skadhi.priv18
-rw-r--r--modules/yggdrasil-wg/hosts/4/skadhi.pub1
-rw-r--r--modules/yggdrasil-wg/hosts/6/skadhi.priv18
-rw-r--r--modules/yggdrasil-wg/hosts/6/skadhi.pub1
7 files changed, 74 insertions, 9 deletions
diff --git a/modules/nix-access-tokens/default.nix b/modules/nix-access-tokens/default.nix
index a3b7abfa..fbfb31fc 100644
--- a/modules/nix-access-tokens/default.nix
+++ b/modules/nix-access-tokens/default.nix
@@ -4,7 +4,7 @@ let
4 cfg = config.nix.includeAccessTokens; 4 cfg = config.nix.includeAccessTokens;
5in { 5in {
6 options = { 6 options = {
7 nix.includeAccessTokens.enable = lib.mkEnableOption "including access tokens in nix.conf" // { default = lib.elem hostName ["sif" "surtr" "vidhar"]; }; 7 nix.includeAccessTokens.enable = lib.mkEnableOption "including access tokens in nix.conf" // { default = lib.elem hostName ["sif" "skadhi" "surtr" "vidhar"]; };
8 }; 8 };
9 9
10 config = lib.mkIf cfg.enable { 10 config = lib.mkIf cfg.enable {
diff --git a/modules/nix-access-tokens/nix.conf b/modules/nix-access-tokens/nix.conf
index 80d5641c..4d933eaa 100644
--- a/modules/nix-access-tokens/nix.conf
+++ b/modules/nix-access-tokens/nix.conf
@@ -3,20 +3,24 @@
3 "sops": { 3 "sops": {
4 "age": [ 4 "age": [
5 { 5 {
6 "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866", 6 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiWDlPazhId0RvZHZKbU9C\nQmR4S293KytMOXI0MmYrc2xxcVBtY0NxL2xjClpJMmdUNE41SVIyeFA3czkwek0r\nckRwVGdWYkJkVWRtRVlxcDFkMmRDSGsKLS0tIGtyOHhMRUR5aVlBQzkrYkh4dVhE\nWHNCUnZCN0NhZ0trQmJaTUJDb3ROMlUKvH5z4Fj1P5zMcwD6UlLT531Ggrd4vEmo\ne2uOmolQ/jcStDd4IMniPEfjqcxfSEtkb7fpB1Rhby0mT6Gx68GtHw==\n-----END AGE ENCRYPTED FILE-----\n",
7 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5NkZUUGI3M2pQYWVXeFV6\na2h2czRTeUJFekJCS012YlBkL1FDdTd3ekZ3ClJsTVh0R2JQM0Jua1JjL285RVA1\nRHhlbjlLdmNBUXVLelFGY2NGYWpLejQKLS0tIDBUWUhJNm8zWGoyQ0pBYnV1ZjBh\ndktNRkNPS1lpWXFITC81aEZJbXlONk0Km2c1xVKwSankaVs7O/utGJwRRX395upz\ndPbsOElTnbGmkb0esGtvGSPboTvK+gjn9w/GhaPyTnNDoos7GaIfyg==\n-----END AGE ENCRYPTED FILE-----\n" 7 "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866"
8 }, 8 },
9 { 9 {
10 "recipient": "age1fj65apkhfkrwyv5tx6zcs9nkjg8267fy733qph30sc7zfn7vapjqkd5kne", 10 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPNmowYmNTWVNwYk9UNzhI\neXllbWNCWEl4QXk1SUxLcjY5Vm5HdjBCdVRzClh2ZkY0bGUrNE9rUnhNTVdDT2tl\nTjFBYURMdGNWSjZZSDQzVXRBL2xRNXcKLS0tIEk0U05jSWQrUGoraVdxTU5QdEZ6\nQlprZlN5SjRTQzhycERsSVhiZDJmekUKUVzegV7zpd3woOeyDw+Ezpyd3D3xH0SV\nyt/UspleE/+sDRPuJTQKx6wA/k7e+hPJjGdjgMgzGnuCh+dfwNw2lw==\n-----END AGE ENCRYPTED FILE-----\n",
11 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6bS9iY2lua3U4U3lJa1pK\nSlZNMmFZMEU5M1V2bWRjaXIwajZJVDJPMlM4Cmd3TTNFWjVuSGdtbC9iODltTS91\nOE5XOEVEQkh0SFpVVW5jc3IzbzNpTmMKLS0tIEtrSU54QUVPa2tBZDhLYlRFWitR\nc2x6MFlxL0tobDJTek42dEcyZXpoWDgKXzQfU+o6FkbJBwmm6oaHu4sDPi822uUR\n5VY6gY/h3g2kM4cuS03Q4NJmeRxuh7cx0UqGU3j5Mf8muE1LHpYEPw==\n-----END AGE ENCRYPTED FILE-----\n" 11 "recipient": "age1fj65apkhfkrwyv5tx6zcs9nkjg8267fy733qph30sc7zfn7vapjqkd5kne"
12 }, 12 },
13 { 13 {
14 "recipient": "age19a7j77w267z04zls7m28a8hj4a0g5af6ltye2d5wypg33c3l89csd4r9zq", 14 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwZW51Q0RWdmtyZmdmNy9H\nMWJGSkxlbXRSc0U1eVhFSm1kZWlhaEl3UUVRCnNWWTVPWGJPaVJET1YrTXFHeGZk\na2ZYVWNQL1FwRStiSlE3ZDJmOVVHcFEKLS0tIEE1WHRsdEJPcWdiQ1lNenN2WDBE\nYW1FR0gyeENHWEpxWFB2a25RZjBOUW8KW2n77OFZXNZLH/HMWhUrwLZM4epFxheZ\nbeOSASmLVkmT4rJOOHoP1g9GxmC8UxSrM1q6uV80n69grExRfgYCig==\n-----END AGE ENCRYPTED FILE-----\n",
15 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaOVpNZ2lVT0VwbHVZNzFl\nenJsMGpnbkRvU0xOSU5obk5yT2p5ZVNzdXhNCnVlQzZtRjZNVmJLSUpKc3UwVXZs\nWi9EZ3kxZkJNeFJDSjl1L1IweTFNMXcKLS0tIDJUOTBwTldCUmlnU0tWVkZkNzJL\nejM4ajJVbVhvSm1YM2Vxa2JldllYN0UKAzxy2wkzRvCSiTy417AulpCu41z668HG\nto92eGF2ZRFfEG5LGlCKWeDcP3gM8QwKiVlm6wndbOkhMMfc4Sp3wA==\n-----END AGE ENCRYPTED FILE-----\n" 15 "recipient": "age1u6xegt79rarmyz8qy4pl7jh9lh90vx8fg0frmh4u2mzam7zydq4s4agz4e"
16 }, 16 },
17 { 17 {
18 "recipient": "age1qffdqvy9arld9zd5a5cylt0n98xhcns5shxhrhwjq5g4qa844ejselaa4l", 18 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBSUFhNWxNd3ZXMlkyU1pC\nUlNsdENaWU9WMGxJbHRqaHM0SEFVdnJ5ZHlrCkF5a0xBWXJpWGxDMEcveVhEVzJh\naFFOVmJtQkh1WlZxcUZVaWxJS1ZBUVEKLS0tIC90bTBUa09yNkhBVDRBa25STzZD\nSnNYa3JqWTBlcjZBMlhIOUdGOFVseEUKZ3El/3f+YWMZBl4Qhhz5qTB/V/zq+e/W\nCPJ7uOJ/2L6YNGx6jlh5EIE3BSHicAQktgi0ekGD4+PLSkGC7Egzlw==\n-----END AGE ENCRYPTED FILE-----\n",
19 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2ejRHcGttNUxYZnFzTU5J\nMTFvY3daQ1VMM2xxYTgvLzZwT1owazVNenhzCktaWFF6K2s5UjI2b20rSHFNSS9E\nMVlJSmZhQm15eUs3U0hGTGpSRndmSDgKLS0tIDVrcjl4eDhwak1pRithbnRWWEZy\nVE9EOEpKdEJoRTFrTXpQVDc1cmsrU1kK/goTdUmpZPeMRbY1QzLXAa6Qpg4YYYYo\n3v3GK1bzdey8szfgIr1dHTtQEzqE2WX1swzZizDXj/RiUWx01Ky3GA==\n-----END AGE ENCRYPTED FILE-----\n" 19 "recipient": "age19a7j77w267z04zls7m28a8hj4a0g5af6ltye2d5wypg33c3l89csd4r9zq"
20 },
21 {
22 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWUWM3c0R1cEV5LzBsb3pV\nM2NEU0ZFRWhoOE9IZlgyU0hsVUtZM2JCcm1NClBlVXFVVUNZUXJVbElGWm5BQkJy\nWHY2Sm1GUWl2L0NOSXZiNlFjNGFCT28KLS0tIDVCSGREN2tjQmhYbGRINVF4WTA0\nSWVzL3EyVzJZSzlCdjJ0cG1mYmZ0cHcKnMs0Sl76ZYPKeUwgiX5FT9uFEOK4F1H1\n/ieM9hQwhEZqHpslLWWdNYbGShwEhC4cs22SUNutBWrYfD/MsKv0qA==\n-----END AGE ENCRYPTED FILE-----\n",
23 "recipient": "age1qffdqvy9arld9zd5a5cylt0n98xhcns5shxhrhwjq5g4qa844ejselaa4l"
20 } 24 }
21 ], 25 ],
22 "lastmodified": "2026-01-07T09:18:20Z", 26 "lastmodified": "2026-01-07T09:18:20Z",
diff --git a/modules/yggdrasil-wg/default.nix b/modules/yggdrasil-wg/default.nix
index 8b190651..c17c8f08 100644
--- a/modules/yggdrasil-wg/default.nix
+++ b/modules/yggdrasil-wg/default.nix
@@ -48,33 +48,56 @@ let
48 PersistentKeepalive = 25; 48 PersistentKeepalive = 25;
49 family = "4"; 49 family = "4";
50 } 50 }
51 { from = "skadhi";
52 to = "surtr";
53 endpointHost = "202.61.241.61";
54 PersistentKeepalive = 25;
55 family = "4";
56 }
57 { from = "skadhi";
58 to = "surtr";
59 endpointHost = "2a03:4000:52:ada::";
60 PersistentKeepalive = 25;
61 family = "6";
62 }
63 { from = "skadhi";
64 to = "vidhar";
65 endpointHost = "10.141.0.1";
66 PersistentKeepalive = 25;
67 family = "4";
68 }
51 ]; 69 ];
52 wgHostIPs = mapAttrs (_family: wgSubnet: { 70 wgHostIPs = mapAttrs (_family: wgSubnet: {
53 surtr = "${wgSubnet}::/${toString wgHostLength}"; 71 surtr = "${wgSubnet}::/${toString wgHostLength}";
54 vidhar = "${wgSubnet}:1::/${toString wgHostLength}"; 72 vidhar = "${wgSubnet}:1::/${toString wgHostLength}";
55 sif = "${wgSubnet}:2::/${toString wgHostLength}"; 73 sif = "${wgSubnet}:2::/${toString wgHostLength}";
74 skadhi = "${wgSubnet}:3::/${toString wgHostLength}";
56 }) wgSubnet; 75 }) wgSubnet;
57 greHostMACPrefixes = { 76 greHostMACPrefixes = {
58 "4" = { 77 "4" = {
59 surtr = "02:00:01:00:00"; 78 surtr = "02:00:01:00:00";
60 vidhar = "02:00:01:00:01"; 79 vidhar = "02:00:01:00:01";
61 sif = "02:00:01:00:02"; 80 sif = "02:00:01:00:02";
81 skadhi = "02:00:01:00:03";
62 }; 82 };
63 "6" = { 83 "6" = {
64 surtr = "02:00:02:00:00"; 84 surtr = "02:00:02:00:00";
65 vidhar = "02:00:02:00:01"; 85 vidhar = "02:00:02:00:01";
66 sif = "02:00:02:00:02"; 86 sif = "02:00:02:00:02";
87 skadhi = "02:00:02:00:03";
67 }; 88 };
68 }; 89 };
69 batHostMACs = { 90 batHostMACs = {
70 surtr = "02:00:00:00:00:00"; 91 surtr = "02:00:00:00:00:00";
71 vidhar = "02:00:00:01:00:00"; 92 vidhar = "02:00:00:01:00:00";
72 sif = "02:00:00:02:00:00"; 93 sif = "02:00:00:02:00:00";
94 skadhi = "02:00:00:03:00:00";
73 }; 95 };
74 batHostIPs = { 96 batHostIPs = {
75 surtr = ["${batSubnet}::/${toString batHostLength}"]; 97 surtr = ["${batSubnet}::/${toString batHostLength}"];
76 vidhar = ["${batSubnet}:1::/${toString batHostLength}"]; 98 vidhar = ["${batSubnet}:1::/${toString batHostLength}"];
77 sif = ["${batSubnet}:2::/${toString batHostLength}"]; 99 sif = ["${batSubnet}:2::/${toString batHostLength}"];
100 skadhi = ["${batSubnet}:3::/${toString batHostLength}"];
78 }; 101 };
79 routers = [ "surtr" ]; 102 routers = [ "surtr" ];
80 103
diff --git a/modules/yggdrasil-wg/hosts/4/skadhi.priv b/modules/yggdrasil-wg/hosts/4/skadhi.priv
new file mode 100644
index 00000000..dd66633f
--- /dev/null
+++ b/modules/yggdrasil-wg/hosts/4/skadhi.priv
@@ -0,0 +1,18 @@
1{
2 "data": "ENC[AES256_GCM,data:fXF8DV6vgpbJJWQvjIS3sFZ+yUEPtWwAZQrDLT8jueqDdn/IVaZGlq+DEnT0,iv:FU0ofu31RZlq2qMcMHlzYoRB61g+vwaG2JjPrKUgxYI=,tag:+dLvtiKmYdtk9NCXV8Yn9w==,type:str]",
3 "sops": {
4 "age": [
5 {
6 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQR25od0g4MGhLY2d0Y1Fx\nS3RGVE1UbTFEc1Qzakx0VFdDbWNTdnU1MXowCkxNMXJycGlEVFEvV1dtQ3B3WXVX\nRm12ZmZTUTd6WGtvQkNJQzlsTVF1RHcKLS0tIE9tMzIzWFlWNHdINTkrSmcwYVNT\nVEVzSWFjMWJLSmRPRmZlQ1ZVMktLQ28KAUOrlZCuSZwF7QkOSz1dQ4Uj2f8gvjtM\n3c4sXQ3P77Rqluijsxo9KQx7Q0lRGBaRPMY4IrnHNPogd8iOHPeZuA==\n-----END AGE ENCRYPTED FILE-----\n",
7 "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866"
8 },
9 {
10 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArWmlPTWUrZ1QvYVBSckFL\nelZtcGdEMDBHeE5ROVdVdEJvWHpISzN3OVhjCkpSSTg2dDNqZjZYY0RyRlpuTi96\nS1l1dzJPV0NKbEJVdWpkTnZNZXJ0Qk0KLS0tIElBMmxJcmlxekVxRm1VdkgrSkNm\nZXhaMlhNdi9hVlNKaXU5MGVnK2NZWnMKjavFZczePCyYb2X4UsFNOaB5g+g1KZ52\npl+NTzRsUIXqPZnRDcCkGDjlQgLnZ+A22Enhbpj21ThiPV7bTyFh2g==\n-----END AGE ENCRYPTED FILE-----\n",
11 "recipient": "age1u6xegt79rarmyz8qy4pl7jh9lh90vx8fg0frmh4u2mzam7zydq4s4agz4e"
12 }
13 ],
14 "lastmodified": "2026-09-24T04:46:17Z",
15 "mac": "ENC[AES256_GCM,data:cubfKvUaDE6XNb9Y/1dbXpwayRXoZjiM9T3dN+YVeS6/5WX+hMC7We6mdge5VBnZ9CjA3XXNy+ZP1DEaPSg1OsBq1ubnFuVbaRKZlFl1B4I+6e4xpsZdQiyZT3SFZoM/LI1oM6kxD8e1n7KjFWNRx3yqAMaK3z1Ko1AlAmkmDx8=,iv:ME5EYC/MvuFxY7es250VcW0z2x1tCInCPrZnr4mBjrw=,tag:Jfd3uEVibe6Iw/3uNc+UTQ==,type:str]",
16 "version": "3.13.3"
17 }
18}
diff --git a/modules/yggdrasil-wg/hosts/4/skadhi.pub b/modules/yggdrasil-wg/hosts/4/skadhi.pub
new file mode 100644
index 00000000..a722609e
--- /dev/null
+++ b/modules/yggdrasil-wg/hosts/4/skadhi.pub
@@ -0,0 +1 @@
x5c5441ah63QZRbj+IV711Xv3JZOQYQON8Zo7rzU6i4=
diff --git a/modules/yggdrasil-wg/hosts/6/skadhi.priv b/modules/yggdrasil-wg/hosts/6/skadhi.priv
new file mode 100644
index 00000000..848cd299
--- /dev/null
+++ b/modules/yggdrasil-wg/hosts/6/skadhi.priv
@@ -0,0 +1,18 @@
1{
2 "data": "ENC[AES256_GCM,data:lOitSuIg4Xjr5xycgaXBWkA79zySQOy+ZPXUxRjbU3F3/YHbcyrKYatVygdf,iv:8QcEXehosL/zUYxbNE284GfQHjz6HzBIyscigtNiDw8=,tag:eRINZKIv4UwprovUq7016Q==,type:str]",
3 "sops": {
4 "age": [
5 {
6 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLY2U0S2tUZHpXSjVoTk1m\nSWlXK0UyWm5SMGxBbUtHTFp1U3NadUliemlNCjArMHdJVk5BYzVSK0F5RGdMQU1E\nMEZuUkt3R29sdHZsRnFPaVhlUzVpaWcKLS0tIDFXOEpFOC94NlEzZnZqY2F6VERt\nc3lvZEt2b0tVU3pvMU5VR1dqYUtFbUEKcRVTIkz5bz47rAkihOTJLJPvA0mqabUM\nUr+zZjdrWTKqnWuEcJ93xsCKyo4kC1k/SkaXia65krhi9z4BVe5kgQ==\n-----END AGE ENCRYPTED FILE-----\n",
7 "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866"
8 },
9 {
10 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRWUxYNXNXODAzb2daTC9Y\nSmtHRHUwZmRoaXhpTmpDbXZSMkkwMjI0Q2pnCi92RFgrK2pSTFdIL29wT09lVGZM\nTWxXamlSOVpOdXoxcSttSDNkUDJ1K0UKLS0tIC9rVnNXZWxhd2J3NGd2NkdUOUVO\nbE9ha1RyS3dOczNXa3pjVkh3bm5RS1kK4APdzi4AKkI7z5S2zpFkipkldVzeYO0Q\nGck0KtHhM8ZRTqJ9Q7WID2JwbAV5og3924SAYFbQvYdSd2zGqkD+Aw==\n-----END AGE ENCRYPTED FILE-----\n",
11 "recipient": "age1u6xegt79rarmyz8qy4pl7jh9lh90vx8fg0frmh4u2mzam7zydq4s4agz4e"
12 }
13 ],
14 "lastmodified": "2026-09-24T04:46:30Z",
15 "mac": "ENC[AES256_GCM,data:5mgUxl7FQCgmCWL2SRtf7FOi5z64scb9Qt/rUwPMdenAuTG0ED3NVGOATTVoco7l0MBbs/D7OBKDMMvJ/Odgo0I9srRDyhXdrVbVKMphD1uXAwxPaK2iUeK3xz93Kzvr17UXzd7SwXTReokv/lIcFyDqUvlBXGWxZdYsc/rf4Us=,iv:50ByoxaHrl6qQbKoEEAgUIpYyhVhp47AYnagbH8n5kA=,tag:5KjE/A7EwiG/sSGpkkQBcg==,type:str]",
16 "version": "3.13.3"
17 }
18}
diff --git a/modules/yggdrasil-wg/hosts/6/skadhi.pub b/modules/yggdrasil-wg/hosts/6/skadhi.pub
new file mode 100644
index 00000000..7a51045a
--- /dev/null
+++ b/modules/yggdrasil-wg/hosts/6/skadhi.pub
@@ -0,0 +1 @@
BtEGTPfLbtQJAAHfG/7jBissxcR/IfIRqeqhZG2dr0k=