Crate bindy

Crate bindy 

Source
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 resources
  • reconcilers - Reconciliation logic for each resource type
  • context - Shared context and reflector stores for operators
  • selector - Label selector matching utilities
  • 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: 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 DnsRecordType trait 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.