Retire prepare-zones.sh pipeline; zones/ is now the served form

Big migration: the source/prepared split is gone. Each zones/*.zone is
now an RFC-compliant zone file that CoreDNS reads directly. Editing a
record is just edit + bump SOA + commit. CoreDNS auto-reloads within
30s; HE pulls on its own 300s SOA-refresh cycle.

Why: groundwork for the coredns-rfc2136 plugin to edit zones in place
without juggling a source/prepared transformation step. Also reduces
the mental model from "edit source, run prep, push" to just "edit".

Changes:
- zones/*.zone: 84 files migrated from Vultr-export form to RFC-compliant
  form (SOA injected, Vultr NS replaced with HE NS, CNAME/MX/NS rdata
  dot-terminated, apex lines get explicit @ prefix). Diff is mechanical
  and byte-count is unchanged (~340K) -- pure formatting promotion.
- docker-compose.yml: bind ./zones:/zones:ro (was ./zones-prepared)
- Makefile: dropped 'prep' target. 'reload' is now a no-op explainer.
  'tls-up' no longer depends on prep. 'clean' no longer wipes prepared.
- scripts/prepare-zones.sh moved to scripts/archive/ (kept for reference).
- .gitignore: updated comment for zones-prepared/ (now legacy).

NOT in this commit (follow-ups):
- CLAUDE.md updates documenting the new workflow.
- scripts/bump-serials.sh helper for manual-edit SOA bumping.
- coredns-rfc2136 plugin refactor (Phase 2b in the plan).
This commit is contained in:
Ryan Malloy 2026-05-21 11:14:42 -06:00
parent a9256f8ba4
commit 6d72d65642
88 changed files with 2125 additions and 795 deletions

View file

@ -1,24 +1,40 @@
; Zone file for upc.llc
; Generated by mcp-vultr
; Auto-prepared by scripts/prepare-zones.sh on 2026-05-21T11:12:50-06:00
; Source: zones/upc.llc.zone
$ORIGIN upc.llc.
$TTL 3600
@ 3600 IN SOA ns1.he.net. admin.upc.llc. (
2026052102 ; serial — bump per change (SERIAL=YYYYMMDDNN make prep)
300 ; refresh (5 min) — slaves poll us this often;
; tightened from 3600 to nudge HE's internal
; puller→anycast replication
120 ; retry (2 min) — kept < refresh per RFC 1912
604800 ; expire (1 week)
60 ; minimum (1 min) — negative-cache TTL on public
; resolvers; shrinks the window when an old
; NXDOMAIN keeps showing after we add a name
)
@ 3600 IN NS ns1.he.net.
@ 3600 IN NS ns2.he.net.
@ 3600 IN NS ns3.he.net.
@ 3600 IN NS ns4.he.net.
@ 3600 IN NS ns5.he.net.
300 IN NS ns1.vultr.com
300 IN NS ns2.vultr.com
l 300 IN A 127.0.0.1
300 IN A 108.61.23.129
@ 300 IN A 108.61.23.129
* 300 IN A 108.61.23.129
300 IN AAAA 2001:19f0:5c01:12ca:5400:5ff:fe35:a427
@ 300 IN AAAA 2001:19f0:5c01:12ca:5400:5ff:fe35:a427
* 300 IN AAAA 2001:19f0:5c01:12ca:5400:5ff:fe35:a427
*.l 300 IN CNAME l.upc.llc
mail 300 IN CNAME mail.supported.systems
autoconfig 600 IN CNAME mail.upc.llc
*.portal.l 300 IN CNAME portal.l.upc.llc
*.s3 300 IN CNAME s3.upc.llc
*.report.l 300 IN CNAME report.l.upc.llc
*.report 300 IN CNAME report.upc.llc
300 IN MX 10 upc.llc
300 IN MX 10 mail.supported.systems
*.l 300 IN CNAME l.upc.llc.
mail 300 IN CNAME mail.supported.systems.
autoconfig 600 IN CNAME mail.upc.llc.
*.portal.l 300 IN CNAME portal.l.upc.llc.
*.s3 300 IN CNAME s3.upc.llc.
*.report.l 300 IN CNAME report.l.upc.llc.
*.report 300 IN CNAME report.upc.llc.
@ 300 IN MX 10 upc.llc.
@ 300 IN MX 10 mail.supported.systems.
_acme-challenge.l 300 IN TXT "LZGNwW9DGUuN2ly0vm5czSrRIG20lqx--6Gd4j1x71w"
_acme-challenge.l 300 IN TXT "sSIwSVfZ2ceW8ie8aYXrzf73iEWMZSXl9e6ogxFQNCc"
_acme-challenge.l 300 IN TXT "Z4fh4rHw8d-GR-L3cnocj8o-8OpI5GccMwWRQiUnPd0"
@ -26,7 +42,7 @@ _acme-challenge.l 300 IN TXT "8kd2q8Ib7DFvq8SAGsKTtxU2qLV7L8E_ePD8Ww2MVfA"
_acme-challenge.l 300 IN TXT "q-aWCBE1lMD0_xcNzwWydAW7bk3tLzMIWYi2z0WapWE"
_acme-challenge.l 300 IN TXT "p3G13Tmd-S47IDPo2Zjq4NJjQZ9qJyZw_izjte3Y9ps"
_acme-challenge.www.l 300 IN TXT "9vR7zAbgH0Tbfhmz5Mi94XtjS1St8r7ZOulkgn1Jo_s"
300 IN TXT "v=spf1 include:mail.supported.systems ~all"
@ 300 IN TXT "v=spf1 include:mail.supported.systems ~all"
_acme-challenge.s3 300 IN TXT "e_fyF4DWbCUGErurD1HxCWY67I5868wAODGSbqR2CKE"
_acme-challenge.oscar-admin.l 300 IN TXT "CuCSK7VwXgrIkFCniISQTysR9YasyYZGGR_npvLkvTM"
_acme-challenge.or 300 IN TXT "sZUOOMwyY7i0iBeGJDvT770cbxYBZ1YTcJhVSgAm8PM"
@ -43,9 +59,7 @@ _autodiscover._tcp 600 IN SRV 10 0 443 mail.upc.llc.
_submissions._tcp 600 IN SRV 10 0 465 mail.upc.llc.
_imaps._tcp 600 IN SRV 10 0 993 mail.upc.llc.
_pop3s._tcp 600 IN SRV 10 0 995 mail.upc.llc.
; Explicit CNAMEs added to fix RFC 4592 empty-non-terminal cases
; (parent name has _acme-challenge children, so wildcard would skip it)
catalog 300 IN CNAME upc.llc
minio.or 300 IN CNAME upc.llc
or 300 IN CNAME upc.llc
s3 300 IN CNAME upc.llc
catalog 300 IN CNAME upc.llc.
minio.or 300 IN CNAME upc.llc.
or 300 IN CNAME upc.llc.
s3 300 IN CNAME upc.llc.