Expand description
§Bindy - BIND9 DNS Operator for Kubernetes
Bindy is a high-performance Kubernetes operator written in Rust that manages BIND9 DNS infrastructure through Custom Resource Definitions (CRDs).
§Overview
This library provides the core functionality for the Bindy DNS operator, 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 typecontext- Shared context and reflector stores for operatorsselector- Label selector matching utilitiesbind9- 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: None,
soa_record: soa,
ttl: Some(3600),
name_servers: None,
name_server_ips: None,
records_from: None,
bind9_instances_from: None,
dnssec_policy: 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
- bootstrap
- Bootstrap logic for
bindy bootstrap. - constants
- Global constants for the Bindy operator.
- context
- Shared context for all operators with reflector stores.
- crd
- Custom Resource Definitions (CRDs) for DNS management.
- crd_
docs - Module-level documentation for CRD types
- ddns
- Dynamic DNS update utilities for BIND9 via RFC 2136.
- 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.
- record_
impls - Implementations of
DnsRecordTypetrait for all DNS record types. - record_
operator - Generic DNS record operator implementation.
- record_
wrappers - Record reconciliation wrapper helpers and macro.
- scout
- Bindy Scout — Ingress-to-ARecord controller.
- selector
- Label selector matching utilities.
- status_
reasons - Standard Kubernetes status condition reasons for Bindy resources.
Macros§
- generate_
record_ wrapper - Macro to generate record reconciliation wrapper functions.