From 0d683e3a75979c29861eee9e777235af96ba0a0c Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Wed, 5 Aug 2026 16:09:04 +0200 Subject: [PATCH 1/2] feat(v2): Make `ResourceNames::ensure_max_length` public --- crates/stackable-operator/CHANGELOG.md | 7 +++++++ .../src/v2/macros/attributed_string_type.rs | 3 +++ crates/stackable-operator/src/v2/role_group_utils.rs | 6 +++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index e311a9e9d..de856d00d 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added + +- [v2]: Make `ResourceNames::ensure_max_length` public ([#XXXX]). +- [v2]: Add `MAX_ANNOTATION_NAME_LENGTH` constant with a value of `63` ([#XXXX]). + +[#XXXX]: https://github.com/stackabletech/operator-rs/pull/XXXX + ## [0.115.0] - 2026-08-04 ### Changed diff --git a/crates/stackable-operator/src/v2/macros/attributed_string_type.rs b/crates/stackable-operator/src/v2/macros/attributed_string_type.rs index e3cfbd689..b7c457446 100644 --- a/crates/stackable-operator/src/v2/macros/attributed_string_type.rs +++ b/crates/stackable-operator/src/v2/macros/attributed_string_type.rs @@ -6,6 +6,9 @@ use strum::{EnumDiscriminants, IntoStaticStr}; /// Duplicates the private constant [`crate::kvp::LABEL_VALUE_MAX_LEN`] pub const MAX_LABEL_VALUE_LENGTH: usize = 63; +/// Maximum length of annotation names +pub const MAX_ANNOTATION_NAME_LENGTH: usize = 63; + #[derive(Debug, EnumDiscriminants, Snafu)] #[snafu(visibility(pub))] #[strum_discriminants(derive(IntoStaticStr))] diff --git a/crates/stackable-operator/src/v2/role_group_utils.rs b/crates/stackable-operator/src/v2/role_group_utils.rs index 1b25d2266..0c83ff459 100644 --- a/crates/stackable-operator/src/v2/role_group_utils.rs +++ b/crates/stackable-operator/src/v2/role_group_utils.rs @@ -99,7 +99,11 @@ impl ResourceNames { /// `max_length < 1 /* character */ + 1 /* dash */ + hash_length`. /// /// Kubernetes object names cannot contain non-ASCII characters. - fn ensure_max_length(resource_name: String, max_length: usize, hash_length: usize) -> String { + pub fn ensure_max_length( + resource_name: String, + max_length: usize, + hash_length: usize, + ) -> String { assert!(resource_name.is_ascii()); assert!(max_length >= 1 /* character */ + 1 /* dash */ + hash_length); From b7f0f0b53d07bd892941ed92a697a7c1090eff03 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Wed, 5 Aug 2026 16:10:13 +0200 Subject: [PATCH 2/2] 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 de856d00d..cb57bf73d 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -6,10 +6,10 @@ All notable changes to this project will be documented in this file. ### Added -- [v2]: Make `ResourceNames::ensure_max_length` public ([#XXXX]). -- [v2]: Add `MAX_ANNOTATION_NAME_LENGTH` constant with a value of `63` ([#XXXX]). +- [v2]: Make `ResourceNames::ensure_max_length` public ([#1260]). +- [v2]: Add `MAX_ANNOTATION_NAME_LENGTH` constant with a value of `63` ([#1260]). -[#XXXX]: https://github.com/stackabletech/operator-rs/pull/XXXX +[#1260]: https://github.com/stackabletech/operator-rs/pull/1260 ## [0.115.0] - 2026-08-04