{ config, lib, dns, ... }: with dns.lib.combinators; let my = config.my; web01 = { CNAME = ["web01.dmi01.infra.dgnum.eu"]; }; public-cof-ips = { A = [ "45.13.104.27" ]; AAAA = [ "2001:470:1f13:187:c08e:feff:fe4d:f5f5" ]; }; delegateACMEDNSChallenge = acme: { _acme-challenge.CNAME = [ acme ]; }; mkProxyRecord = AAAA: { inherit AAAA; A = [ "45.13.104.29" ]; }; dualstack = { A = my.ipv4; AAAA = my.ipv6.standard; }; in dualstack // { SOA = { nameServer = "ns1.${my.subZone}."; adminEmail = my.email; serial = 2023122101; # Y M D Version }; NS = [ "ns1.${my.subZone}." ]; CAA = letsEncrypt my.email; subdomains = { git = web01; drone = dualstack; monitoring = dualstack; auth = dualstack; push = dualstack; core01 = dualstack; ns1 = dualstack; # Non-beta service # Outline notion = web01; # S3 API s3 = web01; # CDN API cdn = web01; gdd = { NS = [ "ns1.gdd.${my.subZone}." ]; subdomains.ns1.AAAA = [ "2001:470:1f13:187:350a:214a:639c:b97b" ]; AAAA = [ "2001:470:1f13:187:350a:214a:639c:b97b" ]; }; acme = { NS = [ "acme.${my.subZone}." ]; A = my.ipv4; AAAA = [ my.ipv6.acme ]; }; beta = public-cof-ips // { subdomains = { traque = mkProxyRecord [ "2001:470:1f13:187:f053:94ff:fe46:9664" ]; nuage = web01; todo = web01; minecraft = web01; factorio = web01; home = web01; pads = web01 // { subdomains = { api = web01; files = web01; sandbox = web01; }; }; docs = web01; jurisprudens = web01; rstudio = web01; }; }; internal.subdomains = { # Routers router01.A = [ "10.1.1.1" ]; router02.A = [ "10.1.1.1" ]; # Hypervisors pve01 = { A = [ "10.1.1.10" ]; subdomains = { idrac.A = [ "10.1.2.20" ]; } // delegateACMEDNSChallenge "7c663a49-151c-4eea-a34f-725ff9f19d41.acme.rz.ens.wtf."; }; # Core machines core01.A = [ "10.1.1.20" ]; }; }; }