Skip to content
Open
Show file tree
Hide file tree
Changes from 2 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
8 changes: 7 additions & 1 deletion crates/stackable-operator/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,18 @@ All notable changes to this project will be documented in this file.

## [Unreleased]

### Added

- BREAKING: Add new `ListenerClass.stickyNodePorts` field ([#1105]).

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

## [0.99.0] - 2025-10-06

### Added

- Add CLI argument and env var to disable the end-of-support checker: `EOS_DISABLED` (`--eos-disabled`) ([#1101]).
- Add end-of-support checker ([#1096]).
- Add end-of-support checker ([#1096], [#1103]).
- The EoS checker can be constructed using `EndOfSupportChecker::new()`.
- Add new `MaintenanceOptions` and `EndOfSupportOptions` structs.
- Add new CLI arguments and env vars:
Expand Down
15 changes: 15 additions & 0 deletions crates/stackable-operator/crds/ListenerClass.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions crates/stackable-operator/src/crd/listener/class/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,19 @@ pub mod versioned {
/// Defaults to `HostnameConservative`.
#[serde(default = "ListenerClassSpec::default_preferred_address_type")]
pub preferred_address_type: core_v1alpha1::PreferredAddressType,

/// Wether a Pod exposed using a NodePort should be pinned to a specific Kubernetes node.
///
/// By pinning the Pod to a specific (stable) Kubernetes node, stable addresses can be
/// provided using NodePorts. The stickiness is achieved by listener-operator by setting the
/// `volume.kubernetes.io/selected-node` annotation on the Listener PVC.
///
/// However, this only works on setups with long-living nodes. If your nodes are rotated on
/// a regular basis, the Pods previously running on a removed node will be stuck in Pending
/// until you delete the PVC with the stickiness.
Comment on lines +76 to +78
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: Could we somehow detect this and automatically remove the stickiness? Or is that something we don't want?

Copy link
Member Author

@sbernauer sbernauer Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally we have auto-detection in listener-op, which detects what ListenerClasses it should create, based on detecting GKE/AKS/IONOS etc. You might recall this from the CRD maintainer discussions.
But that's a follow-up

///
/// Because of this we don't enable stickiness by default to support all environments.
#[serde(default)]
pub sticky_node_ports: bool,
}
}