From 4777107cdda3445badaed74c14f9a0549c32a7c0 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Thu, 29 Oct 2026 13:23:52 +0100 Subject: [PATCH 1/3] spike: containerdebug CRD --- Cargo.lock | 383 +++-- Cargo.nix | 1247 ++++++++--------- Cargo.toml | 2 +- crate-hashes.json | 18 +- extra/crds.yaml | 68 + .../src/controller/build/command.rs | 7 +- .../controller/build/resource/statefulset.rs | 47 +- rust/operator-binary/src/controller/mod.rs | 12 +- .../src/controller/validate.rs | 66 +- rust/operator-binary/src/crd/mod.rs | 11 +- 10 files changed, 1001 insertions(+), 860 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f880ffff..7d32ecde 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -114,9 +114,9 @@ checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "arc-swap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b" +checksum = "380962b3d93b99642e50b9febf72c071e97e8b32d86eae9cf4ef582bb960ae6e" dependencies = [ "rustversion", ] @@ -249,9 +249,9 @@ dependencies = [ [[package]] name = "base16ct" -version = "0.2.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +checksum = "fd307490d624467aa6f74b0eabb77633d1f758a7b25f12bceb0b22e08d9726f6" [[package]] name = "base64" @@ -285,11 +285,11 @@ checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" [[package]] name = "block-buffer" -version = "0.10.4" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" dependencies = [ - "generic-array", + "hybrid-array", ] [[package]] @@ -339,7 +339,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" dependencies = [ "cfg-if", - "cpufeatures 0.3.1", + "cpufeatures", "rand_core 0.10.1", ] @@ -394,6 +394,12 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486" +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + [[package]] name = "colorchoice" version = "1.0.5" @@ -412,15 +418,15 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.6" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" [[package]] name = "const_format" -version = "0.2.36" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4481a617ad9a412be3b97c5d403fef8ed023103368908b9c50af598ff467cc1e" +checksum = "a3decb4d6965448659923544a634a0571ba44cede4e11ef15a5a317126840454" dependencies = [ "const_format_proc_macros", "konst", @@ -428,9 +434,9 @@ dependencies = [ [[package]] name = "const_format_proc_macros" -version = "0.2.34" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +checksum = "941b570269a642506f08cb5b688c04bfa6cfd41a26f8bcdc49db8fd00c0ab659" dependencies = [ "proc-macro2", "quote", @@ -469,13 +475,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f8f80099a98041a3d1622845c271458a2d73e688351bf3cb999266764b81d48" [[package]] -name = "cpufeatures" -version = "0.2.17" +name = "cpubits" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] +checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae" [[package]] name = "cpufeatures" @@ -512,24 +515,50 @@ checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "crypto-bigint" -version = "0.5.5" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +checksum = "9c035cb64cba03dad2fb921f3e218785e8cf9a41790da5eb3a1400f62fa2be11" dependencies = [ - "generic-array", - "rand_core 0.6.4", + "cpubits", + "ctutils", + "getrandom 0.4.3", + "hybrid-array", + "num-traits", + "rand_core 0.10.1", + "serdect", "subtle", "zeroize", ] [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ - "generic-array", - "typenum", + "getrandom 0.4.3", + "hybrid-array", + "rand_core 0.10.1", +] + +[[package]] +name = "crypto-primes" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3633a51a39c69ebbaa4feaa694bd83d241e4093901c84a0963b19d9bb3f0cf8f" +dependencies = [ + "crypto-bigint", + "rand_core 0.10.1", +] + +[[package]] +name = "ctutils" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe3e9d21d39e6f39ff46e03d5b621424f88ee23d8a1672c6bfc9ccc7f2da4f6a" +dependencies = [ + "cmov", + "subtle", ] [[package]] @@ -644,9 +673,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.10" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +checksum = "6a996a108feb8b427a6e12fcf6af4aa83409b79d72c15337d7741368131ee004" dependencies = [ "const-oid", "der_derive", @@ -657,9 +686,9 @@ dependencies = [ [[package]] name = "der_derive" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" +checksum = "59600e2c2d636fde9b65e99cc6445ac770c63d3628195ff39932b8d6d7409903" dependencies = [ "proc-macro2", "quote", @@ -695,14 +724,14 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.7" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer", "const-oid", "crypto-common", - "subtle", + "ctutils", ] [[package]] @@ -744,9 +773,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ecdsa" -version = "0.16.9" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +checksum = "c0681a4fc24c767085329728d8dfba959af91228aa4610cca4f8ce317ba46ae0" dependencies = [ "der", "digest", @@ -754,6 +783,7 @@ dependencies = [ "rfc6979", "signature", "spki", + "zeroize", ] [[package]] @@ -788,19 +818,20 @@ checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" [[package]] name = "elliptic-curve" -version = "0.13.8" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +checksum = "900f37e7e18d74a2347389af6cd69e3a30d5cc9e697f40004865679aa75e9c7c" dependencies = [ "base16ct", "crypto-bigint", + "crypto-common", "digest", "ff", - "generic-array", "group", + "hybrid-array", "pem-rfc7468", "pkcs8", - "rand_core 0.6.4", + "rand_core 0.10.1", "sec1", "subtle", "zeroize", @@ -871,7 +902,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -902,11 +933,11 @@ checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "ff" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +checksum = "a1f686ab92a9fb0eaf188f6c6c87b89490baa6fdb0db4544ba4dc47f7942489f" dependencies = [ - "rand_core 0.6.4", + "rand_core 0.10.1", "subtle", ] @@ -1056,17 +1087,6 @@ dependencies = [ "slab", ] -[[package]] -name = "generic-array" -version = "0.14.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - [[package]] name = "getrandom" version = "0.2.17" @@ -1146,12 +1166,12 @@ dependencies = [ [[package]] name = "group" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +checksum = "7fd1a1c7a5206c5b7a3f5a0d7ccd3ff85d0c8f5133d62a02680255b0004af5f4" dependencies = [ "ff", - "rand_core 0.6.4", + "rand_core 0.10.1", "subtle", ] @@ -1199,9 +1219,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hmac" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" dependencies = [ "digest", ] @@ -1268,6 +1288,17 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15cdd26707701c53297e2fa6afb323d55fbc1d0810c3aec078ae3ef0424c3c15" +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "subtle", + "typenum", + "zeroize", +] + [[package]] name = "hyper" version = "1.12.0" @@ -1720,7 +1751,7 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.4" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#433ac4fe45418d39631e683fac74cb49e11911f6" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" dependencies = [ "darling 0.24.1", "regex", @@ -1856,9 +1887,6 @@ name = "lazy_static" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20870f649af7073d53e38067b2a84312175d56ea15217e1b15bc83506ec50afb" -dependencies = [ - "spin", -] [[package]] name = "libc" @@ -1878,12 +1906,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "libm" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" - [[package]] name = "libyaml-rs" version = "0.3.0" @@ -1992,47 +2014,12 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "num-bigint-dig" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" -dependencies = [ - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.8", - "smallvec", - "zeroize", -] - [[package]] name = "num-conv" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" -[[package]] -name = "num-integer" -version = "0.1.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" -dependencies = [ - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -2040,7 +2027,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "libm", ] [[package]] @@ -2168,12 +2154,13 @@ dependencies = [ [[package]] name = "p256" -version = "0.13.2" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +checksum = "d2c9239b2dbc807adbbe147e8cf72ea7450c3a0aabe62cb8e75ff4ec22e1f72a" dependencies = [ "ecdsa", "elliptic-curve", + "primefield", "primeorder", "sha2", ] @@ -2219,9 +2206,9 @@ dependencies = [ [[package]] name = "pem-rfc7468" -version = "0.7.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +checksum = "a6305423e0e7738146434843d1694d621cce767262b2a86910beab705e4493d9" dependencies = [ "base64ct", ] @@ -2304,20 +2291,19 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkcs1" -version = "0.7.5" +version = "0.8.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +checksum = "f485dbafe293ea6ccaa7d82bc591651a796eb8a9aec3df040b057b706073dbc3" dependencies = [ "der", - "pkcs8", "spki", ] [[package]] name = "pkcs8" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +checksum = "451913da69c775a56034ea8d9003d27ee8948e12443eae7c038ba100a4f21cb7" dependencies = [ "der", "spki", @@ -2368,13 +2354,31 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "primefield" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c555a6e4eb7d4e158fcb028c835c3b8642206ddc279b5c6b202ef9a8bdb592f4" +dependencies = [ + "crypto-bigint", + "crypto-common", + "ff", + "rand_core 0.10.1", + "subtle", + "zeroize", +] + [[package]] name = "primeorder" -version = "0.13.6" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +checksum = "5c9f42978c78a00e3d68f69fc03e57a234debae69da4020a4fb588fcdcd07b06" dependencies = [ "elliptic-curve", + "once_cell", + "primefield", + "serdect", + "wnaf", ] [[package]] @@ -2457,23 +2461,13 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "rand" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" -dependencies = [ - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" dependencies = [ - "rand_chacha 0.9.0", + "rand_chacha", "rand_core 0.9.5", ] @@ -2488,16 +2482,6 @@ dependencies = [ "rand_core 0.10.1", ] -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - [[package]] name = "rand_chacha" version = "0.9.0" @@ -2508,15 +2492,6 @@ dependencies = [ "rand_core 0.9.5", ] -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", -] - [[package]] name = "rand_core" version = "0.9.5" @@ -2629,12 +2604,12 @@ dependencies = [ [[package]] name = "rfc6979" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +checksum = "b4a459cddafb3fe76b31fd8f1108007566c40301feb64dc7b54656eb7388172b" dependencies = [ + "crypto-bigint", "hmac", - "subtle", ] [[package]] @@ -2653,22 +2628,20 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.10" +version = "0.10.0-rc.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" +checksum = "33405e321e16ef941ca66e254f6904c3aafd3c7ff001fb88bf11c73eb75c2b85" dependencies = [ "const-oid", + "crypto-bigint", + "crypto-primes", "digest", - "num-bigint-dig", - "num-integer", - "num-traits", "pkcs1", "pkcs8", - "rand_core 0.6.4", + "rand_core 0.10.1", "sha2", "signature", "spki", - "subtle", "zeroize", ] @@ -2764,7 +2737,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2848,14 +2821,14 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sec1" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +checksum = "d56d437c2f19203ce5f7122e507831de96f3d2d4d3be5af44a0b0a09d8a80e4d" dependencies = [ "base16ct", + "ctutils", "der", - "generic-array", - "pkcs8", + "hybrid-array", "subtle", "zeroize", ] @@ -3008,25 +2981,35 @@ dependencies = [ "serde", ] +[[package]] +name = "serdect" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66cf8fedced2fcf12406bcb34223dffb92eaf34908ede12fed414c82b7f00b3e" +dependencies = [ + "base16ct", + "serde", +] + [[package]] name = "sha1" -version = "0.10.7" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a978451301f4db1d02937a4ab3ccce137717b81826e79b7d49ffe3244a13c3b8" +checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" dependencies = [ "cfg-if", - "cpufeatures 0.2.17", + "cpufeatures", "digest", ] [[package]] name = "sha2" -version = "0.10.9" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +checksum = "47d7069beb7d6ac7b9acd1039986e73443f24234f41074da099d6f994ac9ad19" dependencies = [ "cfg-if", - "cpufeatures 0.2.17", + "cpufeatures", "digest", ] @@ -3057,12 +3040,12 @@ dependencies = [ [[package]] name = "signature" -version = "2.2.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +checksum = "28d567dcbaf0049cb8ac2608a76cd95ff9e4412e1899d389ee400918ca7537f5" dependencies = [ "digest", - "rand_core 0.6.4", + "rand_core 0.10.1", ] [[package]] @@ -3151,17 +3134,11 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "spin" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e" - [[package]] name = "spki" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +checksum = "7ef958a98b9d5da290cfc78946e9f3e61e1e62a18db0d92cac0b83cc161491a9" dependencies = [ "base64ct", "der", @@ -3176,7 +3153,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stackable-certs" version = "0.4.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#433ac4fe45418d39631e683fac74cb49e11911f6" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" dependencies = [ "const-oid", "ecdsa", @@ -3184,7 +3161,7 @@ dependencies = [ "kube", "p256", "rand 0.10.3", - "rand_core 0.6.4", + "rand_core 0.10.1", "rsa", "sha2", "signature", @@ -3200,8 +3177,9 @@ dependencies = [ [[package]] name = "stackable-operator" version = "0.121.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#433ac4fe45418d39631e683fac74cb49e11911f6" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" dependencies = [ + "base16ct", "base64 0.23.1", "clap", "const_format", @@ -3244,7 +3222,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#433ac4fe45418d39631e683fac74cb49e11911f6" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" dependencies = [ "darling 0.24.1", "proc-macro2", @@ -3255,7 +3233,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.2.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#433ac4fe45418d39631e683fac74cb49e11911f6" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" dependencies = [ "jiff", "k8s-openapi", @@ -3272,7 +3250,7 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.5" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#433ac4fe45418d39631e683fac74cb49e11911f6" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" dependencies = [ "axum", "clap", @@ -3319,7 +3297,7 @@ dependencies = [ [[package]] name = "stackable-versioned" version = "0.13.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#433ac4fe45418d39631e683fac74cb49e11911f6" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" dependencies = [ "kube", "schemars", @@ -3327,13 +3305,12 @@ dependencies = [ "serde_json", "snafu 0.9.2", "stackable-versioned-macros", - "yaml_serde", ] [[package]] name = "stackable-versioned-macros" version = "0.13.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#433ac4fe45418d39631e683fac74cb49e11911f6" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" dependencies = [ "convert_case", "darling 0.24.1", @@ -3350,7 +3327,7 @@ dependencies = [ [[package]] name = "stackable-webhook" version = "0.10.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#433ac4fe45418d39631e683fac74cb49e11911f6" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" dependencies = [ "arc-swap", "async-trait", @@ -3596,9 +3573,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.53.3" +version = "1.54.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce3335fa71841cda333a58d7615b03901380ecf09d59b3296d21f8bbac0dde4e" +checksum = "b52fd3255258d26fac7264ab5a76b53c13367136dc011d3d6ad4f8ed070396a3" dependencies = [ "bytes", "libc", @@ -3985,9 +3962,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.28.0" +version = "1.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc1186384beb7dd8eedea376413fd654937285ea6c9cfbb928dc3043ea4b606" +checksum = "4a0e2d11620c50695fe12bbbfde96b3477fe606e7284c22d505c12ce51214514" dependencies = [ "js-sys", "wasm-bindgen", @@ -4136,7 +4113,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -4295,6 +4272,18 @@ version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +[[package]] +name = "wnaf" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "795ca18b3fdb5e62bf982199278341ddcf7ebf7d32e25e212ad05d496e95f6fa" +dependencies = [ + "ff", + "group", + "hybrid-array", + "primefield", +] + [[package]] name = "writeable" version = "0.6.4" @@ -4303,9 +4292,9 @@ checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "x509-cert" -version = "0.2.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" +checksum = "105ef4642d9cb137ef83d623d0e4bf08b8adf69e9918ca904a174adb6d3d038b" dependencies = [ "const-oid", "der", diff --git a/Cargo.nix b/Cargo.nix index 5a3008a9..f4cf61ce 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -375,9 +375,9 @@ rec { }; "arc-swap" = rec { crateName = "arc-swap"; - version = "1.9.2"; + version = "1.9.3"; edition = "2018"; - sha256 = "02w1n3kiz02ml6is3biqia4bgxcf7dml2m9mrd2v3w5f9nzc0jf0"; + sha256 = "0vmfc2wjnn7gyjfawvnq6a5pxsbiq1rbzzmra0p6969vv6rn429q"; libName = "arc_swap"; authors = [ "Michal 'vorner' Vaner " @@ -389,6 +389,7 @@ rec { } ]; features = { + "internal-test-strategies" = [ "rwlock-strategy" ]; "serde" = [ "dep:serde" ]; }; }; @@ -824,14 +825,13 @@ rec { }; "base16ct" = rec { crateName = "base16ct"; - version = "0.2.0"; - edition = "2021"; - sha256 = "1kylrjhdzk7qpknrvlphw8ywdnvvg39dizw9622w3wk5xba04zsc"; + version = "1.0.0"; + edition = "2024"; + sha256 = "1xi6jy6y08hbxfy14pxjlxcggl9kfsvsn3jbyyk7lii4ss878c7x"; authors = [ "RustCrypto Developers" ]; features = { - "std" = [ "alloc" ]; }; resolvedDefaultFeatures = [ "alloc" ]; }; @@ -908,20 +908,22 @@ rec { }; "block-buffer" = rec { crateName = "block-buffer"; - version = "0.10.4"; - edition = "2018"; - sha256 = "0w9sa2ypmrsqqvc20nhwr75wbb5cjr4kkyhpjm1z1lv2kdicfy1h"; + version = "0.12.1"; + edition = "2024"; + sha256 = "1ak0cvmxz3yifqmzv6aba9606brsz7d5g3piv5xdcvjsx7dwgxnj"; libName = "block_buffer"; authors = [ "RustCrypto Developers" ]; dependencies = [ { - name = "generic-array"; - packageId = "generic-array"; + name = "hybrid-array"; + packageId = "hybrid-array"; } ]; - + features = { + "zeroize" = [ "dep:zeroize" ]; + }; }; "built" = rec { crateName = "built"; @@ -1049,7 +1051,7 @@ rec { } { name = "cpufeatures"; - packageId = "cpufeatures 0.3.1"; + packageId = "cpufeatures"; target = { target, features }: (("x86_64" == target."arch" or null) || ("x86" == target."arch" or null)); } { @@ -1237,6 +1239,16 @@ rec { edition = "2024"; sha256 = "11k4m4ngn39iz39lnq6nn6kyxzp62mnm1d86qfad3q0vlk33n4qw"; + }; + "cmov" = rec { + crateName = "cmov"; + version = "0.5.4"; + edition = "2024"; + sha256 = "0yh22sqdvcdrfbhvnja4kaq5dyklpb4s70w5r6rplfdw4jna17hc"; + authors = [ + "RustCrypto Developers" + ]; + }; "colorchoice" = rec { crateName = "colorchoice"; @@ -1294,9 +1306,9 @@ rec { }; "const-oid" = rec { crateName = "const-oid"; - version = "0.9.6"; - edition = "2021"; - sha256 = "1y0jnqaq7p2wvspnx7qj76m7hjcqpz73qzvr9l2p9n2s51vr6if2"; + version = "0.10.2"; + edition = "2024"; + sha256 = "0p7m286mp8aai4sa72g7ji6qm0d4ns8wg4i4b2hj9p9615zm3vx6"; libName = "const_oid"; authors = [ "RustCrypto Developers" @@ -1304,13 +1316,13 @@ rec { features = { "arbitrary" = [ "dep:arbitrary" ]; }; - resolvedDefaultFeatures = [ "db" "std" ]; + resolvedDefaultFeatures = [ "db" ]; }; "const_format" = rec { crateName = "const_format"; - version = "0.2.36"; + version = "0.2.37"; edition = "2021"; - sha256 = "07ncczs8yndga2f8p4386c827l4fxwzl0pbwp7ijnhcsmlbsd0a4"; + sha256 = "0m04hhk72casbbqixqg4xm6a86spl0saci1mj9cqci35d56wppm3"; authors = [ "rodrimati1992 " ]; @@ -1347,9 +1359,9 @@ rec { }; "const_format_proc_macros" = rec { crateName = "const_format_proc_macros"; - version = "0.2.34"; + version = "0.2.37"; edition = "2021"; - sha256 = "0i3pxxcl4xvwq4mlfg3csb4j0n6v0mhj07p6yk0vlvdirznc4mqx"; + sha256 = "0ndn186d13yv97fbry163bacz9mz0j66hnyb11pm0hm6d415f6wl"; procMacro = true; authors = [ "rodrimati1992 " @@ -1447,43 +1459,17 @@ rec { }; resolvedDefaultFeatures = [ "default" ]; }; - "cpufeatures 0.2.17" = rec { - crateName = "cpufeatures"; - version = "0.2.17"; - edition = "2018"; - sha256 = "10023dnnaghhdl70xcds12fsx2b966sxbxjq5sxs49mvxqw5ivar"; + "cpubits" = rec { + crateName = "cpubits"; + version = "0.1.1"; + edition = "2024"; + sha256 = "1bh6rvanxm00myf1rmnh44hq2jdxn69971c92s4klz0k76f5zf0m"; authors = [ "RustCrypto Developers" ]; - dependencies = [ - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - target = { target, features }: (target.name == "aarch64-linux-android"); - } - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - target = { target, features }: (("aarch64" == target."arch" or null) && ("linux" == target."os" or null)); - } - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - target = { target, features }: (("aarch64" == target."arch" or null) && ("apple" == target."vendor" or null)); - } - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - target = { target, features }: (("loongarch64" == target."arch" or null) && ("linux" == target."os" or null)); - } - ]; }; - "cpufeatures 0.3.1" = rec { + "cpufeatures" = rec { crateName = "cpufeatures"; version = "0.3.1"; edition = "2024"; @@ -1572,27 +1558,54 @@ rec { }; "crypto-bigint" = rec { crateName = "crypto-bigint"; - version = "0.5.5"; - edition = "2021"; - sha256 = "0xmbdff3g6ii5sbxjxc31xfkv9lrmyril4arh3dzckd4gjsjzj8d"; + version = "0.7.10"; + edition = "2024"; + sha256 = "04dyl8pzc00l7bmsa3br86dczs45hwhkw7wjzg9dl0xs9jv5q0ww"; libName = "crypto_bigint"; authors = [ "RustCrypto Developers" ]; dependencies = [ { - name = "generic-array"; - packageId = "generic-array"; + name = "cpubits"; + packageId = "cpubits"; + } + { + name = "ctutils"; + packageId = "ctutils"; + } + { + name = "getrandom"; + packageId = "getrandom 0.4.3"; + optional = true; + features = [ "sys_rng" ]; + } + { + name = "hybrid-array"; + packageId = "hybrid-array"; optional = true; } + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + } { name = "rand_core"; - packageId = "rand_core 0.6.4"; + packageId = "rand_core 0.10.1"; optional = true; + usesDefaultFeatures = false; + } + { + name = "serdect"; + packageId = "serdect"; + optional = true; + usesDefaultFeatures = false; } { name = "subtle"; packageId = "subtle"; + optional = true; usesDefaultFeatures = false; } { @@ -1605,48 +1618,120 @@ rec { devDependencies = [ { name = "rand_core"; - packageId = "rand_core 0.6.4"; - features = [ "std" ]; + packageId = "rand_core 0.10.1"; } ]; features = { "alloc" = [ "serdect?/alloc" ]; - "default" = [ "rand" ]; - "der" = [ "dep:der" ]; - "generic-array" = [ "dep:generic-array" ]; - "rand" = [ "rand_core/std" ]; + "default" = [ "rand_core" ]; + "der" = [ "dep:der" "hybrid-array" ]; + "getrandom" = [ "dep:getrandom" "rand_core" ]; + "hybrid-array" = [ "dep:hybrid-array" ]; "rand_core" = [ "dep:rand_core" ]; "rlp" = [ "dep:rlp" ]; "serde" = [ "dep:serdect" ]; + "subtle" = [ "dep:subtle" "ctutils/subtle" "hybrid-array?/subtle" ]; "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "generic-array" "rand_core" "zeroize" ]; + resolvedDefaultFeatures = [ "alloc" "getrandom" "hybrid-array" "rand_core" "subtle" "zeroize" ]; }; "crypto-common" = rec { crateName = "crypto-common"; - version = "0.1.6"; - edition = "2018"; - sha256 = "1cvby95a6xg7kxdz5ln3rl9xh66nz66w46mm3g56ri1z5x815yqv"; + version = "0.2.2"; + edition = "2024"; + sha256 = "0lql5wjlrjkd3r0w32rwbgqfmgg84ms3h65ldnlckmkc3nb4qvnf"; libName = "crypto_common"; authors = [ "RustCrypto Developers" ]; dependencies = [ { - name = "generic-array"; - packageId = "generic-array"; - features = [ "more_lengths" ]; + name = "getrandom"; + packageId = "getrandom 0.4.3"; + optional = true; + features = [ "sys_rng" ]; } { - name = "typenum"; - packageId = "typenum"; + name = "hybrid-array"; + packageId = "hybrid-array"; + } + { + name = "rand_core"; + packageId = "rand_core 0.10.1"; + optional = true; } ]; features = { - "getrandom" = [ "rand_core/getrandom" ]; + "getrandom" = [ "rand_core" "dep:getrandom" ]; "rand_core" = [ "dep:rand_core" ]; + "zeroize" = [ "hybrid-array/zeroize" ]; + }; + resolvedDefaultFeatures = [ "getrandom" "rand_core" ]; + }; + "crypto-primes" = rec { + crateName = "crypto-primes"; + version = "0.7.2"; + edition = "2024"; + sha256 = "13ygy2rrp7dicc4lmj01744y8hfjhfyr99pa9ymbp7n674daacrn"; + libName = "crypto_primes"; + dependencies = [ + { + name = "crypto-bigint"; + packageId = "crypto-bigint"; + usesDefaultFeatures = false; + features = [ "rand_core" ]; + } + { + name = "rand_core"; + packageId = "rand_core 0.10.1"; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "crypto-bigint"; + packageId = "crypto-bigint"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } + ]; + features = { + "default" = [ "alloc" ]; + "glass_pumpkin" = [ "dep:glass_pumpkin" ]; + "multicore" = [ "rayon" ]; + "openssl" = [ "dep:openssl" ]; + "rayon" = [ "dep:rayon" ]; + "rug" = [ "dep:rug" ]; + "tests-all" = [ "tests-openssl" "tests-gmp" "tests-exhaustive" "tests-glass-pumpkin" ]; + "tests-glass-pumpkin" = [ "glass_pumpkin" ]; + "tests-gmp" = [ "rug/std" ]; + "tests-openssl" = [ "openssl" ]; }; - resolvedDefaultFeatures = [ "std" ]; + }; + "ctutils" = rec { + crateName = "ctutils"; + version = "0.4.6"; + edition = "2024"; + sha256 = "0sjgvbrcgk69pz3745la7pi8xy142ii5ngg08vzkjvwyschrsgpy"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "cmov"; + packageId = "cmov"; + } + { + name = "subtle"; + packageId = "subtle"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "subtle" = [ "dep:subtle" ]; + }; + resolvedDefaultFeatures = [ "subtle" ]; }; "darling 0.23.0" = rec { crateName = "darling"; @@ -1931,9 +2016,9 @@ rec { }; "der" = rec { crateName = "der"; - version = "0.7.10"; - edition = "2021"; - sha256 = "1jyxacyxdx6mxbkfw99jz59dzvcd9k17rq01a7xvn1dr6wl87hg7"; + version = "0.8.3"; + edition = "2024"; + sha256 = "01703q9nh4vlswvm7hbjknvhjd589apzdz0jdrx452zbiw86m6ba"; authors = [ "RustCrypto Developers" ]; @@ -1968,10 +2053,11 @@ rec { ]; features = { "alloc" = [ "zeroize?/alloc" ]; - "arbitrary" = [ "dep:arbitrary" "const-oid?/arbitrary" "std" ]; + "arbitrary" = [ "dep:arbitrary" "dep:derive_arbitrary" "const-oid?/arbitrary" "std" ]; "bytes" = [ "dep:bytes" "alloc" ]; "derive" = [ "dep:der_derive" ]; "flagset" = [ "dep:flagset" ]; + "heapless" = [ "dep:heapless" ]; "oid" = [ "dep:const-oid" ]; "pem" = [ "dep:pem-rfc7468" "alloc" "zeroize" ]; "std" = [ "alloc" ]; @@ -1982,9 +2068,9 @@ rec { }; "der_derive" = rec { crateName = "der_derive"; - version = "0.7.3"; - edition = "2021"; - sha256 = "065d2wy7zd0dank99hh58l5x7lv50hxnr7j6f3sphlb7i4ihjd40"; + version = "0.8.0"; + edition = "2024"; + sha256 = "00wr83bxdf1jk7rmy6986qywcw67b92cd779cndxwvv35ln0wq2r"; procMacro = true; authors = [ "RustCrypto Developers" @@ -2128,9 +2214,9 @@ rec { }; "digest" = rec { crateName = "digest"; - version = "0.10.7"; - edition = "2018"; - sha256 = "14p2n6ih29x81akj097lvz7wi9b6b9hvls0lwrv7b6xwyy0s5ncy"; + version = "0.11.3"; + edition = "2024"; + sha256 = "1hnmhd4rkybr11292w42pz9ppzx1h49glrhqg107k4s1b2xnvpgi"; authors = [ "RustCrypto Developers" ]; @@ -2148,28 +2234,26 @@ rec { { name = "crypto-common"; packageId = "crypto-common"; + rename = "common"; } { - name = "subtle"; - packageId = "subtle"; + name = "ctutils"; + packageId = "ctutils"; optional = true; - usesDefaultFeatures = false; } ]; features = { "blobby" = [ "dep:blobby" ]; - "block-buffer" = [ "dep:block-buffer" ]; - "const-oid" = [ "dep:const-oid" ]; - "core-api" = [ "block-buffer" ]; - "default" = [ "core-api" ]; + "block-api" = [ "dep:block-buffer" ]; + "default" = [ "block-api" ]; "dev" = [ "blobby" ]; - "mac" = [ "subtle" ]; - "oid" = [ "const-oid" ]; - "rand_core" = [ "crypto-common/rand_core" ]; - "std" = [ "alloc" "crypto-common/std" ]; - "subtle" = [ "dep:subtle" ]; + "getrandom" = [ "common/getrandom" "rand_core" ]; + "mac" = [ "dep:ctutils" ]; + "oid" = [ "dep:const-oid" ]; + "rand_core" = [ "common/rand_core" ]; + "zeroize" = [ "dep:zeroize" "block-buffer?/zeroize" ]; }; - resolvedDefaultFeatures = [ "alloc" "block-buffer" "const-oid" "core-api" "default" "mac" "oid" "std" "subtle" ]; + resolvedDefaultFeatures = [ "alloc" "block-api" "default" "mac" "oid" ]; }; "displaydoc" = rec { crateName = "displaydoc"; @@ -2260,9 +2344,9 @@ rec { }; "ecdsa" = rec { crateName = "ecdsa"; - version = "0.16.9"; - edition = "2021"; - sha256 = "1jhb0bcbkaz4001sdmfyv8ajrv8a1cg7z7aa5myrd4jjbhmz69zf"; + version = "0.17.0"; + edition = "2024"; + sha256 = "1q3alixk3kpqlk610ima509gk6lmpbgxha4p6a2p0xjcq97ils60"; authors = [ "RustCrypto Developers" ]; @@ -2283,7 +2367,7 @@ rec { name = "elliptic-curve"; packageId = "elliptic-curve"; usesDefaultFeatures = false; - features = [ "digest" "sec1" ]; + features = [ "sec1" ]; } { name = "rfc6979"; @@ -2302,6 +2386,11 @@ rec { optional = true; usesDefaultFeatures = false; } + { + name = "zeroize"; + packageId = "zeroize"; + usesDefaultFeatures = false; + } ]; devDependencies = [ { @@ -2312,24 +2401,21 @@ rec { } ]; features = { + "algorithm" = [ "dep:rfc6979" "digest" "elliptic-curve/arithmetic" ]; "alloc" = [ "elliptic-curve/alloc" "signature/alloc" "spki/alloc" ]; - "arithmetic" = [ "elliptic-curve/arithmetic" ]; "default" = [ "digest" ]; "der" = [ "dep:der" ]; - "dev" = [ "arithmetic" "digest" "elliptic-curve/dev" "hazmat" ]; - "digest" = [ "dep:digest" "signature/digest" ]; + "dev" = [ "algorithm" "digest/dev" "elliptic-curve/dev" ]; + "digest" = [ "dep:digest" "elliptic-curve/digest" "signature/digest" ]; + "getrandom" = [ "elliptic-curve/getrandom" ]; "pem" = [ "elliptic-curve/pem" "pkcs8" ]; - "pkcs8" = [ "digest" "elliptic-curve/pkcs8" "der" ]; - "rfc6979" = [ "dep:rfc6979" ]; - "serde" = [ "elliptic-curve/serde" "serdect" ]; - "serdect" = [ "dep:serdect" ]; + "pkcs8" = [ "der" "digest" "elliptic-curve/pkcs8" ]; + "serde" = [ "dep:serdect" "elliptic-curve/serde" "pkcs8" ]; "sha2" = [ "dep:sha2" ]; - "signing" = [ "arithmetic" "digest" "hazmat" "rfc6979" ]; "spki" = [ "dep:spki" ]; - "std" = [ "alloc" "elliptic-curve/std" "signature/std" ]; - "verifying" = [ "arithmetic" "digest" "hazmat" ]; + "std" = [ "alloc" "elliptic-curve/std" ]; }; - resolvedDefaultFeatures = [ "alloc" "arithmetic" "default" "der" "digest" "hazmat" "pem" "pkcs8" "rfc6979" "signing" "spki" "std" "verifying" ]; + resolvedDefaultFeatures = [ "algorithm" "alloc" "default" "der" "digest" "pem" "pkcs8" "spki" "std" ]; }; "educe 0.6.0" = rec { crateName = "educe"; @@ -2423,9 +2509,9 @@ rec { }; "elliptic-curve" = rec { crateName = "elliptic-curve"; - version = "0.13.8"; - edition = "2021"; - sha256 = "0ixx4brgnzi61z29r3g1606nh2za88hzyz8c5r3p6ydzhqq09rmm"; + version = "0.14.3"; + edition = "2024"; + sha256 = "0z4wbskrlrv590040zv9kv6dac1skvb6rbw9fcsa4x4dw7kkf3wh"; libName = "elliptic_curve"; authors = [ "RustCrypto Developers" @@ -2438,8 +2524,15 @@ rec { { name = "crypto-bigint"; packageId = "crypto-bigint"; + rename = "bigint"; usesDefaultFeatures = false; - features = [ "rand_core" "generic-array" "zeroize" ]; + features = [ "hybrid-array" "rand_core" "subtle" "zeroize" ]; + } + { + name = "crypto-common"; + packageId = "crypto-common"; + rename = "common"; + features = [ "rand_core" ]; } { name = "digest"; @@ -2452,18 +2545,19 @@ rec { optional = true; usesDefaultFeatures = false; } - { - name = "generic-array"; - packageId = "generic-array"; - usesDefaultFeatures = false; - features = [ "zeroize" ]; - } { name = "group"; packageId = "group"; optional = true; usesDefaultFeatures = false; } + { + name = "hybrid-array"; + packageId = "hybrid-array"; + rename = "array"; + usesDefaultFeatures = false; + features = [ "zeroize" ]; + } { name = "pem-rfc7468"; packageId = "pem-rfc7468"; @@ -2478,14 +2572,14 @@ rec { } { name = "rand_core"; - packageId = "rand_core 0.6.4"; + packageId = "rand_core 0.10.1"; usesDefaultFeatures = false; } { name = "sec1"; packageId = "sec1"; optional = true; - features = [ "subtle" "zeroize" ]; + features = [ "ctutils" "subtle" "zeroize" ]; } { name = "subtle"; @@ -2499,25 +2593,22 @@ rec { } ]; features = { - "alloc" = [ "base16ct/alloc" "ff?/alloc" "group?/alloc" "pkcs8?/alloc" "sec1?/alloc" "zeroize/alloc" ]; + "alloc" = [ "base16ct/alloc" "ff?/alloc" "group?/alloc" "array/alloc" "pkcs8?/alloc" "sec1?/alloc" "zeroize/alloc" ]; "arithmetic" = [ "group" ]; - "bits" = [ "arithmetic" "ff/bits" "dep:tap" ]; "default" = [ "arithmetic" ]; "dev" = [ "arithmetic" "dep:hex-literal" "pem" "pkcs8" ]; "digest" = [ "dep:digest" ]; "ecdh" = [ "arithmetic" "digest" "dep:hkdf" ]; "ff" = [ "dep:ff" ]; + "getrandom" = [ "arithmetic" "bigint/getrandom" "common/getrandom" ]; "group" = [ "dep:group" "ff" ]; - "hash2curve" = [ "arithmetic" "digest" ]; - "jwk" = [ "dep:base64ct" "dep:serde_json" "alloc" "serde" "zeroize/alloc" ]; - "pem" = [ "dep:pem-rfc7468" "alloc" "arithmetic" "pkcs8" "sec1/pem" ]; + "pem" = [ "dep:pem-rfc7468" "alloc" "arithmetic" "pkcs8/pem" "sec1/pem" ]; "pkcs8" = [ "dep:pkcs8" "sec1" ]; "sec1" = [ "dep:sec1" ]; "serde" = [ "dep:serdect" "alloc" "pkcs8" "sec1/serde" ]; - "std" = [ "alloc" "rand_core/std" "pkcs8?/std" "sec1?/std" ]; - "voprf" = [ "digest" ]; + "std" = [ "alloc" "pkcs8?/std" "sec1?/std" ]; }; - resolvedDefaultFeatures = [ "alloc" "arithmetic" "digest" "ff" "group" "hazmat" "pem" "pkcs8" "sec1" "std" ]; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "digest" "ff" "getrandom" "group" "pem" "pkcs8" "sec1" "std" ]; }; "encoding_rs" = rec { crateName = "encoding_rs"; @@ -2690,7 +2781,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.61.2"; + packageId = "windows-sys 0.52.0"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_System_Diagnostics_Debug" ]; } @@ -2781,9 +2872,9 @@ rec { }; "ff" = rec { crateName = "ff"; - version = "0.13.1"; + version = "0.14.0"; edition = "2021"; - sha256 = "14v3bc6q24gbcjnxjfbq2dddgf4as2z2gd4mj35gjlrncpxhpdf0"; + sha256 = "17s889wpzi2dp924bnxhznkbm44lp23nqv4g32phxyx9jamqdxm1"; authors = [ "Sean Bowe " "Jack Grigg " @@ -2791,7 +2882,7 @@ rec { dependencies = [ { name = "rand_core"; - packageId = "rand_core 0.6.4"; + packageId = "rand_core 0.10.1"; usesDefaultFeatures = false; } { @@ -2802,12 +2893,11 @@ rec { } ]; features = { - "bits" = [ "bitvec" ]; + "bits" = [ "bitvec" "ff_derive?/bits" ]; "bitvec" = [ "dep:bitvec" ]; "byteorder" = [ "dep:byteorder" ]; "default" = [ "bits" "std" ]; "derive" = [ "byteorder" "ff_derive" ]; - "derive_bits" = [ "bits" "ff_derive/bits" ]; "ff_derive" = [ "dep:ff_derive" ]; "std" = [ "alloc" ]; }; @@ -3250,40 +3340,6 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "async-await" "async-await-macro" "channel" "compat" "default" "futures-channel" "futures-io" "futures-macro" "futures-sink" "futures_01" "io" "libc" "memchr" "sink" "slab" "std" ]; }; - "generic-array" = rec { - crateName = "generic-array"; - version = "0.14.9"; - edition = "2015"; - sha256 = "1wpdn5ngpqkkyyibbg7wa4cfg0y8zjc57spaia2h47jkk0qp9djb"; - libName = "generic_array"; - authors = [ - "Bartłomiej Kamiński " - "Aaron Trent " - ]; - dependencies = [ - { - name = "typenum"; - packageId = "typenum"; - } - { - name = "zeroize"; - packageId = "zeroize"; - optional = true; - usesDefaultFeatures = false; - } - ]; - buildDependencies = [ - { - name = "version_check"; - packageId = "version_check"; - } - ]; - features = { - "serde" = [ "dep:serde" ]; - "zeroize" = [ "dep:zeroize" ]; - }; - resolvedDefaultFeatures = [ "more_lengths" "zeroize" ]; - }; "getrandom 0.2.17" = rec { crateName = "getrandom"; version = "0.2.17"; @@ -3318,7 +3374,6 @@ rec { "rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ]; "wasm-bindgen" = [ "dep:wasm-bindgen" ]; }; - resolvedDefaultFeatures = [ "std" ]; }; "getrandom 0.3.4" = rec { crateName = "getrandom"; @@ -3606,9 +3661,9 @@ rec { }; "group" = rec { crateName = "group"; - version = "0.13.0"; + version = "0.14.0"; edition = "2021"; - sha256 = "0qqs2p5vqnv3zvq9mfjkmw3qlvgqb0c3cm6p33srkh7pc9sfzygh"; + sha256 = "1x7m980b0m82d012mmika67hqpgq7z6pq3as7xx5nv10lp3s3lbz"; authors = [ "Sean Bowe " "Jack Grigg " @@ -3621,7 +3676,7 @@ rec { } { name = "rand_core"; - packageId = "rand_core 0.6.4"; + packageId = "rand_core 0.10.1"; usesDefaultFeatures = false; } { @@ -3782,9 +3837,9 @@ rec { }; "hmac" = rec { crateName = "hmac"; - version = "0.12.1"; - edition = "2018"; - sha256 = "0pmbr069sfg76z7wsssfk5ddcqd9ncp79fyz6zcm6yn115yc6jbc"; + version = "0.13.0"; + edition = "2024"; + sha256 = "0gw6avmix6ah63lf70dapxhml4dlcakl9f2lnm6b0hdf6abvq0v3"; authors = [ "RustCrypto Developers" ]; @@ -3803,9 +3858,8 @@ rec { } ]; features = { - "std" = [ "digest/std" ]; + "zeroize" = [ "digest/zeroize" ]; }; - resolvedDefaultFeatures = [ "reset" ]; }; "hostname" = rec { crateName = "hostname"; @@ -3951,6 +4005,46 @@ rec { features = { }; }; + "hybrid-array" = rec { + crateName = "hybrid-array"; + version = "0.4.15"; + edition = "2024"; + sha256 = "05wsyp2n5gyf49qk51mblj9qyb15aay74m6fwmf74mpv1pqn9y17"; + libName = "hybrid_array"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "subtle"; + packageId = "subtle"; + optional = true; + usesDefaultFeatures = false; + features = [ "const-generics" ]; + } + { + name = "typenum"; + packageId = "typenum"; + features = [ "const-generics" ]; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "arbitrary" = [ "dep:arbitrary" ]; + "bytemuck" = [ "dep:bytemuck" ]; + "ctutils" = [ "dep:ctutils" ]; + "serde" = [ "dep:serde" ]; + "subtle" = [ "dep:subtle" ]; + "zerocopy" = [ "dep:zerocopy" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "subtle" "zeroize" ]; + }; "hyper" = rec { crateName = "hyper"; version = "1.12.0"; @@ -5469,9 +5563,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "433ac4fe45418d39631e683fac74cb49e11911f6"; - sha256 = "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "k8s_version"; authors = [ @@ -6113,20 +6207,10 @@ rec { authors = [ "Marvin Löbel " ]; - dependencies = [ - { - name = "spin"; - packageId = "spin"; - optional = true; - usesDefaultFeatures = false; - features = [ "once" ]; - } - ]; features = { "spin" = [ "dep:spin" ]; "spin_no_std" = [ "spin" ]; }; - resolvedDefaultFeatures = [ "spin" "spin_no_std" ]; }; "libc" = rec { crateName = "libc"; @@ -6185,23 +6269,6 @@ rec { "zlib-ng-compat" = [ "libz-sys/zlib-ng" "libssh2-sys?/zlib-ng-compat" ]; }; }; - "libm" = rec { - crateName = "libm"; - version = "0.2.16"; - edition = "2021"; - sha256 = "10brh0a3qjmbzkr5mf5xqi887nhs5y9layvnki89ykz9xb1wxlmn"; - authors = [ - "Alex Crichton " - "Amanieu d'Antras " - "Jorge Aparicio " - "Trevor Gross " - ]; - features = { - "default" = [ "arch" ]; - "unstable" = [ "unstable-intrinsics" "unstable-float" ]; - }; - resolvedDefaultFeatures = [ "arch" "default" ]; - }; "libyaml-rs" = rec { crateName = "libyaml-rs"; version = "0.3.0"; @@ -6504,81 +6571,6 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; - "num-bigint-dig" = rec { - crateName = "num-bigint-dig"; - version = "0.8.6"; - edition = "2021"; - sha256 = "1dxh3d8pzjc5k0kpy8gy2qhhhqs7zw8a7m564zl3ib8gcjkdsqg6"; - libName = "num_bigint_dig"; - authors = [ - "dignifiedquire " - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "lazy_static"; - packageId = "lazy_static"; - usesDefaultFeatures = false; - features = [ "spin_no_std" ]; - } - { - name = "libm"; - packageId = "libm"; - } - { - name = "num-integer"; - packageId = "num-integer"; - usesDefaultFeatures = false; - features = [ "i128" ]; - } - { - name = "num-iter"; - packageId = "num-iter"; - usesDefaultFeatures = false; - } - { - name = "num-traits"; - packageId = "num-traits"; - usesDefaultFeatures = false; - features = [ "i128" ]; - } - { - name = "rand"; - packageId = "rand 0.8.8"; - optional = true; - usesDefaultFeatures = false; - } - { - name = "smallvec"; - packageId = "smallvec"; - usesDefaultFeatures = false; - } - { - name = "zeroize"; - packageId = "zeroize"; - optional = true; - usesDefaultFeatures = false; - } - ]; - devDependencies = [ - { - name = "rand"; - packageId = "rand 0.8.8"; - features = [ "small_rng" ]; - } - ]; - features = { - "arbitrary" = [ "dep:arbitrary" ]; - "default" = [ "std" "u64_digit" ]; - "fuzz" = [ "arbitrary" "smallvec/arbitrary" ]; - "prime" = [ "rand/std_rng" ]; - "rand" = [ "dep:rand" ]; - "serde" = [ "dep:serde" ]; - "std" = [ "num-integer/std" "num-traits/std" "smallvec/write" "rand/std" "serde/std" ]; - "zeroize" = [ "dep:zeroize" ]; - }; - resolvedDefaultFeatures = [ "i128" "prime" "rand" "u64_digit" "zeroize" ]; - }; "num-conv" = rec { crateName = "num-conv"; version = "0.2.2"; @@ -6590,57 +6582,6 @@ rec { ]; }; - "num-integer" = rec { - crateName = "num-integer"; - version = "0.1.47"; - edition = "2018"; - sha256 = "02z1p3azy6p10n99skrab4a6hhfd4amf2i9gm8sxqd1p9dfxkqkw"; - libName = "num_integer"; - authors = [ - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "num-traits"; - packageId = "num-traits"; - usesDefaultFeatures = false; - features = [ "i128" ]; - } - ]; - features = { - "default" = [ "std" ]; - "std" = [ "num-traits/std" ]; - }; - resolvedDefaultFeatures = [ "i128" ]; - }; - "num-iter" = rec { - crateName = "num-iter"; - version = "0.1.46"; - edition = "2018"; - sha256 = "12q4x0lp9l6bvsak1p5q24lvfzl99ak9vzmwhqbwksm1d6yh0a69"; - libName = "num_iter"; - authors = [ - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "num-integer"; - packageId = "num-integer"; - usesDefaultFeatures = false; - features = [ "i128" ]; - } - { - name = "num-traits"; - packageId = "num-traits"; - usesDefaultFeatures = false; - features = [ "i128" ]; - } - ]; - features = { - "default" = [ "std" ]; - "std" = [ "num-integer/std" "num-traits/std" ]; - }; - }; "num-traits" = rec { crateName = "num-traits"; version = "0.2.19"; @@ -6650,13 +6591,6 @@ rec { authors = [ "The Rust Project Developers" ]; - dependencies = [ - { - name = "libm"; - packageId = "libm"; - optional = true; - } - ]; buildDependencies = [ { name = "autocfg"; @@ -6667,7 +6601,7 @@ rec { "default" = [ "std" ]; "libm" = [ "dep:libm" ]; }; - resolvedDefaultFeatures = [ "default" "i128" "libm" "std" ]; + resolvedDefaultFeatures = [ "default" "std" ]; }; "once_cell" = rec { crateName = "once_cell"; @@ -7200,9 +7134,9 @@ rec { }; "p256" = rec { crateName = "p256"; - version = "0.13.2"; - edition = "2021"; - sha256 = "0jyd3c3k239ybs59ixpnl7dqkmm072fr1js8kh7ldx58bzc3m1n9"; + version = "0.14.0"; + edition = "2024"; + sha256 = "0appw4ifrx2zwyw2rrmb18x0qid75vvqqzhlpvdpm05w5ndj7jfj"; authors = [ "RustCrypto Developers" ]; @@ -7219,7 +7153,12 @@ rec { name = "elliptic-curve"; packageId = "elliptic-curve"; usesDefaultFeatures = false; - features = [ "hazmat" "sec1" ]; + features = [ "sec1" ]; + } + { + name = "primefield"; + packageId = "primefield"; + optional = true; } { name = "primeorder"; @@ -7241,6 +7180,10 @@ rec { usesDefaultFeatures = false; features = [ "dev" ]; } + { + name = "primefield"; + packageId = "primefield"; + } { name = "primeorder"; packageId = "primeorder"; @@ -7248,28 +7191,28 @@ rec { } ]; features = { - "alloc" = [ "ecdsa-core?/alloc" "elliptic-curve/alloc" ]; - "arithmetic" = [ "dep:primeorder" "elliptic-curve/arithmetic" ]; - "bits" = [ "arithmetic" "elliptic-curve/bits" ]; - "default" = [ "arithmetic" "ecdsa" "pem" "std" ]; - "digest" = [ "ecdsa-core/digest" "ecdsa-core/hazmat" ]; + "alloc" = [ "ecdsa-core?/alloc" "elliptic-curve/alloc" "primeorder?/alloc" ]; + "arithmetic" = [ "dep:primefield" "dep:primeorder" "elliptic-curve/arithmetic" ]; + "default" = [ "arithmetic" "ecdsa" "pem" "precomputed-tables" "std" ]; + "digest" = [ "ecdsa-core/digest" ]; "ecdh" = [ "arithmetic" "elliptic-curve/ecdh" ]; - "ecdsa" = [ "arithmetic" "ecdsa-core/signing" "ecdsa-core/verifying" "sha256" ]; + "ecdsa" = [ "arithmetic" "ecdsa-core/algorithm" "sha256" ]; "ecdsa-core" = [ "dep:ecdsa-core" ]; - "expose-field" = [ "arithmetic" ]; - "hash2curve" = [ "arithmetic" "elliptic-curve/hash2curve" ]; - "jwk" = [ "elliptic-curve/jwk" ]; + "getrandom" = [ "elliptic-curve/getrandom" ]; + "group-digest" = [ "hash2curve" "sha2" ]; + "hash2curve" = [ "arithmetic" "dep:hash2curve" "primeorder/hash2curve" ]; + "oprf" = [ "group-digest" ]; "pem" = [ "elliptic-curve/pem" "ecdsa-core/pem" "pkcs8" ]; "pkcs8" = [ "ecdsa-core?/pkcs8" "elliptic-curve/pkcs8" ]; + "precomputed-tables" = [ "arithmetic" "primeorder/basepoint-table" ]; "serde" = [ "ecdsa-core?/serde" "elliptic-curve/serde" "primeorder?/serde" "serdect" ]; "serdect" = [ "dep:serdect" ]; "sha2" = [ "dep:sha2" ]; "sha256" = [ "digest" "sha2" ]; - "std" = [ "alloc" "ecdsa-core?/std" "elliptic-curve/std" ]; + "std" = [ "alloc" "ecdsa-core?/std" "elliptic-curve/std" "getrandom" "primeorder?/std" ]; "test-vectors" = [ "dep:hex-literal" ]; - "voprf" = [ "elliptic-curve/voprf" "sha2" ]; }; - resolvedDefaultFeatures = [ "alloc" "arithmetic" "default" "digest" "ecdsa" "ecdsa-core" "pem" "pkcs8" "sha2" "sha256" "std" ]; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "default" "digest" "ecdsa" "ecdsa-core" "getrandom" "pem" "pkcs8" "precomputed-tables" "sha2" "sha256" "std" ]; }; "parking" = rec { crateName = "parking"; @@ -7381,9 +7324,9 @@ rec { }; "pem-rfc7468" = rec { crateName = "pem-rfc7468"; - version = "0.7.0"; - edition = "2021"; - sha256 = "04l4852scl4zdva31c1z6jafbak0ni5pi0j38ml108zwzjdrrcw8"; + version = "1.0.0"; + edition = "2024"; + sha256 = "1nck8ig71axy21lsick2f9vcw7329mlx2hs88d382wz7w0im8c56"; libName = "pem_rfc7468"; authors = [ "RustCrypto Developers" @@ -7587,9 +7530,9 @@ rec { }; "pkcs1" = rec { crateName = "pkcs1"; - version = "0.7.5"; - edition = "2021"; - sha256 = "0zz4mil3nchnxljdfs2k5ab1cjqn7kq5lqp62n9qfix01zqvkzy8"; + version = "0.8.0-rc.5"; + edition = "2024"; + sha256 = "1hyvfdh70yq51c2dzhxfm6w6wy8scn8waayqlz56rslkwapxp1gl"; authors = [ "RustCrypto Developers" ]; @@ -7599,31 +7542,24 @@ rec { packageId = "der"; features = [ "oid" ]; } - { - name = "pkcs8"; - packageId = "pkcs8"; - optional = true; - usesDefaultFeatures = false; - } { name = "spki"; packageId = "spki"; } ]; features = { - "alloc" = [ "der/alloc" "zeroize" "pkcs8?/alloc" ]; - "pem" = [ "alloc" "der/pem" "pkcs8?/pem" ]; - "pkcs8" = [ "dep:pkcs8" ]; + "alloc" = [ "der/alloc" "spki/alloc" "zeroize" ]; + "pem" = [ "alloc" "der/pem" ]; "std" = [ "der/std" "alloc" ]; "zeroize" = [ "der/zeroize" ]; }; - resolvedDefaultFeatures = [ "alloc" "pem" "pkcs8" "std" "zeroize" ]; + resolvedDefaultFeatures = [ "alloc" "pem" "std" "zeroize" ]; }; "pkcs8" = rec { crateName = "pkcs8"; - version = "0.10.2"; - edition = "2021"; - sha256 = "1dx7w21gvn07azszgqd3ryjhyphsrjrmq5mmz1fbxkj5g0vv4l7r"; + version = "0.11.0"; + edition = "2024"; + sha256 = "1dqwyaj018cb0dyawgj42a799s3ys81r13ga6ihaaxf7d7d166a5"; authors = [ "RustCrypto Developers" ]; @@ -7641,15 +7577,14 @@ rec { features = { "3des" = [ "encryption" "pkcs5/3des" ]; "alloc" = [ "der/alloc" "der/zeroize" "spki/alloc" ]; + "ctutils" = [ "dep:ctutils" ]; "des-insecure" = [ "encryption" "pkcs5/des-insecure" ]; - "encryption" = [ "alloc" "pkcs5/alloc" "pkcs5/pbes2" "rand_core" ]; - "getrandom" = [ "rand_core/getrandom" ]; + "encryption" = [ "alloc" "pkcs5/alloc" "pkcs5/pbes2" "dep:rand_core" ]; + "getrandom" = [ "encryption" "pkcs5/getrandom" "dep:getrandom" ]; "pem" = [ "alloc" "der/pem" "spki/pem" ]; "pkcs5" = [ "dep:pkcs5" ]; - "rand_core" = [ "dep:rand_core" ]; "sha1-insecure" = [ "encryption" "pkcs5/sha1-insecure" ]; "std" = [ "alloc" "der/std" "spki/std" ]; - "subtle" = [ "dep:subtle" ]; }; resolvedDefaultFeatures = [ "alloc" "pem" "std" ]; }; @@ -7748,21 +7683,67 @@ rec { ]; dependencies = [ { - name = "zerocopy"; - packageId = "zerocopy"; - features = [ "simd" ]; + name = "zerocopy"; + packageId = "zerocopy"; + features = [ "simd" ]; + } + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "simd" "std" ]; + }; + "primefield" = rec { + crateName = "primefield"; + version = "0.14.0"; + edition = "2024"; + sha256 = "1x4jnnysiy9f41mmr6r7vinj0hl67df87302rf7iakkxxgjacmf5"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "crypto-bigint"; + packageId = "crypto-bigint"; + rename = "bigint"; + usesDefaultFeatures = false; + features = [ "rand_core" "hybrid-array" "subtle" ]; + } + { + name = "crypto-common"; + packageId = "crypto-common"; + rename = "common"; + features = [ "rand_core" ]; + } + { + name = "ff"; + packageId = "ff"; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.10.1"; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + features = [ "const-generics" ]; + } + { + name = "zeroize"; + packageId = "zeroize"; + usesDefaultFeatures = false; } ]; - features = { - "default" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "simd" "std" ]; + }; "primeorder" = rec { crateName = "primeorder"; - version = "0.13.6"; - edition = "2021"; - sha256 = "1rp16710mxksagcjnxqjjq9r9wf5vf72fs8wxffnvhb6i6hiqgim"; + version = "0.14.0"; + edition = "2024"; + sha256 = "01kvs3fgr25m9w50594xwsxdwd52awzc17znd0yhx83qijbl57sw"; authors = [ "RustCrypto Developers" ]; @@ -7773,13 +7754,37 @@ rec { usesDefaultFeatures = false; features = [ "arithmetic" "sec1" ]; } + { + name = "once_cell"; + packageId = "once_cell"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "primefield"; + packageId = "primefield"; + } + { + name = "serdect"; + packageId = "serdect"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "wnaf"; + packageId = "wnaf"; + usesDefaultFeatures = false; + } ]; features = { - "alloc" = [ "elliptic-curve/alloc" ]; + "alloc" = [ "elliptic-curve/alloc" "serdect?/alloc" ]; + "critical-section" = [ "basepoint-table" "once_cell/critical-section" ]; + "once_cell" = [ "dep:once_cell" ]; "serde" = [ "elliptic-curve/serde" "serdect" ]; "serdect" = [ "dep:serdect" ]; - "std" = [ "alloc" "elliptic-curve/std" ]; + "std" = [ "alloc" "elliptic-curve/std" "once_cell?/std" ]; }; + resolvedDefaultFeatures = [ "alloc" "basepoint-table" "std" ]; }; "proc-macro-crate" = rec { crateName = "proc-macro-crate"; @@ -8015,40 +8020,6 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "std" "std_rng" "sys_rng" "thread_rng" ]; }; - "rand 0.8.8" = rec { - crateName = "rand"; - version = "0.8.8"; - edition = "2018"; - sha256 = "0k3d9psya5icpiylff1w1wjbnc3q4pb1953n1iw7gbr61ggcfn70"; - authors = [ - "The Rand Project Developers" - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "rand_chacha"; - packageId = "rand_chacha 0.3.1"; - optional = true; - usesDefaultFeatures = false; - } - { - name = "rand_core"; - packageId = "rand_core 0.6.4"; - } - ]; - features = { - "alloc" = [ "rand_core/alloc" ]; - "default" = [ "std" "std_rng" ]; - "getrandom" = [ "rand_core/getrandom" ]; - "libc" = [ "dep:libc" ]; - "rand_chacha" = [ "dep:rand_chacha" ]; - "serde" = [ "dep:serde" ]; - "serde1" = [ "serde" "rand_core/serde1" ]; - "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ]; - "std_rng" = [ "rand_chacha" ]; - }; - resolvedDefaultFeatures = [ "rand_chacha" "std_rng" ]; - }; "rand 0.9.5" = rec { crateName = "rand"; version = "0.9.5"; @@ -8061,7 +8032,7 @@ rec { dependencies = [ { name = "rand_chacha"; - packageId = "rand_chacha 0.9.0"; + packageId = "rand_chacha"; optional = true; usesDefaultFeatures = false; } @@ -8081,36 +8052,7 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "os_rng" "small_rng" "std" "std_rng" "thread_rng" ]; }; - "rand_chacha 0.3.1" = rec { - crateName = "rand_chacha"; - version = "0.3.1"; - edition = "2018"; - sha256 = "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6"; - authors = [ - "The Rand Project Developers" - "The Rust Project Developers" - "The CryptoCorrosion Contributors" - ]; - dependencies = [ - { - name = "ppv-lite86"; - packageId = "ppv-lite86"; - usesDefaultFeatures = false; - features = [ "simd" ]; - } - { - name = "rand_core"; - packageId = "rand_core 0.6.4"; - } - ]; - features = { - "default" = [ "std" ]; - "serde" = [ "dep:serde" ]; - "serde1" = [ "serde" ]; - "std" = [ "ppv-lite86/std" ]; - }; - }; - "rand_chacha 0.9.0" = rec { + "rand_chacha" = rec { crateName = "rand_chacha"; version = "0.9.0"; edition = "2021"; @@ -8157,30 +8099,6 @@ rec { ]; }; - "rand_core 0.6.4" = rec { - crateName = "rand_core"; - version = "0.6.4"; - edition = "2018"; - sha256 = "0b4j2v4cb5krak1pv6kakv4sz6xcwbrmy2zckc32hsigbrwy82zc"; - authors = [ - "The Rand Project Developers" - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "getrandom"; - packageId = "getrandom 0.2.17"; - optional = true; - } - ]; - features = { - "getrandom" = [ "dep:getrandom" ]; - "serde" = [ "dep:serde" ]; - "serde1" = [ "serde" ]; - "std" = [ "alloc" "getrandom" "getrandom/std" ]; - }; - resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ]; - }; "rand_core 0.9.5" = rec { crateName = "rand_core"; version = "0.9.5"; @@ -8627,23 +8545,32 @@ rec { }; "rfc6979" = rec { crateName = "rfc6979"; - version = "0.4.0"; - edition = "2021"; - sha256 = "1chw95jgcfrysyzsq6a10b1j5qb7bagkx8h0wda4lv25in02mpgq"; + version = "0.6.0"; + edition = "2024"; + sha256 = "0aqpi1rynmj6np3lvdpy041w8rkm004133zx65myfgzvvb6mk95l"; authors = [ "RustCrypto Developers" ]; dependencies = [ + { + name = "crypto-bigint"; + packageId = "crypto-bigint"; + rename = "bigint"; + usesDefaultFeatures = false; + } { name = "hmac"; packageId = "hmac"; usesDefaultFeatures = false; - features = [ "reset" ]; } + ]; + devDependencies = [ { - name = "subtle"; - packageId = "subtle"; + name = "crypto-bigint"; + packageId = "crypto-bigint"; + rename = "bigint"; usesDefaultFeatures = false; + features = [ "alloc" ]; } ]; @@ -8711,9 +8638,9 @@ rec { }; "rsa" = rec { crateName = "rsa"; - version = "0.9.10"; + version = "0.10.0-rc.19"; edition = "2021"; - sha256 = "0bdikdwhcvl1gfh4637m5rdw3fgcl752aiygvzmwlgc8yl1kymxq"; + sha256 = "119bbjvkxiqipy4gn0ghgwygvan30illy9bflqf99vqn3qr5wh1k"; authors = [ "RustCrypto Developers" "dignifiedquire " @@ -8725,44 +8652,39 @@ rec { usesDefaultFeatures = false; } { - name = "digest"; - packageId = "digest"; - usesDefaultFeatures = false; - features = [ "alloc" "oid" ]; - } - { - name = "num-bigint-dig"; - packageId = "num-bigint-dig"; - rename = "num-bigint"; + name = "crypto-bigint"; + packageId = "crypto-bigint"; usesDefaultFeatures = false; - features = [ "i128" "prime" "zeroize" ]; + features = [ "zeroize" "alloc" ]; } { - name = "num-integer"; - packageId = "num-integer"; + name = "crypto-primes"; + packageId = "crypto-primes"; usesDefaultFeatures = false; } { - name = "num-traits"; - packageId = "num-traits"; + name = "digest"; + packageId = "digest"; usesDefaultFeatures = false; - features = [ "libm" ]; + features = [ "alloc" "oid" ]; } { name = "pkcs1"; packageId = "pkcs1"; + optional = true; usesDefaultFeatures = false; - features = [ "alloc" "pkcs8" ]; + features = [ "alloc" "pem" ]; } { name = "pkcs8"; packageId = "pkcs8"; + optional = true; usesDefaultFeatures = false; - features = [ "alloc" ]; + features = [ "alloc" "pem" ]; } { name = "rand_core"; - packageId = "rand_core 0.6.4"; + packageId = "rand_core 0.10.1"; usesDefaultFeatures = false; } { @@ -8781,14 +8703,10 @@ rec { { name = "spki"; packageId = "spki"; + optional = true; usesDefaultFeatures = false; features = [ "alloc" ]; } - { - name = "subtle"; - packageId = "subtle"; - usesDefaultFeatures = false; - } { name = "zeroize"; packageId = "zeroize"; @@ -8798,7 +8716,7 @@ rec { devDependencies = [ { name = "rand_core"; - packageId = "rand_core 0.6.4"; + packageId = "rand_core 0.10.1"; usesDefaultFeatures = false; } { @@ -8809,18 +8727,17 @@ rec { } ]; features = { - "default" = [ "std" "pem" "u64_digit" ]; - "getrandom" = [ "rand_core/getrandom" ]; - "nightly" = [ "num-bigint/nightly" ]; - "pem" = [ "pkcs1/pem" "pkcs8/pem" ]; + "crypto-common" = [ "dep:crypto-common" ]; + "default" = [ "std" "encoding" ]; + "encoding" = [ "dep:pkcs1" "dep:pkcs8" "dep:spki" ]; + "getrandom" = [ "crypto-bigint/getrandom" "crypto-common" ]; "pkcs5" = [ "pkcs8/encryption" ]; - "serde" = [ "dep:serde" "num-bigint/serde" ]; + "serde" = [ "encoding" "dep:serde" "dep:serdect" "crypto-bigint/serde" ]; "sha1" = [ "dep:sha1" ]; "sha2" = [ "dep:sha2" ]; - "std" = [ "digest/std" "pkcs1/std" "pkcs8/std" "rand_core/std" "signature/std" ]; - "u64_digit" = [ "num-bigint/u64_digit" ]; + "std" = [ "pkcs1?/std" "pkcs8?/std" ]; }; - resolvedDefaultFeatures = [ "default" "pem" "sha2" "std" "u64_digit" ]; + resolvedDefaultFeatures = [ "default" "encoding" "sha2" "std" ]; }; "rstest" = rec { crateName = "rstest"; @@ -9147,7 +9064,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.61.2"; + packageId = "windows-sys 0.52.0"; usesDefaultFeatures = false; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Security_Cryptography" ]; @@ -9414,9 +9331,9 @@ rec { }; "sec1" = rec { crateName = "sec1"; - version = "0.7.3"; - edition = "2021"; - sha256 = "1p273j8c87pid6a1iyyc7vxbvifrw55wbxgr0dh3l8vnbxb7msfk"; + version = "0.8.1"; + edition = "2024"; + sha256 = "0k8fm3c0j2hb9bs5mgnksk9g75ny65w50bhjyzjkq80r5xy46vfm"; authors = [ "RustCrypto Developers" ]; @@ -9428,20 +9345,19 @@ rec { usesDefaultFeatures = false; } { - name = "der"; - packageId = "der"; + name = "ctutils"; + packageId = "ctutils"; optional = true; - features = [ "oid" ]; } { - name = "generic-array"; - packageId = "generic-array"; + name = "der"; + packageId = "der"; optional = true; - usesDefaultFeatures = false; + features = [ "oid" ]; } { - name = "pkcs8"; - packageId = "pkcs8"; + name = "hybrid-array"; + packageId = "hybrid-array"; optional = true; usesDefaultFeatures = false; } @@ -9459,18 +9375,18 @@ rec { } ]; features = { - "alloc" = [ "der?/alloc" "pkcs8?/alloc" "zeroize?/alloc" ]; + "alloc" = [ "der?/alloc" "zeroize?/alloc" ]; + "ctutils" = [ "dep:ctutils" ]; "default" = [ "der" "point" ]; "der" = [ "dep:der" "zeroize" ]; - "pem" = [ "alloc" "der/pem" "pkcs8/pem" ]; - "pkcs8" = [ "dep:pkcs8" ]; - "point" = [ "dep:base16ct" "dep:generic-array" ]; + "pem" = [ "alloc" "der/pem" ]; + "point" = [ "dep:base16ct" "dep:hybrid-array" ]; "serde" = [ "dep:serdect" ]; "std" = [ "alloc" "der?/std" ]; "subtle" = [ "dep:subtle" ]; "zeroize" = [ "dep:zeroize" "der?/zeroize" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "der" "pem" "pkcs8" "point" "std" "subtle" "zeroize" ]; + resolvedDefaultFeatures = [ "alloc" "ctutils" "default" "der" "pem" "point" "std" "subtle" "zeroize" ]; }; "secrecy" = rec { crateName = "secrecy"; @@ -9924,11 +9840,47 @@ rec { ]; }; + "serdect" = rec { + crateName = "serdect"; + version = "0.4.3"; + edition = "2024"; + sha256 = "0ghby2vq4k21xlpy3v8897rym4pvvwil5cxw0qjg3z6jrvnqzkv6"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base16ct"; + packageId = "base16ct"; + usesDefaultFeatures = false; + } + { + name = "serde"; + packageId = "serde"; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "serde"; + packageId = "serde"; + usesDefaultFeatures = false; + features = [ "derive" ]; + } + ]; + features = { + "alloc" = [ "base16ct/alloc" "serde/alloc" ]; + "default" = [ "alloc" ]; + "derive" = [ "serde/derive" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "sha1" = rec { crateName = "sha1"; - version = "0.10.7"; - edition = "2018"; - sha256 = "1f632d529qzz95yrprr632w1fxqkrv6b6jksjc11vnzl049lay59"; + version = "0.11.0"; + edition = "2024"; + sha256 = "05025pf8d8zr2qq5xyh5m3wqls1fn7813gz1mfs7551mk724rk5a"; authors = [ "RustCrypto Developers" ]; @@ -9939,7 +9891,7 @@ rec { } { name = "cpufeatures"; - packageId = "cpufeatures 0.2.17"; + packageId = "cpufeatures"; target = { target, features }: (("aarch64" == target."arch" or null) || ("x86" == target."arch" or null) || ("x86_64" == target."arch" or null)); } { @@ -9955,17 +9907,17 @@ rec { } ]; features = { - "default" = [ "std" ]; + "alloc" = [ "digest/alloc" ]; + "default" = [ "alloc" "oid" ]; "oid" = [ "digest/oid" ]; - "std" = [ "digest/std" ]; + "zeroize" = [ "digest/zeroize" ]; }; - resolvedDefaultFeatures = [ "default" "std" ]; }; "sha2" = rec { crateName = "sha2"; - version = "0.10.9"; - edition = "2018"; - sha256 = "10xjj843v31ghsksd9sl9y12qfc48157j1xpb8v1ml39jy0psl57"; + version = "0.11.1"; + edition = "2024"; + sha256 = "06ddr559jvwx17d7847l6i1g4hrlwy39j0yimjwwfskxxfdhdms7"; authors = [ "RustCrypto Developers" ]; @@ -9976,7 +9928,7 @@ rec { } { name = "cpufeatures"; - packageId = "cpufeatures 0.2.17"; + packageId = "cpufeatures"; target = { target, features }: (("aarch64" == target."arch" or null) || ("x86_64" == target."arch" or null) || ("x86" == target."arch" or null)); } { @@ -9992,14 +9944,12 @@ rec { } ]; features = { - "asm" = [ "sha2-asm" ]; - "asm-aarch64" = [ "asm" ]; - "default" = [ "std" ]; + "alloc" = [ "digest/alloc" ]; + "default" = [ "alloc" "oid" ]; "oid" = [ "digest/oid" ]; - "sha2-asm" = [ "dep:sha2-asm" ]; - "std" = [ "digest/std" ]; + "zeroize" = [ "digest/zeroize" ]; }; - resolvedDefaultFeatures = [ "default" "oid" "std" ]; + resolvedDefaultFeatures = [ "alloc" "default" "oid" ]; }; "sharded-slab" = rec { crateName = "sharded-slab"; @@ -10062,9 +10012,9 @@ rec { }; "signature" = rec { crateName = "signature"; - version = "2.2.0"; - edition = "2021"; - sha256 = "1pi9hd5vqfr3q3k49k37z06p7gs5si0in32qia4mmr1dancr6m3p"; + version = "3.0.0"; + edition = "2024"; + sha256 = "1x9pfp51h2a0xs4x768q5r0y9yazv5naf216mjw9q17hpbf6gm98"; authors = [ "RustCrypto Developers" ]; @@ -10077,18 +10027,16 @@ rec { } { name = "rand_core"; - packageId = "rand_core 0.6.4"; + packageId = "rand_core 0.10.1"; optional = true; usesDefaultFeatures = false; } ]; features = { - "derive" = [ "dep:derive" ]; "digest" = [ "dep:digest" ]; "rand_core" = [ "dep:rand_core" ]; - "std" = [ "alloc" "rand_core?/std" ]; }; - resolvedDefaultFeatures = [ "alloc" "digest" "rand_core" "std" ]; + resolvedDefaultFeatures = [ "alloc" "digest" "rand_core" ]; }; "simd-adler32" = rec { crateName = "simd-adler32"; @@ -10326,36 +10274,11 @@ rec { }; resolvedDefaultFeatures = [ "all" ]; }; - "spin" = rec { - crateName = "spin"; - version = "0.9.9"; - edition = "2015"; - sha256 = "03psal0vh1xdxp7agphw09p7kf50v3bj1zshijq1s5bkdd7jcqrp"; - authors = [ - "Mathijs van de Nes " - "John Ericson " - "Joshua Barretto " - ]; - features = { - "barrier" = [ "mutex" ]; - "default" = [ "lock_api" "mutex" "spin_mutex" "rwlock" "once" "lazy" "barrier" ]; - "fair_mutex" = [ "mutex" ]; - "lazy" = [ "once" ]; - "lock_api" = [ "lock_api_crate" ]; - "lock_api_crate" = [ "dep:lock_api_crate" ]; - "portable-atomic" = [ "dep:portable-atomic" ]; - "portable_atomic" = [ "portable-atomic" ]; - "spin_mutex" = [ "mutex" ]; - "ticket_mutex" = [ "mutex" ]; - "use_ticket_mutex" = [ "mutex" "ticket_mutex" ]; - }; - resolvedDefaultFeatures = [ "once" ]; - }; "spki" = rec { crateName = "spki"; - version = "0.7.3"; - edition = "2021"; - sha256 = "17fj8k5fmx4w9mp27l970clrh5qa7r5sjdvbsln987xhb34dc7nr"; + version = "0.8.1"; + edition = "2024"; + sha256 = "1aci2hbcr0qbmhndkc4dl5i1w7p6yglld2f7ry8a4pcxiflmiyby"; authors = [ "RustCrypto Developers" ]; @@ -10376,7 +10299,8 @@ rec { "alloc" = [ "base64ct?/alloc" "der/alloc" ]; "arbitrary" = [ "std" "dep:arbitrary" "der/arbitrary" ]; "base64" = [ "dep:base64ct" ]; - "fingerprint" = [ "sha2" ]; + "digest" = [ "dep:digest" ]; + "fingerprint" = [ "digest" "sha2" ]; "pem" = [ "alloc" "der/pem" ]; "sha2" = [ "dep:sha2" ]; "std" = [ "der/std" "alloc" ]; @@ -10402,9 +10326,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "433ac4fe45418d39631e683fac74cb49e11911f6"; - sha256 = "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_certs"; authors = [ @@ -10444,7 +10368,7 @@ rec { } { name = "rand_core"; - packageId = "rand_core 0.6.4"; + packageId = "rand_core 0.10.1"; } { name = "rsa"; @@ -10505,15 +10429,19 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "433ac4fe45418d39631e683fac74cb49e11911f6"; - sha256 = "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_operator"; authors = [ "Stackable GmbH " ]; dependencies = [ + { + name = "base16ct"; + packageId = "base16ct"; + } { name = "base64"; packageId = "base64 0.23.1"; @@ -10704,9 +10632,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "433ac4fe45418d39631e683fac74cb49e11911f6"; - sha256 = "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -10739,9 +10667,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "433ac4fe45418d39631e683fac74cb49e11911f6"; - sha256 = "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_shared"; authors = [ @@ -10820,9 +10748,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "433ac4fe45418d39631e683fac74cb49e11911f6"; - sha256 = "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_telemetry"; authors = [ @@ -11033,9 +10961,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "433ac4fe45418d39631e683fac74cb49e11911f6"; - sha256 = "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_versioned"; authors = [ @@ -11070,10 +10998,6 @@ rec { name = "stackable-versioned-macros"; packageId = "stackable-versioned-macros"; } - { - name = "yaml_serde"; - packageId = "yaml_serde"; - } ]; }; @@ -11083,9 +11007,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "433ac4fe45418d39631e683fac74cb49e11911f6"; - sha256 = "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -11147,9 +11071,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "433ac4fe45418d39631e683fac74cb49e11911f6"; - sha256 = "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_webhook"; authors = [ @@ -11392,7 +11316,7 @@ rec { features = { "default" = [ "std" "i128" ]; }; - resolvedDefaultFeatures = [ "i128" ]; + resolvedDefaultFeatures = [ "const-generics" "i128" ]; }; "symlink" = rec { crateName = "symlink"; @@ -11864,9 +11788,9 @@ rec { }; "tokio" = rec { crateName = "tokio"; - version = "1.53.3"; + version = "1.54.1"; edition = "2021"; - sha256 = "0kny1nnbpy11dllv6ncxy3n804wh0ddn3msq78rxl744f7x3acyf"; + sha256 = "18wn0c3yvy6ld8yis0fw6rqkc4rwnmv5mav4fan6zljqa8jx6bxm"; authors = [ "Tokio Contributors " ]; @@ -11927,7 +11851,7 @@ rec { name = "socket2"; packageId = "socket2"; optional = true; - target = { target, features }: ((!(builtins.elem "wasm" target."family")) || (("wasi" == target."os" or null) && (!("p1" == target."env" or null)))); + target = { target, features }: ((!(builtins.elem "wasm" target."family")) || ("emscripten" == target."os" or null) || (("wasi" == target."os" or null) && (!("p1" == target."env" or null)))); features = [ "all" ]; } { @@ -13214,6 +13138,7 @@ rec { "scale-info" = [ "dep:scale-info" ]; "scale_info" = [ "scale-info/derive" ]; }; + resolvedDefaultFeatures = [ "const-generics" ]; }; "ucd-trie" = rec { crateName = "ucd-trie"; @@ -13378,9 +13303,9 @@ rec { }; "uuid" = rec { crateName = "uuid"; - version = "1.28.0"; + version = "1.29.0"; edition = "2021"; - sha256 = "01mnlhz09hwdjaxwzjd6bql3fjb5zl9n8dzaxn7dvdxyhiiiihbw"; + sha256 = "0525458ww4jwa0nw513jdrhgwxrldglzvfrbw5gnjl0cc88js3ja"; authors = [ "Ashley Mannix" "Dylan DPC" @@ -14252,7 +14177,7 @@ rec { dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.61.2"; + packageId = "windows-sys 0.52.0"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Storage_FileSystem" "Win32_System_Console" "Win32_System_SystemInformation" ]; } @@ -14642,7 +14567,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_Threading" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Security" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_SystemInformation" "Win32_System_Threading" "default" ]; }; "windows-sys 0.61.2" = rec { crateName = "windows-sys"; @@ -14904,7 +14829,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_IO" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_Pipes" "Win32_System_SystemInformation" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; + resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_IO" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_Pipes" "Win32_System_SystemInformation" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; }; "windows-targets" = rec { crateName = "windows-targets"; @@ -15084,6 +15009,41 @@ rec { "rustc-dep-of-std" = [ "dep:core" "dep:alloc" ]; }; }; + "wnaf" = rec { + crateName = "wnaf"; + version = "0.14.1"; + edition = "2024"; + sha256 = "1ypnjmp4jpfh58hmxqijgnzpxkyx861jg691k2zn4pnv7y5s2p3r"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "ff"; + packageId = "ff"; + usesDefaultFeatures = false; + } + { + name = "group"; + packageId = "group"; + usesDefaultFeatures = false; + } + { + name = "hybrid-array"; + packageId = "hybrid-array"; + rename = "array"; + } + { + name = "primefield"; + packageId = "primefield"; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "array/alloc" "ff/alloc" "group/alloc" ]; + "default" = [ "alloc" ]; + }; + }; "writeable" = rec { crateName = "writeable"; version = "0.6.4"; @@ -15099,9 +15059,9 @@ rec { }; "x509-cert" = rec { crateName = "x509-cert"; - version = "0.2.5"; - edition = "2021"; - sha256 = "155f42vm6m7phn8w7s2wmk9vli3ws45dqpk5z3jilw0a04syj08k"; + version = "0.3.0"; + edition = "2024"; + sha256 = "12q37mnxnjhp9a8cl64rkvvavf08pzjd08ynhgpkgccw5mjg8phh"; libName = "x509_cert"; authors = [ "RustCrypto Developers" @@ -15121,6 +15081,7 @@ rec { name = "sha1"; packageId = "sha1"; optional = true; + usesDefaultFeatures = false; } { name = "signature"; @@ -15143,15 +15104,17 @@ rec { ]; features = { "arbitrary" = [ "dep:arbitrary" "std" "der/arbitrary" "spki/arbitrary" ]; - "builder" = [ "std" "sha1/default" "signature" ]; + "base64" = [ "spki/base64" ]; + "builder" = [ "dep:sha1" "signature" ]; "default" = [ "pem" "std" ]; + "digest" = [ "dep:digest" "spki/digest" ]; + "fingerprint" = [ "spki/fingerprint" ]; "pem" = [ "der/pem" "spki/pem" ]; "sct" = [ "dep:tls_codec" ]; - "sha1" = [ "dep:sha1" ]; "signature" = [ "dep:signature" ]; - "std" = [ "const-oid/std" "der/std" "spki/std" "tls_codec?/std" ]; + "std" = [ "der/std" "spki/std" "tls_codec?/std" ]; }; - resolvedDefaultFeatures = [ "builder" "default" "pem" "sha1" "signature" "std" ]; + resolvedDefaultFeatures = [ "builder" "default" "pem" "signature" "std" ]; }; "xml" = rec { crateName = "xml"; diff --git a/Cargo.toml b/Cargo.toml index 27dd6191..16292271 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,5 +30,5 @@ tracing = "0.1" yaml_serde = "0.10" [patch."https://github.com/stackabletech/operator-rs.git"] -# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main"} +stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "spike/containerdebug-switch" } # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } diff --git a/crate-hashes.json b/crate-hashes.json index 36499215..7b75d53c 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,11 +1,11 @@ { - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#k8s-version@0.1.4": "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#stackable-certs@0.4.1": "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#stackable-operator-derive@0.3.1": "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#stackable-operator@0.121.0": "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#stackable-shared@0.2.0": "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#stackable-telemetry@0.6.5": "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#stackable-versioned-macros@0.13.0": "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#stackable-versioned@0.13.0": "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.121.0#stackable-webhook@0.10.0": "1dax2l1ghd609k19z4kznpnk5v40xbl84qwwxlfvwjamvf7jj6mm" + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#k8s-version@0.1.4": "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#stackable-certs@0.4.1": "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#stackable-operator-derive@0.3.1": "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#stackable-operator@0.121.0": "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#stackable-shared@0.2.0": "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#stackable-telemetry@0.6.5": "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#stackable-versioned-macros@0.13.0": "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#stackable-versioned@0.13.0": "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#stackable-webhook@0.10.0": "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c" } \ No newline at end of file diff --git a/extra/crds.yaml b/extra/crds.yaml index 901063b6..52ee43c5 100644 --- a/extra/crds.yaml +++ b/extra/crds.yaml @@ -1012,6 +1012,23 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true type: object + containerdebug: + default: + enabled: null + interval: null + description: Configures the `containerdebug` tool, which periodically logs information about the container environment. Learn more in the [container environment documentation](https://docs.stackable.tech/home/nightly/concepts/observability/containerdebug). + properties: + enabled: + description: Whether `containerdebug` runs in the background of the product container. Defaults to `true`. + nullable: true + type: boolean + interval: + description: |- + Time between two runs of `containerdebug`, e.g. `30m`, `1h` or `2d`. Must not be zero. + Defaults to `30m`. + nullable: true + type: string + type: object gracefulShutdownTimeout: description: Time period Pods have to gracefully shut down, e.g. `30m`, `1h` or `2d`. Consult the operator documentation for details. nullable: true @@ -1621,6 +1638,23 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true type: object + containerdebug: + default: + enabled: null + interval: null + description: Configures the `containerdebug` tool, which periodically logs information about the container environment. Learn more in the [container environment documentation](https://docs.stackable.tech/home/nightly/concepts/observability/containerdebug). + properties: + enabled: + description: Whether `containerdebug` runs in the background of the product container. Defaults to `true`. + nullable: true + type: boolean + interval: + description: |- + Time between two runs of `containerdebug`, e.g. `30m`, `1h` or `2d`. Must not be zero. + Defaults to `30m`. + nullable: true + type: string + type: object gracefulShutdownTimeout: description: Time period Pods have to gracefully shut down, e.g. `30m`, `1h` or `2d`. Consult the operator documentation for details. nullable: true @@ -2329,6 +2363,23 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true type: object + containerdebug: + default: + enabled: null + interval: null + description: Configures the `containerdebug` tool, which periodically logs information about the container environment. Learn more in the [container environment documentation](https://docs.stackable.tech/home/nightly/concepts/observability/containerdebug). + properties: + enabled: + description: Whether `containerdebug` runs in the background of the product container. Defaults to `true`. + nullable: true + type: boolean + interval: + description: |- + Time between two runs of `containerdebug`, e.g. `30m`, `1h` or `2d`. Must not be zero. + Defaults to `30m`. + nullable: true + type: string + type: object gracefulShutdownTimeout: description: Time period Pods have to gracefully shut down, e.g. `30m`, `1h` or `2d`. Consult the operator documentation for details. nullable: true @@ -2930,6 +2981,23 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true type: object + containerdebug: + default: + enabled: null + interval: null + description: Configures the `containerdebug` tool, which periodically logs information about the container environment. Learn more in the [container environment documentation](https://docs.stackable.tech/home/nightly/concepts/observability/containerdebug). + properties: + enabled: + description: Whether `containerdebug` runs in the background of the product container. Defaults to `true`. + nullable: true + type: boolean + interval: + description: |- + Time between two runs of `containerdebug`, e.g. `30m`, `1h` or `2d`. Must not be zero. + Defaults to `30m`. + nullable: true + type: string + type: object gracefulShutdownTimeout: description: Time period Pods have to gracefully shut down, e.g. `30m`, `1h` or `2d`. Consult the operator documentation for details. nullable: true diff --git a/rust/operator-binary/src/controller/build/command.rs b/rust/operator-binary/src/controller/build/command.rs index 6484e6d1..59ac97ad 100644 --- a/rust/operator-binary/src/controller/build/command.rs +++ b/rust/operator-binary/src/controller/build/command.rs @@ -87,6 +87,7 @@ pub fn container_prepare_args( pub fn container_trino_args( authentication_config: &TrinoAuthenticationConfig, catalogs: &BTreeMap, + merged_config: &ValidatedTrinoConfig, ) -> Vec { let mut args = vec![ // copy config files to a writable empty folder @@ -140,13 +141,17 @@ pub fn container_trino_args( {COMMON_BASH_TRAP_FUNCTIONS} {remove_vector_shutdown_file_command} prepare_signal_handlers -containerdebug --output={STACKABLE_LOG_DIR}/containerdebug-state.json --loop & +{containerdebug_command} bin/launcher run --etc-dir={RW_CONFIG_DIR_NAME} & wait_for_termination $! {create_vector_shutdown_file_command} ", remove_vector_shutdown_file_command = remove_vector_shutdown_file_command(STACKABLE_LOG_DIR), + containerdebug_command = merged_config + .containerdebug + .background_command(STACKABLE_LOG_DIR) + .unwrap_or_default(), create_vector_shutdown_file_command = create_vector_shutdown_file_command(STACKABLE_LOG_DIR), )); diff --git a/rust/operator-binary/src/controller/build/resource/statefulset.rs b/rust/operator-binary/src/controller/build/resource/statefulset.rs index 6cd36c48..5f4f7dd3 100644 --- a/rust/operator-binary/src/controller/build/resource/statefulset.rs +++ b/rust/operator-binary/src/controller/build/resource/statefulset.rs @@ -377,7 +377,8 @@ pub fn build_rolegroup_statefulset( "-c".to_string(), ]) .args(vec![ - command::container_trino_args(trino_authentication_config, catalogs).join("\n"), + command::container_trino_args(trino_authentication_config, catalogs, merged_config) + .join("\n"), ]) .add_env_vars(env.merge(env_overrides.clone())) .add_container_ports(container_ports(cluster)) @@ -793,8 +794,11 @@ fn add_derived_volumes_and_mounts( #[cfg(test)] mod tests { + use rstest::rstest; use stackable_operator::{ + crd::containerdebug::ValidatedContainerDebugConfig, k8s_openapi::api::core::v1::{Container as K8sContainer, PodSpec, VolumeMount}, + shared::time::Duration, v2::builder::pod::container::EnvVarName, }; @@ -889,6 +893,47 @@ mod tests { assert_eq!(containerdebug[0].value.as_deref(), Some("/custom/log/dir")); } + /// The trino container starts `containerdebug` from the role group's validated config. + #[rstest] + #[case::enabled( + ValidatedContainerDebugConfig::Enabled { interval: Duration::from_minutes_unchecked(10) }, + Some("containerdebug --output=/stackable/log/containerdebug-state.json --loop=10m &") + )] + #[case::disabled(ValidatedContainerDebugConfig::Disabled, None)] + fn trino_container_starts_containerdebug_from_config( + #[case] containerdebug: ValidatedContainerDebugConfig, + #[case] expected: Option<&str>, + ) { + let cluster = validated_cluster(); + let role_group_name = RoleGroupName::from_str("default").expect("valid role group name"); + let mut role_group_config = + cluster.coordinator_role_group_configs[&role_group_name].clone(); + role_group_config.config.containerdebug = containerdebug; + + let stateful_set = build_rolegroup_statefulset( + &cluster, + &TrinoRole::Coordinator, + &role_group_name, + &role_group_config, + ) + .expect("the StatefulSet builds"); + + let args = pod_spec(stateful_set) + .containers + .into_iter() + .find(|container| container.name == "trino") + .expect("the trino container exists") + .args + .expect("the trino container has args") + .join("\n"); + assert_eq!( + args.lines() + .find(|line| line.starts_with("containerdebug ")), + expected, + "args: {args}" + ); + } + /// The operator's own volume mounts are added with `expect`, which relies on every add whose /// name derives from user input coming afterwards. A catalog volume that reuses an operator /// volume name must therefore surface as an error, never as a panic. diff --git a/rust/operator-binary/src/controller/mod.rs b/rust/operator-binary/src/controller/mod.rs index 27505faf..4112faab 100644 --- a/rust/operator-binary/src/controller/mod.rs +++ b/rust/operator-binary/src/controller/mod.rs @@ -6,7 +6,7 @@ use stackable_operator::{ product_image_selection::ResolvedProductImage, resources::{NoRuntimeLimits, Resources}, }, - crd::listener::v1alpha1::Listener, + crd::{containerdebug::ValidatedContainerDebugConfig, listener::v1alpha1::Listener}, k8s_openapi::api::{ apps::v1::StatefulSet, core::v1::{ConfigMap, Service, ServiceAccount}, @@ -134,6 +134,7 @@ impl ValidatedClusterConfig { #[derive(Clone, Debug)] pub struct ValidatedTrinoConfig { pub affinity: StackableAffinity, + pub containerdebug: ValidatedContainerDebugConfig, pub graceful_shutdown_timeout: Option, pub logging: validate::ValidatedLogging, pub query_max_memory: Option, @@ -144,10 +145,15 @@ pub struct ValidatedTrinoConfig { impl ValidatedTrinoConfig { /// Builds the validated config from the merged [`v1alpha1::TrinoConfig`], swapping in the - /// already-validated logging. - fn from_merged(merged: v1alpha1::TrinoConfig, logging: validate::ValidatedLogging) -> Self { + /// already-validated `containerdebug` and logging configuration. + fn from_merged( + merged: v1alpha1::TrinoConfig, + containerdebug: ValidatedContainerDebugConfig, + logging: validate::ValidatedLogging, + ) -> Self { Self { affinity: merged.affinity, + containerdebug, graceful_shutdown_timeout: merged.graceful_shutdown_timeout, logging, query_max_memory: merged.query_max_memory, diff --git a/rust/operator-binary/src/controller/validate.rs b/rust/operator-binary/src/controller/validate.rs index c2cec4b9..d08bc74e 100644 --- a/rust/operator-binary/src/controller/validate.rs +++ b/rust/operator-binary/src/controller/validate.rs @@ -10,6 +10,7 @@ use stackable_operator::{ cli::OperatorEnvironmentOptions, commons::product_image_selection, config::fragment, + crd::containerdebug, kube::ResourceExt as _, product_logging::spec::Logging, v2::{ @@ -87,6 +88,12 @@ pub enum Error { role_group: RoleGroupName, }, + #[snafu(display("invalid containerdebug configuration for role group {role_group}"))] + InvalidContainerDebugConfig { + source: containerdebug::Error, + role_group: RoleGroupName, + }, + #[snafu(display("failed to validate logging configuration"))] ValidateLoggingConfig { source: stackable_operator::v2::product_logging::framework::Error, @@ -336,8 +343,8 @@ where role_group: role_group_name.clone(), })?; role_groups.insert( - role_group_name, - into_role_group_config(merged, vector_aggregator_config_map_name)?, + role_group_name.clone(), + into_role_group_config(merged, &role_group_name, vector_aggregator_config_map_name)?, ); } @@ -348,16 +355,22 @@ where /// [`TrinoRoleGroupConfig`] consumed by the build steps. fn into_role_group_config( merged: RoleGroup, + role_group_name: &RoleGroupName, vector_aggregator_config_map_name: &Option, ) -> Result { let replicas = merged.replicas; let common = merged.config; + let containerdebug = common.config.containerdebug.validate().with_context(|_| { + InvalidContainerDebugConfigSnafu { + role_group: role_group_name.clone(), + } + })?; let logging = validate_logging(&common.config.logging, vector_aggregator_config_map_name)?; Ok(RoleGroupConfig { replicas, - config: ValidatedTrinoConfig::from_merged(common.config, logging), + config: ValidatedTrinoConfig::from_merged(common.config, containerdebug, logging), config_overrides: common.config_overrides, env_overrides: common.env_overrides.into(), cli_overrides: common.cli_overrides, @@ -407,7 +420,10 @@ pub(crate) fn merged_role_group_config( mod tests { use std::{collections::BTreeMap, str::FromStr}; - use stackable_operator::cli::OperatorEnvironmentOptions; + use stackable_operator::{ + cli::OperatorEnvironmentOptions, + crd::containerdebug::{DEFAULT_INTERVAL, ValidatedContainerDebugConfig}, + }; use super::{Error, RoleGroupName, validate}; use crate::{ @@ -540,6 +556,17 @@ mod tests { "cluster-internal" ); + // Nothing is set in the fixture, so `containerdebug` runs with the operator defaults. + let default_role_group = RoleGroupName::from_str("default").expect("valid role group name"); + assert_eq!( + validated.coordinator_role_group_configs[&default_role_group] + .config + .containerdebug, + ValidatedContainerDebugConfig::Enabled { + interval: DEFAULT_INTERVAL + } + ); + // One `default` role group per role; the Vector agent is off. let default_rg = RoleGroupName::from_str("default").expect("valid role group name"); for role in [TrinoRole::Coordinator, TrinoRole::Worker] { @@ -675,4 +702,35 @@ mod tests { let err = validate_yaml(yaml, &empty_derefs()).unwrap_err(); assert!(matches!(err, Error::ParseRoleGroupName { .. })); } + + #[test] + fn rejects_zero_containerdebug_interval() { + let yaml = r#" + apiVersion: trino.stackable.tech/v1alpha1 + kind: TrinoCluster + metadata: + name: simple-trino + namespace: default + uid: "e6ac237d-a6d4-43a1-8135-f36506110912" + spec: + image: + productVersion: "481" + clusterConfig: + catalogLabelSelector: {} + coordinators: + roleGroups: + default: + replicas: 1 + workers: + config: + containerdebug: + interval: 0s + roleGroups: + default: + replicas: 1 + "#; + + let err = validate_yaml(yaml, &empty_derefs()).unwrap_err(); + assert!(matches!(err, Error::InvalidContainerDebugConfig { .. })); + } } diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index 188d36ad..c76d0007 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -22,7 +22,10 @@ use stackable_operator::{ }, config::{fragment::Fragment, merge::Merge}, constant, - crd::authentication::core, + crd::{ + authentication::core, + containerdebug::{default_containerdebug_config, v1alpha1::ContainerDebugConfig}, + }, deep_merger::ObjectOverrides, k8s_openapi::apimachinery::pkg::{api::resource::Quantity, apis::meta::v1::LabelSelector}, kube::{CustomResource, ResourceExt}, @@ -207,7 +210,7 @@ pub mod versioned { pub spooling_manager_properties: KeyValueConfigOverrides, } - #[derive(Clone, Debug, Default, Fragment, JsonSchema, PartialEq)] + #[derive(Clone, Debug, Fragment, JsonSchema, PartialEq)] #[fragment_attrs( derive( Clone, @@ -225,6 +228,9 @@ pub mod versioned { #[fragment_attrs(serde(default))] pub affinity: StackableAffinity, + #[fragment_attrs(serde(default))] + pub containerdebug: ContainerDebugConfig, + /// Time period Pods have to gracefully shut down, e.g. `30m`, `1h` or `2d`. Consult the operator documentation for details. #[fragment_attrs(serde(default))] pub graceful_shutdown_timeout: Option, @@ -498,6 +504,7 @@ impl v1alpha1::TrinoConfig { v1alpha1::TrinoConfigFragment { logging: product_logging::spec::default_logging(), affinity: get_affinity(cluster_name, role, trino_catalogs, opa_config), + containerdebug: default_containerdebug_config(), resources: ResourcesFragment { cpu: CpuLimitsFragment { min: Some(Quantity(cpu_min.to_string())), From 8cde40c64ce82bd4c2ce8cbdaa98c6a494132e8d Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Thu, 29 Oct 2026 13:50:01 +0100 Subject: [PATCH 2/3] removing uneccessary tests --- .../controller/build/resource/statefulset.rs | 16 +++---- .../src/controller/validate.rs | 47 +------------------ 2 files changed, 9 insertions(+), 54 deletions(-) diff --git a/rust/operator-binary/src/controller/build/resource/statefulset.rs b/rust/operator-binary/src/controller/build/resource/statefulset.rs index 5f4f7dd3..bbc501cb 100644 --- a/rust/operator-binary/src/controller/build/resource/statefulset.rs +++ b/rust/operator-binary/src/controller/build/resource/statefulset.rs @@ -893,17 +893,17 @@ mod tests { assert_eq!(containerdebug[0].value.as_deref(), Some("/custom/log/dir")); } - /// The trino container starts `containerdebug` from the role group's validated config. + /// The trino container starts `containerdebug` from the role group's validated config. The + /// command itself is owned (and tested) by operator-rs, so only the wiring is checked here. #[rstest] - #[case::enabled( - ValidatedContainerDebugConfig::Enabled { interval: Duration::from_minutes_unchecked(10) }, - Some("containerdebug --output=/stackable/log/containerdebug-state.json --loop=10m &") - )] - #[case::disabled(ValidatedContainerDebugConfig::Disabled, None)] + #[case::enabled(ValidatedContainerDebugConfig::Enabled { + interval: Duration::from_minutes_unchecked(10) + })] + #[case::disabled(ValidatedContainerDebugConfig::Disabled)] fn trino_container_starts_containerdebug_from_config( #[case] containerdebug: ValidatedContainerDebugConfig, - #[case] expected: Option<&str>, ) { + let expected = containerdebug.background_command(STACKABLE_LOG_DIR); let cluster = validated_cluster(); let role_group_name = RoleGroupName::from_str("default").expect("valid role group name"); let mut role_group_config = @@ -929,7 +929,7 @@ mod tests { assert_eq!( args.lines() .find(|line| line.starts_with("containerdebug ")), - expected, + expected.as_deref(), "args: {args}" ); } diff --git a/rust/operator-binary/src/controller/validate.rs b/rust/operator-binary/src/controller/validate.rs index d08bc74e..a78c1d6e 100644 --- a/rust/operator-binary/src/controller/validate.rs +++ b/rust/operator-binary/src/controller/validate.rs @@ -420,10 +420,7 @@ pub(crate) fn merged_role_group_config( mod tests { use std::{collections::BTreeMap, str::FromStr}; - use stackable_operator::{ - cli::OperatorEnvironmentOptions, - crd::containerdebug::{DEFAULT_INTERVAL, ValidatedContainerDebugConfig}, - }; + use stackable_operator::cli::OperatorEnvironmentOptions; use super::{Error, RoleGroupName, validate}; use crate::{ @@ -556,17 +553,6 @@ mod tests { "cluster-internal" ); - // Nothing is set in the fixture, so `containerdebug` runs with the operator defaults. - let default_role_group = RoleGroupName::from_str("default").expect("valid role group name"); - assert_eq!( - validated.coordinator_role_group_configs[&default_role_group] - .config - .containerdebug, - ValidatedContainerDebugConfig::Enabled { - interval: DEFAULT_INTERVAL - } - ); - // One `default` role group per role; the Vector agent is off. let default_rg = RoleGroupName::from_str("default").expect("valid role group name"); for role in [TrinoRole::Coordinator, TrinoRole::Worker] { @@ -702,35 +688,4 @@ mod tests { let err = validate_yaml(yaml, &empty_derefs()).unwrap_err(); assert!(matches!(err, Error::ParseRoleGroupName { .. })); } - - #[test] - fn rejects_zero_containerdebug_interval() { - let yaml = r#" - apiVersion: trino.stackable.tech/v1alpha1 - kind: TrinoCluster - metadata: - name: simple-trino - namespace: default - uid: "e6ac237d-a6d4-43a1-8135-f36506110912" - spec: - image: - productVersion: "481" - clusterConfig: - catalogLabelSelector: {} - coordinators: - roleGroups: - default: - replicas: 1 - workers: - config: - containerdebug: - interval: 0s - roleGroups: - default: - replicas: 1 - "#; - - let err = validate_yaml(yaml, &empty_derefs()).unwrap_err(); - assert!(matches!(err, Error::InvalidContainerDebugConfig { .. })); - } } From 80780cf4e0d1ec348fa0a1c92153335b8dc2c90f Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Fri, 30 Oct 2026 15:54:28 +0100 Subject: [PATCH 3/3] update to recent op-rs changes --- Cargo.lock | 24 ++++++++-------- Cargo.nix | 28 +++++++++---------- extra/crds.yaml | 20 ++++++++++--- .../controller/build/resource/statefulset.rs | 8 +++--- rust/operator-binary/src/controller/mod.rs | 6 ++-- .../src/controller/validate.rs | 4 +-- rust/operator-binary/src/crd/mod.rs | 4 +-- 7 files changed, 53 insertions(+), 41 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7d32ecde..3e5b77b3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -902,7 +902,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -1751,7 +1751,7 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.4" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#d7d661b13021fcd0fd670be17bda848d957ede76" dependencies = [ "darling 0.24.1", "regex", @@ -2737,7 +2737,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -3153,7 +3153,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stackable-certs" version = "0.4.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#d7d661b13021fcd0fd670be17bda848d957ede76" dependencies = [ "const-oid", "ecdsa", @@ -3177,7 +3177,7 @@ dependencies = [ [[package]] name = "stackable-operator" version = "0.121.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#d7d661b13021fcd0fd670be17bda848d957ede76" dependencies = [ "base16ct", "base64 0.23.1", @@ -3222,7 +3222,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#d7d661b13021fcd0fd670be17bda848d957ede76" dependencies = [ "darling 0.24.1", "proc-macro2", @@ -3233,7 +3233,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.2.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#d7d661b13021fcd0fd670be17bda848d957ede76" dependencies = [ "jiff", "k8s-openapi", @@ -3250,7 +3250,7 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.5" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#d7d661b13021fcd0fd670be17bda848d957ede76" dependencies = [ "axum", "clap", @@ -3297,7 +3297,7 @@ dependencies = [ [[package]] name = "stackable-versioned" version = "0.13.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#d7d661b13021fcd0fd670be17bda848d957ede76" dependencies = [ "kube", "schemars", @@ -3310,7 +3310,7 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" version = "0.13.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#d7d661b13021fcd0fd670be17bda848d957ede76" dependencies = [ "convert_case", "darling 0.24.1", @@ -3327,7 +3327,7 @@ dependencies = [ [[package]] name = "stackable-webhook" version = "0.10.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#bd94d1de18a15a647444f33585bc1f55e0f64868" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fcontainerdebug-switch#d7d661b13021fcd0fd670be17bda848d957ede76" dependencies = [ "arc-swap", "async-trait", @@ -4113,7 +4113,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] diff --git a/Cargo.nix b/Cargo.nix index f4cf61ce..40b63566 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -2781,7 +2781,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.52.0"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_System_Diagnostics_Debug" ]; } @@ -5564,7 +5564,7 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech//operator-rs.git"; - rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + rev = "d7d661b13021fcd0fd670be17bda848d957ede76"; sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "k8s_version"; @@ -9064,7 +9064,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.52.0"; + packageId = "windows-sys 0.61.2"; usesDefaultFeatures = false; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Security_Cryptography" ]; @@ -10327,7 +10327,7 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech//operator-rs.git"; - rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + rev = "d7d661b13021fcd0fd670be17bda848d957ede76"; sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_certs"; @@ -10430,7 +10430,7 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech//operator-rs.git"; - rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + rev = "d7d661b13021fcd0fd670be17bda848d957ede76"; sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_operator"; @@ -10633,7 +10633,7 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech//operator-rs.git"; - rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + rev = "d7d661b13021fcd0fd670be17bda848d957ede76"; sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; procMacro = true; @@ -10668,7 +10668,7 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech//operator-rs.git"; - rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + rev = "d7d661b13021fcd0fd670be17bda848d957ede76"; sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_shared"; @@ -10749,7 +10749,7 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech//operator-rs.git"; - rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + rev = "d7d661b13021fcd0fd670be17bda848d957ede76"; sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_telemetry"; @@ -10962,7 +10962,7 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech//operator-rs.git"; - rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + rev = "d7d661b13021fcd0fd670be17bda848d957ede76"; sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_versioned"; @@ -11008,7 +11008,7 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech//operator-rs.git"; - rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + rev = "d7d661b13021fcd0fd670be17bda848d957ede76"; sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; procMacro = true; @@ -11072,7 +11072,7 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech//operator-rs.git"; - rev = "bd94d1de18a15a647444f33585bc1f55e0f64868"; + rev = "d7d661b13021fcd0fd670be17bda848d957ede76"; sha256 = "0kks363nfysgrzfrzhvy5faa4gjdax47qlb0s3k7lyh4b6iki43c"; }; libName = "stackable_webhook"; @@ -14177,7 +14177,7 @@ rec { dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.52.0"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Storage_FileSystem" "Win32_System_Console" "Win32_System_SystemInformation" ]; } @@ -14567,7 +14567,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Security" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_SystemInformation" "Win32_System_Threading" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_Threading" "default" ]; }; "windows-sys 0.61.2" = rec { crateName = "windows-sys"; @@ -14829,7 +14829,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_IO" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_Pipes" "Win32_System_SystemInformation" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; + resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_IO" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_Pipes" "Win32_System_SystemInformation" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; }; "windows-targets" = rec { crateName = "windows-targets"; diff --git a/extra/crds.yaml b/extra/crds.yaml index 52ee43c5..cf09cffc 100644 --- a/extra/crds.yaml +++ b/extra/crds.yaml @@ -1016,7 +1016,10 @@ spec: default: enabled: null interval: null - description: Configures the `containerdebug` tool, which periodically logs information about the container environment. Learn more in the [container environment documentation](https://docs.stackable.tech/home/nightly/concepts/observability/containerdebug). + description: |- + Configures the `containerdebug` tool, which periodically logs information about the container + environment (such as network interfaces, DNS lookups and disk usage) in the background of the + product container. properties: enabled: description: Whether `containerdebug` runs in the background of the product container. Defaults to `true`. @@ -1642,7 +1645,10 @@ spec: default: enabled: null interval: null - description: Configures the `containerdebug` tool, which periodically logs information about the container environment. Learn more in the [container environment documentation](https://docs.stackable.tech/home/nightly/concepts/observability/containerdebug). + description: |- + Configures the `containerdebug` tool, which periodically logs information about the container + environment (such as network interfaces, DNS lookups and disk usage) in the background of the + product container. properties: enabled: description: Whether `containerdebug` runs in the background of the product container. Defaults to `true`. @@ -2367,7 +2373,10 @@ spec: default: enabled: null interval: null - description: Configures the `containerdebug` tool, which periodically logs information about the container environment. Learn more in the [container environment documentation](https://docs.stackable.tech/home/nightly/concepts/observability/containerdebug). + description: |- + Configures the `containerdebug` tool, which periodically logs information about the container + environment (such as network interfaces, DNS lookups and disk usage) in the background of the + product container. properties: enabled: description: Whether `containerdebug` runs in the background of the product container. Defaults to `true`. @@ -2985,7 +2994,10 @@ spec: default: enabled: null interval: null - description: Configures the `containerdebug` tool, which periodically logs information about the container environment. Learn more in the [container environment documentation](https://docs.stackable.tech/home/nightly/concepts/observability/containerdebug). + description: |- + Configures the `containerdebug` tool, which periodically logs information about the container + environment (such as network interfaces, DNS lookups and disk usage) in the background of the + product container. properties: enabled: description: Whether `containerdebug` runs in the background of the product container. Defaults to `true`. diff --git a/rust/operator-binary/src/controller/build/resource/statefulset.rs b/rust/operator-binary/src/controller/build/resource/statefulset.rs index bbc501cb..3e8caa63 100644 --- a/rust/operator-binary/src/controller/build/resource/statefulset.rs +++ b/rust/operator-binary/src/controller/build/resource/statefulset.rs @@ -796,7 +796,7 @@ fn add_derived_volumes_and_mounts( mod tests { use rstest::rstest; use stackable_operator::{ - crd::containerdebug::ValidatedContainerDebugConfig, + crd::containerdebug::ValidatedContainerdebugConfig, k8s_openapi::api::core::v1::{Container as K8sContainer, PodSpec, VolumeMount}, shared::time::Duration, v2::builder::pod::container::EnvVarName, @@ -896,12 +896,12 @@ mod tests { /// The trino container starts `containerdebug` from the role group's validated config. The /// command itself is owned (and tested) by operator-rs, so only the wiring is checked here. #[rstest] - #[case::enabled(ValidatedContainerDebugConfig::Enabled { + #[case::enabled(ValidatedContainerdebugConfig::Enabled { interval: Duration::from_minutes_unchecked(10) })] - #[case::disabled(ValidatedContainerDebugConfig::Disabled)] + #[case::disabled(ValidatedContainerdebugConfig::Disabled)] fn trino_container_starts_containerdebug_from_config( - #[case] containerdebug: ValidatedContainerDebugConfig, + #[case] containerdebug: ValidatedContainerdebugConfig, ) { let expected = containerdebug.background_command(STACKABLE_LOG_DIR); let cluster = validated_cluster(); diff --git a/rust/operator-binary/src/controller/mod.rs b/rust/operator-binary/src/controller/mod.rs index 4112faab..9d7f97b8 100644 --- a/rust/operator-binary/src/controller/mod.rs +++ b/rust/operator-binary/src/controller/mod.rs @@ -6,7 +6,7 @@ use stackable_operator::{ product_image_selection::ResolvedProductImage, resources::{NoRuntimeLimits, Resources}, }, - crd::{containerdebug::ValidatedContainerDebugConfig, listener::v1alpha1::Listener}, + crd::{containerdebug::ValidatedContainerdebugConfig, listener::v1alpha1::Listener}, k8s_openapi::api::{ apps::v1::StatefulSet, core::v1::{ConfigMap, Service, ServiceAccount}, @@ -134,7 +134,7 @@ impl ValidatedClusterConfig { #[derive(Clone, Debug)] pub struct ValidatedTrinoConfig { pub affinity: StackableAffinity, - pub containerdebug: ValidatedContainerDebugConfig, + pub containerdebug: ValidatedContainerdebugConfig, pub graceful_shutdown_timeout: Option, pub logging: validate::ValidatedLogging, pub query_max_memory: Option, @@ -148,7 +148,7 @@ impl ValidatedTrinoConfig { /// already-validated `containerdebug` and logging configuration. fn from_merged( merged: v1alpha1::TrinoConfig, - containerdebug: ValidatedContainerDebugConfig, + containerdebug: ValidatedContainerdebugConfig, logging: validate::ValidatedLogging, ) -> Self { Self { diff --git a/rust/operator-binary/src/controller/validate.rs b/rust/operator-binary/src/controller/validate.rs index a78c1d6e..fd75634c 100644 --- a/rust/operator-binary/src/controller/validate.rs +++ b/rust/operator-binary/src/controller/validate.rs @@ -89,7 +89,7 @@ pub enum Error { }, #[snafu(display("invalid containerdebug configuration for role group {role_group}"))] - InvalidContainerDebugConfig { + InvalidContainerdebugConfig { source: containerdebug::Error, role_group: RoleGroupName, }, @@ -362,7 +362,7 @@ fn into_role_group_config( let common = merged.config; let containerdebug = common.config.containerdebug.validate().with_context(|_| { - InvalidContainerDebugConfigSnafu { + InvalidContainerdebugConfigSnafu { role_group: role_group_name.clone(), } })?; diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index c76d0007..1ba7b3b7 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -24,7 +24,7 @@ use stackable_operator::{ constant, crd::{ authentication::core, - containerdebug::{default_containerdebug_config, v1alpha1::ContainerDebugConfig}, + containerdebug::{default_containerdebug_config, v1alpha1::ContainerdebugConfig}, }, deep_merger::ObjectOverrides, k8s_openapi::apimachinery::pkg::{api::resource::Quantity, apis::meta::v1::LabelSelector}, @@ -229,7 +229,7 @@ pub mod versioned { pub affinity: StackableAffinity, #[fragment_attrs(serde(default))] - pub containerdebug: ContainerDebugConfig, + pub containerdebug: ContainerdebugConfig, /// Time period Pods have to gracefully shut down, e.g. `30m`, `1h` or `2d`. Consult the operator documentation for details. #[fragment_attrs(serde(default))]