Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions crates/stackable-operator/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file.

## [Unreleased]

### Added

- Add `serviceOverrides` field of type `Service` to `ListenerClass.spec.serviceOverrides` ([#1142]).

### Changed

- BREAKING: `ListenerClassSpec` no longer implements `Eq` ([#1142]).

[#1142]: https://github.com/stackabletech/operator-rs/pull/1142

## [0.103.0] - 2026-01-16

### Changed
Expand Down
4 changes: 2 additions & 2 deletions crates/stackable-operator/crds/DummyCluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ spec:
default: {}
description: |-
In the `podOverrides` property you can define a
[PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)
[PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podtemplatespec-v1-core)
to override any property that can be set on a Kubernetes Pod.
Read the
[Pod overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#pod-overrides)
Expand Down Expand Up @@ -695,7 +695,7 @@ spec:
default: {}
description: |-
In the `podOverrides` property you can define a
[PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)
[PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podtemplatespec-v1-core)
to override any property that can be set on a Kubernetes Pod.
Read the
[Pod overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#pod-overrides)
Expand Down
14 changes: 14 additions & 0 deletions crates/stackable-operator/crds/ListenerClass.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,20 @@ spec:
- Local
nullable: true
type: string
serviceOverrides:
default:
apiVersion: v1
kind: Service
metadata: {}
description: |-
In the `serviceOverrides` property you can define a
[Service](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#service-v1-core)
to override any property that can be set on a Kubernetes Service.

This mechanism is similar to the `podOverrides`, which are documented in the
[Pod overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#pod-overrides).
type: object
x-kubernetes-preserve-unknown-fields: true
serviceType:
description: The method used to access the services.
enum:
Expand Down
16 changes: 13 additions & 3 deletions crates/stackable-operator/src/crd/listener/class/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,26 @@

use std::collections::BTreeMap;

#[cfg(doc)]
use k8s_openapi::api::core::v1::Service;
use kube::CustomResource;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use stackable_versioned::versioned;

use crate::crd::listener::core::v1alpha1 as core_v1alpha1;
#[cfg(doc)]
use crate::crd::listener::listeners::v1alpha1::Listener;
use crate::{crd::listener::core::v1alpha1 as core_v1alpha1, utils::crds::raw_object_schema};

mod v1alpha1_impl;

#[versioned(version(name = "v1alpha1"))]
pub mod versioned {

/// Defines a policy for how [Listeners](DOCS_BASE_URL_PLACEHOLDER/listener-operator/listener) should be exposed.
/// Read the [ListenerClass documentation](DOCS_BASE_URL_PLACEHOLDER/listener-operator/listenerclass)
/// for more information.
#[versioned(crd(group = "listeners.stackable.tech"))]
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq, Eq)]
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct ListenerClassSpec {
pub service_type: core_v1alpha1::ServiceType,
Expand Down Expand Up @@ -93,5 +93,15 @@ pub mod versioned {
/// Because of this we don't enable pinning by default to support all environments.
#[serde(default)]
pub pinned_node_ports: bool,

/// In the `serviceOverrides` property you can define a
/// [Service](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#service-v1-core)
/// to override any property that can be set on a Kubernetes Service.
///
/// This mechanism is similar to the `podOverrides`, which are documented in the
/// [Pod overrides documentation](DOCS_BASE_URL_PLACEHOLDER/concepts/overrides#pod-overrides).
#[serde(default)]
#[schemars(schema_with = "raw_object_schema")]
pub service_overrides: Service,
}
}
2 changes: 1 addition & 1 deletion crates/stackable-operator/src/role_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ pub struct CommonConfiguration<T, ProductSpecificCommonConfig> {
pub cli_overrides: BTreeMap<String, String>,

/// In the `podOverrides` property you can define a
/// [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)
/// [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podtemplatespec-v1-core)
/// to override any property that can be set on a Kubernetes Pod.
/// Read the
/// [Pod overrides documentation](DOCS_BASE_URL_PLACEHOLDER/concepts/overrides#pod-overrides)
Expand Down
Loading