Files
computer-playbook/roles/sys-svc-dns
Kevin Veen-Birkenbach 96ded68ef4 Refactor DNS handling and add solo record support
- Added 'solo' flag support for A/AAAA, CNAME/MX/TXT, and SRV records in sys-dns-cloudflare-records.
- Simplified sys-svc-dns: removed NS management tasks and CLOUDFLARE_NAMESERVERS default.
- Renamed 03_apex.yml back to 02_apex.yml, adjusted AAAA task name.
- Updated web-app-bluesky DNS tasks: marked critical records with 'solo'.
- Updated web-app-mailu DNS tasks: removed cleanup block, enforced 'solo' on all records.
- Adjusted constructor stage to call domain_mappings with AUTO_BUILD_ALIASES parameter.

Conversation: https://chatgpt.com/share/68cd20d8-9ba8-800f-b070-f7294f072c40
2025-09-19 15:29:11 +02:00
..

sys-svc-dns

Bootstrap and maintain DNS prerequisites for your web stack on Cloudflare.

This role validates credentials and (by default) ensures:

  • A (and optional AAAA) records on the apex (@) for all base SLD domains
  • Wildcard A/AAAA records (*.parent) for parent hosts via sys-dns-wildcards
  • (Optional) CAA records for Lets Encrypt (kept as a commented block you can re-enable)

Runs once per play and is safe to include in stacks that roll out many domains.


What it does

  1. Validate CLOUDFLARE_API_TOKEN is present (early fail if missing).
  2. Ensure apex A/AAAA exist for every base SLD in SYS_SVC_DNS_BASE_DOMAINS:
    • Writes @ Anetworks.internet.ip4
    • Writes @ AAAAnetworks.internet.ip6 (only if global and present)
  3. (Optional) CAA records for all base SLDs (commented in the tasks; enable if you want CAA managed here).
  4. Ensure wildcard parent DNS exists (*.parent derived from children):
    • Delegates to sys-dns-wildcards
    • Creates A (and AAAA if enabled) wildcard records on the Cloudflare zone, optionally proxied.

Parent hosts example:
c.wiki.example.comparent wiki.example.com (plus example.com apex)