diff options
| author | Gregor Kleen <gkleen@yggdrasil.li> | 2026-07-29 08:39:50 +0200 |
|---|---|---|
| committer | Gregor Kleen <gkleen@yggdrasil.li> | 2026-07-29 08:39:50 +0200 |
| commit | 516e0d27fe1343af7a122fe45457d714052ac6f4 (patch) | |
| tree | 8ecd678b904cb9bfb6b48d699114e8255b4aa557 /hosts/vidhar/network/dhcp/default.nix | |
| parent | 65edd3e6b30295cf828625edda61138526384478 (diff) | |
| download | nixos-516e0d27fe1343af7a122fe45457d714052ac6f4.tar nixos-516e0d27fe1343af7a122fe45457d714052ac6f4.tar.gz nixos-516e0d27fe1343af7a122fe45457d714052ac6f4.tar.bz2 nixos-516e0d27fe1343af7a122fe45457d714052ac6f4.tar.xz nixos-516e0d27fe1343af7a122fe45457d714052ac6f4.zip | |
...
Diffstat (limited to 'hosts/vidhar/network/dhcp/default.nix')
| -rw-r--r-- | hosts/vidhar/network/dhcp/default.nix | 31 |
1 files changed, 9 insertions, 22 deletions
diff --git a/hosts/vidhar/network/dhcp/default.nix b/hosts/vidhar/network/dhcp/default.nix index 557794e0..e4c3f16e 100644 --- a/hosts/vidhar/network/dhcp/default.nix +++ b/hosts/vidhar/network/dhcp/default.nix | |||
| @@ -256,40 +256,27 @@ in { | |||
| 256 | } | 256 | } |
| 257 | ]; | 257 | ]; |
| 258 | }; | 258 | }; |
| 259 | tsig-keys = [ | ||
| 260 | { name = "local_key"; | ||
| 261 | algorithm = "HMAC-SHA256"; | ||
| 262 | secret-file = "/run/credentials/kea-dhcp-ddns-server.service/local_key"; | ||
| 263 | } | ||
| 264 | ]; | ||
| 259 | }; | 265 | }; |
| 260 | }; | 266 | }; |
| 261 | }; | 267 | }; |
| 262 | 268 | ||
| 263 | systemd.services.kea-dhcp-ddns-server = { | 269 | systemd.services.kea-dhcp-ddns-server = { |
| 264 | preStart = let | ||
| 265 | configLines = [ | ||
| 266 | "<?include \"\${CREDENTIALS_DIRECTORY}/knot-tsig.json.frag\"?>" | ||
| 267 | ] ++ mapAttrsToList (k: v: | ||
| 268 | "\"${k}\": ${builtins.toJSON v}" | ||
| 269 | ) config.services.kea.dhcp-ddns.settings; | ||
| 270 | |||
| 271 | config-template = pkgs.writeText "dhcp-ddns.conf" '' | ||
| 272 | {"DhcpDdns": { | ||
| 273 | ${concatStringsSep ",\n " configLines} | ||
| 274 | }} | ||
| 275 | ''; | ||
| 276 | in '' | ||
| 277 | ${pkgs.envsubst}/bin/envsubst -i "${config-template}" -o "''${RUNTIME_DIRECTORY}/dhcp-ddns.conf" | ||
| 278 | ''; | ||
| 279 | |||
| 280 | serviceConfig = { | 270 | serviceConfig = { |
| 281 | ExecStart = mkForce '' | ||
| 282 | ${pkgs.kea}/bin/kea-dhcp-ddns -c "''${RUNTIME_DIRECTORY}/dhcp-ddns.conf" ${escapeShellArgs config.services.kea.dhcp-ddns.extraArgs} | ||
| 283 | ''; | ||
| 284 | LoadCredential = [ | 271 | LoadCredential = [ |
| 285 | "knot-tsig.json.frag:${config.sops.secrets."kea-knot-tsig.json.frag".path}" | 272 | "local_key:${config.sops.secrets."kea-knot-tsig".path}" |
| 286 | ]; | 273 | ]; |
| 287 | }; | 274 | }; |
| 288 | }; | 275 | }; |
| 289 | 276 | ||
| 290 | sops.secrets."kea-knot-tsig.json.frag" = { | 277 | sops.secrets."kea-knot-tsig" = { |
| 291 | format = "binary"; | 278 | format = "binary"; |
| 292 | sopsFile = ./knot-tsig.json.frag; | 279 | sopsFile = ./knot-tsig; |
| 293 | }; | 280 | }; |
| 294 | 281 | ||
| 295 | services.nginx.virtualHosts."nfsroot.vidhar.yggdrasil" = { | 282 | services.nginx.virtualHosts."nfsroot.vidhar.yggdrasil" = { |
