Crate bindy

Crate bindy 

Source
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 resources
  • reconcilers - Reconciliation logic for each resource type
  • bind9 - BIND9 zone file generation and management
  • bind9_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.