Deploy bind-operator and three BIND DNS tiers
Adds the bind-operator and the three BindClusters that replace the Puppet-managed BIND estate (authoritative / resolver / external-dns). - add apps/base/bind-system: 9 CRDs, operator Deployment, RBAC (ns bind-system) - add apps/base/binddns-auth: authoritative BindCluster + catalog zone + TSIG key - add apps/base/binddns-resolver: recursive-resolver BindCluster with forwarders - add apps/base/binddns-externaldns: dynamic (RFC2136) BindCluster + TSIG key - add au-syd1 overlays for all four apps - register the four apps in the platform ApplicationSet - add binddns-* namespaces to the platform AppProject destinations - add schemas/bind.unkin.net/*.json so kubeconform validates the new CRs DNS Services are LoadBalancer via PureLB. TSIG key material is generated by the operator into Secrets at runtime (no plain Secrets in git).
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
---
|
||||
# Authoritative masters (replaces the 3x Puppet authoritative servers).
|
||||
# pod-0 is the primary; pods 1-2 replicate via the catalog zone + AXFR/IXFR.
|
||||
apiVersion: bind.unkin.net/v1alpha1
|
||||
kind: BindCluster
|
||||
metadata:
|
||||
name: auth
|
||||
namespace: binddns-auth
|
||||
spec:
|
||||
mode: authoritative
|
||||
replicas: 3
|
||||
storageClassName: cephrbd-fast-delete
|
||||
storageSize: 2Gi
|
||||
service:
|
||||
type: LoadBalancer
|
||||
annotations:
|
||||
purelb.io/service-group: common
|
||||
external-dns.alpha.kubernetes.io/hostname: ns-auth.k8s.syd1.au.unkin.net
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 512Mi
|
||||
---
|
||||
# Catalog zone so new BindZones auto-provision onto the secondaries.
|
||||
apiVersion: bind.unkin.net/v1alpha1
|
||||
kind: BindCatalogZone
|
||||
metadata:
|
||||
name: auth-catalog
|
||||
namespace: binddns-auth
|
||||
spec:
|
||||
clusterRef: auth
|
||||
zoneName: catalog.internal
|
||||
transferKeyRef: transfer-key
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- tsigkey.yaml
|
||||
- cluster.yaml
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: binddns-auth
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
# Zone-transfer / catalog key. The operator generates the material into a
|
||||
# Secret (transfer-key-tsig); nothing sensitive is committed to git.
|
||||
apiVersion: bind.unkin.net/v1alpha1
|
||||
kind: BindTSIGKey
|
||||
metadata:
|
||||
name: transfer-key
|
||||
namespace: binddns-auth
|
||||
spec:
|
||||
algorithm: hmac-sha256
|
||||
Reference in New Issue
Block a user