mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-09-14 14:26:04 +02:00
feat(dns): add sys-svc-dns role and extend parent DNS handling
Introduce sys-svc-dns to bootstrap Cloudflare DNS prerequisites. Validates CLOUDFLARE_API_TOKEN, (optionally) manages CAA for base SLDs, and delegates parent record creation to sys-dns-parent-hosts. Wired into sys-stk-front-pure. sys-dns-parent-hosts: new parent_dns filter builds A/AAAA for each parent host and wildcard children (*.parent). Supports dict/list inputs for CURRENT_PLAY_DOMAINS, optional IPv6, proxied flag, and optional *.apex. Exposes a single parent_build_records entry point. Let’s Encrypt role cleanup: remove DNS/C AA management from sys-svc-letsencrypt; it now focuses on webroot challenge config and renew timer. Fixed path joins and run_once guards. Tests: update unit tests to allow wildcard outputs and dict-based CURRENT_PLAY_DOMAINS. Add generate_base_sld_domains filter. Documentation updates for both roles. Conversation: https://chatgpt.com/share/68c342f7-d20c-800f-b61f-cefeebcf1cd8
This commit is contained in:
24
roles/sys-dns-parent-hosts/README.md
Normal file
24
roles/sys-dns-parent-hosts/README.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# sys-dns-parent-hosts
|
||||
|
||||
Create Cloudflare DNS A/AAAA records only for **parent hosts** (hosts that have children),
|
||||
and always include the **apex** (SLD.TLD) as a parent.
|
||||
|
||||
Examples:
|
||||
- c.wiki.example.com -> parent: wiki.example.com
|
||||
- a.b.example.com -> parent: b.example.com
|
||||
- example.com (apex) -> always included
|
||||
|
||||
## Inputs
|
||||
- parent_dns_domains (list[str], optional): FQDNs to evaluate. If empty, the role flattens CURRENT_PLAY_DOMAINS.
|
||||
- PRIMARY_DOMAIN (apex), defaults_networks.internet.ip4, optional defaults_networks.internet.ip6
|
||||
- Flags:
|
||||
- parent_dns_enabled (bool, default: true)
|
||||
- parent_dns_ipv6_enabled (bool, default: true)
|
||||
- parent_dns_proxied (bool, default: false)
|
||||
|
||||
## Usage
|
||||
- Include the role once after your constructor stage has set CURRENT_PLAY_DOMAINS.
|
||||
|
||||
## Tests
|
||||
Unit tests: tests/unit/roles/sys-dns-parent-hosts/filter_plugins/test_parent_dns.py
|
||||
Run with: pytest -q
|
Reference in New Issue
Block a user