auto-update-daily-20260202
 1{ dns, globals, ... }:
 2with dns.lib.combinators;
 3let
 4  # Machines that have VPN entries
 5  machineList = [
 6    "okinawa"
 7    "aomi"
 8    "shikoku"
 9    "sakhalin"
10    "rhea"
11    "aion"
12    "athena"
13    "demeter"
14    "nagoya"
15    "kyushu"
16  ];
17
18  mkVpnMachineRecords = builtins.listToAttrs (
19    map (machineName: {
20      name = machineName;
21      value =
22        let
23          vpnIP = globals.machines.${machineName}.net.vpn.ips;
24          ip = if builtins.isList vpnIP then builtins.head vpnIP else vpnIP;
25        in
26        {
27          A = [ ip ];
28          subdomains."*".A = [ ip ];
29        };
30    }) machineList
31  );
32in
33{
34  SOA = {
35    nameServer = "ns1.vpn.";
36    adminEmail = "admin.vpn";
37    serial = 3;
38    refresh = 604800;
39    retry = 86400;
40    expire = 2419200;
41    minimum = 604800;
42  };
43
44  NS = [
45    "ns1.vpn."
46    "ns2.vpn."
47  ];
48
49  subdomains = {
50    # Name servers
51    ns1.A = [ (builtins.head globals.machines.shikoku.net.vpn.ips) ];
52    ns2.A = [ (builtins.head globals.machines.sakhalin.net.vpn.ips) ];
53
54    # hass - hardcoded as it's not in the machine list
55    hass.A = [ "10.100.0.81" ];
56  }
57  // mkVpnMachineRecords;
58}