- Helm chart: Primary и Secondary Deployment, kube-vip LoadBalancer сервисы (UDP+TCP :53), ClusterIP для Web UI, PVC (ReadWriteOnce), Secret, Ingress - CronJob sync (*/5 мин): Python sync.py опрашивает Technitium REST API, создаёт Secondary зоны на secondary и вызывает forceSyncZone для каждой зоны - ExternalDNS (disabled по умолчанию): RFC 2136 DDNS для автоматических DNS-записей из Ingress - Ansible role: validate, namespace, Helm deploy, cleanup secrets, summary с Keenetic-инструкцией - Интеграция: Makefile, playbooks/addons.yml, group_vars/all/addons.yml, vault.yml.example - README с архитектурой, Keenetic-конфигурацией и troubleshooting
52 lines
3.1 KiB
YAML
52 lines
3.1 KiB
YAML
---
|
|
# ── Namespace ─────────────────────────────────────────────────────────────────
|
|
technitium_dns_namespace: technitium-dns
|
|
technitium_dns_release_name: technitium-dns
|
|
|
|
# ── Primary DNS LoadBalancer IP (kube-vip) ────────────────────────────────────
|
|
technitium_dns_primary_ip: "192.168.1.53"
|
|
technitium_dns_primary_node: "" # pin to hostname, empty = soft anti-affinity
|
|
|
|
# ── Secondary DNS (optional HA) ───────────────────────────────────────────────
|
|
technitium_dns_secondary_enabled: true
|
|
technitium_dns_secondary_ip: "192.168.1.54"
|
|
technitium_dns_secondary_node: ""
|
|
|
|
# ── DNS domain served locally ─────────────────────────────────────────────────
|
|
technitium_dns_domain: "home.local"
|
|
|
|
# ── Upstream forwarders ───────────────────────────────────────────────────────
|
|
technitium_dns_forwarders:
|
|
- "1.1.1.1"
|
|
- "8.8.8.8"
|
|
|
|
# ── Recursion policy ──────────────────────────────────────────────────────────
|
|
# AllowOnlyForPrivateNetworks | Allow | Deny
|
|
technitium_dns_recursion: "AllowOnlyForPrivateNetworks"
|
|
|
|
# ── Admin password — set in vault.yml: technitium_dns_admin_password ──────────
|
|
# technitium_dns_admin_password: ""
|
|
|
|
# ── Storage ───────────────────────────────────────────────────────────────────
|
|
technitium_dns_storage_class: "" # empty = cluster default
|
|
technitium_dns_storage_size: "1Gi"
|
|
|
|
# ── Web UI via Ingress ────────────────────────────────────────────────────────
|
|
technitium_dns_ingress_enabled: true
|
|
technitium_dns_ingress_class: nginx
|
|
technitium_dns_primary_host: "dns.home.local"
|
|
technitium_dns_secondary_host: "dns-secondary.home.local"
|
|
technitium_dns_ingress_tls_enabled: false
|
|
technitium_dns_ingress_tls_secret: ""
|
|
|
|
# ── Zone sync CronJob (primary → secondary) ───────────────────────────────────
|
|
technitium_dns_sync_enabled: true
|
|
technitium_dns_sync_schedule: "*/5 * * * *"
|
|
|
|
# ── ExternalDNS via RFC 2136 DDNS (optional) ─────────────────────────────────
|
|
technitium_dns_externaldns_enabled: false
|
|
technitium_dns_externaldns_domain_filter:
|
|
- "home.local"
|
|
technitium_dns_externaldns_policy: "upsert-only"
|
|
technitium_dns_externaldns_txt_owner_id: "k3s-home"
|