Expand description
§Bindy - BIND9 DNS Controller for Kubernetes
Bindy is a high-performance Kubernetes controller written in Rust that manages BIND9 DNS infrastructure through Custom Resource Definitions (CRDs).
§Overview
This library provides the core functionality for the Bindy DNS controller, including:
- Custom Resource Definitions (CRDs) for DNS zones and records
- Reconciliation logic for managing BIND9 configurations
- Zone file generation and management
- Integration with Kubernetes API server
§Modules
crd- Custom Resource Definition types for DNS resourcesreconcilers- Reconciliation logic for each resource typebind9- BIND9 zone file generation and managementbind9_resources- BIND9 instance resource management
§Example
use bindy::crd::{DNSZone, DNSZoneSpec, SOARecord};
// Create a DNS zone specification
let soa = SOARecord {
primary_ns: "ns1.example.com.".to_string(),
admin_email: "admin@example.com".to_string(),
serial: 2024010101,
refresh: 3600,
retry: 600,
expire: 604800,
negative_ttl: 86400,
};
let zone_spec = DNSZoneSpec {
zone_name: "example.com".to_string(),
cluster_ref: Some("my-dns-cluster".to_string()),
cluster_provider_ref: None,
soa_record: soa,
ttl: Some(3600),
name_server_ips: None,
records_from: None,
};§Features
- High Performance - Native Rust with async/await
- Label Selectors - Target specific BIND9 instances
- Multi-Record Types - A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
- Status Tracking - Full status subresources
For more information, see the documentation.
Modules§
- bind9
- BIND9 management via HTTP API sidecar.
- bind9_
resources - BIND9 Kubernetes resource builders
- constants
- Global constants for the Bindy operator.
- crd
- Custom Resource Definitions (CRDs) for DNS management.
- crd_
docs - Module-level documentation for CRD types
- dns_
errors - DNS operation and HTTP API error types for Bindy.
- http_
errors - HTTP error code mapping to Kubernetes status condition reasons.
- labels
- Common label and annotation constants used across all reconcilers.
- metrics
- Prometheus metrics for the Bindy DNS operator.
- reconcilers
- Kubernetes reconciliation controllers for DNS resources.
- status_
reasons - Standard Kubernetes status condition reasons for Bindy resources.