From 706e30a202c8a1e6a1d269239a9cfcb2575d1030 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Fri, 17 Jul 2026 22:43:27 +1000 Subject: [PATCH] bind-internal: add ceph.unkin.net authoritative zone (#260) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Why The ceph/halb host (`ausyd1nxvm2069`) publishes `dashboard.ceph.unkin.net` via nsupdate to a dedicated `zone ceph.unkin.net.`, which `bind-authoritative` was not authoritative for (NOTZONE). This adds the zone so that record has a home. ## Changes - Add `ceph.unkin.net` BindZone (primary, dynamicUpdate, updateKeyRef client-update) to bind-authoritative, matching the unkin.net/main.unkin.net pattern. ## Note — not the root cause of the 6 missing hosts Log evidence (VictoriaLogs, dns-update-apply on 2069/2070) shows the actual failure is a **host-side bug in the puppet `dns-update` script**: `fqdn()` appends the zone even to records whose name is already fully-qualified (e.g. `au-syd1-pve.main.unkin.net.`, `cobbler.main.unkin.net.`), producing a `..` empty label → `invalid owner name: empty label` → the whole main.unkin.net update `send` fails (reverse PTR, sent first, still lands). That script fix (puppet-prod) is the real blocker; this zone is still needed so the ceph record does not hit NOTZONE afterward. Reviewed-on: https://git.unkin.net/unkin/argocd-apps/pulls/260 Co-authored-by: Ben Vincent Co-committed-by: Ben Vincent --- apps/base/bind-internal/authoritative/zones.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/apps/base/bind-internal/authoritative/zones.yaml b/apps/base/bind-internal/authoritative/zones.yaml index 5e19686..8ed4d71 100644 --- a/apps/base/bind-internal/authoritative/zones.yaml +++ b/apps/base/bind-internal/authoritative/zones.yaml @@ -31,6 +31,22 @@ spec: dynamicUpdate: true updateKeyRef: client-update --- +# ceph.unkin.net: the ceph host (ausyd1nxvm2069/halb) publishes +# dashboard.ceph.unkin.net via nsupdate; puppet targets a dedicated +# `zone ceph.unkin.net.`, so it must exist here or the update gets NOTZONE. +apiVersion: bind.unkin.net/v1alpha1 +kind: BindZone +metadata: + name: ceph-unkin-net + namespace: bind-internal +spec: + clusterRef: bind-authoritative + zoneName: ceph.unkin.net + type: primary + defaultTTL: 600 + dynamicUpdate: true + updateKeyRef: client-update +--- apiVersion: bind.unkin.net/v1alpha1 kind: BindZone metadata: