From 9eb7dc049957cdb86cdd3ad1884be689e4e62791 Mon Sep 17 00:00:00 2001 From: Techassi Date: Mon, 2 Feb 2026 11:35:29 +0100 Subject: [PATCH 1/6] feat: Add graceful shutdown --- Cargo.lock | 50 +++++++-------- Cargo.nix | 62 +++++++++---------- Cargo.toml | 2 +- crate-hashes.json | 18 +++--- rust/operator-binary/src/main.rs | 26 ++++---- .../src/truststore_controller.rs | 11 +++- values.yaml | 5 ++ 7 files changed, 95 insertions(+), 79 deletions(-) create mode 100644 values.yaml diff --git a/Cargo.lock b/Cargo.lock index a1cbbc5a..b8c39a29 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1678,7 +1678,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=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" dependencies = [ "darling 0.23.0", "regex", @@ -3394,7 +3394,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stackable-certs" version = "0.4.0" -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=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" dependencies = [ "const-oid", "ecdsa", @@ -3437,8 +3437,8 @@ dependencies = [ [[package]] name = "stackable-operator" -version = "0.101.2" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#13cf69454684ccf105d7377ca369d62b7b07250c" +version = "0.104.0" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" dependencies = [ "chrono", "clap", @@ -3463,7 +3463,7 @@ dependencies = [ "snafu 0.8.9", "stackable-operator-derive", "stackable-shared", - "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2)", + "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns)", "stackable-versioned", "stackable-webhook", "strum", @@ -3477,7 +3477,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=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" dependencies = [ "darling 0.23.0", "proc-macro2", @@ -3558,7 +3558,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=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" dependencies = [ "chrono", "k8s-openapi", @@ -3575,16 +3575,16 @@ 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?tag=stackable-telemetry-0.6.1#958f62f2befdd984ad9fcd272d0214055c3a7601" dependencies = [ "axum", "clap", "futures-util", - "opentelemetry 0.31.0", - "opentelemetry-appender-tracing 0.31.1", - "opentelemetry-otlp 0.31.0", - "opentelemetry-semantic-conventions 0.31.0", - "opentelemetry_sdk 0.31.0", + "opentelemetry 0.30.0", + "opentelemetry-appender-tracing 0.30.1", + "opentelemetry-otlp 0.30.0", + "opentelemetry-semantic-conventions 0.30.0", + "opentelemetry_sdk 0.30.0", "pin-project", "snafu 0.8.9", "strum", @@ -3592,23 +3592,23 @@ dependencies = [ "tower", "tracing", "tracing-appender", - "tracing-opentelemetry 0.32.0", + "tracing-opentelemetry 0.31.0", "tracing-subscriber", ] [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1#958f62f2befdd984ad9fcd272d0214055c3a7601" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" dependencies = [ "axum", "clap", "futures-util", - "opentelemetry 0.30.0", - "opentelemetry-appender-tracing 0.30.1", - "opentelemetry-otlp 0.30.0", - "opentelemetry-semantic-conventions 0.30.0", - "opentelemetry_sdk 0.30.0", + "opentelemetry 0.31.0", + "opentelemetry-appender-tracing 0.31.1", + "opentelemetry-otlp 0.31.0", + "opentelemetry-semantic-conventions 0.31.0", + "opentelemetry_sdk 0.31.0", "pin-project", "snafu 0.8.9", "strum", @@ -3616,14 +3616,14 @@ dependencies = [ "tower", "tracing", "tracing-appender", - "tracing-opentelemetry 0.31.0", + "tracing-opentelemetry 0.32.0", "tracing-subscriber", ] [[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=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" dependencies = [ "schemars", "serde", @@ -3636,7 +3636,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=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" dependencies = [ "convert_case", "darling 0.23.0", @@ -3653,7 +3653,7 @@ dependencies = [ [[package]] name = "stackable-webhook" version = "0.8.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=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" dependencies = [ "arc-swap", "async-trait", @@ -3671,7 +3671,7 @@ dependencies = [ "snafu 0.8.9", "stackable-certs", "stackable-shared", - "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2)", + "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns)", "tokio", "tokio-rustls", "tower", diff --git a/Cargo.nix b/Cargo.nix index 66f1b854..0648bfba 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -3604,15 +3604,15 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#stackable-telemetry@0.6.1" = rec { + "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-telemetry@0.6.1" = rec { crateName = "stackable-telemetry"; version = "0.6.1"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; + sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; }; libName = "stackable_telemetry"; authors = [ @@ -5545,9 +5545,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; + sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; }; libName = "k8s_version"; authors = [ @@ -11567,9 +11567,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; + sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; }; libName = "stackable_certs"; authors = [ @@ -11749,13 +11749,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.101.2"; + version = "0.104.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; + sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; }; libName = "stackable_operator"; authors = [ @@ -11800,7 +11800,7 @@ rec { } { name = "stackable-telemetry"; - packageId = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#stackable-telemetry@0.6.1"; + packageId = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-telemetry@0.6.1"; optional = true; features = [ "clap" ]; } @@ -11927,9 +11927,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; + sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -12257,9 +12257,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; + sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; }; libName = "stackable_shared"; authors = [ @@ -12339,9 +12339,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; + sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; }; libName = "stackable_versioned"; authors = [ @@ -12383,9 +12383,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; + sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -12447,9 +12447,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "13cf69454684ccf105d7377ca369d62b7b07250c"; - sha256 = "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; + sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; }; libName = "stackable_webhook"; authors = [ @@ -12475,7 +12475,7 @@ rec { } { name = "stackable-telemetry"; - packageId = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.2#stackable-telemetry@0.6.1"; + packageId = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-telemetry@0.6.1"; } { name = "hyper"; diff --git a/Cargo.toml b/Cargo.toml index e37a2bfa..1c5dea8a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,4 +56,4 @@ yasna = "0.5" [patch."https://github.com/stackabletech/operator-rs.git"] # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } -# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } +stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "tmp/combined-shutdowns" } diff --git a/crate-hashes.json b/crate-hashes.json index 892056f1..581bb5cf 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,4 +1,13 @@ { + "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#k8s-version@0.1.3": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", + "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-certs@0.4.0": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", + "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-operator-derive@0.3.1": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", + "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-operator@0.104.0": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", + "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-shared@0.0.3": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", + "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-telemetry@0.6.1": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", + "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-versioned-macros@0.8.3": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", + "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-versioned@0.8.3": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", + "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-webhook@0.8.1": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5-sys@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-client@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", @@ -6,15 +15,6 @@ "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-certs@0.4.0": "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.101.2#stackable-webhook@0.8.1": "09nmd5pqrmc49dzm7y26qlh1np528d9xq4q8vm4d04sd8z9rd46j", "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1#stackable-telemetry@0.6.1": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index 2ee55d02..f24ba855 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -22,11 +22,9 @@ use stackable_operator::{ kvp::{Label, LabelExt}, shared::yaml::SerializeOptions, telemetry::Tracing, + utils::signal::SignalWatcher, }; -use tokio::{ - signal::unix::{SignalKind, signal}, - sync::oneshot, -}; +use tokio::sync::oneshot; use tokio_stream::wrappers::UnixListenerStream; use tonic::transport::Server; use utils::{TonicUnixStream, uds_bind_private}; @@ -144,9 +142,13 @@ async fn main() -> anyhow::Result<()> { description = built_info::PKG_DESCRIPTION ); + // Watches for the SIGTERM signal and sends a signal to all receivers, which gracefully + // shuts down all concurrent tasks below (EoS checker, controller, webhook server). + let sigterm_watcher = SignalWatcher::sigterm()?; + let eos_checker = EndOfSupportChecker::new(built_info::BUILT_TIME_UTC, maintenance.end_of_support)? - .run() + .run(sigterm_watcher.handle()) .map(Ok); let client = stackable_operator::client::initialize_operator( @@ -167,8 +169,6 @@ async fn main() -> anyhow::Result<()> { let _ = std::fs::remove_file(&csi_endpoint); } - let mut sigterm = signal(SignalKind::terminate())?; - let csi_server = Server::builder() .add_service( tonic_reflection::server::Builder::configure() @@ -193,7 +193,7 @@ async fn main() -> anyhow::Result<()> { .context("failed to bind CSI listener")?, ) .map_ok(TonicUnixStream), - sigterm.recv().map(|_| ()), + sigterm_watcher.handle(), ) .map_err(|err| anyhow!(err).context("failed to run CSI server")); @@ -210,7 +210,7 @@ async fn main() -> anyhow::Result<()> { .await?; let webhook_server = webhook_server - .run() + .run(sigterm_watcher.handle()) .map_err(|err| anyhow!(err).context("failed to run webhook server")); let ca_secret_namespace = tls_secretclass_ca_secret_namespace @@ -225,8 +225,12 @@ async fn main() -> anyhow::Result<()> { anyhow!(err).context("failed to apply default custom resources") }); - let truststore_controller = - truststore_controller::start(client, &watch_namespace).map(anyhow::Ok); + let truststore_controller = truststore_controller::start( + client, + &watch_namespace, + sigterm_watcher.handle(), + ) + .map(anyhow::Ok); try_join!( truststore_controller, diff --git a/rust/operator-binary/src/truststore_controller.rs b/rust/operator-binary/src/truststore_controller.rs index 583ec163..4346646c 100644 --- a/rust/operator-binary/src/truststore_controller.rs +++ b/rust/operator-binary/src/truststore_controller.rs @@ -1,4 +1,4 @@ -use std::{collections::HashMap, sync::Arc, time::Duration}; +use std::{collections::HashMap, future::Future, sync::Arc, time::Duration}; use const_format::concatcp; use futures::StreamExt; @@ -43,7 +43,13 @@ use crate::{ const CONTROLLER_NAME: &str = "truststore"; const FULL_CONTROLLER_NAME: &str = concatcp!(CONTROLLER_NAME, ".", OPERATOR_NAME); -pub async fn start(client: stackable_operator::client::Client, watch_namespace: &WatchNamespace) { +pub async fn start( + client: stackable_operator::client::Client, + watch_namespace: &WatchNamespace, + shutdown_signal: F, +) where + F: Future + Send + Sync + 'static, +{ let (secretclasses, secretclasses_writer) = reflector::store(); let controller = Controller::new( watch_namespace.get_api::>(&client), @@ -108,6 +114,7 @@ pub async fn start(client: stackable_operator::client::Client, watch_namespace: |secretclass, secret| secretclass.spec.backend.refers_to_secret(secret), ), ) + .graceful_shutdown_on(shutdown_signal) .run(reconcile, error_policy, Arc::new(Ctx { client })) .for_each_concurrent(16, move |res| { let event_recorder = event_recorder.clone(); diff --git a/values.yaml b/values.yaml new file mode 100644 index 00000000..cfa73602 --- /dev/null +++ b/values.yaml @@ -0,0 +1,5 @@ +--- +telemetry: + consoleLog: + enabled: true + level: "info,stackable_operator=trace,stackable_webhook=trace" From 727a98e726294dd4f366fb93f2c126499cc86d39 Mon Sep 17 00:00:00 2001 From: Techassi Date: Tue, 3 Feb 2026 15:45:42 +0100 Subject: [PATCH 2/6] chore: Bump to stackable-operator 0.105.0 --- Cargo.lock | 58 +++++++++++++++++++------------------- Cargo.nix | 71 ++++++++++++++++++++++++----------------------- Cargo.toml | 4 +-- crate-hashes.json | 18 ++++++------ 4 files changed, 76 insertions(+), 75 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b8c39a29..ac54b2b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1678,7 +1678,7 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa" dependencies = [ "darling 0.23.0", "regex", @@ -2650,7 +2650,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" dependencies = [ "heck", - "itertools 0.14.0", + "itertools 0.13.0", "log", "multimap", "once_cell", @@ -2672,7 +2672,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.107", @@ -2685,7 +2685,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.107", @@ -3394,7 +3394,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stackable-certs" version = "0.4.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa" dependencies = [ "const-oid", "ecdsa", @@ -3437,8 +3437,8 @@ dependencies = [ [[package]] name = "stackable-operator" -version = "0.104.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" +version = "0.105.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa" dependencies = [ "chrono", "clap", @@ -3463,7 +3463,7 @@ dependencies = [ "snafu 0.8.9", "stackable-operator-derive", "stackable-shared", - "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns)", + "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0)", "stackable-versioned", "stackable-webhook", "strum", @@ -3477,7 +3477,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa" dependencies = [ "darling 0.23.0", "proc-macro2", @@ -3558,7 +3558,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa" dependencies = [ "chrono", "k8s-openapi", @@ -3575,16 +3575,16 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1#958f62f2befdd984ad9fcd272d0214055c3a7601" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa" dependencies = [ "axum", "clap", "futures-util", - "opentelemetry 0.30.0", - "opentelemetry-appender-tracing 0.30.1", - "opentelemetry-otlp 0.30.0", - "opentelemetry-semantic-conventions 0.30.0", - "opentelemetry_sdk 0.30.0", + "opentelemetry 0.31.0", + "opentelemetry-appender-tracing 0.31.1", + "opentelemetry-otlp 0.31.0", + "opentelemetry-semantic-conventions 0.31.0", + "opentelemetry_sdk 0.31.0", "pin-project", "snafu 0.8.9", "strum", @@ -3592,23 +3592,23 @@ dependencies = [ "tower", "tracing", "tracing-appender", - "tracing-opentelemetry 0.31.0", + "tracing-opentelemetry 0.32.0", "tracing-subscriber", ] [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1#958f62f2befdd984ad9fcd272d0214055c3a7601" dependencies = [ "axum", "clap", "futures-util", - "opentelemetry 0.31.0", - "opentelemetry-appender-tracing 0.31.1", - "opentelemetry-otlp 0.31.0", - "opentelemetry-semantic-conventions 0.31.0", - "opentelemetry_sdk 0.31.0", + "opentelemetry 0.30.0", + "opentelemetry-appender-tracing 0.30.1", + "opentelemetry-otlp 0.30.0", + "opentelemetry-semantic-conventions 0.30.0", + "opentelemetry_sdk 0.30.0", "pin-project", "snafu 0.8.9", "strum", @@ -3616,14 +3616,14 @@ dependencies = [ "tower", "tracing", "tracing-appender", - "tracing-opentelemetry 0.32.0", + "tracing-opentelemetry 0.31.0", "tracing-subscriber", ] [[package]] name = "stackable-versioned" version = "0.8.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa" dependencies = [ "schemars", "serde", @@ -3636,7 +3636,7 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" version = "0.8.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa" dependencies = [ "convert_case", "darling 0.23.0", @@ -3652,8 +3652,8 @@ dependencies = [ [[package]] name = "stackable-webhook" -version = "0.8.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns#a6d6e8ed9e84e285728fe536ec22703335f7351b" +version = "0.9.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa" dependencies = [ "arc-swap", "async-trait", @@ -3671,7 +3671,7 @@ dependencies = [ "snafu 0.8.9", "stackable-certs", "stackable-shared", - "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech//operator-rs.git?branch=tmp/combined-shutdowns)", + "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0)", "tokio", "tokio-rustls", "tower", diff --git a/Cargo.nix b/Cargo.nix index 0648bfba..b08d3e87 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -3604,15 +3604,15 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-telemetry@0.6.1" = rec { + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-telemetry@0.6.1" = rec { crateName = "stackable-telemetry"; version = "0.6.1"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; - sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa"; + sha256 = "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd"; }; libName = "stackable_telemetry"; authors = [ @@ -5270,6 +5270,7 @@ rec { "default" = [ "use_std" ]; "use_std" = [ "use_alloc" "either/use_std" ]; }; + resolvedDefaultFeatures = [ "default" "use_alloc" "use_std" ]; }; "itertools 0.14.0" = rec { crateName = "itertools"; @@ -5545,9 +5546,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; - sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa"; + sha256 = "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd"; }; libName = "k8s_version"; authors = [ @@ -9017,7 +9018,7 @@ rec { } { name = "itertools"; - packageId = "itertools 0.14.0"; + packageId = "itertools 0.13.0"; usesDefaultFeatures = false; features = [ "use_alloc" ]; } @@ -9109,7 +9110,7 @@ rec { } { name = "itertools"; - packageId = "itertools 0.14.0"; + packageId = "itertools 0.13.0"; } { name = "proc-macro2"; @@ -9147,7 +9148,7 @@ rec { } { name = "itertools"; - packageId = "itertools 0.14.0"; + packageId = "itertools 0.13.0"; } { name = "proc-macro2"; @@ -11567,9 +11568,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; - sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa"; + sha256 = "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd"; }; libName = "stackable_certs"; authors = [ @@ -11749,13 +11750,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.104.0"; + version = "0.105.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; - sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa"; + sha256 = "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd"; }; libName = "stackable_operator"; authors = [ @@ -11800,7 +11801,7 @@ rec { } { name = "stackable-telemetry"; - packageId = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-telemetry@0.6.1"; + packageId = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-telemetry@0.6.1"; optional = true; features = [ "clap" ]; } @@ -11927,9 +11928,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; - sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa"; + sha256 = "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -12257,9 +12258,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; - sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa"; + sha256 = "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd"; }; libName = "stackable_shared"; authors = [ @@ -12339,9 +12340,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; - sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa"; + sha256 = "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd"; }; libName = "stackable_versioned"; authors = [ @@ -12383,9 +12384,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; - sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa"; + sha256 = "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -12443,13 +12444,13 @@ rec { }; "stackable-webhook" = rec { crateName = "stackable-webhook"; - version = "0.8.1"; + version = "0.9.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "a6d6e8ed9e84e285728fe536ec22703335f7351b"; - sha256 = "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "7bfcac5f6515c8b4c8cf8def2edfde5ed8621aaa"; + sha256 = "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd"; }; libName = "stackable_webhook"; authors = [ @@ -12475,7 +12476,7 @@ rec { } { name = "stackable-telemetry"; - packageId = "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-telemetry@0.6.1"; + packageId = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-telemetry@0.6.1"; } { name = "hyper"; diff --git a/Cargo.toml b/Cargo.toml index 1c5dea8a..02eb8d39 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ edition = "2021" repository = "https://github.com/stackabletech/secret-operator" [workspace.dependencies] -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.101.2", features = ["time", "telemetry", "versioned", "webhook"] } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.105.0", features = ["time", "telemetry", "versioned", "webhook"] } krb5 = { git = "https://github.com/stackabletech/krb5-rs.git", tag = "v0.1.0" } anyhow = "1.0" @@ -56,4 +56,4 @@ yasna = "0.5" [patch."https://github.com/stackabletech/operator-rs.git"] # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } -stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "tmp/combined-shutdowns" } +# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "tmp/combined-shutdowns" } diff --git a/crate-hashes.json b/crate-hashes.json index 581bb5cf..61c8fbc3 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,13 +1,4 @@ { - "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#k8s-version@0.1.3": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", - "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-certs@0.4.0": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", - "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-operator-derive@0.3.1": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", - "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-operator@0.104.0": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", - "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-shared@0.0.3": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", - "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-telemetry@0.6.1": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", - "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-versioned-macros@0.8.3": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", - "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-versioned@0.8.3": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", - "git+https://github.com/stackabletech//operator-rs.git?branch=tmp%2Fcombined-shutdowns#stackable-webhook@0.8.1": "1r4qxvv56qwwrbhg5pz5k0v6kaq5rsam4rkahmlba96afpndjr3v", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5-sys@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-client@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", @@ -15,6 +6,15 @@ "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.105.0#k8s-version@0.1.3": "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-certs@0.4.0": "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-operator-derive@0.3.1": "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-operator@0.105.0": "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-shared@0.0.3": "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-telemetry@0.6.1": "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-versioned-macros@0.8.3": "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-versioned@0.8.3": "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.105.0#stackable-webhook@0.9.0": "02z7c2kjhcwg153j74n52wwcr5x0z70hc21hlsrxyclmc8ps1lmd", "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1#stackable-telemetry@0.6.1": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file From 5911a51f4e843c99cac93eea4d9dcbcc48b786e2 Mon Sep 17 00:00:00 2001 From: Techassi Date: Tue, 3 Feb 2026 15:56:59 +0100 Subject: [PATCH 3/6] chore: Add changelog entry --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d91143b..b83109ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file. ### Changed +- Gracefully shutdown all concurrent tasks by forwarding the SIGTERM signal ([#674]). - OLM deployer doesn't add owner references to cluster scoped objects anymore ([#667]). Owner references ensure that objects are garbage collected by OpenShift upon operator removal but they cause problems when the operator is updated. This means that cluster wide objects are not removed anymore when the operator is uninstalled. @@ -36,6 +37,7 @@ All notable changes to this project will be documented in this file. [#667]: https://github.com/stackabletech/secret-operator/pull/667 [#670]: https://github.com/stackabletech/secret-operator/pull/670 [#671]: https://github.com/stackabletech/secret-operator/pull/671 +[#674]: https://github.com/stackabletech/secret-operator/pull/674 ## [25.11.0] - 2025-11-07 From 19325b9c5c322528b5e256e51c72f253ec32f272 Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 4 Feb 2026 16:00:59 +0100 Subject: [PATCH 4/6] chore: Revert changes to dependency patch --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 02eb8d39..c4ccc9f5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,4 +56,4 @@ yasna = "0.5" [patch."https://github.com/stackabletech/operator-rs.git"] # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } -# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "tmp/combined-shutdowns" } +# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } From 5c560e6d9e6b3eab505fc3aae6c50cbdf7be2421 Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 4 Feb 2026 16:01:44 +0100 Subject: [PATCH 5/6] chore: Bump bytes crate to 1.11.1 Fixes RUSTSEC-2026-0007. --- Cargo.lock | 4 ++-- Cargo.nix | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ac54b2b8..b3b27c39 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,9 +328,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cbc" diff --git a/Cargo.nix b/Cargo.nix index b08d3e87..b27a33c1 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -1087,9 +1087,9 @@ rec { }; "bytes" = rec { crateName = "bytes"; - version = "1.10.1"; - edition = "2018"; - sha256 = "0smd4wi2yrhp5pmq571yiaqx84bjqlm1ixqhnvfwzzc6pqkn26yp"; + version = "1.11.1"; + edition = "2021"; + sha256 = "0czwlhbq8z29wq0ia87yass2mzy1y0jcasjb8ghriiybnwrqfx0y"; authors = [ "Carl Lerche " "Sean McArthur " From 91c82cf5a9034a85ab6fb15069a3ef5659d9220f Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 4 Feb 2026 16:02:10 +0100 Subject: [PATCH 6/6] chore: Bump git2 crate to 0.20.4 Fixes RUSTSEC-2026-0008. --- Cargo.lock | 8 ++++---- Cargo.nix | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b3b27c39..5de79b2f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1140,9 +1140,9 @@ dependencies = [ [[package]] name = "git2" -version = "0.20.2" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" +checksum = "7b88256088d75a56f8ecfa070513a775dd9107f6530ef14919dac831af9cfe2b" dependencies = [ "bitflags", "libc", @@ -1860,9 +1860,9 @@ checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libgit2-sys" -version = "0.18.2+1.9.1" +version = "0.18.3+1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222" +checksum = "c9b3acc4b91781bb0b3386669d325163746af5f6e4f73e6d2d630e09a35f3487" dependencies = [ "cc", "libc", diff --git a/Cargo.nix b/Cargo.nix index b27a33c1..8f908dd7 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -3826,9 +3826,9 @@ rec { }; "git2" = rec { crateName = "git2"; - version = "0.20.2"; + version = "0.20.4"; edition = "2018"; - sha256 = "0451zzmvblvlrj6y6pgdsxrqh42hi789n3k9lp0hslmi6fhhgsrd"; + sha256 = "0azykjpk3j6s354z23jkyq3r3pbmlw9ha1zsxkw5cnnpi1h2b23v"; authors = [ "Josh Triplett " "Alex Crichton " @@ -6384,10 +6384,10 @@ rec { }; "libgit2-sys" = rec { crateName = "libgit2-sys"; - version = "0.18.2+1.9.1"; - edition = "2018"; + version = "0.18.3+1.9.2"; + edition = "2021"; links = "git2"; - sha256 = "08n223x2pkf4gj6yrjmh3z6q236qj6nifwww78xcblrbvw1zwhhw"; + sha256 = "11rlbyihj3k35mnkxxz4yvsnlx33a4r9srl66c5vp08pp72arcy9"; libName = "libgit2_sys"; libPath = "lib.rs"; authors = [