Expand description
Custom Resource Definitions (CRDs) for DNS management.
This module defines all Kubernetes Custom Resource Definitions used by Bindy to manage BIND9 DNS infrastructure declaratively.
§Resource Types
§Infrastructure
Bind9Instance- Represents a BIND9 DNS server deployment
§DNS Zones
DNSZone- Defines DNS zones with SOA records and instance targeting
§DNS Records
ARecord- IPv4 address recordsAAAARecord- IPv6 address recordsCNAMERecord- Canonical name (alias) recordsMXRecord- Mail exchange recordsTXTRecord- Text records (SPF, DKIM, DMARC, etc.)NSRecord- Nameserver delegation recordsSRVRecord- Service location recordsCAARecord- Certificate authority authorization records
§Example: Creating a DNS Zone
use bindy::crd::{DNSZoneSpec, SOARecord};
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 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,
};§Example: Creating DNS Records
use bindy::crd::{ARecordSpec, MXRecordSpec};
// A Record for www.example.com
let a_record = ARecordSpec {
name: "www".to_string(),
ipv4_address: "192.0.2.1".to_string(),
ttl: Some(300),
};
// MX Record for mail routing
let mx_record = MXRecordSpec {
name: "@".to_string(),
priority: 10,
mail_server: "mail.example.com.".to_string(),
ttl: Some(3600),
};Structs§
- AAAA
Record - AAAARecord maps a DNS hostname to an IPv6 address. This is the IPv6 equivalent of an A record.
- AAAA
Record Spec AAAARecordmaps a DNS name to an IPv6 address.- ARecord
- ARecord maps a DNS hostname to an IPv4 address. Multiple A records for the same name enable round-robin DNS load balancing.
- ARecord
Spec ARecordmaps a DNS name to an IPv4 address.- Bind9
Cluster - Bind9Cluster defines a namespace-scoped logical grouping of BIND9 DNS server instances. Use this for tenant-managed DNS infrastructure isolated to a specific namespace. For platform-managed cluster-wide DNS, use ClusterBind9Provider instead.
- Bind9
Cluster Common Spec - Common specification fields shared between namespace-scoped and cluster-scoped BIND9 clusters.
- Bind9
Cluster Spec Bind9Cluster- Namespace-scoped DNS cluster for tenant-managed infrastructure.- Bind9
Cluster Status Bind9Clusterstatus- Bind9
Config - BIND9 server configuration options
- Bind9
Instance - Bind9Instance represents a BIND9 DNS server deployment in Kubernetes. Each instance creates a Deployment, Service, ConfigMap, and Secret for managing a BIND9 server with RNDC protocol communication.
- Bind9
Instance Spec Bind9Instancerepresents a BIND9 DNS server deployment in Kubernetes.- Bind9
Instance Status Bind9Instancestatus- Bindcar
Config - Bindcar container configuration
- CAARecord
- CAARecord specifies which certificate authorities are authorized to issue certificates for a domain. Enhances domain security and certificate issuance control.
- CAARecord
Spec CAARecordspecifies Certificate Authority Authorization.- CNAME
Record - CNAMERecord creates a DNS alias from one hostname to another. A CNAME cannot coexist with other record types for the same name.
- CNAME
Record Spec CNAMERecordcreates an alias from one name to another.- Cluster
Bind9 Provider - ClusterBind9Provider defines a cluster-scoped BIND9 DNS provider that manages DNS infrastructure accessible from all namespaces. Use this for platform-managed DNS infrastructure. For tenant-managed namespace-scoped DNS, use Bind9Cluster instead.
- Cluster
Bind9 Provider Spec ClusterBind9Provider- Cluster-scoped BIND9 DNS provider for platform teams.- Condition
- Condition represents an observation of a resource’s current state.
- Config
MapRefs ConfigMapreferences for BIND9 configuration files- DNSSEC
Config - DNSSEC (DNS Security Extensions) configuration
- DNSZone
- DNSZone represents an authoritative DNS zone managed by BIND9. Each DNSZone defines a zone (e.g., example.com) with SOA record parameters. Can reference either a namespace-scoped Bind9Cluster or cluster-scoped ClusterBind9Provider.
- DNSZone
Spec DNSZonedefines a DNS zone to be managed by BIND9.- DNSZone
Status DNSZonestatus- Image
Config - Container image configuration for BIND9 instances
- Label
Selector - Label selector to match Kubernetes resources.
- Label
Selector Requirement - A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- MXRecord
- MXRecord specifies mail exchange servers for a domain. Lower priority values indicate higher preference for mail delivery.
- MXRecord
Spec MXRecordspecifies mail servers for a domain.- NSRecord
- NSRecord delegates a subdomain to authoritative nameservers. Used for subdomain delegation to different DNS providers or servers.
- NSRecord
Spec NSRecorddelegates a subdomain to other nameservers.- Persistent
Volume Claim Config PersistentVolumeClaimconfiguration- Primary
Config - Primary instance configuration
- Record
Reference - Reference to a DNS record associated with a zone
- Record
Source - Source for DNS records to include in a zone.
- Record
Status - Generic record status
- Rndc
Secret Ref - Reference to a Kubernetes Secret containing RNDC/TSIG credentials.
- SOARecord
- SOA (Start of Authority) Record specification.
- SRVRecord
- SRVRecord specifies the hostname and port of servers for specific services. The record name follows the format _service._proto (e.g., _ldap._tcp).
- SRVRecord
Spec SRVRecordspecifies the location of services.- Secondary
Config - Secondary instance configuration
- Secondary
Zone Config - Secondary Zone configuration
- Service
Config - Service configuration including spec and annotations
- Storage
Config - Storage configuration for zone files
- TSIGKey
- TSIG Key configuration for authenticated zone transfers (deprecated in favor of
RndcSecretRef) - TXTRecord
- TXTRecord stores arbitrary text data in DNS. Commonly used for SPF, DKIM, DMARC policies, and domain verification.
- TXTRecord
Spec TXTRecordholds arbitrary text data.
Enums§
- Rndc
Algorithm - RNDC/TSIG algorithm for authenticated communication and zone transfers.
- Server
Role - Server role in the DNS cluster.
- Storage
Type - Storage type for zone files