diff options
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" = { |
