Skip to content

Commit bac3515

Browse files
feat!: Add objectOverrides field to ListenerSpec (#1136)
* feat!: Add `objectOverrides` field to `ListenerSpec` * changelog * changelog * Update crates/stackable-operator/CHANGELOG.md Co-authored-by: Malte Sander <malte.sander.it@gmail.com> * Update CRD preview --------- Co-authored-by: Malte Sander <malte.sander.it@gmail.com>
1 parent 8085d77 commit bac3515

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

crates/stackable-operator/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,17 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
### Added
8+
9+
- BREAKING: Add `objectOverrides` field to `ListenerSpec` ([#1136]).
10+
711
### Changed
812

913
- Revert and pin k8s-openapi to 0.26.0 ([#1135]).
14+
- BREAKING: `ListenerSpec` no longer derives `Eq` ([#1136]).
1015

1116
[#1135]: https://github.com/stackabletech/operator-rs/pull/1135
17+
[#1136]: https://github.com/stackabletech/operator-rs/pull/1136
1218

1319
## [0.101.2] - 2026-01-07
1420

crates/stackable-operator/crds/Listener.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,20 @@ spec:
4141
default: {}
4242
description: Extra labels that the Pods must match in order to be exposed. They must _also_ still have a Volume referring to the Listener.
4343
type: object
44+
objectOverrides:
45+
default: []
46+
description: |-
47+
A list of generic Kubernetes objects, which are merged into the objects that the operator
48+
creates.
49+
50+
List entries are arbitrary YAML objects, which need to be valid Kubernetes objects.
51+
52+
Read the [Object overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#object-overrides)
53+
for more information.
54+
items:
55+
type: object
56+
x-kubernetes-preserve-unknown-fields: true
57+
type: array
4458
ports:
4559
description: Ports that should be exposed.
4660
items:

crates/stackable-operator/src/crd/listener/listeners/mod.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use stackable_versioned::versioned;
3434

3535
#[cfg(doc)]
3636
use crate::builder::pod::volume::ListenerOperatorVolumeSourceBuilder;
37-
use crate::crd::listener::core::v1alpha1 as core_v1alpha1;
37+
use crate::{crd::listener::core::v1alpha1 as core_v1alpha1, deep_merger::ObjectOverrides};
3838

3939
mod v1alpha1_impl;
4040

@@ -55,7 +55,7 @@ pub mod versioned {
5555
namespaced
5656
))]
5757
#[derive(
58-
CustomResource, Serialize, Deserialize, Default, Clone, Debug, JsonSchema, PartialEq, Eq,
58+
CustomResource, Serialize, Deserialize, Default, Clone, Debug, JsonSchema, PartialEq,
5959
)]
6060
#[serde(rename_all = "camelCase")]
6161
pub struct ListenerSpec {
@@ -72,6 +72,10 @@ pub mod versioned {
7272
/// Whether incoming traffic should also be directed to Pods that are not `Ready`.
7373
#[serde(default = "ListenerSpec::default_publish_not_ready_addresses")]
7474
pub publish_not_ready_addresses: Option<bool>,
75+
76+
// Docs are provided by the ObjectOverrides struct
77+
#[serde(default)]
78+
pub object_overrides: ObjectOverrides,
7579
}
7680

7781
/// Informs users about Listeners that are bound by a given Pod.

0 commit comments

Comments
 (0)