pub fn resolve_rndc_config(
instance_config: Option<&RndcKeyConfig>,
role_config: Option<&RndcKeyConfig>,
global_config: Option<&RndcKeyConfig>,
) -> RndcKeyConfigExpand description
Resolve RNDC configuration from multiple sources following precedence order.
§Precedence Order
- Instance level - Highest priority (overrides all others)
- Role level - Primary or Secondary role configuration
- Global level - Cluster-wide configuration
- Default - Auto-generated with default settings
§Arguments
instance_config- Instance-level RNDC configuration (Bind9InstanceSpec.rndc_key)role_config- Role-level RNDC configuration (PrimaryConfig.rndc_keyorSecondaryConfig.rndc_key)global_config- Global RNDC configuration (fromBind9ClusterCommonSpec)
§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);