From 2845c21fe812af7c8339f604694d3529bad7449e Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Tue, 13 Jan 2026 11:02:31 +0100 Subject: [PATCH 1/4] feat: Enable restart controller --- CHANGELOG.md | 2 ++ rust/operator-binary/src/zk_controller.rs | 12 ++++++++---- tests/templates/kuttl/smoke/10-assert.yaml.j2 | 1 + 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7435f0a..71c670a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,9 +9,11 @@ All notable changes to this project will be documented in this file. - Add `ZOOCFGDIR` env var to `/stackable/rwconfig` to improve shell script usage like `zkCleanup.sh` ([#988]). - Support objectOverrides using `.spec.objectOverrides`. See [objectOverrides concepts page](https://docs.stackable.tech/home/nightly/concepts/overrides/#object-overrides) for details ([#987]). +- Enable the [restart-controller](https://docs.stackable.tech/home/nightly/commons-operator/restarter/), so that the Pods are automatically restarted on config changes ([#XXX]). [#987]: https://github.com/stackabletech/zookeeper-operator/pull/987 [#988]: https://github.com/stackabletech/zookeeper-operator/pull/988 +[#XXX]: https://github.com/stackabletech/zookeeper-operator/pull/XXX ## [25.11.0] - 2025-11-07 diff --git a/rust/operator-binary/src/zk_controller.rs b/rust/operator-binary/src/zk_controller.rs index 9735249d..b4140c2c 100644 --- a/rust/operator-binary/src/zk_controller.rs +++ b/rust/operator-binary/src/zk_controller.rs @@ -51,7 +51,7 @@ use stackable_operator::{ core::{DeserializeGuard, error_boundary}, runtime::controller, }, - kvp::{LabelError, Labels}, + kvp::{Label, LabelError, Labels}, logging::controller::ReconcilerError, product_config_utils::{transform_all_roles_to_config, validate_all_roles_and_groups_config}, product_logging::{ @@ -486,6 +486,9 @@ pub async fn reconcile_zk( rolegroup: rolegroup.clone(), })?; + // Note: The StatefulSet needs to be applied after all ConfigMaps and Secrets it mounts + // to prevent unnecessary Pod restarts. + // See https://github.com/stackabletech/commons-operator/issues/111 for details. ss_cond_builder.add( cluster_resources .add(client, rg_statefulset) @@ -1019,10 +1022,11 @@ fn build_server_rolegroup_statefulset( &rolegroup_ref.role, &rolegroup_ref.role_group, )) - // The initial restart muddles up the integration tests. This can be re-enabled as soon - // as https://github.com/stackabletech/commons-operator/issues/111 is implemented. - // .with_label("restarter.stackable.tech/enabled", "true") .context(ObjectMetaSnafu)? + .with_label( + Label::try_from(("restarter.stackable.tech/enabled", "true")) + .expect("static label is always valid"), + ) .build(); let statefulset_match_labels = diff --git a/tests/templates/kuttl/smoke/10-assert.yaml.j2 b/tests/templates/kuttl/smoke/10-assert.yaml.j2 index cfaee9c0..cc7cdd00 100644 --- a/tests/templates/kuttl/smoke/10-assert.yaml.j2 +++ b/tests/templates/kuttl/smoke/10-assert.yaml.j2 @@ -9,6 +9,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: name: test-zk-server-primary + generation: 1 # There should be no unneeded Pod restarts spec: template: spec: From bcfa653c57b307f7e27573582f9bad6338904201 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Tue, 13 Jan 2026 11:03:25 +0100 Subject: [PATCH 2/4] changelog --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71c670a0..8597c0fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,11 +9,11 @@ All notable changes to this project will be documented in this file. - Add `ZOOCFGDIR` env var to `/stackable/rwconfig` to improve shell script usage like `zkCleanup.sh` ([#988]). - Support objectOverrides using `.spec.objectOverrides`. See [objectOverrides concepts page](https://docs.stackable.tech/home/nightly/concepts/overrides/#object-overrides) for details ([#987]). -- Enable the [restart-controller](https://docs.stackable.tech/home/nightly/commons-operator/restarter/), so that the Pods are automatically restarted on config changes ([#XXX]). +- Enable the [restart-controller](https://docs.stackable.tech/home/nightly/commons-operator/restarter/), so that the Pods are automatically restarted on config changes ([#999]). [#987]: https://github.com/stackabletech/zookeeper-operator/pull/987 [#988]: https://github.com/stackabletech/zookeeper-operator/pull/988 -[#XXX]: https://github.com/stackabletech/zookeeper-operator/pull/XXX +[#999]: https://github.com/stackabletech/zookeeper-operator/pull/999 ## [25.11.0] - 2025-11-07 From 96f89e9cfd50df20a9f2ec8aa70f82ed1af906fe Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Tue, 13 Jan 2026 12:39:03 +0100 Subject: [PATCH 3/4] Use constant --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- rust/operator-binary/src/zk_controller.rs | 8 +++----- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4f080168..cb5cbd3f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1366,7 +1366,7 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#13cf69454684ccf105d7377ca369d62b7b07250c" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" dependencies = [ "darling 0.23.0", "regex", @@ -2427,7 +2427,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stackable-operator" version = "0.101.2" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#13cf69454684ccf105d7377ca369d62b7b07250c" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" dependencies = [ "chrono", "clap", @@ -2465,7 +2465,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#13cf69454684ccf105d7377ca369d62b7b07250c" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" dependencies = [ "darling 0.23.0", "proc-macro2", @@ -2476,7 +2476,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#13cf69454684ccf105d7377ca369d62b7b07250c" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" dependencies = [ "chrono", "k8s-openapi", @@ -2493,7 +2493,7 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#13cf69454684ccf105d7377ca369d62b7b07250c" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" dependencies = [ "axum", "clap", @@ -2517,7 +2517,7 @@ dependencies = [ [[package]] name = "stackable-versioned" version = "0.8.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#13cf69454684ccf105d7377ca369d62b7b07250c" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" dependencies = [ "schemars", "serde", @@ -2530,7 +2530,7 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" version = "0.8.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#13cf69454684ccf105d7377ca369d62b7b07250c" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" dependencies = [ "convert_case", "darling 0.23.0", diff --git a/Cargo.toml b/Cargo.toml index 49a99ed0..53dc2dea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ tokio-zookeeper = "0.4" tracing = "0.1" [patch."https://github.com/stackabletech/operator-rs"] -# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } +stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "feat/restarter-label" } # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } [patch.crates-io] diff --git a/rust/operator-binary/src/zk_controller.rs b/rust/operator-binary/src/zk_controller.rs index b4140c2c..2851cb6c 100644 --- a/rust/operator-binary/src/zk_controller.rs +++ b/rust/operator-binary/src/zk_controller.rs @@ -33,6 +33,7 @@ use stackable_operator::{ product_image_selection::{self, ResolvedProductImage}, rbac::build_rbac_resources, }, + constants::RESTART_CONTROLLER_ENABLED_LABEL, k8s_openapi::{ DeepMerge, api::{ @@ -51,7 +52,7 @@ use stackable_operator::{ core::{DeserializeGuard, error_boundary}, runtime::controller, }, - kvp::{Label, LabelError, Labels}, + kvp::{LabelError, Labels}, logging::controller::ReconcilerError, product_config_utils::{transform_all_roles_to_config, validate_all_roles_and_groups_config}, product_logging::{ @@ -1023,10 +1024,7 @@ fn build_server_rolegroup_statefulset( &rolegroup_ref.role_group, )) .context(ObjectMetaSnafu)? - .with_label( - Label::try_from(("restarter.stackable.tech/enabled", "true")) - .expect("static label is always valid"), - ) + .with_label(RESTART_CONTROLLER_ENABLED_LABEL.to_owned()) .build(); let statefulset_match_labels = From 3a853485677d8ab9bfaadf2cabbf78f0737e3fd6 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Wed, 14 Jan 2026 15:14:36 +0100 Subject: [PATCH 4/4] Use op-rs 0.102.0 --- Cargo.lock | 16 ++++++++-------- Cargo.nix | 30 +++++++++++++++--------------- Cargo.toml | 4 ++-- crate-hashes.json | 14 +++++++------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cb5cbd3f..8b9d01db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1366,7 +1366,7 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "darling 0.23.0", "regex", @@ -2426,8 +2426,8 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stackable-operator" -version = "0.101.2" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" +version = "0.102.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "chrono", "clap", @@ -2465,7 +2465,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "darling 0.23.0", "proc-macro2", @@ -2476,7 +2476,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "chrono", "k8s-openapi", @@ -2493,7 +2493,7 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "axum", "clap", @@ -2517,7 +2517,7 @@ dependencies = [ [[package]] name = "stackable-versioned" version = "0.8.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "schemars", "serde", @@ -2530,7 +2530,7 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" version = "0.8.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat%2Frestarter-label#1fad52700f5719f40e3541bcfcd25097ffdca16b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "convert_case", "darling 0.23.0", diff --git a/Cargo.nix b/Cargo.nix index a458f60f..afe48f0c 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -4263,8 +4263,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; libName = "k8s_version"; authors = [ @@ -7941,13 +7941,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.101.2"; + version = "0.102.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; libName = "stackable_operator"; authors = [ @@ -8115,8 +8115,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -8150,8 +8150,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; libName = "stackable_shared"; authors = [ @@ -8232,8 +8232,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; libName = "stackable_telemetry"; authors = [ @@ -8342,8 +8342,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; libName = "stackable_versioned"; authors = [ @@ -8386,8 +8386,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; procMacro = true; libName = "stackable_versioned_macros"; diff --git a/Cargo.toml b/Cargo.toml index 53dc2dea..8fa6c801 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://github.com/stackabletech/zookeeper-operator" [workspace.dependencies] product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.8.0" } -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.101.2", features = ["telemetry", "versioned"] } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.102.0", features = ["telemetry", "versioned"] } anyhow = "1.0" built = { version = "0.8", features = ["chrono", "git2"] } @@ -32,7 +32,7 @@ tokio-zookeeper = "0.4" tracing = "0.1" [patch."https://github.com/stackabletech/operator-rs"] -stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "feat/restarter-label" } +# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } [patch.crates-io] diff --git a/crate-hashes.json b/crate-hashes.json index 269d6950..68215a44 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -4,12 +4,12 @@ "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-derive@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-runtime@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#k8s-version@0.1.3": "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#stackable-operator-derive@0.3.1": "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#stackable-operator@0.101.2": "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#stackable-shared@0.0.3": "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#stackable-telemetry@0.6.1": "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#stackable-versioned-macros@0.8.3": "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#stackable-versioned@0.8.3": "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#k8s-version@0.1.3": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-operator-derive@0.3.1": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-operator@0.102.0": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-shared@0.0.3": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-telemetry@0.6.1": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-versioned-macros@0.8.3": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-versioned@0.8.3": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file