Consolidate BIND DNS into one bind-internal namespace
ci/woodpecker/pr/kubeconform Pipeline failed
ci/woodpecker/pr/pre-commit Pipeline was successful

Reshapes the three DNS tiers from separate ns-* namespaces into a single
bind-internal namespace and renames the StatefulSets, and scopes the TSIG
keys to their cluster (needs the clusterRef field from operator v0.1.3).

- move the 3 clusters + zones + keys into apps/base/bind-internal:
  BindCluster names bind-authoritative / bind-resolvers / bind-externaldns
  (= StatefulSet names), LBs kept on .6/.7/.8, external-dns hostnames renamed
- add clusterRef to the transfer-key (bind-authoritative) and externaldns-key
  (bind-externaldns) TSIG keys so they no longer leak across clusters
- remove the old ns-auth / ns-resolver / ns-externaldns apps
- ApplicationSet + AppProject: replace the three ns-* entries with bind-internal
- bump bind-system operator to v0.1.3 (CRD install link + image) so the CRDs
  understand the new clusterRef field
- operator stays in bind-system (unchanged)
This commit is contained in:
2026-07-03 23:52:36 +10:00
parent 7c9a697452
commit b67d873c66
20 changed files with 71 additions and 91 deletions
@@ -4,8 +4,8 @@
apiVersion: bind.unkin.net/v1alpha1 apiVersion: bind.unkin.net/v1alpha1
kind: BindCluster kind: BindCluster
metadata: metadata:
name: auth name: bind-authoritative
namespace: ns-auth namespace: bind-internal
spec: spec:
mode: authoritative mode: authoritative
replicas: 3 replicas: 3
@@ -16,7 +16,7 @@ spec:
annotations: annotations:
purelb.io/service-group: common purelb.io/service-group: common
purelb.io/addresses: 198.18.200.6 purelb.io/addresses: 198.18.200.6
external-dns.alpha.kubernetes.io/hostname: ns-auth.k8s.syd1.au.unkin.net external-dns.alpha.kubernetes.io/hostname: bind-authoritative.k8s.syd1.au.unkin.net
resources: resources:
requests: requests:
cpu: 100m cpu: 100m
@@ -29,9 +29,9 @@ spec:
apiVersion: bind.unkin.net/v1alpha1 apiVersion: bind.unkin.net/v1alpha1
kind: BindCatalogZone kind: BindCatalogZone
metadata: metadata:
name: auth-catalog name: bind-authoritative-catalog
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: catalog.internal zoneName: catalog.internal
transferKeyRef: transfer-key transferKeyRef: transfer-key
@@ -3,7 +3,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- namespace.yaml
- tsigkey.yaml
- cluster.yaml - cluster.yaml
- tsigkey.yaml
- zones.yaml - zones.yaml
@@ -5,6 +5,7 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindTSIGKey kind: BindTSIGKey
metadata: metadata:
name: transfer-key name: transfer-key
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: bind-authoritative
algorithm: hmac-sha256 algorithm: hmac-sha256
@@ -9,9 +9,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: unkin-net name: unkin-net
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: unkin.net zoneName: unkin.net
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -20,9 +20,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: main-unkin-net name: main-unkin-net
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: main.unkin.net zoneName: main.unkin.net
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -31,9 +31,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 13-18-198-in-addr-arpa name: 13-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 13.18.198.in-addr.arpa zoneName: 13.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -42,9 +42,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 14-18-198-in-addr-arpa name: 14-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 14.18.198.in-addr.arpa zoneName: 14.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -53,9 +53,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 15-18-198-in-addr-arpa name: 15-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 15.18.198.in-addr.arpa zoneName: 15.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -64,9 +64,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 16-18-198-in-addr-arpa name: 16-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 16.18.198.in-addr.arpa zoneName: 16.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -75,9 +75,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 17-18-198-in-addr-arpa name: 17-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 17.18.198.in-addr.arpa zoneName: 17.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -86,9 +86,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 19-18-198-in-addr-arpa name: 19-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 19.18.198.in-addr.arpa zoneName: 19.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -97,9 +97,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 20-18-198-in-addr-arpa name: 20-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 20.18.198.in-addr.arpa zoneName: 20.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -108,9 +108,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 21-18-198-in-addr-arpa name: 21-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 21.18.198.in-addr.arpa zoneName: 21.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -119,9 +119,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 22-18-198-in-addr-arpa name: 22-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 22.18.198.in-addr.arpa zoneName: 22.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -130,9 +130,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 23-18-198-in-addr-arpa name: 23-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 23.18.198.in-addr.arpa zoneName: 23.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -141,9 +141,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 24-18-198-in-addr-arpa name: 24-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 24.18.198.in-addr.arpa zoneName: 24.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -152,9 +152,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 25-18-198-in-addr-arpa name: 25-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 25.18.198.in-addr.arpa zoneName: 25.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -163,9 +163,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 26-18-198-in-addr-arpa name: 26-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 26.18.198.in-addr.arpa zoneName: 26.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -174,9 +174,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 27-18-198-in-addr-arpa name: 27-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 27.18.198.in-addr.arpa zoneName: 27.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -185,9 +185,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 28-18-198-in-addr-arpa name: 28-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 28.18.198.in-addr.arpa zoneName: 28.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -196,9 +196,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 29-18-198-in-addr-arpa name: 29-18-198-in-addr-arpa
namespace: ns-auth namespace: bind-internal
spec: spec:
clusterRef: auth clusterRef: bind-authoritative
zoneName: 29.18.198.in-addr.arpa zoneName: 29.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -5,8 +5,8 @@
apiVersion: bind.unkin.net/v1alpha1 apiVersion: bind.unkin.net/v1alpha1
kind: BindCluster kind: BindCluster
metadata: metadata:
name: externaldns name: bind-externaldns
namespace: ns-externaldns namespace: bind-internal
spec: spec:
mode: authoritative mode: authoritative
replicas: 3 replicas: 3
@@ -17,7 +17,7 @@ spec:
annotations: annotations:
purelb.io/service-group: common purelb.io/service-group: common
purelb.io/addresses: 198.18.200.8 purelb.io/addresses: 198.18.200.8
external-dns.alpha.kubernetes.io/hostname: ns-externaldns.k8s.syd1.au.unkin.net external-dns.alpha.kubernetes.io/hostname: bind-externaldns.k8s.syd1.au.unkin.net
resources: resources:
requests: requests:
cpu: 100m cpu: 100m
@@ -31,9 +31,9 @@ spec:
apiVersion: bind.unkin.net/v1alpha1 apiVersion: bind.unkin.net/v1alpha1
kind: BindCatalogZone kind: BindCatalogZone
metadata: metadata:
name: externaldns-catalog name: bind-externaldns-catalog
namespace: ns-externaldns namespace: bind-internal
spec: spec:
clusterRef: externaldns clusterRef: bind-externaldns
zoneName: catalog.externaldns.internal zoneName: catalog.externaldns.internal
transferKeyRef: externaldns-key transferKeyRef: externaldns-key
@@ -3,7 +3,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- namespace.yaml
- tsigkey.yaml
- cluster.yaml - cluster.yaml
- tsigkey.yaml
- zones.yaml - zones.yaml
@@ -5,6 +5,7 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindTSIGKey kind: BindTSIGKey
metadata: metadata:
name: externaldns-key name: externaldns-key
namespace: ns-externaldns namespace: bind-internal
spec: spec:
clusterRef: bind-externaldns
algorithm: hmac-sha256 algorithm: hmac-sha256
@@ -7,9 +7,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: k8s-syd1-au-unkin-net name: k8s-syd1-au-unkin-net
namespace: ns-externaldns namespace: bind-internal
spec: spec:
clusterRef: externaldns clusterRef: bind-externaldns
zoneName: k8s.syd1.au.unkin.net zoneName: k8s.syd1.au.unkin.net
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -22,9 +22,9 @@ apiVersion: bind.unkin.net/v1alpha1
kind: BindZone kind: BindZone
metadata: metadata:
name: 200-18-198-in-addr-arpa name: 200-18-198-in-addr-arpa
namespace: ns-externaldns namespace: bind-internal
spec: spec:
clusterRef: externaldns clusterRef: bind-externaldns
zoneName: 200.18.198.in-addr.arpa zoneName: 200.18.198.in-addr.arpa
type: primary type: primary
defaultTTL: 600 defaultTTL: 600
@@ -3,4 +3,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- ../../../base/ns-auth - namespace.yaml
- authoritative
- resolvers
- externaldns
@@ -2,4 +2,4 @@
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
name: ns-auth name: bind-internal
@@ -4,8 +4,8 @@
apiVersion: bind.unkin.net/v1alpha1 apiVersion: bind.unkin.net/v1alpha1
kind: BindCluster kind: BindCluster
metadata: metadata:
name: resolver name: bind-resolvers
namespace: ns-resolver namespace: bind-internal
spec: spec:
mode: resolver mode: resolver
replicas: 3 replicas: 3
@@ -16,7 +16,7 @@ spec:
annotations: annotations:
purelb.io/service-group: common purelb.io/service-group: common
purelb.io/addresses: 198.18.200.7 purelb.io/addresses: 198.18.200.7
external-dns.alpha.kubernetes.io/hostname: ns-resolver.k8s.syd1.au.unkin.net external-dns.alpha.kubernetes.io/hostname: bind-resolvers.k8s.syd1.au.unkin.net
forwarders: forwarders:
- 1.1.1.1 - 1.1.1.1
- 9.9.9.9 - 9.9.9.9
@@ -3,5 +3,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- namespace.yaml
- cluster.yaml - cluster.yaml
+1 -1
View File
@@ -21,7 +21,7 @@ spec:
runAsNonRoot: true runAsNonRoot: true
containers: containers:
- name: operator - name: operator
image: git.unkin.net/unkin/bind-operator:v0.1.2 image: git.unkin.net/unkin/bind-operator:v0.1.3
args: args:
- --metrics-bind-address=:8080 - --metrics-bind-address=:8080
- --health-probe-bind-address=:8081 - --health-probe-bind-address=:8081
+1 -1
View File
@@ -6,6 +6,6 @@ resources:
- namespace.yaml - namespace.yaml
# CRDs are pulled from the bind-operator repo at the matching tag rather than # CRDs are pulled from the bind-operator repo at the matching tag rather than
# vendored here, so they never drift from the operator. # vendored here, so they never drift from the operator.
- https://git.unkin.net/unkin/bind-operator/raw/tag/v0.1.1/config/crd/install.yaml - https://git.unkin.net/unkin/bind-operator/raw/tag/v0.1.3/config/crd/install.yaml
- rbac.yaml - rbac.yaml
- deployment.yaml - deployment.yaml
-5
View File
@@ -1,5 +0,0 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: ns-externaldns
-5
View File
@@ -1,5 +0,0 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: ns-resolver
@@ -3,4 +3,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- ../../../base/ns-resolver - ../../../base/bind-internal
@@ -1,6 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../../base/ns-externaldns
+1 -3
View File
@@ -13,9 +13,7 @@ spec:
- path: apps/overlays/*/authentik - path: apps/overlays/*/authentik
- path: apps/overlays/*/artifactapi - path: apps/overlays/*/artifactapi
- path: apps/overlays/*/bind-system - path: apps/overlays/*/bind-system
- path: apps/overlays/*/ns-auth - path: apps/overlays/*/bind-internal
- path: apps/overlays/*/ns-resolver
- path: apps/overlays/*/ns-externaldns
- path: apps/overlays/*/age-api - path: apps/overlays/*/age-api
- path: apps/overlays/*/cattle-system - path: apps/overlays/*/cattle-system
- path: apps/overlays/*/cert-manager - path: apps/overlays/*/cert-manager
+1 -5
View File
@@ -21,11 +21,7 @@ spec:
server: https://kubernetes.default.svc server: https://kubernetes.default.svc
- namespace: 'authentik' - namespace: 'authentik'
server: https://kubernetes.default.svc server: https://kubernetes.default.svc
- namespace: 'ns-auth' - namespace: 'bind-internal'
server: https://kubernetes.default.svc
- namespace: 'ns-resolver'
server: https://kubernetes.default.svc
- namespace: 'ns-externaldns'
server: https://kubernetes.default.svc server: https://kubernetes.default.svc
- namespace: 'cert-manager' - namespace: 'cert-manager'
server: https://kubernetes.default.svc server: https://kubernetes.default.svc