From 30e1376275bc5be97f36c6298dfe5c9203f31d18 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 30 Oct 2025 19:43:01 +0100 Subject: kartei tv: put ssh pubkeys in dedicated files --- kartei/tv/default.nix | 8 ++++---- kartei/tv/ssh/mv@vod.id_ed25519.pub | 1 + kartei/tv/ssh/tv@nomic.id_rsa.pub | 1 + kartei/tv/ssh/tv@wu.id_rsa.pub | 1 + kartei/tv/ssh/tv@xu.id_rsa.pub | 1 + 5 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 kartei/tv/ssh/mv@vod.id_ed25519.pub create mode 100644 kartei/tv/ssh/tv@nomic.id_rsa.pub create mode 100644 kartei/tv/ssh/tv@wu.id_rsa.pub create mode 100644 kartei/tv/ssh/tv@xu.id_rsa.pub (limited to 'kartei') diff --git a/kartei/tv/default.nix b/kartei/tv/default.nix index e81bdd32b..5953a8b13 100644 --- a/kartei/tv/default.nix +++ b/kartei/tv/default.nix @@ -70,21 +70,21 @@ in { }; mv-ni = { mail = "mv@ni.r"; - pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGer9e2+Lew7vnisgBbsFNECEIkpNJgEaqQqgb9inWkQ mv@vod"; + pubkey = readFile (./ssh + "/mv@vod.id_ed25519.pub"); }; tv = { mail = "tv@nomic.r"; pgp.pubkeys.default = readFile ./pgp/CBF89B0B.asc; - pubkey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDFR//RnCvEZAt0F6ExDsatKZ/DDdifanuSL360mqOhaFieKI34RoOwfQT9T+Ga52Vh5V2La6esvlph686EdgzeKLvDoxEwFM9ZYFBcMrNzu4bMTlgE7YUYw5JiORyXNfznBGnme6qpuvx9ibYhUyiZo99kM8ys5YrUHrP2JXQJMezDFZHxT4GFMOuSdh/1daGoKKD6hYL/jEHX8CI4E3BSmKK6ygYr1fVX0K0Tv77lIi5mLXucjR7CytWYWYnhM6DC3Hxpv2zRkPgf3k0x/Y1hrw3V/r0Me5h90pd2C8pFaWA2ZoUT/fmyVqvx1tZPYToU/O2dMItY0zgx2kR0yD+6g7Aahz3R+KlXkV8k5c8bbTbfGnZWDR1ZlbLRM9Yt5vosfwapUD90MmVkpmR3wUkO2sUKi80QfC7b4KvSDXQ+MImbGxMaU5Bnsq1PqLN95q+uat3nlAVBAELkcx51FlE9CaIS65y4J7FEDg8BE5JeuCNshh62VSYRXVSFt8bk3f/TFGgzC8OIo14BhVmiRQQ503Z1sROyf5xLX2a/EJavMm1i2Bs2TH6ROKY9z5Pz8hT5US0r381V8oG7TZyLF9HTtoy3wCYsgWA5EmLanjAsVU2YEeAA0rxzdtYP8Y2okFiJ6u+M4HQZ3Wg3peSodyp3vxdYce2vk4EKeqEFuuS82850DYb7Et7fmp+wQQUT8Q/bMO0DreWjHoMM5lE4LJ4ME6AxksmMiFtfo/4Fe2q9D+LAqZ+ANOcv9M+8Rn6ngiYmuRNd0l/a02q1PEvO6vTfXgcl4f7Z1IULHPEaDNZHCJS1K5RXYFqYQ6OHsTmOm7hnwaRAS97+VFMo1i5uvTx9nYaAcY7yzq3Ckfb67dMBKApGOpJpkvPgfrP7bgBO5rOZXM1opXqVPb09nljAhhAhyCTh1e/8+mJrBo0cLQ/LupQzVxGDgm3awSMPxsZAN45PSWz76zzxdDa1MMo51do+VJHfs7Wl0NcXAQrniOBYL9Wqt0qNkn1gY5smkkISGeQ/vxNap4MmzeZE7b5fpOy+2fpcRVQLpc4nooQzJvSVTFz+25lgZ6iHf45K87gQFMIAri1Pf/EDDpL87az+bRWvWi+BA2kMe1kf+Ay1LyMz8r+g51H0ma0bNFh6+fbWMfUiD9JCepIObclnUJ4NlWfcgHxTf17d/4tl6z4DTcLpCCk8Da77JouSHgvtcRbRlFV1OfhWZLXUsrlfpaQTiItv6TGIr3k7+7b66o3Qw/GQVs5GmYifaIZIz8n8my4XjkaMBd0SZfBzzvFjHMq6YUP9+SbjvReqofuoO+5tW1wTYZXitFFBfwuHlXm6w77K5QDBW6olT7pat41/F5eGxLcz tv@wu"; + pubkey = readFile (./ssh + "/tv@wu.id_rsa.pub"); uid = 1337; # TODO use default and document what has to be done (for vv) }; tv-nomic = { inherit (config.krebs.users.tv) mail; - pubkey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3dYR/n4Yw8OsYmfR2rSUG7o10G6AqOlSJHuHSEmANbMkqjiWl1TnpORtt5bAktyAGI4vWf9vhNEnxuIqGXWSV+3yCd7yfBHR1m0Y9QSw6blQ0xc1venl3JU0kpEyJfUn8a9cdXlnRiS0MP1gcsN7Zk8cqBELJYJajkSEnsT4eVaU5/wdnyzUO1fk8D8tFBJbF/tsWDLJPu4P18rpxq4wZgA2qmyHoVDEVlrz2OYcziXT6gpG0JGnToteaNg9ok5QavEYFpp8P+k1AacrBjc1PAb4MaMX1nfkSyaZwSqLdH35XkNRgPhVVmqZ5PlG3VeNpPSwpdcKi8P3zH1xG9g6Usx1SAyvcoAyGHdOwmFuA2tc1HgYEiQ+OsPrHZHujBOOZsKTN9+IZHScCAe+UmUcK413WEZKPs8PeFjf1gQAoDXb55JpksxLAnC/SQOl4FhkctIAXxr12ALlyt9UFPzIoj/Nj2MpFzGSlf653fTFmnMbQ8+GICc4TUpqx5GELZhfQuprBTv/55a9zKvM4B8XT3Bn9olQzMQIXEjXb3WUVFDDNWeNydToorYn1wG3ZWQ+3f0IlqRicWO7Q9BRj1Lp5rcUCb+naJ48tGY6HFUZ1Kz/0x458GDFvUd8mCJjqqmeSkUEeZd0xet5tVFg/bYoSslEqPF6pz7V3ruJMSdYxnQ== tv@nomic #2"; + pubkey = readFile (./ssh + "/tv@nomic.id_rsa.pub"); }; tv-xu = { inherit (config.krebs.users.tv) mail; - pubkey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/3nkqxe8YrDVt615n96A7iC3vvwsiqgpsBYC/bhwfBHu1bAtBmTWVqSKDIdwg7p8TQpIKtAgZ3IJT3BlrnVTeR4RIviLjHjYWW1NBhm+nXi+heThgi5fLciE3lVLVsy5X9Kc1ZPLgLa1In0REOanwbueOD0ESN1yKIDwUUdczw/o3dLDMzanqFHKuSSN4o9Ex2x+MRj9eLsb706s4VSYMo3lirRCJeAOGv1C7Xg1cuepdhIeJsq9aF7vSy15c0nCkWwr8zdY7pbMPYCe5zvIEymZ0UowZ5HQ3NmIZnYDxa4E1PFjDczHdQbVmmGMI80grNwMsHzQ6bynHSPXDoLf4WodXlhS0+9Ju5QavDT6uqZ9uhDBuWC8QNgWUMIJnEaTBFyA0OI1akl8Q2RLC+qnNf5IwItSq+GDwEsB2ZJNW3kOk1kNiCUrBafRYpPaFeP97wzzP4uYlBKAr2SOLrrkf7NFEdw2ihxhDMNnps/ErRJ8U0zdpmalw8mItGyqRULpHjk/wN00rYOdBIhW3G3QJuVgtGnWtGCBG5x70EfMiSEXPD3YSsVVsgKD+v8qr+YiilRRD+N3gaHhiOWA6HgxRNul/P4llk0ktTpb9LoHk2+oooTH5ZuuT/8yF8J4stZt7EIOH+mSOAXG1z0BwnEkQu7pVKwu/oOZpGJTvBrGwww== tv@xu"; + pubkey = readFile (./ssh + "/tv@xu.id_rsa.pub"); }; vv = { mail = "vv@mu.r"; diff --git a/kartei/tv/ssh/mv@vod.id_ed25519.pub b/kartei/tv/ssh/mv@vod.id_ed25519.pub new file mode 100644 index 000000000..7b7d2e260 --- /dev/null +++ b/kartei/tv/ssh/mv@vod.id_ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGer9e2+Lew7vnisgBbsFNECEIkpNJgEaqQqgb9inWkQ mv@vod diff --git a/kartei/tv/ssh/tv@nomic.id_rsa.pub b/kartei/tv/ssh/tv@nomic.id_rsa.pub new file mode 100644 index 000000000..519beb0e6 --- /dev/null +++ b/kartei/tv/ssh/tv@nomic.id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3dYR/n4Yw8OsYmfR2rSUG7o10G6AqOlSJHuHSEmANbMkqjiWl1TnpORtt5bAktyAGI4vWf9vhNEnxuIqGXWSV+3yCd7yfBHR1m0Y9QSw6blQ0xc1venl3JU0kpEyJfUn8a9cdXlnRiS0MP1gcsN7Zk8cqBELJYJajkSEnsT4eVaU5/wdnyzUO1fk8D8tFBJbF/tsWDLJPu4P18rpxq4wZgA2qmyHoVDEVlrz2OYcziXT6gpG0JGnToteaNg9ok5QavEYFpp8P+k1AacrBjc1PAb4MaMX1nfkSyaZwSqLdH35XkNRgPhVVmqZ5PlG3VeNpPSwpdcKi8P3zH1xG9g6Usx1SAyvcoAyGHdOwmFuA2tc1HgYEiQ+OsPrHZHujBOOZsKTN9+IZHScCAe+UmUcK413WEZKPs8PeFjf1gQAoDXb55JpksxLAnC/SQOl4FhkctIAXxr12ALlyt9UFPzIoj/Nj2MpFzGSlf653fTFmnMbQ8+GICc4TUpqx5GELZhfQuprBTv/55a9zKvM4B8XT3Bn9olQzMQIXEjXb3WUVFDDNWeNydToorYn1wG3ZWQ+3f0IlqRicWO7Q9BRj1Lp5rcUCb+naJ48tGY6HFUZ1Kz/0x458GDFvUd8mCJjqqmeSkUEeZd0xet5tVFg/bYoSslEqPF6pz7V3ruJMSdYxnQ== tv@nomic #2 diff --git a/kartei/tv/ssh/tv@wu.id_rsa.pub b/kartei/tv/ssh/tv@wu.id_rsa.pub new file mode 100644 index 000000000..b6e2634e8 --- /dev/null +++ b/kartei/tv/ssh/tv@wu.id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDFR//RnCvEZAt0F6ExDsatKZ/DDdifanuSL360mqOhaFieKI34RoOwfQT9T+Ga52Vh5V2La6esvlph686EdgzeKLvDoxEwFM9ZYFBcMrNzu4bMTlgE7YUYw5JiORyXNfznBGnme6qpuvx9ibYhUyiZo99kM8ys5YrUHrP2JXQJMezDFZHxT4GFMOuSdh/1daGoKKD6hYL/jEHX8CI4E3BSmKK6ygYr1fVX0K0Tv77lIi5mLXucjR7CytWYWYnhM6DC3Hxpv2zRkPgf3k0x/Y1hrw3V/r0Me5h90pd2C8pFaWA2ZoUT/fmyVqvx1tZPYToU/O2dMItY0zgx2kR0yD+6g7Aahz3R+KlXkV8k5c8bbTbfGnZWDR1ZlbLRM9Yt5vosfwapUD90MmVkpmR3wUkO2sUKi80QfC7b4KvSDXQ+MImbGxMaU5Bnsq1PqLN95q+uat3nlAVBAELkcx51FlE9CaIS65y4J7FEDg8BE5JeuCNshh62VSYRXVSFt8bk3f/TFGgzC8OIo14BhVmiRQQ503Z1sROyf5xLX2a/EJavMm1i2Bs2TH6ROKY9z5Pz8hT5US0r381V8oG7TZyLF9HTtoy3wCYsgWA5EmLanjAsVU2YEeAA0rxzdtYP8Y2okFiJ6u+M4HQZ3Wg3peSodyp3vxdYce2vk4EKeqEFuuS82850DYb7Et7fmp+wQQUT8Q/bMO0DreWjHoMM5lE4LJ4ME6AxksmMiFtfo/4Fe2q9D+LAqZ+ANOcv9M+8Rn6ngiYmuRNd0l/a02q1PEvO6vTfXgcl4f7Z1IULHPEaDNZHCJS1K5RXYFqYQ6OHsTmOm7hnwaRAS97+VFMo1i5uvTx9nYaAcY7yzq3Ckfb67dMBKApGOpJpkvPgfrP7bgBO5rOZXM1opXqVPb09nljAhhAhyCTh1e/8+mJrBo0cLQ/LupQzVxGDgm3awSMPxsZAN45PSWz76zzxdDa1MMo51do+VJHfs7Wl0NcXAQrniOBYL9Wqt0qNkn1gY5smkkISGeQ/vxNap4MmzeZE7b5fpOy+2fpcRVQLpc4nooQzJvSVTFz+25lgZ6iHf45K87gQFMIAri1Pf/EDDpL87az+bRWvWi+BA2kMe1kf+Ay1LyMz8r+g51H0ma0bNFh6+fbWMfUiD9JCepIObclnUJ4NlWfcgHxTf17d/4tl6z4DTcLpCCk8Da77JouSHgvtcRbRlFV1OfhWZLXUsrlfpaQTiItv6TGIr3k7+7b66o3Qw/GQVs5GmYifaIZIz8n8my4XjkaMBd0SZfBzzvFjHMq6YUP9+SbjvReqofuoO+5tW1wTYZXitFFBfwuHlXm6w77K5QDBW6olT7pat41/F5eGxLcz tv@wu diff --git a/kartei/tv/ssh/tv@xu.id_rsa.pub b/kartei/tv/ssh/tv@xu.id_rsa.pub new file mode 100644 index 000000000..76d4f6962 --- /dev/null +++ b/kartei/tv/ssh/tv@xu.id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/3nkqxe8YrDVt615n96A7iC3vvwsiqgpsBYC/bhwfBHu1bAtBmTWVqSKDIdwg7p8TQpIKtAgZ3IJT3BlrnVTeR4RIviLjHjYWW1NBhm+nXi+heThgi5fLciE3lVLVsy5X9Kc1ZPLgLa1In0REOanwbueOD0ESN1yKIDwUUdczw/o3dLDMzanqFHKuSSN4o9Ex2x+MRj9eLsb706s4VSYMo3lirRCJeAOGv1C7Xg1cuepdhIeJsq9aF7vSy15c0nCkWwr8zdY7pbMPYCe5zvIEymZ0UowZ5HQ3NmIZnYDxa4E1PFjDczHdQbVmmGMI80grNwMsHzQ6bynHSPXDoLf4WodXlhS0+9Ju5QavDT6uqZ9uhDBuWC8QNgWUMIJnEaTBFyA0OI1akl8Q2RLC+qnNf5IwItSq+GDwEsB2ZJNW3kOk1kNiCUrBafRYpPaFeP97wzzP4uYlBKAr2SOLrrkf7NFEdw2ihxhDMNnps/ErRJ8U0zdpmalw8mItGyqRULpHjk/wN00rYOdBIhW3G3QJuVgtGnWtGCBG5x70EfMiSEXPD3YSsVVsgKD+v8qr+YiilRRD+N3gaHhiOWA6HgxRNul/P4llk0ktTpb9LoHk2+oooTH5ZuuT/8yF8J4stZt7EIOH+mSOAXG1z0BwnEkQu7pVKwu/oOZpGJTvBrGwww== tv@xu -- cgit v1.2.3 From 7435b5a59f4231baae07a5778f24f7229f4399fe Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 17 Nov 2025 00:59:31 +0100 Subject: kartei tv: evalSubmodule -> foldl' recursiveUpdate {} --- kartei/tv/default.nix | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) (limited to 'kartei') diff --git a/kartei/tv/default.nix b/kartei/tv/default.nix index 5953a8b13..84d529786 100644 --- a/kartei/tv/default.nix +++ b/kartei/tv/default.nix @@ -1,9 +1,8 @@ -{ config, lib, ... }@attrs: let +{ config, lib, ... }: let inherit (builtins) - getAttr head mapAttrs match pathExists readDir readFile typeOf; + getAttr mapAttrs pathExists readDir readFile typeOf; inherit (lib) - const hasAttrByPath mapAttrs' mkDefault mkIf optionalAttrs removeSuffix - toList; + const hasAttrByPath mapAttrs' mkDefault optionalAttrs removeSuffix; slib = import ../../lib/pure.nix { inherit lib; }; in { dns.providers = { @@ -11,13 +10,7 @@ in { }; hosts = mapAttrs - (hostName: hostFile: let - hostSource = import hostFile; - hostConfig = getAttr (typeOf hostSource) { - lambda = hostSource attrs; - set = hostSource; - }; - in slib.evalSubmodule slib.types.host [ + (hostName: hostConfig: builtins.foldl' lib.recursiveUpdate {} [ hostConfig { name = hostName; @@ -41,17 +34,19 @@ in { wireguard.pubkey = readFile pubkey-path; }; }) - (host: mkIf (host.config.ssh.pubkey != null) { - ssh.privkey = mapAttrs (const mkDefault) { - path = "${config.krebs.secret.directory}/ssh.id_${host.config.ssh.privkey.type}"; - type = head (toList (builtins.match "ssh-([^ ]+) .*" host.config.ssh.pubkey)); + (lib.optionalAttrs (hostConfig.ssh.pubkey or null != null) { + ssh.privkey = builtins.mapAttrs (const mkDefault) rec { + path = "${config.krebs.secret.directory}/ssh.id_${type}"; + type = builtins.head (lib.toList (builtins.match "ssh-([^ ]+) .*" hostConfig.ssh.pubkey)); }; }) ]) (mapAttrs' (name: type: { name = removeSuffix ".nix" name; - value = ./hosts + "/${name}"; + value = lib.toFunction (import (./hosts + "/${name}")) { + inherit config lib; + }; }) (readDir ./hosts)); sitemap = { -- cgit v1.2.3 From 05526b8847a23a5cc955115a676d2eacf31f6ff5 Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 17 Nov 2025 01:08:50 +0100 Subject: kartei tv ni: get slib from argument --- kartei/tv/default.nix | 2 +- kartei/tv/hosts/ni.nix | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) (limited to 'kartei') diff --git a/kartei/tv/default.nix b/kartei/tv/default.nix index 84d529786..3dbaf3389 100644 --- a/kartei/tv/default.nix +++ b/kartei/tv/default.nix @@ -45,7 +45,7 @@ in { (name: type: { name = removeSuffix ".nix" name; value = lib.toFunction (import (./hosts + "/${name}")) { - inherit config lib; + inherit config lib slib; }; }) (readDir ./hosts)); diff --git a/kartei/tv/hosts/ni.nix b/kartei/tv/hosts/ni.nix index d64874d9c..fed171f23 100644 --- a/kartei/tv/hosts/ni.nix +++ b/kartei/tv/hosts/ni.nix @@ -1,6 +1,4 @@ -{ config, lib, ... }: let - slib = import ../../../lib/pure.nix { inherit lib; }; -in { +{ config, lib, slib, ... }: { extraZones = { "krebsco.de" = '' ni 60 IN A ${config.krebs.hosts.ni.nets.internet.ip4.addr} -- cgit v1.2.3 From 6dcc80fc091904d7efc0f1085441a0d8975f6f5a Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 27 Nov 2025 04:20:17 +0100 Subject: kartei tv: add ne --- kartei/tv/hosts/ne.nix | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 kartei/tv/hosts/ne.nix (limited to 'kartei') diff --git a/kartei/tv/hosts/ne.nix b/kartei/tv/hosts/ne.nix new file mode 100644 index 000000000..8a0ea0e82 --- /dev/null +++ b/kartei/tv/hosts/ne.nix @@ -0,0 +1,39 @@ +{ config, ... }: { + extraZones = { + "krebsco.de" = '' + ne 60 IN A ${config.krebs.hosts.ne.nets.internet.ip4.addr} + ne 60 IN AAAA ${config.krebs.hosts.ne.nets.internet.ip6.addr} + ''; + }; + nets = { + internet = { + aliases = [ + "ne.i" + ]; + ip4 = rec { + addr = "159.195.31.38"; + prefix = "${addr}/32"; + }; + ip6 = rec { + addr = "2a0a:4cc0:c1:5eb0::1"; + prefix = "${addr}/64"; + prefixLength = 64; + }; + ssh.port = 11423; + }; + mycelium = { + aliases = [ + "ne.m" + ]; + ip6.addr = "45f:fa21:4bdd:a758:8091:947d:fe84:fac3"; + }; + retiolum = { + aliases = [ + "ne.r" + ]; + }; + wiregrill = { + ip4.addr = "10.244.3.2"; + }; + }; +} -- cgit v1.2.3 From 3c1e960b371215ed7653e9f7e0b9aca2a3b7058d Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 27 Nov 2025 13:46:36 +0100 Subject: kartei tv: foldl' recursiveUpdate {} -> foldl' extend --- kartei/tv/default.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'kartei') diff --git a/kartei/tv/default.nix b/kartei/tv/default.nix index 3dbaf3389..52f66039f 100644 --- a/kartei/tv/default.nix +++ b/kartei/tv/default.nix @@ -4,19 +4,23 @@ inherit (lib) const hasAttrByPath mapAttrs' mkDefault optionalAttrs removeSuffix; slib = import ../../lib/pure.nix { inherit lib; }; + + extend = x: f: { + lambda = lib.recursiveUpdate x (f x); + set = lib.recursiveUpdate x f; + }.${builtins.typeOf f}; in { dns.providers = { "viljetic.de" = "regfish"; }; hosts = mapAttrs - (hostName: hostConfig: builtins.foldl' lib.recursiveUpdate {} [ - hostConfig + (hostName: lib.flip (builtins.foldl' extend) [ { name = hostName; owner = config.krebs.users.tv; } - (optionalAttrs (hasAttrByPath ["nets" "retiolum"] hostConfig) { + (hostConfig: optionalAttrs (hasAttrByPath ["nets" "retiolum"] hostConfig) { nets.retiolum = { ip6.addr = (slib.krebs.genipv6 "retiolum" "tv" { inherit hostName; }).address; @@ -34,7 +38,7 @@ in { wireguard.pubkey = readFile pubkey-path; }; }) - (lib.optionalAttrs (hostConfig.ssh.pubkey or null != null) { + (hostConfig: lib.optionalAttrs (hostConfig.ssh.pubkey or null != null) { ssh.privkey = builtins.mapAttrs (const mkDefault) rec { path = "${config.krebs.secret.directory}/ssh.id_${type}"; type = builtins.head (lib.toList (builtins.match "ssh-([^ ]+) .*" hostConfig.ssh.pubkey)); -- cgit v1.2.3 From e13546c0879ccef23ee32b6f8217a4cd691a859e Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 27 Nov 2025 13:51:57 +0100 Subject: kartei tv: don't inherit --- kartei/tv/default.nix | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) (limited to 'kartei') diff --git a/kartei/tv/default.nix b/kartei/tv/default.nix index 52f66039f..60369d4df 100644 --- a/kartei/tv/default.nix +++ b/kartei/tv/default.nix @@ -1,8 +1,4 @@ { config, lib, ... }: let - inherit (builtins) - getAttr mapAttrs pathExists readDir readFile typeOf; - inherit (lib) - const hasAttrByPath mapAttrs' mkDefault optionalAttrs removeSuffix; slib = import ../../lib/pure.nix { inherit lib; }; extend = x: f: { @@ -14,13 +10,13 @@ in { "viljetic.de" = "regfish"; }; hosts = - mapAttrs + builtins.mapAttrs (hostName: lib.flip (builtins.foldl' extend) [ { name = hostName; owner = config.krebs.users.tv; } - (hostConfig: optionalAttrs (hasAttrByPath ["nets" "retiolum"] hostConfig) { + (hostConfig: lib.optionalAttrs (lib.hasAttrByPath ["nets" "retiolum"] hostConfig) { nets.retiolum = { ip6.addr = (slib.krebs.genipv6 "retiolum" "tv" { inherit hostName; }).address; @@ -28,31 +24,31 @@ in { }) (let pubkey-path = ./wiregrill + "/${hostName}.pub"; - in optionalAttrs (pathExists pubkey-path) { + in lib.optionalAttrs (builtins.pathExists pubkey-path) { nets.wiregrill = { aliases = [ "${hostName}.w" ]; ip6.addr = (slib.krebs.genipv6 "wiregrill" "tv" { inherit hostName; }).address; - wireguard.pubkey = readFile pubkey-path; + wireguard.pubkey = builtins.readFile pubkey-path; }; }) (hostConfig: lib.optionalAttrs (hostConfig.ssh.pubkey or null != null) { - ssh.privkey = builtins.mapAttrs (const mkDefault) rec { + ssh.privkey = builtins.mapAttrs (lib.const lib.mkDefault) rec { path = "${config.krebs.secret.directory}/ssh.id_${type}"; type = builtins.head (lib.toList (builtins.match "ssh-([^ ]+) .*" hostConfig.ssh.pubkey)); }; }) ]) - (mapAttrs' + (lib.mapAttrs' (name: type: { - name = removeSuffix ".nix" name; + name = lib.removeSuffix ".nix" name; value = lib.toFunction (import (./hosts + "/${name}")) { inherit config lib slib; }; }) - (readDir ./hosts)); + (builtins.readDir ./hosts)); sitemap = { "http://cgit.krebsco.de" = { desc = "Git repositories"; @@ -69,21 +65,21 @@ in { }; mv-ni = { mail = "mv@ni.r"; - pubkey = readFile (./ssh + "/mv@vod.id_ed25519.pub"); + pubkey = builtins.readFile (./ssh + "/mv@vod.id_ed25519.pub"); }; tv = { mail = "tv@nomic.r"; - pgp.pubkeys.default = readFile ./pgp/CBF89B0B.asc; - pubkey = readFile (./ssh + "/tv@wu.id_rsa.pub"); + pgp.pubkeys.default = builtins.readFile ./pgp/CBF89B0B.asc; + pubkey = builtins.readFile (./ssh + "/tv@wu.id_rsa.pub"); uid = 1337; # TODO use default and document what has to be done (for vv) }; tv-nomic = { inherit (config.krebs.users.tv) mail; - pubkey = readFile (./ssh + "/tv@nomic.id_rsa.pub"); + pubkey = builtins.readFile (./ssh + "/tv@nomic.id_rsa.pub"); }; tv-xu = { inherit (config.krebs.users.tv) mail; - pubkey = readFile (./ssh + "/tv@xu.id_rsa.pub"); + pubkey = builtins.readFile (./ssh + "/tv@xu.id_rsa.pub"); }; vv = { mail = "vv@mu.r"; -- cgit v1.2.3 From 7b6d9313f17461b79afdb95d8e8231a71fa2a462 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 27 Nov 2025 14:19:03 +0100 Subject: kartei tv ne: add NS for tv.krebsco.de --- kartei/tv/hosts/ne.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'kartei') diff --git a/kartei/tv/hosts/ne.nix b/kartei/tv/hosts/ne.nix index 8a0ea0e82..e7d9056b1 100644 --- a/kartei/tv/hosts/ne.nix +++ b/kartei/tv/hosts/ne.nix @@ -3,6 +3,7 @@ "krebsco.de" = '' ne 60 IN A ${config.krebs.hosts.ne.nets.internet.ip4.addr} ne 60 IN AAAA ${config.krebs.hosts.ne.nets.internet.ip6.addr} + tv 300 IN NS ne ''; }; nets = { -- cgit v1.2.3 From 156da811d7bbd47e99aec4493cacc6045200192d Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 27 Nov 2025 14:22:38 +0100 Subject: kartei tv ne: add MX for krebsco.de --- kartei/tv/hosts/ne.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'kartei') diff --git a/kartei/tv/hosts/ne.nix b/kartei/tv/hosts/ne.nix index e7d9056b1..d67df6209 100644 --- a/kartei/tv/hosts/ne.nix +++ b/kartei/tv/hosts/ne.nix @@ -1,6 +1,7 @@ { config, ... }: { extraZones = { "krebsco.de" = '' + @ 60 IN MX 5 ne ne 60 IN A ${config.krebs.hosts.ne.nets.internet.ip4.addr} ne 60 IN AAAA ${config.krebs.hosts.ne.nets.internet.ip6.addr} tv 300 IN NS ne -- cgit v1.2.3 From 687814fc09e4b803e0b0c1d9903911aa379533b4 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 27 Nov 2025 21:21:57 +0100 Subject: kartei: pass whole arg to modules --- kartei/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'kartei') diff --git a/kartei/default.nix b/kartei/default.nix index 046efdd7b..24a9e22b5 100644 --- a/kartei/default.nix +++ b/kartei/default.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: let +{ lib, ... }@arg: let removeTemplate = # TODO don't remove during CI lib.flip builtins.removeAttrs ["template"]; @@ -9,7 +9,7 @@ in { (name: _type: let path = ./. + "/${name}"; in { - krebs = import path { inherit config lib; }; + krebs = import path arg; }) (removeTemplate (lib.filterAttrs -- cgit v1.2.3 From e1363dcb1df2a455700ac3e28045f34d63e4c465 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 27 Nov 2025 21:22:41 +0100 Subject: kartei: lib.mkMerge -> imports Use imports instead of lib.mkMerge and sprinkle some _file attributes to facilitate debugging. --- kartei/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'kartei') diff --git a/kartei/default.nix b/kartei/default.nix index 24a9e22b5..7624807a0 100644 --- a/kartei/default.nix +++ b/kartei/default.nix @@ -3,12 +3,12 @@ # TODO don't remove during CI lib.flip builtins.removeAttrs ["template"]; in { - config = - lib.mkMerge + imports = (lib.mapAttrsToList (name: _type: let path = ./. + "/${name}"; in { + _file = toString path; krebs = import path arg; }) (removeTemplate -- cgit v1.2.3 From aa4582de1e219c68bfe1c06b719e66bf2ebadd5d Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 27 Nov 2025 22:37:55 +0100 Subject: kartei tv: use lib.slib if possilbe --- kartei/tv/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'kartei') diff --git a/kartei/tv/default.nix b/kartei/tv/default.nix index 60369d4df..848646510 100644 --- a/kartei/tv/default.nix +++ b/kartei/tv/default.nix @@ -1,5 +1,5 @@ { config, lib, ... }: let - slib = import ../../lib/pure.nix { inherit lib; }; + slib = lib.slib or (import ../../lib/pure.nix { inherit lib; }); extend = x: f: { lambda = lib.recursiveUpdate x (f x); -- cgit v1.2.3 From 488be4eefda718e715cfeb50214102e90d6588c2 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 27 Nov 2025 22:45:16 +0100 Subject: kartei tv ni: prefix -> prefixLength --- kartei/tv/hosts/ni.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'kartei') diff --git a/kartei/tv/hosts/ni.nix b/kartei/tv/hosts/ni.nix index fed171f23..3e3d81c37 100644 --- a/kartei/tv/hosts/ni.nix +++ b/kartei/tv/hosts/ni.nix @@ -16,13 +16,12 @@ }; nets = { internet = { - ip4 = rec { + ip4 = { addr = "185.162.251.237"; - prefix = "${addr}/32"; }; - ip6 = rec { + ip6 = { addr = "2a03:4000:1a:cf::1"; - prefix = "${addr}/64"; + prefixLength = 64; }; aliases = [ "ni.i" -- cgit v1.2.3 From 6012364a170a0a787881ff39d7d2f74451825dec Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 27 Nov 2025 22:46:33 +0100 Subject: kartei tv ne: specify just prefixLength, not prefix --- kartei/tv/hosts/ne.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'kartei') diff --git a/kartei/tv/hosts/ne.nix b/kartei/tv/hosts/ne.nix index d67df6209..584d7c433 100644 --- a/kartei/tv/hosts/ne.nix +++ b/kartei/tv/hosts/ne.nix @@ -12,13 +12,11 @@ aliases = [ "ne.i" ]; - ip4 = rec { + ip4 = { addr = "159.195.31.38"; - prefix = "${addr}/32"; }; - ip6 = rec { + ip6 = { addr = "2a0a:4cc0:c1:5eb0::1"; - prefix = "${addr}/64"; prefixLength = 64; }; ssh.port = 11423; -- cgit v1.2.3