pub struct Bind9ClusterCommonSpec {
pub version: Option<String>,
pub primary: Option<PrimaryConfig>,
pub secondary: Option<SecondaryConfig>,
pub image: Option<ImageConfig>,
pub config_map_refs: Option<ConfigMapRefs>,
pub global: Option<Bind9Config>,
pub rndc_secret_refs: Option<Vec<RndcSecretRef>>,
pub acls: Option<BTreeMap<String, Vec<String>>>,
pub volumes: Option<Vec<Volume>>,
pub volume_mounts: Option<Vec<VolumeMount>>,
}Expand description
Common specification fields shared between namespace-scoped and cluster-scoped BIND9 clusters.
This struct contains all configuration that is common to both Bind9Cluster (namespace-scoped)
and ClusterBind9Provider (cluster-scoped). By using this shared struct, we avoid code duplication
and ensure consistency between the two cluster types.
Fields§
§version: Option<String>Shared BIND9 version for the cluster
If not specified, defaults to “9.18”.
primary: Option<PrimaryConfig>Primary instance configuration
Configuration specific to primary (authoritative) DNS instances, including replica count and service specifications.
secondary: Option<SecondaryConfig>Secondary instance configuration
Configuration specific to secondary (replica) DNS instances, including replica count and service specifications.
image: Option<ImageConfig>Container image configuration
config_map_refs: Option<ConfigMapRefs>ConfigMap references for BIND9 configuration files
global: Option<Bind9Config>Global configuration shared by all instances in the cluster
This configuration applies to all instances (both primary and secondary) unless overridden at the instance level or by role-specific configuration.
rndc_secret_refs: Option<Vec<RndcSecretRef>>References to Kubernetes Secrets containing RNDC/TSIG keys for authenticated zone transfers.
Each secret should contain the key name, algorithm, and base64-encoded secret value. These secrets are used for secure communication with BIND9 instances via RNDC and for authenticated zone transfers (AXFR/IXFR) between primary and secondary servers.
acls: Option<BTreeMap<String, Vec<String>>>ACLs that can be referenced by instances
volumes: Option<Vec<Volume>>Volumes that can be mounted by instances in this cluster
These volumes are inherited by all instances unless overridden.
Common use cases include PersistentVolumeClaims for zone data storage.
volume_mounts: Option<Vec<VolumeMount>>Volume mounts that specify where volumes should be mounted in containers
These mounts are inherited by all instances unless overridden.
Trait Implementations§
Source§impl Clone for Bind9ClusterCommonSpec
impl Clone for Bind9ClusterCommonSpec
Source§fn clone(&self) -> Bind9ClusterCommonSpec
fn clone(&self) -> Bind9ClusterCommonSpec
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Bind9ClusterCommonSpec
impl Debug for Bind9ClusterCommonSpec
Source§impl<'de> Deserialize<'de> for Bind9ClusterCommonSpec
impl<'de> Deserialize<'de> for Bind9ClusterCommonSpec
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for Bind9ClusterCommonSpec
impl JsonSchema for Bind9ClusterCommonSpec
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for Bind9ClusterCommonSpec
impl RefUnwindSafe for Bind9ClusterCommonSpec
impl Send for Bind9ClusterCommonSpec
impl Sync for Bind9ClusterCommonSpec
impl Unpin for Bind9ClusterCommonSpec
impl UnwindSafe for Bind9ClusterCommonSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more