From 2322809c2489de489c715323458613925590c4a5 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 4 Sep 2026 13:45:35 +0200 Subject: [PATCH 1/5] fix(operator): Add missing SecurityContextBuilder::build function --- crates/stackable-operator/src/builder/pod/security.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crates/stackable-operator/src/builder/pod/security.rs b/crates/stackable-operator/src/builder/pod/security.rs index cc3db9e24..0ba031e97 100644 --- a/crates/stackable-operator/src/builder/pod/security.rs +++ b/crates/stackable-operator/src/builder/pod/security.rs @@ -143,6 +143,11 @@ impl SecurityContextBuilder { wo.run_as_user_name = Some(name.into()); self } + + /// Consumes the builder and returns the configured [`SecurityContext`]. + pub fn build(self) -> SecurityContext { + self.security_context + } } /// A builder to construct a [`PodSecurityContext`]. From c45c954d81a91a0574afbd929ef9b7b7385fc37c Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 4 Sep 2026 13:49:12 +0200 Subject: [PATCH 2/5] test(operator): Add unit test for SecurityContextBuilder --- .../src/builder/pod/security.rs | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/crates/stackable-operator/src/builder/pod/security.rs b/crates/stackable-operator/src/builder/pod/security.rs index 0ba031e97..788770e0b 100644 --- a/crates/stackable-operator/src/builder/pod/security.rs +++ b/crates/stackable-operator/src/builder/pod/security.rs @@ -412,6 +412,34 @@ mod tests { #[test] fn security_context_builder() { + // NOTE (@Techassi): We cannot efficiently chain functions because of the function signatures. + // See FIXME above. + let mut builder = SecurityContextBuilder::with_stackable_defaults(); + builder + .allow_privilege_escalation(false) + .privileged(false) + .read_only_root_filesystem(true) + .run_as_non_root(true) + .run_as_user(1001) + .run_as_group(1001); + let context = builder.build(); + + assert_eq!( + context, + SecurityContext { + allow_privilege_escalation: Some(false), + privileged: Some(false), + read_only_root_filesystem: Some(true), + run_as_non_root: Some(true), + run_as_user: Some(1001), + run_as_group: Some(1001), + ..Default::default() + } + ); + } + + #[test] + fn pod_security_context_builder() { let mut builder = PodSecurityContextBuilder::with_stackable_defaults(); let context = builder .fs_group(1000) From f04c53b6ff56ac53608cd845fddd477c3366b0a5 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 4 Sep 2026 13:56:21 +0200 Subject: [PATCH 3/5] chore(operator): Add changelog entry --- crates/stackable-operator/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index 46755f368..e739a373a 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added + +- Add missing `SecurityContextBuilder::build` associated function ([#1271]). + +[#1271]: https://github.com/stackabletech/operator-rs/pull/1271 + ## [0.117.0] - 2026-09-03 ### Added From f0653b2e0c8dfae9e7f488267720e6c7d5e2afd8 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 4 Sep 2026 13:58:53 +0200 Subject: [PATCH 4/5] chore(operator): Add FIXME comment --- crates/stackable-operator/src/builder/pod/security.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/stackable-operator/src/builder/pod/security.rs b/crates/stackable-operator/src/builder/pod/security.rs index 788770e0b..edf3556e0 100644 --- a/crates/stackable-operator/src/builder/pod/security.rs +++ b/crates/stackable-operator/src/builder/pod/security.rs @@ -9,6 +9,8 @@ pub struct SecurityContextBuilder { security_context: SecurityContext, } +// FIXME (@Techassi): These associated function should take `self`` instead of `&mut self` for +// better chainability. impl SecurityContextBuilder { /// Construct a new [`SecurityContextBuilder`] that is pre-filled with Stackable's defaults. /// From 12341f9c67acd5498a384ae1eda4fb2e30d50819 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 4 Sep 2026 14:00:15 +0200 Subject: [PATCH 5/5] chore(operator): Fix typos in comment --- crates/stackable-operator/src/builder/pod/security.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/stackable-operator/src/builder/pod/security.rs b/crates/stackable-operator/src/builder/pod/security.rs index edf3556e0..bff89f332 100644 --- a/crates/stackable-operator/src/builder/pod/security.rs +++ b/crates/stackable-operator/src/builder/pod/security.rs @@ -9,7 +9,7 @@ pub struct SecurityContextBuilder { security_context: SecurityContext, } -// FIXME (@Techassi): These associated function should take `self`` instead of `&mut self` for +// FIXME (@Techassi): These associated functions should take `self` instead of `&mut self` for // better chainability. impl SecurityContextBuilder { /// Construct a new [`SecurityContextBuilder`] that is pre-filled with Stackable's defaults.