e030f07986
**Stacked on #228** (needs operator v0.1.5). Merge #228 first; the diff collapses to just this after. ## Why Writes (RFC2136/nsupdate) must go to pod-0 — the round-robin read Service would land them on a secondary (rejected). Adds a dedicated write endpoint per cluster (operator v0.1.5 `primaryService`). ## Changes - `bind-authoritative`: LoadBalancer write endpoint on **198.18.200.9** (`bind-authoritative-primary`) - `bind-externaldns`: ClusterIP write endpoint (`bind-externaldns-primary`, for in-cluster writers) - regenerate the bindcluster kubeconform schema (primaryService + externalTrafficPolicy) ## Deferred external-dns is **not** repointed at `bind-externaldns-primary` yet: it authenticates with the existing TSIG key, which the operator-generated key won't match until the planned Vault-sync + secret-reflection features exist. Until then external-dns keeps writing to the puppet externaldns. ## Validated kustomize build + kubeconform (3 BindClusters valid against the v0.1.5 schema). --------- Co-authored-by: BenVincent <benvin@main.unkin.net> Reviewed-on: #229 Co-authored-by: Ben Vincent <ben@unkin.net> Co-committed-by: Ben Vincent <ben@unkin.net>
43 lines
1.2 KiB
YAML
43 lines
1.2 KiB
YAML
---
|
|
# external-dns tier (replaces the 3x Puppet external-dns servers). An ordinary
|
|
# authoritative cluster; external-dns writes to its zones via RFC2136 because
|
|
# those BindZones set dynamicUpdate (allow-update { key externaldns-key; }).
|
|
apiVersion: bind.unkin.net/v1alpha1
|
|
kind: BindCluster
|
|
metadata:
|
|
name: bind-externaldns
|
|
namespace: bind-internal
|
|
spec:
|
|
mode: authoritative
|
|
replicas: 3
|
|
storageClassName: cephrbd-fast-delete
|
|
storageSize: 1Gi
|
|
service:
|
|
type: LoadBalancer
|
|
externalTrafficPolicy: Local
|
|
annotations:
|
|
purelb.io/service-group: common
|
|
purelb.io/addresses: 198.18.200.8
|
|
external-dns.alpha.kubernetes.io/hostname: bind-externaldns.k8s.syd1.au.unkin.net
|
|
primaryService:
|
|
type: ClusterIP
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: "1"
|
|
memory: 512Mi
|
|
---
|
|
# Catalog zone so the dynamic zones replicate onto the cluster's secondaries
|
|
# (external-dns writes to the primary; secondaries IXFR the result).
|
|
apiVersion: bind.unkin.net/v1alpha1
|
|
kind: BindCatalogZone
|
|
metadata:
|
|
name: bind-externaldns-catalog
|
|
namespace: bind-internal
|
|
spec:
|
|
clusterRef: bind-externaldns
|
|
zoneName: catalog.externaldns.internal
|
|
transferKeyRef: externaldns-key
|