resolve_rndc_config

Function resolve_rndc_config 

Source
pub fn resolve_rndc_config(
    instance_config: Option<&RndcKeyConfig>,
    role_config: Option<&RndcKeyConfig>,
    global_config: Option<&RndcKeyConfig>,
) -> RndcKeyConfig
Expand description

Resolve RNDC configuration from multiple sources following precedence order.

§Precedence Order

  1. Instance level - Highest priority (overrides all others)
  2. Role level - Primary or Secondary role configuration
  3. Global level - Cluster-wide configuration
  4. Default - Auto-generated with default settings

§Arguments

  • instance_config - Instance-level RNDC configuration (Bind9InstanceSpec.rndc_key)
  • role_config - Role-level RNDC configuration (PrimaryConfig.rndc_key or SecondaryConfig.rndc_key)
  • global_config - Global RNDC configuration (from Bind9ClusterCommonSpec)

§Returns

Resolved RndcKeyConfig with the highest-precedence configuration applied.

§Examples

use bindy::crd::{RndcKeyConfig, RndcAlgorithm};
use bindy::reconcilers::bind9instance::config::resolve_rndc_config;

let instance_config = Some(RndcKeyConfig {
    auto_rotate: true,
    rotate_after: "30d".to_string(),
    secret_ref: None,
    secret: None,
    algorithm: RndcAlgorithm::HmacSha256,
});

let resolved = resolve_rndc_config(instance_config.as_ref(), None, None);
assert!(resolved.auto_rotate);