summaryrefslogtreecommitdiff
path: root/hosts/vidhar/network/dhcp/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/vidhar/network/dhcp/default.nix')
-rw-r--r--hosts/vidhar/network/dhcp/default.nix31
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" = {