feat: добавить аддон yandex-dns-controller — управление DNS Yandex 360

CronJob (*/5 мин) reconcile ConfigMap → Yandex 360 DNS API.
Safe mode: управляет только записями с managed: true.
Никогда не удаляет неуправляемые записи (MX, DKIM, SPF и т.д.).

Удаление только при двух условиях одновременно:
  1. Запись была создана контроллером (есть в state ConfigMap)
  2. Запись полностью удалена из ConfigMap (не просто managed: false)

Переключение managed: true → false = release без удаления из DNS.

API: /directory/v1/org/{org_id}/domains/{domain}/dns
Fields: A→content, CNAME→target, TXT→text, MX→exchange+preference
This commit is contained in:
Sergey Antropoff
2026-04-26 12:16:32 +03:00
parent 5079975d5e
commit 404347b535
23 changed files with 976 additions and 1 deletions

View File

@@ -58,7 +58,7 @@ DOCKER_RUN := docker run --rm -it \
addon-harbor addon-gitea addon-owncloud addon-nextcloud \
addon-csi-s3 addon-csi-ceph addon-csi-glusterfs addon-vaultwarden \
addon-smtp-relay addon-vault addon-external-secrets \
addon-jenkins addon-netbird addon-mediaserver addon-hysteria2-server addon-splitgw addon-ingress-proxypass addon-ingress-add-domains \
addon-jenkins addon-netbird addon-mediaserver addon-hysteria2-server addon-splitgw addon-ingress-proxypass addon-ingress-add-domains addon-yandex-dns-controller \
add-node remove-node \
add-etcd-node remove-etcd-node \
etcd-backup etcd-restore etcd-list-snapshots \
@@ -428,6 +428,10 @@ addon-ingress-add-domains: _check_env _check_image ## Добавить доме
@printf "$(CYAN)Устанавливаю ingress-add-domains...$(NC)\n"
$(DOCKER_RUN) addon ingress-add-domains $(ARGS)
addon-yandex-dns-controller: _check_env _check_image ## Yandex 360 DNS controller (safe mode, ARGS="-e yandex_dns_controller_dry_run=true")
@printf "$(CYAN)Устанавливаю Yandex 360 DNS Controller...$(NC)\n"
$(DOCKER_RUN) addon yandex-dns-controller $(ARGS)
# Generic цель — любой аддон из addons/<name>/playbook.yml
addon-%: _check_env _check_image
@if [ ! -f "addons/$*/playbook.yml" ]; then \