From 7fb7c60e9084c50105f7cff3dab76d6cb3d0f1a2 Mon Sep 17 00:00:00 2001 From: Siegfried Weber Date: Wed, 3 Sep 2025 10:09:19 +0200 Subject: [PATCH 1/2] feat: Remove the Merge implementation for PodTemplateSpec --- crates/stackable-operator/CHANGELOG.md | 7 +++ crates/stackable-operator/src/config/merge.rs | 63 +------------------ 2 files changed, 8 insertions(+), 62 deletions(-) diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index 15f0b4cfb..89c9924d7 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -8,7 +8,14 @@ All notable changes to this project will be documented in this file. - BREAKING: Add a new CLI flag/env to disabling CRD maintenance: `--disable-crd-maintenance` ([#1085]). +### Removed + +- BREAKING: Remove the Merge implementation for PodTemplateSpec ([#1087]). + It was broken because the instance was overriden by the given defaults. + This function is not used by the Stackable operators. + [#1085]: https://github.com/stackabletech/operator-rs/pull/1085 +[#1087]: https://github.com/stackabletech/operator-rs/pull/1087 ## [0.96.0] - 2025-08-25 diff --git a/crates/stackable-operator/src/config/merge.rs b/crates/stackable-operator/src/config/merge.rs index 8a5172e28..7699c00e6 100644 --- a/crates/stackable-operator/src/config/merge.rs +++ b/crates/stackable-operator/src/config/merge.rs @@ -6,8 +6,7 @@ use std::{ }; use k8s_openapi::{ - DeepMerge, - api::core::v1::{NodeAffinity, PodAffinity, PodAntiAffinity, PodTemplateSpec}, + api::core::v1::{NodeAffinity, PodAffinity, PodAntiAffinity}, apimachinery::pkg::{api::resource::Quantity, apis::meta::v1::LabelSelector}, }; pub use stackable_operator_derive::Merge; @@ -87,11 +86,6 @@ impl Merge for HashMap { } } } -impl Merge for PodTemplateSpec { - fn merge(&mut self, defaults: &Self) { - self.merge_from(defaults.clone()) - } -} /// Moving version of [`Merge::merge`], to produce slightly nicer test output pub fn merge(mut overrides: T, defaults: &T) -> T { @@ -437,59 +431,4 @@ mod tests { BTreeMap::from([("a", Acc(4)), ("b", Acc(2)), ("c", Acc(5))]) ); } - - #[test] - fn merge_pod_template_spec() { - assert_eq!( - merge( - PodTemplateSpec { - spec: Some(PodSpec { - service_account_name: Some("my-sa".to_string()), - ..PodSpec::default() - }), - ..PodTemplateSpec::default() - }, - &PodTemplateSpec { - spec: Some(PodSpec { - priority: Some(3000), - ..PodSpec::default() - }), - ..PodTemplateSpec::default() - } - ), - PodTemplateSpec { - spec: Some(PodSpec { - service_account_name: Some("my-sa".to_string()), - priority: Some(3000), - ..PodSpec::default() - }), - ..PodTemplateSpec::default() - } - ); - assert_eq!( - merge( - PodTemplateSpec { - spec: Some(PodSpec { - service_account_name: Some("sa-to-be-overridden".to_string()), - ..PodSpec::default() - }), - ..PodTemplateSpec::default() - }, - &PodTemplateSpec { - spec: Some(PodSpec { - service_account_name: Some("sa-override".to_string()), - ..PodSpec::default() - }), - ..PodTemplateSpec::default() - } - ), - PodTemplateSpec { - spec: Some(PodSpec { - service_account_name: Some("sa-override".to_string()), - ..PodSpec::default() - }), - ..PodTemplateSpec::default() - } - ); - } } From 86c237bb5490e534aa3e95c991ccda1e954d2b7d Mon Sep 17 00:00:00 2001 From: Siegfried Weber Date: Wed, 3 Sep 2025 10:19:23 +0200 Subject: [PATCH 2/2] chore: Remove unused imports --- crates/stackable-operator/src/config/merge.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/crates/stackable-operator/src/config/merge.rs b/crates/stackable-operator/src/config/merge.rs index 7699c00e6..a4c334a73 100644 --- a/crates/stackable-operator/src/config/merge.rs +++ b/crates/stackable-operator/src/config/merge.rs @@ -157,8 +157,6 @@ impl Merge for Option { mod tests { use std::collections::{BTreeMap, HashMap}; - use k8s_openapi::api::core::v1::{PodSpec, PodTemplateSpec}; - use super::{Merge, merge}; #[derive(Debug, PartialEq, Eq, Clone)]