Skip to content

Commit 1e9d75d

Browse files
committed
feat!: Add new ListenerClass.stickyNodePorts field
1 parent be42204 commit 1e9d75d

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

crates/stackable-operator/CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
### Added
8+
9+
- BREAKING: Add new `ListenerClass.stickyNodePorts` field ([#1XXX]).
10+
11+
[#1XXX]: https://github.com/stackabletech/operator-rs/pull/1XXX
12+
713
## [0.99.0] - 2025-10-06
814

915
### Added
1016

1117
- Add CLI argument and env var to disable the end-of-support checker: `EOS_DISABLED` (`--eos-disabled`) ([#1101]).
12-
- Add end-of-support checker ([#1096]).
18+
- Add end-of-support checker ([#1096], ([#1103]).
1319
- The EoS checker can be constructed using `EndOfSupportChecker::new()`.
1420
- Add new `MaintenanceOptions` and `EndOfSupportOptions` structs.
1521
- Add new CLI arguments and env vars:

crates/stackable-operator/crds/ListenerClass.yaml

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,19 @@ pub mod versioned {
6666
/// Defaults to `HostnameConservative`.
6767
#[serde(default = "ListenerClassSpec::default_preferred_address_type")]
6868
pub preferred_address_type: core_v1alpha1::PreferredAddressType,
69+
70+
/// Wether a Pod exposed using a NodePort should be pinned to a specific Kubernetes node.
71+
///
72+
/// By pinning the Pod to a specific (stable) Kubernetes node, stable addresses can be
73+
/// provided using NodePorts. The stickiness is achieved by listener-operator by setting the
74+
/// `volume.kubernetes.io/selected-node` annotation on the Listener PVC.
75+
///
76+
/// However, this only works on setups with long-living nodes. If your nodes are rotated on
77+
/// a regular basis, the Pods previously running on a removed node will be stuck in Pending
78+
/// until you delete the PVC with the stickiness.
79+
///
80+
/// Because of this we don't enable stickiness by default to support all environments.
81+
#[serde(default)]
82+
pub sticky_node_ports: bool,
6983
}
7084
}

0 commit comments

Comments
 (0)