From 54ab710786f954dc44a251533e279000cebd8aeb Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Mon, 12 Jan 2026 13:57:43 +0100 Subject: [PATCH 1/5] feat!: Add `objectOverrides` field to `ListenerSpec` --- crates/stackable-operator/CHANGELOG.md | 6 ++++++ .../stackable-operator/src/crd/listener/listeners/mod.rs | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index 40041e426..6ec5d8dc9 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -4,11 +4,17 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added + +- Add `objectOverrides` field to `ListenerSpec` ([#XXXX]). + ### Changed - Revert and pin k8s-openapi to 0.26.0 ([#1135]). +- BREAKING: `ListenerSpec` now longer derives `Eq` ([#XXXX]). [#1135]: https://github.com/stackabletech/operator-rs/pull/1135 +[#XXXX]: https://github.com/stackabletech/operator-rs/pull/XXXX ## [0.101.2] - 2026-01-07 diff --git a/crates/stackable-operator/src/crd/listener/listeners/mod.rs b/crates/stackable-operator/src/crd/listener/listeners/mod.rs index af4c5ccf7..2c4f45eaf 100644 --- a/crates/stackable-operator/src/crd/listener/listeners/mod.rs +++ b/crates/stackable-operator/src/crd/listener/listeners/mod.rs @@ -34,7 +34,7 @@ use stackable_versioned::versioned; #[cfg(doc)] use crate::builder::pod::volume::ListenerOperatorVolumeSourceBuilder; -use crate::crd::listener::core::v1alpha1 as core_v1alpha1; +use crate::{crd::listener::core::v1alpha1 as core_v1alpha1, deep_merger::ObjectOverrides}; mod v1alpha1_impl; @@ -55,7 +55,7 @@ pub mod versioned { namespaced ))] #[derive( - CustomResource, Serialize, Deserialize, Default, Clone, Debug, JsonSchema, PartialEq, Eq, + CustomResource, Serialize, Deserialize, Default, Clone, Debug, JsonSchema, PartialEq, )] #[serde(rename_all = "camelCase")] pub struct ListenerSpec { @@ -72,6 +72,10 @@ pub mod versioned { /// Whether incoming traffic should also be directed to Pods that are not `Ready`. #[serde(default = "ListenerSpec::default_publish_not_ready_addresses")] pub publish_not_ready_addresses: Option, + + // Docs are provided by the ObjectOverrides struct + #[serde(default)] + pub object_overrides: ObjectOverrides, } /// Informs users about Listeners that are bound by a given Pod. From e520f3f6426d29f3307d3ccc2138c8c82c776d42 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Mon, 12 Jan 2026 13:58:33 +0100 Subject: [PATCH 2/5] changelog --- crates/stackable-operator/CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index 6ec5d8dc9..1ae7c8376 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -6,15 +6,15 @@ All notable changes to this project will be documented in this file. ### Added -- Add `objectOverrides` field to `ListenerSpec` ([#XXXX]). +- Add `objectOverrides` field to `ListenerSpec` ([#1136]). ### Changed - Revert and pin k8s-openapi to 0.26.0 ([#1135]). -- BREAKING: `ListenerSpec` now longer derives `Eq` ([#XXXX]). +- BREAKING: `ListenerSpec` now longer derives `Eq` ([#1136]). [#1135]: https://github.com/stackabletech/operator-rs/pull/1135 -[#XXXX]: https://github.com/stackabletech/operator-rs/pull/XXXX +[#1136]: https://github.com/stackabletech/operator-rs/pull/1136 ## [0.101.2] - 2026-01-07 From e9ba24709c95978cc76d164789a9017aa965a889 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Mon, 12 Jan 2026 13:59:06 +0100 Subject: [PATCH 3/5] changelog --- crates/stackable-operator/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index 1ae7c8376..4718cc9cb 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -6,7 +6,7 @@ All notable changes to this project will be documented in this file. ### Added -- Add `objectOverrides` field to `ListenerSpec` ([#1136]). +- BREAKING: Add `objectOverrides` field to `ListenerSpec` ([#1136]). ### Changed From 33645006d09211e483034b4e55b223566fae32bf Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Mon, 12 Jan 2026 16:08:45 +0100 Subject: [PATCH 4/5] Update crates/stackable-operator/CHANGELOG.md Co-authored-by: Malte Sander --- crates/stackable-operator/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index 4718cc9cb..08d40bcab 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -11,7 +11,7 @@ All notable changes to this project will be documented in this file. ### Changed - Revert and pin k8s-openapi to 0.26.0 ([#1135]). -- BREAKING: `ListenerSpec` now longer derives `Eq` ([#1136]). +- BREAKING: `ListenerSpec` no longer derives `Eq` ([#1136]). [#1135]: https://github.com/stackabletech/operator-rs/pull/1135 [#1136]: https://github.com/stackabletech/operator-rs/pull/1136 From 479cbb9da414ee7f8dc7e115f90fcd04b22b0b84 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Mon, 12 Jan 2026 16:32:23 +0100 Subject: [PATCH 5/5] Update CRD preview --- crates/stackable-operator/crds/Listener.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/crates/stackable-operator/crds/Listener.yaml b/crates/stackable-operator/crds/Listener.yaml index bc7a7dfe6..61be90b6f 100644 --- a/crates/stackable-operator/crds/Listener.yaml +++ b/crates/stackable-operator/crds/Listener.yaml @@ -41,6 +41,20 @@ spec: default: {} description: Extra labels that the Pods must match in order to be exposed. They must _also_ still have a Volume referring to the Listener. type: object + objectOverrides: + default: [] + description: |- + A list of generic Kubernetes objects, which are merged into the objects that the operator + creates. + + List entries are arbitrary YAML objects, which need to be valid Kubernetes objects. + + Read the [Object overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#object-overrides) + for more information. + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array ports: description: Ports that should be exposed. items: