From f926600a79ae139364f5b80c10c22f83dba4d365 Mon Sep 17 00:00:00 2001 From: Wenjie Ma <55629401+euclidgame@users.noreply.github.com> Date: Mon, 23 Oct 2023 09:47:26 -0500 Subject: [PATCH] Add DNS Policy to fluent controller (#372) Signed-off-by: Wenjie Ma --- deploy/fluent/crd.yaml | 3 +++ e2e/src/fluent_e2e.rs | 1 + .../fluentbit/exec/resource/daemon_set.rs | 3 +++ .../fluent_controller/fluentbit/exec/types.rs | 8 ++++++++ .../fluentbit/spec/resource/daemon_set.rs | 5 +++++ .../fluent_controller/fluentbit/spec/types.rs | 1 + src/deps_hack/src/lib.rs | 2 ++ 7 files changed, 23 insertions(+) diff --git a/deploy/fluent/crd.yaml b/deploy/fluent/crd.yaml index 62bcc917b..a7369ff86 100644 --- a/deploy/fluent/crd.yaml +++ b/deploy/fluent/crd.yaml @@ -21,6 +21,8 @@ spec: properties: spec: properties: + DNSPolicy: + type: string affinity: description: Affinity is a group of affinity scheduling rules. nullable: true @@ -557,6 +559,7 @@ spec: nullable: true type: array required: + - DNSPolicy - fluentBitConfigName - image - runtimeClassName diff --git a/e2e/src/fluent_e2e.rs b/e2e/src/fluent_e2e.rs index 4df6ed1d5..0201248e7 100644 --- a/e2e/src/fluent_e2e.rs +++ b/e2e/src/fluent_e2e.rs @@ -34,6 +34,7 @@ pub fn fluent_bit() -> String { fluentBitConfigName: fluent-bit-config image: kubesphere/fluent-bit:v2.1.7 runtimeClassName: '' + DNSPolicy: '' tolerations: - operator: Exists " diff --git a/src/controller_examples/fluent_controller/fluentbit/exec/resource/daemon_set.rs b/src/controller_examples/fluent_controller/fluentbit/exec/resource/daemon_set.rs index 42d75495e..11dd1ae23 100644 --- a/src/controller_examples/fluent_controller/fluentbit/exec/resource/daemon_set.rs +++ b/src/controller_examples/fluent_controller/fluentbit/exec/resource/daemon_set.rs @@ -301,6 +301,9 @@ fn make_fluentbit_pod_spec(fb: &FluentBit) -> (pod_spec: PodSpec) if !fb.spec().runtime_class_name().eq(&new_strlit("").to_string()) { pod_spec.set_runtime_class_name(fb.spec().runtime_class_name()); } + if !fb.spec().dns_policy().eq(&new_strlit("").to_string()) { + pod_spec.set_dns_policy(fb.spec().dns_policy()); + } pod_spec } diff --git a/src/controller_examples/fluent_controller/fluentbit/exec/types.rs b/src/controller_examples/fluent_controller/fluentbit/exec/types.rs index 513486d99..baf245195 100644 --- a/src/controller_examples/fluent_controller/fluentbit/exec/types.rs +++ b/src/controller_examples/fluent_controller/fluentbit/exec/types.rs @@ -223,6 +223,14 @@ impl FluentBitSpec { { String::from_rust_string(self.inner.runtime_class_name.clone()) } + + #[verifier(external_body)] + pub fn dns_policy(&self) -> (dns_policy: String) + ensures + dns_policy@ == self@.dns_policy, + { + String::from_rust_string(self.inner.dns_policy.clone()) + } } } diff --git a/src/controller_examples/fluent_controller/fluentbit/spec/resource/daemon_set.rs b/src/controller_examples/fluent_controller/fluentbit/spec/resource/daemon_set.rs index 5f8304816..a772bf2c6 100644 --- a/src/controller_examples/fluent_controller/fluentbit/spec/resource/daemon_set.rs +++ b/src/controller_examples/fluent_controller/fluentbit/spec/resource/daemon_set.rs @@ -218,6 +218,11 @@ pub open spec fn make_fluentbit_pod_spec(fb: FluentBitView) -> PodSpecView } else { PodSpecView::default().runtime_class_name }, + dns_policy: if fb.spec.dns_policy != new_strlit("")@ { + Some(fb.spec.dns_policy) + } else { + PodSpecView::default().dns_policy + }, ..PodSpecView::default() } } diff --git a/src/controller_examples/fluent_controller/fluentbit/spec/types.rs b/src/controller_examples/fluent_controller/fluentbit/spec/types.rs index 793674c31..0cedd0c33 100644 --- a/src/controller_examples/fluent_controller/fluentbit/spec/types.rs +++ b/src/controller_examples/fluent_controller/fluentbit/spec/types.rs @@ -148,6 +148,7 @@ pub struct FluentBitSpecView { pub affinity: Option, pub node_selector: Map, pub runtime_class_name: StringView, + pub dns_policy: StringView, } impl FluentBitSpecView {} diff --git a/src/deps_hack/src/lib.rs b/src/deps_hack/src/lib.rs index 6a7513286..19255208e 100644 --- a/src/deps_hack/src/lib.rs +++ b/src/deps_hack/src/lib.rs @@ -214,6 +214,8 @@ pub struct FluentBitSpec { pub node_selector: std::collections::BTreeMap, #[serde(rename = "runtimeClassName")] pub runtime_class_name: String, + #[serde(rename = "DNSPolicy")] + pub dns_policy: String, } #[derive(