Module reconcilers

Module reconcilers 

Source
Expand description

Kubernetes reconciliation controllers for DNS resources.

This module contains the reconciliation logic for all Bindy Custom Resources. Each reconciler watches for changes to its respective resource type and updates BIND9 configurations accordingly.

§Reconciliation Architecture

Bindy follows the standard Kubernetes controller pattern:

  1. Watch - Monitor resource changes via Kubernetes API
  2. Reconcile - Compare desired state (CRD spec) with actual state
  3. Update - Modify BIND9 configuration to match desired state
  4. Status - Report reconciliation results back to Kubernetes

§Available Reconcilers

§Infrastructure

§DNS Zones

§DNS Records

§Example: Using a Reconciler

use bindy::reconcilers::reconcile_dnszone;
use bindy::crd::DNSZone;
use bindy::bind9::Bind9Manager;
use kube::Client;

async fn reconcile_zone(dnszone: DNSZone) -> anyhow::Result<()> {
    let client = Client::try_default().await?;
    let zone_manager = Bind9Manager::new();

    reconcile_dnszone(client, dnszone, &zone_manager).await?;
    Ok(())
}

Re-exports§

pub use bind9cluster::delete_bind9cluster;
pub use bind9cluster::reconcile_bind9cluster;
pub use bind9instance::delete_bind9instance;
pub use bind9instance::reconcile_bind9instance;
pub use clusterbind9provider::delete_clusterbind9provider;
pub use clusterbind9provider::reconcile_clusterbind9provider;
pub use dnszone::delete_dnszone;
pub use dnszone::find_zones_selecting_record;
pub use dnszone::reconcile_dnszone;
pub use records::reconcile_a_record;
pub use records::reconcile_aaaa_record;
pub use records::reconcile_caa_record;
pub use records::reconcile_cname_record;
pub use records::reconcile_mx_record;
pub use records::reconcile_ns_record;
pub use records::reconcile_srv_record;
pub use records::reconcile_txt_record;

Modules§

bind9cluster
BIND9 cluster reconciliation logic.
bind9instance
BIND9 instance reconciliation logic.
clusterbind9provider
BIND9 global cluster (cluster-scoped) reconciliation logic.
dnszone
DNS zone reconciliation logic.
finalizers
Generic finalizer management for Kubernetes resources.
records
DNS record reconciliation logic.
resources
Generic resource creation and update helpers for Kubernetes resources.
status
Status condition helpers for Kubernetes resources.

Functions§

should_reconcile
Check if a resource’s spec has changed by comparing generation with observed_generation.
status_changed
Check if a status value has actually changed compared to the current status.