Deploying the Operator¶
The Bindy operator watches for DNS resources and manages BIND9 configurations.
Prerequisites¶
- The
bindybinary (same version as the image you want to deploy) kubectlconfigured with cluster access
Installation¶
The recommended way to deploy the operator is with the bindy CLI. A single command handles namespace creation, CRD installation, RBAC, and the Deployment — all via server-side apply (idempotent, safe to re-run):
This creates in order:
Namespace/bindy-system- All 12 CRDs (
bindy.firestoned.io/v1beta1) ServiceAccount/bindyClusterRole/bindy-role— operator permissionsClusterRole/bindy-admin-role— admin/destructive permissionsClusterRoleBinding/bindy-rolebindingDeployment/bindy
Air-gapped / private registry
This producesharbor.corp.internal/bindy-mirror/bindy:<version> instead of ghcr.io/firestoned/bindy:<version>. See the CLI reference for the full workflow.
Wait for Readiness¶
Verify Deployment¶
Check operator pod status:
Expected output:
Check operator logs:
You should see:
{"timestamp":"2024-01-01T00:00:00Z","level":"INFO","message":"Starting Bindy operator"}
{"timestamp":"2024-01-01T00:00:01Z","level":"INFO","message":"Watching DNSZone resources"}
{"timestamp":"2024-01-01T00:00:01Z","level":"INFO","message":"Watching DNS record resources"}
Configuration¶
Environment Variables¶
Configure the operator via environment variables:
| Variable | Default | Description |
|---|---|---|
RUST_LOG |
info |
Log level (error, warn, info, debug, trace) |
BIND9_ZONES_DIR |
/etc/bind/zones |
Directory for zone files |
RECONCILE_INTERVAL |
300 |
Reconciliation interval in seconds |
Edit the deployment to customize:
Resource Limits¶
For production, set appropriate resource limits:
High Availability¶
Run multiple replicas with leader election:
Troubleshooting¶
Operator Not Starting¶
-
Check pod events:
-
Check if CRDs are installed:
-
Check RBAC permissions:
High Memory Usage¶
If the operator uses excessive memory:
- Reduce log level:
RUST_LOG=warn - Increase resource limits
- Check for memory leaks in logs
Next Steps¶
- Step-by-Step Guide - Create your first DNS zone
- Configuration - Advanced configuration
- Monitoring - Set up monitoring
What's Next: Scout¶
Want application teams to get DNS records automatically from their Ingress resources — without needing write access to the bindy namespace? Deploy the optional Bindy Scout controller.