Installing CRDs
Custom Resource Definitions (CRDs) extend Kubernetes with new resource types for DNS management.
What are CRDs?
CRDs define the schema for custom resources in Kubernetes. Bindy uses CRDs to represent:
- BIND9 clusters (cluster-level configuration)
- BIND9 instances (individual DNS server deployments)
- DNS zones
- DNS records (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA)
Installation
Install all Bindy CRDs:
kubectl create -f https://raw.githubusercontent.com/firestoned/bindy/main/deploy/crds/
Or install from local files:
cd bindy
kubectl create -f deploy/crds/
Important: Use kubectl create instead of kubectl apply to avoid the 256KB annotation size limit that can occur with large CRDs like Bind9Instance.
Updating Existing CRDs
To update CRDs that are already installed:
kubectl replace --force -f deploy/crds/
The --force flag deletes and recreates the CRDs, which is necessary to avoid annotation size limits.
Verify Installation
Check that all CRDs are installed:
kubectl get crd | grep bindy.firestoned.io
Expected output:
aaaarecords.bindy.firestoned.io 2024-01-01T00:00:00Z
arecords.bindy.firestoned.io 2024-01-01T00:00:00Z
bind9clusters.bindy.firestoned.io 2024-01-01T00:00:00Z
bind9instances.bindy.firestoned.io 2024-01-01T00:00:00Z
caarecords.bindy.firestoned.io 2024-01-01T00:00:00Z
cnamerecords.bindy.firestoned.io 2024-01-01T00:00:00Z
dnszones.bindy.firestoned.io 2024-01-01T00:00:00Z
mxrecords.bindy.firestoned.io 2024-01-01T00:00:00Z
nsrecords.bindy.firestoned.io 2024-01-01T00:00:00Z
srvrecords.bindy.firestoned.io 2024-01-01T00:00:00Z
txtrecords.bindy.firestoned.io 2024-01-01T00:00:00Z
CRD Details
For detailed specifications of each CRD, see: