diff --git a/CHANGELOG.md b/CHANGELOG.md index f4bd5bc5..2f7c9d31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Fixed + +- BREAKING: Prevent Pod 0 restart by utilizing a mutating webhook. + The commons-operator now needs the RBAC permission to `create` and `patch` + `mutatingwebhookconfigurations`. The webhook can be disabled using + `--disable-restarter-mutating-webhook` or by setting the `DISABLE_RESTARTER_MUTATING_WEBHOOK` + env variable ([#387]). + +[#387]: https://github.com/stackabletech/commons-operator/pull/387 + ## [25.11.0] - 2025-11-07 ## [25.11.0-rc1] - 2025-11-06 diff --git a/Cargo.lock b/Cargo.lock index 36834a2e..bfb7c87f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,9 +23,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -77,22 +77,22 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -101,6 +101,15 @@ version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +[[package]] +name = "arc-swap" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d03449bb8ca2cc2ef70869af31463d1ae5ccc8fa3e334b307203fbf815207e" +dependencies = [ + "rustversion", +] + [[package]] name = "async-broadcast" version = "0.7.2" @@ -132,7 +141,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -143,7 +152,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -160,9 +169,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871" +checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" dependencies = [ "axum-core", "bytes", @@ -193,9 +202,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" dependencies = [ "bytes", "futures-core", @@ -221,12 +230,24 @@ dependencies = [ "tokio", ] +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a" + [[package]] name = "bit-set" version = "0.8.0" @@ -269,21 +290,21 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "cc" -version = "1.2.43" +version = "1.2.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739eb0f94557554b3ca9a86d2d37bebd49c5e6d0c1d2bda35ba5bdac830befc2" +checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" dependencies = [ "find-msvc-tools", "jobserver", @@ -306,14 +327,14 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-link 0.2.1", + "windows-link", ] [[package]] name = "clap" -version = "4.5.50" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2cfd7bf8a6017ddaa4e32ffe7403d547790db06bd171c1c53926faab501623" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -321,9 +342,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.50" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4c05b9e80c5ccd3a7ef080ad7b6ba7d6fc00a985b8b157197075677c82c7a0" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", @@ -340,7 +361,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -364,6 +385,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "const_format" version = "0.2.35" @@ -386,9 +413,9 @@ dependencies = [ [[package]] name = "convert_case" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" dependencies = [ "unicode-segmentation", ] @@ -442,6 +469,18 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.6" @@ -458,8 +497,18 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -473,7 +522,20 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.108", + "syn 2.0.111", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.111", ] [[package]] @@ -482,20 +544,55 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core", + "darling_core 0.21.3", "quote", - "syn 2.0.108", + "syn 2.0.111", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.111", ] [[package]] name = "delegate" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6178a82cf56c836a3ba61a7935cdb1c49bfaa6fa4327cd5bf554a503087de26b" +checksum = "780eb241654bf097afb00fc5f054a09b687dad862e485fdcf8399bb056565370" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "der_derive", + "flagset", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "der_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", ] [[package]] @@ -509,22 +606,23 @@ dependencies = [ [[package]] name = "derive_more" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" dependencies = [ "derive_more-impl", ] [[package]] name = "derive_more-impl" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "rustc_version", + "syn 2.0.111", ] [[package]] @@ -534,7 +632,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", + "const-oid", "crypto-common", + "subtle", ] [[package]] @@ -545,7 +645,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -574,6 +674,20 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + [[package]] name = "educe" version = "0.6.0" @@ -583,7 +697,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -592,6 +706,26 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "pem-rfc7468", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + [[package]] name = "encoding_rs" version = "0.8.35" @@ -612,22 +746,22 @@ dependencies = [ [[package]] name = "enum-ordinalize" -version = "4.3.0" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" dependencies = [ "enum-ordinalize-derive", ] [[package]] name = "enum-ordinalize-derive" -version = "4.3.1" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -636,6 +770,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "event-listener" version = "5.4.1" @@ -674,11 +818,27 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "find-msvc-tools" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" +checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" + +[[package]] +name = "flagset" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" [[package]] name = "flate2" @@ -773,7 +933,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -815,6 +975,7 @@ checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -842,9 +1003,9 @@ dependencies = [ [[package]] name = "git2" -version = "0.20.2" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" +checksum = "3e2b37e2f62729cdada11f0e6b3b6fe383c69c29fc619e391223e12856af308c" dependencies = [ "bitflags", "libc", @@ -865,6 +1026,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "h2" version = "0.4.12" @@ -897,9 +1069,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" [[package]] name = "heck" @@ -907,6 +1079,15 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + [[package]] name = "home" version = "0.5.12" @@ -918,23 +1099,22 @@ dependencies = [ [[package]] name = "hostname" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" +checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" dependencies = [ "cfg-if", "libc", - "windows-link 0.1.3", + "windows-link", ] [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -975,9 +1155,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ "atomic-waker", "bytes", @@ -1029,9 +1209,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" dependencies = [ "base64", "bytes", @@ -1077,9 +1257,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", @@ -1090,9 +1270,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -1103,11 +1283,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -1118,42 +1297,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -1190,12 +1365,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.16.1", ] [[package]] @@ -1215,9 +1390,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" dependencies = [ "memchr", "serde", @@ -1240,9 +1415,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "java-properties" @@ -1267,9 +1442,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.81" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -1312,9 +1487,9 @@ dependencies = [ [[package]] name = "k8s-openapi" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d13f06d5326a915becaffabdfab75051b8cdc260c2a5c06c0e90226ede89a692" +checksum = "06d9e5e61dd037cdc51da0d7e2b2be10f497478ea7e120d85dad632adb99882b" dependencies = [ "base64", "chrono", @@ -1326,9 +1501,9 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#184423db7409f853bd69db7eeecd1affbf97ef40" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#bac8ff44653d477deda650fbd5f690af042df6c2" dependencies = [ - "darling", + "darling 0.23.0", "regex", "snafu 0.8.9", ] @@ -1336,8 +1511,7 @@ dependencies = [ [[package]] name = "kube" version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e7bb0b6a46502cc20e4575b6ff401af45cfea150b34ba272a3410b78aa014e" +source = "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#26543e85dc7daaf82d8f7dbd902b26775798879e" dependencies = [ "k8s-openapi", "kube-client", @@ -1349,8 +1523,7 @@ dependencies = [ [[package]] name = "kube-client" version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4987d57a184d2b5294fdad3d7fc7f278899469d21a4da39a8f6ca16426567a36" +source = "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#26543e85dc7daaf82d8f7dbd902b26775798879e" dependencies = [ "base64", "bytes", @@ -1385,8 +1558,7 @@ dependencies = [ [[package]] name = "kube-core" version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914bbb770e7bb721a06e3538c0edd2babed46447d128f7c21caa68747060ee73" +source = "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#26543e85dc7daaf82d8f7dbd902b26775798879e" dependencies = [ "chrono", "derive_more", @@ -1404,22 +1576,20 @@ dependencies = [ [[package]] name = "kube-derive" version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03dee8252be137772a6ab3508b81cd797dee62ee771112a2453bc85cbbe150d2" +source = "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#26543e85dc7daaf82d8f7dbd902b26775798879e" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", "serde", "serde_json", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] name = "kube-runtime" version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aea4de4b562c5cc89ab10300bb63474ae1fa57ff5a19275f2e26401a323e3fd" +source = "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#26543e85dc7daaf82d8f7dbd902b26775798879e" dependencies = [ "ahash", "async-broadcast", @@ -1447,18 +1617,21 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] [[package]] name = "libc" -version = "0.2.177" +version = "0.2.178" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" [[package]] name = "libgit2-sys" -version = "0.18.2+1.9.1" +version = "0.18.3+1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222" +checksum = "c9b3acc4b91781bb0b3386669d325163746af5f6e4f73e6d2d630e09a35f3487" dependencies = [ "cc", "libc", @@ -1466,11 +1639,17 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "libm" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + [[package]] name = "libz-sys" -version = "1.1.22" +version = "1.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" +checksum = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7" dependencies = [ "cc", "libc", @@ -1480,9 +1659,9 @@ dependencies = [ [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "lock_api" @@ -1495,9 +1674,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "matchers" @@ -1538,9 +1717,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", "wasi", @@ -1556,12 +1735,48 @@ 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.5", + "smallvec", + "zeroize", +] + [[package]] name = "num-conv" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -1569,6 +1784,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1677,7 +1893,7 @@ dependencies = [ "futures-util", "opentelemetry", "percent-encoding", - "rand", + "rand 0.9.2", "thiserror 2.0.17", "tokio", "tokio-stream", @@ -1692,6 +1908,18 @@ dependencies = [ "num-traits", ] +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + [[package]] name = "parking" version = "2.2.1" @@ -1718,7 +1946,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -1731,6 +1959,15 @@ dependencies = [ "serde_core", ] +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.2" @@ -1739,9 +1976,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" +checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" dependencies = [ "memchr", "ucd-trie", @@ -1749,9 +1986,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187da9a3030dbafabbbfb20cb323b976dc7b7ce91fcd84f2f74d6e31d378e2de" +checksum = "51f72981ade67b1ca6adc26ec221be9f463f2b5839c7508998daa17c23d94d7f" dependencies = [ "pest", "pest_generator", @@ -1759,22 +1996,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b401d98f5757ebe97a26085998d6c0eecec4995cad6ab7fc30ffdf4b052843" +checksum = "dee9efd8cdb50d719a80088b76f81aec7c41ed6d522ee750178f83883d271625" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] name = "pest_meta" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f27a2cfee9f9039c4d86faa5af122a0ac3851441a34865b8a043b46be0065a" +checksum = "bf1d70880e76bdc13ba52eafa6239ce793d85c8e43896507e43dd8984ff05b82" dependencies = [ "pest", "sha2", @@ -1797,7 +2034,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -1812,6 +2049,27 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.32" @@ -1820,9 +2078,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -1842,11 +2100,20 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "9695f8df41bb4f3d222c95a67532365f569318332d03d5f3f67f37b20e6ebdf0" dependencies = [ "unicode-ident", ] @@ -1887,14 +2154,14 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] @@ -1905,14 +2172,34 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha", - "rand_core", + "rand_chacha 0.9.0", + "rand_core 0.9.3", +] + +[[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]] @@ -1922,7 +2209,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", ] [[package]] @@ -1960,7 +2256,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -1994,9 +2290,9 @@ checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" -version = "0.12.24" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64", "bytes", @@ -2026,6 +2322,16 @@ dependencies = [ "web-sys", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + [[package]] name = "ring" version = "0.17.14" @@ -2040,11 +2346,41 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rsa" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a0376c50d0358279d9d643e4bf7b7be212f1f4ff1da9070a7b54d22ef75c88" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "sha2", + "signature", + "spki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + [[package]] name = "rustls" -version = "0.23.34" +version = "0.23.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9586e9ee2b4f8fab52a0048ca7334d7024eef48e2cb9407e3497bb7cab7fa7" +checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" dependencies = [ "log", "once_cell", @@ -2069,18 +2405,18 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.13.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" +checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" dependencies = [ "zeroize", ] [[package]] name = "rustls-webpki" -version = "0.103.7" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10b3f4191e8a80e6b43eebabfac91e5dcecebb27a71f04e820c47ec41d314bf" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ "ring", "rustls-pki-types", @@ -2095,9 +2431,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" [[package]] name = "schannel" @@ -2110,9 +2446,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.0.4" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +checksum = "54e910108742c57a770f492731f99be216a52fadd361b06c8fb59d74ccc267d2" dependencies = [ "dyn-clone", "ref-cast", @@ -2124,14 +2460,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "1.0.4" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80" +checksum = "4908ad288c5035a8eb12cfdf0d49270def0a268ee162b75eeee0f85d155a7c45" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -2140,6 +2476,20 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + [[package]] name = "secrecy" version = "0.10.3" @@ -2215,7 +2565,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -2226,20 +2576,20 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -2278,6 +2628,17 @@ dependencies = [ "unsafe-libyaml", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "sha2" version = "0.10.9" @@ -2306,18 +2667,29 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" [[package]] name = "slab" @@ -2370,7 +2742,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -2383,12 +2755,52 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +[[package]] +name = "stackable-certs" +version = "0.4.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#bac8ff44653d477deda650fbd5f690af042df6c2" +dependencies = [ + "const-oid", + "ecdsa", + "k8s-openapi", + "kube", + "p256", + "rand 0.9.2", + "rand_core 0.6.4", + "rsa", + "sha2", + "signature", + "snafu 0.8.9", + "stackable-shared", + "tokio", + "tokio-rustls", + "tracing", + "x509-cert", + "zeroize", +] + [[package]] name = "stackable-commons-operator" version = "0.0.0-dev" @@ -2398,6 +2810,7 @@ dependencies = [ "clap", "futures 0.3.31", "http", + "json-patch", "serde", "serde_json", "snafu 0.8.9", @@ -2409,8 +2822,8 @@ dependencies = [ [[package]] name = "stackable-operator" -version = "0.100.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#184423db7409f853bd69db7eeecd1affbf97ef40" +version = "0.101.1" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#bac8ff44653d477deda650fbd5f690af042df6c2" dependencies = [ "chrono", "clap", @@ -2437,6 +2850,7 @@ dependencies = [ "stackable-shared", "stackable-telemetry", "stackable-versioned", + "stackable-webhook", "strum", "tokio", "tracing", @@ -2448,18 +2862,18 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#184423db7409f853bd69db7eeecd1affbf97ef40" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#bac8ff44653d477deda650fbd5f690af042df6c2" dependencies = [ - "darling", + "darling 0.23.0", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] name = "stackable-shared" version = "0.0.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#184423db7409f853bd69db7eeecd1affbf97ef40" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#bac8ff44653d477deda650fbd5f690af042df6c2" dependencies = [ "chrono", "k8s-openapi", @@ -2476,7 +2890,7 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#184423db7409f853bd69db7eeecd1affbf97ef40" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#bac8ff44653d477deda650fbd5f690af042df6c2" dependencies = [ "axum", "clap", @@ -2500,7 +2914,7 @@ dependencies = [ [[package]] name = "stackable-versioned" version = "0.8.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#184423db7409f853bd69db7eeecd1affbf97ef40" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#bac8ff44653d477deda650fbd5f690af042df6c2" dependencies = [ "schemars", "serde", @@ -2513,10 +2927,10 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" version = "0.8.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#184423db7409f853bd69db7eeecd1affbf97ef40" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#bac8ff44653d477deda650fbd5f690af042df6c2" dependencies = [ "convert_case", - "darling", + "darling 0.23.0", "indoc", "itertools", "k8s-openapi", @@ -2524,7 +2938,38 @@ dependencies = [ "kube", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", +] + +[[package]] +name = "stackable-webhook" +version = "0.8.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#bac8ff44653d477deda650fbd5f690af042df6c2" +dependencies = [ + "arc-swap", + "async-trait", + "axum", + "futures-util", + "hyper", + "hyper-util", + "k8s-openapi", + "kube", + "opentelemetry", + "opentelemetry-semantic-conventions", + "rand 0.9.2", + "serde", + "serde_json", + "snafu 0.8.9", + "stackable-certs", + "stackable-shared", + "stackable-telemetry", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tracing", + "tracing-opentelemetry", + "x509-cert", ] [[package]] @@ -2551,7 +2996,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -2573,9 +3018,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.108" +version = "2.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" dependencies = [ "proc-macro2", "quote", @@ -2599,7 +3044,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -2628,7 +3073,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -2639,7 +3084,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -2684,14 +3129,35 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", ] +[[package]] +name = "tls_codec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b" +dependencies = [ + "tls_codec_derive", + "zeroize", +] + +[[package]] +name = "tls_codec_derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "tokio" version = "1.48.0" @@ -2717,7 +3183,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -2743,9 +3209,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ "bytes", "futures-core", @@ -2814,9 +3280,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ "base64", "bitflags", @@ -2847,9 +3313,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "log", "pin-project-lite", @@ -2859,32 +3325,32 @@ dependencies = [ [[package]] name = "tracing-appender" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +checksum = "786d480bce6247ab75f005b14ae1624ad978d3029d9113f0a22fa1ac773faeaf" dependencies = [ "crossbeam-channel", - "thiserror 1.0.69", + "thiserror 2.0.17", "time", "tracing-subscriber", ] [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -2932,9 +3398,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", "nu-ansi-term", @@ -2971,9 +3437,9 @@ checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicode-ident" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-segmentation" @@ -3067,9 +3533,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.104" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", @@ -3078,25 +3544,11 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.108", - "wasm-bindgen-shared", -] - [[package]] name = "wasm-bindgen-futures" -version = "0.4.54" +version = "0.4.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" dependencies = [ "cfg-if", "js-sys", @@ -3107,9 +3559,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.104" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3117,31 +3569,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.104" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.108", - "wasm-bindgen-backend", + "syn 2.0.111", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.104" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.81" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", @@ -3165,7 +3617,7 @@ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.2.1", + "windows-link", "windows-result", "windows-strings", ] @@ -3178,7 +3630,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -3189,15 +3641,9 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - [[package]] name = "windows-link" version = "0.2.1" @@ -3210,7 +3656,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -3219,7 +3665,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -3246,7 +3692,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -3271,7 +3717,7 @@ version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.2.1", + "windows-link", "windows_aarch64_gnullvm 0.53.1", "windows_aarch64_msvc 0.53.1", "windows_i686_gnu 0.53.1", @@ -3386,23 +3832,36 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + +[[package]] +name = "x509-cert" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" +dependencies = [ + "const-oid", + "der", + "sha1", + "signature", + "spki", + "tls_codec", +] [[package]] name = "xml" -version = "1.0.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58a4274c410d957424a1502b21126915b45d9956b2f80a88d4f6f906af29facc" +checksum = "2df5825faced2427b2da74d9100f1e2e93c533fff063506a81ede1cf517b2e7e" [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -3410,34 +3869,34 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] [[package]] @@ -3457,7 +3916,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", "synstructure", ] @@ -3466,12 +3925,26 @@ name = "zeroize" version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -3480,9 +3953,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -3491,11 +3964,17 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.108", + "syn 2.0.111", ] + +[[package]] +name = "zmij" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4a4e8e9dc5c62d159f04fcdbe07f4c3fb710415aab4754bf11505501e3251d" diff --git a/Cargo.nix b/Cargo.nix index f8bdb0a0..6157d4cb 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -154,9 +154,9 @@ rec { }; "aho-corasick" = rec { crateName = "aho-corasick"; - version = "1.1.3"; + version = "1.1.4"; edition = "2021"; - sha256 = "05mrpkvdgp5d20y2p989f187ry9diliijgwrs254fs9s1m1x6q4f"; + sha256 = "00a32wb2h07im3skkikc495jvncf62jl6s96vwc7bhi70h9imlyx"; libName = "aho_corasick"; authors = [ "Andrew Gallant " @@ -286,14 +286,14 @@ rec { }; "anstyle-query" = rec { crateName = "anstyle-query"; - version = "1.1.4"; + version = "1.1.5"; edition = "2021"; - sha256 = "1qir6d6fl5a4y2gmmw9a5w93ckwx6xn51aryd83p26zn6ihiy8wy"; + sha256 = "1p6shfpnbghs6jsa0vnqd8bb8gd7pjd0jr7w0j8jikakzmr8zi20"; libName = "anstyle_query"; dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_System_Console" "Win32_Foundation" ]; } @@ -302,9 +302,9 @@ rec { }; "anstyle-wincon" = rec { crateName = "anstyle-wincon"; - version = "3.0.10"; + version = "3.0.11"; edition = "2021"; - sha256 = "0ajz9wsf46a2l3pds7v62xbhq2cffj7wrilamkx2z8r28m0k61iy"; + sha256 = "0zblannm70sk3xny337mz7c6d8q8i24vhbqi42ld8v7q1wjnl7i9"; libName = "anstyle_wincon"; dependencies = [ { @@ -318,7 +318,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_System_Console" "Win32_Foundation" ]; } @@ -339,6 +339,25 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "arc-swap" = rec { + crateName = "arc-swap"; + version = "1.8.0"; + edition = "2018"; + sha256 = "0zi02pwgn0vj615k6gpsr36fa6ix8qqsys88ywpcr8lcpd4k9l2i"; + libName = "arc_swap"; + authors = [ + "Michal 'vorner' Vaner " + ]; + dependencies = [ + { + name = "rustversion"; + packageId = "rustversion"; + } + ]; + features = { + "serde" = [ "dep:serde" ]; + }; + }; "async-broadcast" = rec { crateName = "async-broadcast"; version = "0.7.2"; @@ -416,7 +435,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "full" "visit-mut" ]; } ]; @@ -443,7 +462,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; usesDefaultFeatures = false; features = [ "clone-impls" "full" "parsing" "printing" "proc-macro" "visit-mut" ]; } @@ -476,9 +495,9 @@ rec { }; "axum" = rec { crateName = "axum"; - version = "0.8.6"; + version = "0.8.8"; edition = "2021"; - sha256 = "0w9qyxcp77gwswc9sz3pf2rzpm4jycpxvd70yh8i60sjccrys64a"; + sha256 = "1f4p0m04mgwpn8b40i9r5mgqxk6w11sv4yri6xfqk305nhyayllb"; dependencies = [ { name = "axum-core"; @@ -646,9 +665,9 @@ rec { }; "axum-core" = rec { crateName = "axum-core"; - version = "0.5.5"; + version = "0.5.6"; edition = "2021"; - sha256 = "08pa4752h96pai7j5avr2hnq35xh7qgv6vl57y1zhhnikkhnqi2r"; + sha256 = "1lcjhxysnbc64rh21ag9m9fpiryd1iwcdh9mwxz1yadiswqqziq8"; libName = "axum_core"; dependencies = [ { @@ -757,6 +776,19 @@ rec { }; resolvedDefaultFeatures = [ "default" "gloo-timers" "gloo-timers-sleep" "std" "std-blocking-sleep" "tokio" "tokio-sleep" ]; }; + "base16ct" = rec { + crateName = "base16ct"; + version = "0.2.0"; + edition = "2021"; + sha256 = "1kylrjhdzk7qpknrvlphw8ywdnvvg39dizw9622w3wk5xba04zsc"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "base64" = rec { crateName = "base64"; version = "0.22.1"; @@ -771,6 +803,19 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "std" ]; }; + "base64ct" = rec { + crateName = "base64ct"; + version = "1.8.1"; + edition = "2024"; + sha256 = "12h6iwd0ib6xxwd0814wf3x6nd91r851xcycvlkpm199cii0y18f"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "bit-set" = rec { crateName = "bit-set"; version = "0.8.0"; @@ -881,9 +926,9 @@ rec { }; "bumpalo" = rec { crateName = "bumpalo"; - version = "3.19.0"; + version = "3.19.1"; edition = "2021"; - sha256 = "0hsdndvcpqbjb85ghrhska2qxvp9i75q2vb70hma9fxqawdy9ia6"; + sha256 = "044555i277xcinmqs7nnv8n5y4fqfi4l4lp1mp3i30vsidrxrnax"; authors = [ "Nick Fitzgerald " ]; @@ -896,9 +941,9 @@ rec { }; "bytes" = rec { crateName = "bytes"; - version = "1.10.1"; - edition = "2018"; - sha256 = "0smd4wi2yrhp5pmq571yiaqx84bjqlm1ixqhnvfwzzc6pqkn26yp"; + version = "1.11.0"; + edition = "2021"; + sha256 = "1cww1ybcvisyj8pbzl4m36bni2jaz0narhczp1348gqbvkxh8lmk"; authors = [ "Carl Lerche " "Sean McArthur " @@ -912,9 +957,9 @@ rec { }; "cc" = rec { crateName = "cc"; - version = "1.2.43"; + version = "1.2.51"; edition = "2018"; - sha256 = "1hpg1f1srgd5bfivvln1s3kcajdxpqvjsvd8m4y4nmap8pwv17kk"; + sha256 = "00zj303al745qymzfx3qp4wnj5s5wncaadc8c64hbagi9zzyl2ks"; authors = [ "Alex Crichton " ]; @@ -986,7 +1031,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link 0.2.1"; + packageId = "windows-link"; optional = true; target = { target, features }: (target."windows" or false); } @@ -1016,10 +1061,10 @@ rec { }; "clap" = rec { crateName = "clap"; - version = "4.5.50"; + version = "4.5.53"; edition = "2021"; crateBin = []; - sha256 = "08qna2mzl9irqp0p3lbbn06pjiym0dsgwbz3lkd7s0d6z1xzsb0c"; + sha256 = "1y035lyy5w2xx83q4c3jiy75928ldm1x2bi8ylslkgx12bh41qy9"; dependencies = [ { name = "clap_builder"; @@ -1058,9 +1103,9 @@ rec { }; "clap_builder" = rec { crateName = "clap_builder"; - version = "4.5.50"; + version = "4.5.53"; edition = "2021"; - sha256 = "1867h9y6fxbh35bv3f45m40grmm7ddxsv07hgqxcsp0cx2whak0a"; + sha256 = "004xasw24a9vvzpiymjkm4khffpyzqwskz7ps8gr1351x89mssyp"; dependencies = [ { name = "anstream"; @@ -1116,7 +1161,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "full" ]; } ]; @@ -1166,6 +1211,20 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; + "const-oid" = rec { + crateName = "const-oid"; + version = "0.9.6"; + edition = "2021"; + sha256 = "1y0jnqaq7p2wvspnx7qj76m7hjcqpz73qzvr9l2p9n2s51vr6if2"; + libName = "const_oid"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "arbitrary" = [ "dep:arbitrary" ]; + }; + resolvedDefaultFeatures = [ "db" "std" ]; + }; "const_format" = rec { crateName = "const_format"; version = "0.2.35"; @@ -1233,9 +1292,9 @@ rec { }; "convert_case" = rec { crateName = "convert_case"; - version = "0.8.0"; + version = "0.10.0"; edition = "2021"; - sha256 = "17zqy79xlr1n7nc0n1mlnw5qpp8l2nbxrk13jixrhlavrbna1ams"; + sha256 = "1fff1x78mp2c233g68my0ag0zrmjdbym8bfyahjbfy4cxza5hd33"; authors = [ "rutrum " ]; @@ -1245,10 +1304,7 @@ rec { packageId = "unicode-segmentation"; } ]; - features = { - "rand" = [ "dep:rand" ]; - "random" = [ "rand" ]; - }; + }; "core-foundation" = rec { crateName = "core-foundation"; @@ -1380,6 +1436,58 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; + "crypto-bigint" = rec { + crateName = "crypto-bigint"; + version = "0.5.5"; + edition = "2021"; + sha256 = "0xmbdff3g6ii5sbxjxc31xfkv9lrmyril4arh3dzckd4gjsjzj8d"; + libName = "crypto_bigint"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "generic-array"; + packageId = "generic-array"; + optional = true; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + optional = true; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + features = [ "std" ]; + } + ]; + features = { + "alloc" = [ "serdect?/alloc" ]; + "default" = [ "rand" ]; + "der" = [ "dep:der" ]; + "generic-array" = [ "dep:generic-array" ]; + "rand" = [ "rand_core/std" ]; + "rand_core" = [ "dep:rand_core" ]; + "rlp" = [ "dep:rlp" ]; + "serde" = [ "dep:serdect" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "generic-array" "rand_core" "zeroize" ]; + }; "crypto-common" = rec { crateName = "crypto-common"; version = "0.1.6"; @@ -1404,8 +1512,9 @@ rec { "getrandom" = [ "rand_core/getrandom" ]; "rand_core" = [ "dep:rand_core" ]; }; + resolvedDefaultFeatures = [ "std" ]; }; - "darling" = rec { + "darling 0.21.3" = rec { crateName = "darling"; version = "0.21.3"; edition = "2021"; @@ -1416,11 +1525,37 @@ rec { dependencies = [ { name = "darling_core"; - packageId = "darling_core"; + packageId = "darling_core 0.21.3"; + } + { + name = "darling_macro"; + packageId = "darling_macro 0.21.3"; + } + ]; + features = { + "default" = [ "suggestions" ]; + "diagnostics" = [ "darling_core/diagnostics" ]; + "serde" = [ "darling_core/serde" ]; + "suggestions" = [ "darling_core/suggestions" ]; + }; + resolvedDefaultFeatures = [ "default" "suggestions" ]; + }; + "darling 0.23.0" = rec { + crateName = "darling"; + version = "0.23.0"; + edition = "2021"; + sha256 = "179fj6p6ajw4dnkrik51wjhifxwy02x5zhligyymcb905zd17bi5"; + authors = [ + "Ted Driggs " + ]; + dependencies = [ + { + name = "darling_core"; + packageId = "darling_core 0.23.0"; } { name = "darling_macro"; - packageId = "darling_macro"; + packageId = "darling_macro 0.23.0"; } ]; features = { @@ -1431,7 +1566,7 @@ rec { }; resolvedDefaultFeatures = [ "default" "suggestions" ]; }; - "darling_core" = rec { + "darling_core 0.21.3" = rec { crateName = "darling_core"; version = "0.21.3"; edition = "2021"; @@ -1463,7 +1598,46 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; + features = [ "full" "extra-traits" ]; + } + ]; + features = { + "serde" = [ "dep:serde" ]; + "strsim" = [ "dep:strsim" ]; + "suggestions" = [ "strsim" ]; + }; + resolvedDefaultFeatures = [ "strsim" "suggestions" ]; + }; + "darling_core 0.23.0" = rec { + crateName = "darling_core"; + version = "0.23.0"; + edition = "2021"; + sha256 = "1c033vrks38vpw8kwgd5w088dsr511kfz55n9db56prkgh7sarcq"; + authors = [ + "Ted Driggs " + ]; + dependencies = [ + { + name = "ident_case"; + packageId = "ident_case"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "strsim"; + packageId = "strsim"; + optional = true; + } + { + name = "syn"; + packageId = "syn 2.0.111"; features = [ "full" "extra-traits" ]; } ]; @@ -1474,7 +1648,7 @@ rec { }; resolvedDefaultFeatures = [ "strsim" "suggestions" ]; }; - "darling_macro" = rec { + "darling_macro 0.21.3" = rec { crateName = "darling_macro"; version = "0.21.3"; edition = "2021"; @@ -1486,7 +1660,32 @@ rec { dependencies = [ { name = "darling_core"; - packageId = "darling_core"; + packageId = "darling_core 0.21.3"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.111"; + } + ]; + + }; + "darling_macro 0.23.0" = rec { + crateName = "darling_macro"; + version = "0.23.0"; + edition = "2021"; + sha256 = "13fvzji9xyp304mgq720z5l0xgm54qj68jibwscagkynggn88fdc"; + procMacro = true; + authors = [ + "Ted Driggs " + ]; + dependencies = [ + { + name = "darling_core"; + packageId = "darling_core 0.23.0"; } { name = "quote"; @@ -1494,16 +1693,16 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; } ]; }; "delegate" = rec { crateName = "delegate"; - version = "0.13.4"; + version = "0.13.5"; edition = "2018"; - sha256 = "0sz2gl4079alymdws9s3zakgm6y4n76kay8slqxnm0vcylnahy31"; + sha256 = "0w2karbb16rrz3f5yj1fhsnpss4vl1ag1i8gn2prgw2bcm0v43kq"; procMacro = true; authors = [ "Godfrey Chan " @@ -1520,11 +1719,88 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "full" "visit-mut" ]; } ]; + }; + "der" = rec { + crateName = "der"; + version = "0.7.10"; + edition = "2021"; + sha256 = "1jyxacyxdx6mxbkfw99jz59dzvcd9k17rq01a7xvn1dr6wl87hg7"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + optional = true; + } + { + name = "der_derive"; + packageId = "der_derive"; + optional = true; + } + { + name = "flagset"; + packageId = "flagset"; + optional = true; + } + { + name = "pem-rfc7468"; + packageId = "pem-rfc7468"; + optional = true; + features = [ "alloc" ]; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "zeroize?/alloc" ]; + "arbitrary" = [ "dep:arbitrary" "const-oid?/arbitrary" "std" ]; + "bytes" = [ "dep:bytes" "alloc" ]; + "derive" = [ "dep:der_derive" ]; + "flagset" = [ "dep:flagset" ]; + "oid" = [ "dep:const-oid" ]; + "pem" = [ "dep:pem-rfc7468" "alloc" "zeroize" ]; + "std" = [ "alloc" ]; + "time" = [ "dep:time" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "derive" "flagset" "oid" "pem" "std" "zeroize" ]; + }; + "der_derive" = rec { + crateName = "der_derive"; + version = "0.7.3"; + edition = "2021"; + sha256 = "065d2wy7zd0dank99hh58l5x7lv50hxnr7j6f3sphlb7i4ihjd40"; + procMacro = true; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.111"; + features = [ "extra-traits" ]; + } + ]; + }; "deranged" = rec { crateName = "deranged"; @@ -1556,9 +1832,9 @@ rec { }; "derive_more" = rec { crateName = "derive_more"; - version = "2.0.1"; + version = "2.1.1"; edition = "2021"; - sha256 = "0y3n97cc7rsvgnj211p92y1ppzh6jzvq5kvk6340ghkhfp7l4ch9"; + sha256 = "0d5i10l4aff744jw7v4n8g6cv15rjk5mp0f1z522pc2nj7jfjlfp"; authors = [ "Jelte Fennema " ]; @@ -1578,10 +1854,11 @@ rec { "deref" = [ "derive_more-impl/deref" ]; "deref_mut" = [ "derive_more-impl/deref_mut" ]; "display" = [ "derive_more-impl/display" ]; + "eq" = [ "derive_more-impl/eq" ]; "error" = [ "derive_more-impl/error" ]; "from" = [ "derive_more-impl/from" ]; "from_str" = [ "derive_more-impl/from_str" ]; - "full" = [ "add" "add_assign" "as_ref" "constructor" "debug" "deref" "deref_mut" "display" "error" "from" "from_str" "index" "index_mut" "into" "into_iterator" "is_variant" "mul" "mul_assign" "not" "sum" "try_from" "try_into" "try_unwrap" "unwrap" ]; + "full" = [ "add" "add_assign" "as_ref" "constructor" "debug" "deref" "deref_mut" "display" "eq" "error" "from" "from_str" "index" "index_mut" "into" "into_iterator" "is_variant" "mul" "mul_assign" "not" "sum" "try_from" "try_into" "try_unwrap" "unwrap" ]; "index" = [ "derive_more-impl/index" ]; "index_mut" = [ "derive_more-impl/index_mut" ]; "into" = [ "derive_more-impl/into" ]; @@ -1601,9 +1878,9 @@ rec { }; "derive_more-impl" = rec { crateName = "derive_more-impl"; - version = "2.0.1"; + version = "2.1.1"; edition = "2021"; - sha256 = "1wqxcb7d5lzvpplz9szp4rwy1r23f5wmixz0zd2vcjscqknji9mx"; + sha256 = "1jwdp836vymp35d7mfvvalplkdgk2683nv3zjlx65n1194k9g6kr"; procMacro = true; libName = "derive_more_impl"; authors = [ @@ -1620,23 +1897,33 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; + } + ]; + buildDependencies = [ + { + name = "rustc_version"; + packageId = "rustc_version"; } ]; features = { + "add" = [ "syn/extra-traits" "syn/visit" ]; + "add_assign" = [ "syn/extra-traits" "syn/visit" ]; "as_ref" = [ "syn/extra-traits" "syn/visit" ]; "debug" = [ "syn/extra-traits" "dep:unicode-xid" ]; - "display" = [ "syn/extra-traits" "dep:unicode-xid" ]; + "display" = [ "syn/extra-traits" "dep:unicode-xid" "dep:convert_case" ]; + "eq" = [ "syn/extra-traits" "syn/visit" ]; "error" = [ "syn/extra-traits" ]; "from" = [ "syn/extra-traits" ]; - "full" = [ "add" "add_assign" "as_ref" "constructor" "debug" "deref" "deref_mut" "display" "error" "from" "from_str" "index" "index_mut" "into" "into_iterator" "is_variant" "mul" "mul_assign" "not" "sum" "try_from" "try_into" "try_unwrap" "unwrap" ]; - "into" = [ "syn/extra-traits" ]; + "from_str" = [ "syn/full" "syn/visit" "dep:convert_case" ]; + "full" = [ "add" "add_assign" "as_ref" "constructor" "debug" "deref" "deref_mut" "display" "eq" "error" "from" "from_str" "index" "index_mut" "into" "into_iterator" "is_variant" "mul" "mul_assign" "not" "sum" "try_from" "try_into" "try_unwrap" "unwrap" ]; + "into" = [ "syn/extra-traits" "syn/visit-mut" ]; "is_variant" = [ "dep:convert_case" ]; - "mul" = [ "syn/extra-traits" ]; - "mul_assign" = [ "syn/extra-traits" ]; + "mul" = [ "syn/extra-traits" "syn/visit" ]; + "mul_assign" = [ "syn/extra-traits" "syn/visit" ]; "not" = [ "syn/extra-traits" ]; - "testing-helpers" = [ "dep:rustc_version" ]; - "try_into" = [ "syn/extra-traits" ]; + "testing-helpers" = [ "syn/full" ]; + "try_into" = [ "syn/extra-traits" "syn/full" "syn/visit-mut" ]; "try_unwrap" = [ "dep:convert_case" ]; "unwrap" = [ "dep:convert_case" ]; }; @@ -1656,10 +1943,21 @@ rec { packageId = "block-buffer"; optional = true; } + { + name = "const-oid"; + packageId = "const-oid"; + optional = true; + } { name = "crypto-common"; packageId = "crypto-common"; } + { + name = "subtle"; + packageId = "subtle"; + optional = true; + usesDefaultFeatures = false; + } ]; features = { "blobby" = [ "dep:blobby" ]; @@ -1674,7 +1972,7 @@ rec { "std" = [ "alloc" "crypto-common/std" ]; "subtle" = [ "dep:subtle" ]; }; - resolvedDefaultFeatures = [ "block-buffer" "core-api" "default" ]; + resolvedDefaultFeatures = [ "alloc" "block-buffer" "const-oid" "core-api" "default" "mac" "oid" "std" "subtle" ]; }; "displaydoc" = rec { crateName = "displaydoc"; @@ -1696,7 +1994,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; } ]; features = { @@ -1763,39 +2061,112 @@ rec { ]; }; - "educe" = rec { - crateName = "educe"; - version = "0.6.0"; + "ecdsa" = rec { + crateName = "ecdsa"; + version = "0.16.9"; edition = "2021"; - sha256 = "05wlg6wzil59lxc3kbs476gwykj6m63dbfv83frxx35xw54w0yqx"; - procMacro = true; + sha256 = "1jhb0bcbkaz4001sdmfyv8ajrv8a1cg7z7aa5myrd4jjbhmz69zf"; authors = [ - "Magic Len " + "RustCrypto Developers" ]; dependencies = [ { - name = "enum-ordinalize"; - packageId = "enum-ordinalize"; - usesDefaultFeatures = false; - features = [ "derive" ]; + name = "der"; + packageId = "der"; + optional = true; } { - name = "proc-macro2"; - packageId = "proc-macro2"; - } + name = "digest"; + packageId = "digest"; + optional = true; + usesDefaultFeatures = false; + features = [ "oid" ]; + } + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "digest" "sec1" ]; + } + { + name = "rfc6979"; + packageId = "rfc6979"; + optional = true; + } + { + name = "signature"; + packageId = "signature"; + usesDefaultFeatures = false; + features = [ "rand_core" ]; + } + { + name = "spki"; + packageId = "spki"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "dev" ]; + } + ]; + features = { + "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" ]; + "pem" = [ "elliptic-curve/pem" "pkcs8" ]; + "pkcs8" = [ "digest" "elliptic-curve/pkcs8" "der" ]; + "rfc6979" = [ "dep:rfc6979" ]; + "serde" = [ "elliptic-curve/serde" "serdect" ]; + "serdect" = [ "dep:serdect" ]; + "sha2" = [ "dep:sha2" ]; + "signing" = [ "arithmetic" "digest" "hazmat" "rfc6979" ]; + "spki" = [ "dep:spki" ]; + "std" = [ "alloc" "elliptic-curve/std" "signature/std" ]; + "verifying" = [ "arithmetic" "digest" "hazmat" ]; + }; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "default" "der" "digest" "hazmat" "pem" "pkcs8" "rfc6979" "signing" "spki" "std" "verifying" ]; + }; + "educe" = rec { + crateName = "educe"; + version = "0.6.0"; + edition = "2021"; + sha256 = "05wlg6wzil59lxc3kbs476gwykj6m63dbfv83frxx35xw54w0yqx"; + procMacro = true; + authors = [ + "Magic Len " + ]; + dependencies = [ + { + name = "enum-ordinalize"; + packageId = "enum-ordinalize"; + usesDefaultFeatures = false; + features = [ "derive" ]; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } { name = "quote"; packageId = "quote"; } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; } ]; devDependencies = [ { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "full" ]; } ]; @@ -1820,6 +2191,104 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" "use_std" ]; }; + "elliptic-curve" = rec { + crateName = "elliptic-curve"; + version = "0.13.8"; + edition = "2021"; + sha256 = "0ixx4brgnzi61z29r3g1606nh2za88hzyz8c5r3p6ydzhqq09rmm"; + libName = "elliptic_curve"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base16ct"; + packageId = "base16ct"; + } + { + name = "crypto-bigint"; + packageId = "crypto-bigint"; + usesDefaultFeatures = false; + features = [ "rand_core" "generic-array" "zeroize" ]; + } + { + name = "digest"; + packageId = "digest"; + optional = true; + } + { + name = "ff"; + packageId = "ff"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "generic-array"; + packageId = "generic-array"; + usesDefaultFeatures = false; + features = [ "zeroize" ]; + } + { + name = "group"; + packageId = "group"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "pem-rfc7468"; + packageId = "pem-rfc7468"; + optional = true; + features = [ "alloc" ]; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "sec1"; + packageId = "sec1"; + optional = true; + features = [ "subtle" "zeroize" ]; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "base16ct/alloc" "ff?/alloc" "group?/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" ]; + "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" ]; + "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" ]; + }; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "digest" "ff" "group" "hazmat" "pem" "pkcs8" "sec1" "std" ]; + }; "encoding_rs" = rec { crateName = "encoding_rs"; version = "0.8.35"; @@ -1861,9 +2330,9 @@ rec { }; "enum-ordinalize" = rec { crateName = "enum-ordinalize"; - version = "4.3.0"; + version = "4.3.2"; edition = "2021"; - sha256 = "1max64z9giii61qcwl56rndd7pakaylkaij5zqbbbvjl9vxdr87y"; + sha256 = "1w0012dqq5y3xikpswix190jvjl097pjrzpi515jr3qzpfkr242a"; libName = "enum_ordinalize"; dependencies = [ { @@ -1882,9 +2351,9 @@ rec { }; "enum-ordinalize-derive" = rec { crateName = "enum-ordinalize-derive"; - version = "4.3.1"; + version = "4.3.2"; edition = "2021"; - sha256 = "1zy53fabazimwv5cl0366k834ybixzl84lxj9mfavbnlfn532a0d"; + sha256 = "0cf61sxxsf3f6n5xhzjxdrc1793k52250ql32zp9h9fnn8gn1acc"; procMacro = true; libName = "enum_ordinalize_derive"; dependencies = [ @@ -1898,7 +2367,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; } ]; features = { @@ -1911,6 +2380,47 @@ rec { sha256 = "03swzqznragy8n0x31lqc78g2af054jwivp7lkrbrc0khz74lyl7"; }; + "errno" = rec { + crateName = "errno"; + version = "0.3.14"; + edition = "2018"; + sha256 = "1szgccmh8vgryqyadg8xd58mnwwicf39zmin3bsn63df2wbbgjir"; + authors = [ + "Chris Wong " + "Dan Gohman " + ]; + dependencies = [ + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + target = { target, features }: ("hermit" == target."os" or null); + } + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + target = { target, features }: ("wasi" == target."os" or null); + } + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + target = { target, features }: (target."unix" or false); + } + { + name = "windows-sys"; + packageId = "windows-sys 0.61.2"; + target = { target, features }: (target."windows" or false); + features = [ "Win32_Foundation" "Win32_System_Diagnostics_Debug" ]; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "libc/std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; "event-listener" = rec { crateName = "event-listener"; version = "5.4.1"; @@ -2031,14 +2541,60 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "std" ]; }; + "ff" = rec { + crateName = "ff"; + version = "0.13.1"; + edition = "2021"; + sha256 = "14v3bc6q24gbcjnxjfbq2dddgf4as2z2gd4mj35gjlrncpxhpdf0"; + authors = [ + "Sean Bowe " + "Jack Grigg " + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + ]; + features = { + "bits" = [ "bitvec" ]; + "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" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "find-msvc-tools" = rec { crateName = "find-msvc-tools"; - version = "0.1.4"; + version = "0.1.6"; edition = "2018"; - sha256 = "09x1sfinrz86bkm6i2d85lpsfnxn0w797g5zisv1nwhaz1w1h1aj"; + sha256 = "1zwdxinsg7i0agvapxa5cj7k09vygzjy8nkxc4qpa2z6hhxbnp34"; libName = "find_msvc_tools"; }; + "flagset" = rec { + crateName = "flagset"; + version = "0.4.7"; + edition = "2021"; + sha256 = "1zplx30g76kl5la3ayl9ns5p3diqd9zphbcggqcm4nm7411q5b5p"; + authors = [ + "Nathaniel McCallum " + ]; + features = { + "serde" = [ "dep:serde" ]; + }; + }; "flate2" = rec { crateName = "flate2"; version = "1.1.5"; @@ -2310,7 +2866,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "full" ]; } ]; @@ -2447,6 +3003,12 @@ rec { name = "typenum"; packageId = "typenum"; } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } ]; buildDependencies = [ { @@ -2458,7 +3020,7 @@ rec { "serde" = [ "dep:serde" ]; "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "more_lengths" ]; + resolvedDefaultFeatures = [ "more_lengths" "zeroize" ]; }; "getrandom 0.2.16" = rec { crateName = "getrandom"; @@ -2494,6 +3056,7 @@ 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"; @@ -2576,9 +3139,9 @@ rec { }; "git2" = rec { crateName = "git2"; - version = "0.20.2"; + version = "0.20.3"; edition = "2018"; - sha256 = "0451zzmvblvlrj6y6pgdsxrqh42hi789n3k9lp0hslmi6fhhgsrd"; + sha256 = "131hmxb2iq9328wrwqgw56fcd0z3dwxnn3hzl6nwsa97yvi3fary"; authors = [ "Josh Triplett " "Alex Crichton " @@ -2652,6 +3215,42 @@ rec { }; resolvedDefaultFeatures = [ "default" "futures" "futures-channel" "futures-core" ]; }; + "group" = rec { + crateName = "group"; + version = "0.13.0"; + edition = "2021"; + sha256 = "0qqs2p5vqnv3zvq9mfjkmw3qlvgqb0c3cm6p33srkh7pc9sfzygh"; + authors = [ + "Sean Bowe " + "Jack Grigg " + ]; + dependencies = [ + { + name = "ff"; + packageId = "ff"; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "alloc" ]; + "memuse" = [ "dep:memuse" ]; + "rand" = [ "dep:rand" ]; + "rand_xorshift" = [ "dep:rand_xorshift" ]; + "tests" = [ "alloc" "rand" "rand_xorshift" ]; + "wnaf-memuse" = [ "alloc" "memuse" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "h2" = rec { crateName = "h2"; version = "0.4.12"; @@ -2767,11 +3366,11 @@ rec { }; resolvedDefaultFeatures = [ "allocator-api2" "default" "default-hasher" "equivalent" "inline-more" "raw-entry" ]; }; - "hashbrown 0.16.0" = rec { + "hashbrown 0.16.1" = rec { crateName = "hashbrown"; - version = "0.16.0"; + version = "0.16.1"; edition = "2021"; - sha256 = "13blh9j2yv77a6ni236ixiwdzbc1sh2bc4bdpaz7y859yv2bs6al"; + sha256 = "004i3njw38ji3bzdp9z178ba9x3k0c1pgy8x69pj7yfppv4iq7c4"; authors = [ "Amanieu d'Antras " ]; @@ -2785,7 +3384,7 @@ rec { "nightly" = [ "foldhash?/nightly" "bumpalo/allocator_api" ]; "rayon" = [ "dep:rayon" ]; "rustc-dep-of-std" = [ "nightly" "core" "alloc" "rustc-internal-api" ]; - "serde" = [ "dep:serde" ]; + "serde" = [ "dep:serde_core" "dep:serde" ]; }; }; "heck" = rec { @@ -2795,6 +3394,33 @@ rec { sha256 = "1sjmpsdl8czyh9ywl3qcsfsq9a307dg4ni2vnlwgnzzqhc4y0113"; }; + "hmac" = rec { + crateName = "hmac"; + version = "0.12.1"; + edition = "2018"; + sha256 = "0pmbr069sfg76z7wsssfk5ddcqd9ncp79fyz6zcm6yn115yc6jbc"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "digest"; + packageId = "digest"; + features = [ "mac" ]; + } + ]; + devDependencies = [ + { + name = "digest"; + packageId = "digest"; + features = [ "dev" ]; + } + ]; + features = { + "std" = [ "digest/std" ]; + }; + resolvedDefaultFeatures = [ "reset" ]; + }; "home" = rec { crateName = "home"; version = "0.5.12"; @@ -2815,9 +3441,9 @@ rec { }; "hostname" = rec { crateName = "hostname"; - version = "0.4.1"; + version = "0.4.2"; edition = "2021"; - sha256 = "0rbxryl68bwv8hkjdjd8f37kdb10fncgsqrqksv64qy7s4y20vx5"; + sha256 = "1g8cfg0a1v8y5a0zkncbns8hh24amjgskl39cc583wxfawsslyk1"; dependencies = [ { name = "cfg-if"; @@ -2830,7 +3456,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link 0.1.3"; + packageId = "windows-link"; target = { target, features }: ("windows" == target."os" or null); } ]; @@ -2840,9 +3466,9 @@ rec { }; "http" = rec { crateName = "http"; - version = "1.3.1"; - edition = "2018"; - sha256 = "0r95i5h7dr1xadp1ac9453w0s62s27hzkam356nyx2d9mqqmva7l"; + version = "1.4.0"; + edition = "2021"; + sha256 = "06iind4cwsj1d6q8c2xgq8i2wka4ps74kmws24gsi1bzdlw2mfp3"; authors = [ "Alex Crichton " "Carl Lerche " @@ -2853,10 +3479,6 @@ rec { name = "bytes"; packageId = "bytes"; } - { - name = "fnv"; - packageId = "fnv"; - } { name = "itoa"; packageId = "itoa"; @@ -2955,9 +3577,9 @@ rec { }; "hyper" = rec { crateName = "hyper"; - version = "1.7.0"; + version = "1.8.1"; edition = "2021"; - sha256 = "07n59pxzlq621z611cbpvh7p4h9h15v0r7m5wgxygpx02d5aafpb"; + sha256 = "04cxr8j5y86bhxxlyqb8xkxjskpajk7cxwfzzk4v3my3a3rd9cia"; authors = [ "Sean McArthur " ]; @@ -3061,7 +3683,7 @@ rec { "server" = [ "dep:httpdate" "dep:pin-project-lite" "dep:smallvec" ]; "tracing" = [ "dep:tracing" ]; }; - resolvedDefaultFeatures = [ "client" "default" "http1" "http2" "server" ]; + resolvedDefaultFeatures = [ "client" "default" "full" "http1" "http2" "server" ]; }; "hyper-rustls" = rec { crateName = "hyper-rustls"; @@ -3209,9 +3831,9 @@ rec { }; "hyper-util" = rec { crateName = "hyper-util"; - version = "0.1.17"; + version = "0.1.19"; edition = "2021"; - sha256 = "1a5fcnz0alrg4lx9xf6ja66ihaab58jnm5msnky804wg39cras9w"; + sha256 = "0pyzc8378baf996l5ycl4y0s3skhxc4z4vkah9mvff3r1vb0ay3j"; libName = "hyper_util"; authors = [ "Sean McArthur " @@ -3322,9 +3944,10 @@ rec { features = { "client" = [ "hyper/client" "tokio/net" "dep:tracing" "dep:futures-channel" "dep:tower-service" ]; "client-legacy" = [ "client" "dep:socket2" "tokio/sync" "dep:libc" "dep:futures-util" ]; + "client-pool" = [ "client" "dep:futures-util" "dep:tower-layer" ]; "client-proxy" = [ "client" "dep:base64" "dep:ipnet" "dep:percent-encoding" ]; "client-proxy-system" = [ "dep:system-configuration" "dep:windows-registry" ]; - "full" = [ "client" "client-legacy" "client-proxy" "client-proxy-system" "server" "server-auto" "server-graceful" "service" "http1" "http2" "tokio" "tracing" ]; + "full" = [ "client" "client-legacy" "client-pool" "client-proxy" "client-proxy-system" "server" "server-auto" "server-graceful" "service" "http1" "http2" "tokio" "tracing" ]; "http1" = [ "hyper/http1" ]; "http2" = [ "hyper/http2" ]; "server" = [ "hyper/server" ]; @@ -3407,9 +4030,9 @@ rec { }; "icu_collections" = rec { crateName = "icu_collections"; - version = "2.0.0"; + version = "2.1.1"; edition = "2021"; - sha256 = "0izfgypv1hsxlz1h8fc2aak641iyvkak16aaz5b4aqg3s3sp4010"; + sha256 = "0hsblchsdl64q21qwrs4hvc2672jrf466zivbj1bwyv606bn8ssc"; authors = [ "The ICU4X Project Developers" ]; @@ -3445,16 +4068,16 @@ rec { } ]; features = { - "alloc" = [ "zerovec/alloc" ]; + "alloc" = [ "serde?/alloc" "zerovec/alloc" ]; "databake" = [ "dep:databake" "zerovec/databake" ]; "serde" = [ "dep:serde" "zerovec/serde" "potential_utf/serde" "alloc" ]; }; }; "icu_locale_core" = rec { crateName = "icu_locale_core"; - version = "2.0.0"; + version = "2.1.1"; edition = "2021"; - sha256 = "02phv7vwhyx6vmaqgwkh2p4kc2kciykv2px6g4h8glxfrh02gphc"; + sha256 = "1djvdc2f5ylmp1ymzv4gcnmq1s4hqfim9nxlcm173lsd01hpifpd"; authors = [ "The ICU4X Project Developers" ]; @@ -3468,13 +4091,11 @@ rec { name = "litemap"; packageId = "litemap"; usesDefaultFeatures = false; - features = [ "alloc" ]; } { name = "tinystr"; packageId = "tinystr"; usesDefaultFeatures = false; - features = [ "alloc" ]; } { name = "writeable"; @@ -3489,26 +4110,22 @@ rec { } ]; features = { + "alloc" = [ "litemap/alloc" "tinystr/alloc" "writeable/alloc" "serde?/alloc" ]; "databake" = [ "dep:databake" "alloc" ]; - "serde" = [ "dep:serde" "tinystr/serde" "alloc" ]; + "serde" = [ "dep:serde" "tinystr/serde" ]; "zerovec" = [ "dep:zerovec" "tinystr/zerovec" ]; }; resolvedDefaultFeatures = [ "zerovec" ]; }; "icu_normalizer" = rec { crateName = "icu_normalizer"; - version = "2.0.0"; + version = "2.1.1"; edition = "2021"; - sha256 = "0ybrnfnxx4sf09gsrxri8p48qifn54il6n3dq2xxgx4dw7l80s23"; + sha256 = "16dmn5596la2qm0r3vih0bzjfi0vx9a20yqjha6r1y3vnql8hv2z"; authors = [ "The ICU4X Project Developers" ]; dependencies = [ - { - name = "displaydoc"; - packageId = "displaydoc"; - usesDefaultFeatures = false; - } { name = "icu_collections"; packageId = "icu_collections"; @@ -3548,17 +4165,16 @@ rec { "default" = [ "compiled_data" "utf8_iter" "utf16_iter" ]; "icu_properties" = [ "dep:icu_properties" ]; "serde" = [ "dep:serde" "icu_collections/serde" "zerovec/serde" "icu_properties?/serde" "icu_provider/serde" ]; - "utf16_iter" = [ "dep:utf16_iter" "write16" ]; + "utf16_iter" = [ "dep:utf16_iter" "dep:write16" ]; "utf8_iter" = [ "dep:utf8_iter" ]; - "write16" = [ "dep:write16" ]; }; resolvedDefaultFeatures = [ "compiled_data" ]; }; "icu_normalizer_data" = rec { crateName = "icu_normalizer_data"; - version = "2.0.0"; + version = "2.1.1"; edition = "2021"; - sha256 = "1lvjpzxndyhhjyzd1f6vi961gvzhj244nribfpdqxjdgjdl0s880"; + sha256 = "02jnzizg6q75m41l6c13xc7nkc5q8yr1b728dcgfhpzw076wrvbs"; authors = [ "The ICU4X Project Developers" ]; @@ -3566,18 +4182,13 @@ rec { }; "icu_properties" = rec { crateName = "icu_properties"; - version = "2.0.1"; + version = "2.1.2"; edition = "2021"; - sha256 = "0az349pjg8f18lrjbdmxcpg676a7iz2ibc09d2wfz57b3sf62v01"; + sha256 = "1v3lbmhhi7i6jgw51ikjb1p50qh5rb67grlkdnkc63l7zq1gq2q2"; authors = [ "The ICU4X Project Developers" ]; dependencies = [ - { - name = "displaydoc"; - packageId = "displaydoc"; - usesDefaultFeatures = false; - } { name = "icu_collections"; packageId = "icu_collections"; @@ -3600,12 +4211,6 @@ rec { packageId = "icu_provider"; usesDefaultFeatures = false; } - { - name = "potential_utf"; - packageId = "potential_utf"; - usesDefaultFeatures = false; - features = [ "zerovec" ]; - } { name = "zerotrie"; packageId = "zerotrie"; @@ -3620,20 +4225,20 @@ rec { } ]; features = { - "alloc" = [ "zerovec/alloc" "icu_collections/alloc" ]; + "alloc" = [ "zerovec/alloc" "icu_collections/alloc" "serde?/alloc" ]; "compiled_data" = [ "dep:icu_properties_data" "icu_provider/baked" ]; - "datagen" = [ "serde" "dep:databake" "potential_utf/databake" "zerovec/databake" "icu_collections/databake" "icu_locale_core/databake" "zerotrie/databake" "icu_provider/export" ]; + "datagen" = [ "serde" "dep:databake" "zerovec/databake" "icu_collections/databake" "icu_locale_core/databake" "zerotrie/databake" "icu_provider/export" ]; "default" = [ "compiled_data" ]; - "serde" = [ "dep:serde" "icu_locale_core/serde" "potential_utf/serde" "zerovec/serde" "icu_collections/serde" "icu_provider/serde" "zerotrie/serde" ]; + "serde" = [ "dep:serde" "icu_locale_core/serde" "zerovec/serde" "icu_collections/serde" "icu_provider/serde" "zerotrie/serde" ]; "unicode_bidi" = [ "dep:unicode-bidi" ]; }; resolvedDefaultFeatures = [ "compiled_data" ]; }; "icu_properties_data" = rec { crateName = "icu_properties_data"; - version = "2.0.1"; + version = "2.1.2"; edition = "2021"; - sha256 = "0cnn3fkq6k88w7p86w7hsd1254s4sl783rpz4p6hlccq74a5k119"; + sha256 = "1bvpkh939rgzrjfdb7hz47v4wijngk0snmcgrnpwc9fpz162jv31"; authors = [ "The ICU4X Project Developers" ]; @@ -3641,9 +4246,9 @@ rec { }; "icu_provider" = rec { crateName = "icu_provider"; - version = "2.0.0"; + version = "2.1.1"; edition = "2021"; - sha256 = "1bz5v02gxv1i06yhdhs2kbwxkw3ny9r2vvj9j288fhazgfi0vj03"; + sha256 = "0576b7dizgyhpfa74kacv86y4g1p7v5ffd6c56kf1q82rvq2r5l5"; authors = [ "The ICU4X Project Developers" ]; @@ -3658,32 +4263,23 @@ rec { packageId = "icu_locale_core"; usesDefaultFeatures = false; } - { - name = "stable_deref_trait"; - packageId = "stable_deref_trait"; - usesDefaultFeatures = false; - } - { - name = "tinystr"; - packageId = "tinystr"; - usesDefaultFeatures = false; - } { name = "writeable"; packageId = "writeable"; + optional = true; usesDefaultFeatures = false; } { name = "yoke"; packageId = "yoke"; usesDefaultFeatures = false; - features = [ "alloc" "derive" ]; + features = [ "derive" ]; } { name = "zerofrom"; packageId = "zerofrom"; usesDefaultFeatures = false; - features = [ "alloc" "derive" ]; + features = [ "derive" ]; } { name = "zerotrie"; @@ -3699,8 +4295,8 @@ rec { } ]; features = { - "alloc" = [ "icu_locale_core/alloc" "zerovec/alloc" "zerotrie/alloc" ]; - "baked" = [ "zerotrie" ]; + "alloc" = [ "icu_locale_core/alloc" "serde?/alloc" "yoke/alloc" "zerofrom/alloc" "zerovec/alloc" "zerotrie?/alloc" "dep:stable_deref_trait" "dep:writeable" ]; + "baked" = [ "dep:zerotrie" "dep:writeable" ]; "deserialize_bincode_1" = [ "serde" "dep:bincode" "std" ]; "deserialize_json" = [ "serde" "dep:serde_json" ]; "deserialize_postcard_1" = [ "serde" "dep:postcard" ]; @@ -3708,9 +4304,8 @@ rec { "logging" = [ "dep:log" ]; "serde" = [ "dep:serde" "yoke/serde" ]; "std" = [ "alloc" ]; - "zerotrie" = [ "dep:zerotrie" ]; }; - resolvedDefaultFeatures = [ "baked" "zerotrie" ]; + resolvedDefaultFeatures = [ "baked" ]; }; "ident_case" = rec { crateName = "ident_case"; @@ -3779,9 +4374,9 @@ rec { }; "indexmap" = rec { crateName = "indexmap"; - version = "2.12.0"; + version = "2.12.1"; edition = "2021"; - sha256 = "17xs7cqf9nzv8iw8yzpvpjh43lcf9492i8a3xfia2ad9lp9ah5v7"; + sha256 = "1wmcfk7g7d9wz1dninlijx70kfkzz6d5r36nyi2hdjjvaqmvpm0a"; dependencies = [ { name = "equivalent"; @@ -3790,7 +4385,7 @@ rec { } { name = "hashbrown"; - packageId = "hashbrown 0.16.0"; + packageId = "hashbrown 0.16.1"; usesDefaultFeatures = false; } ]; @@ -3848,9 +4443,9 @@ rec { }; "iri-string" = rec { crateName = "iri-string"; - version = "0.7.8"; + version = "0.7.10"; edition = "2021"; - sha256 = "1cl0wfq97wq4s1p4dl0ix5cfgsc5fn7l22ljgw9ab9x1qglypifv"; + sha256 = "06kk3a5jz576p7vrpf7zz9jv3lrgcyp7pczcblcxdnryg3q3h4y9"; libName = "iri_string"; authors = [ "YOSHIOKA Takuma " @@ -3911,9 +4506,9 @@ rec { }; "itoa" = rec { crateName = "itoa"; - version = "1.0.15"; - edition = "2018"; - sha256 = "0b4fj9kz54dr3wam0vprjwgygvycyw8r0qwg7vp19ly8b2w16psa"; + version = "1.0.17"; + edition = "2021"; + sha256 = "1lh93xydrdn1g9x547bd05g0d3hra7pd1k4jfd2z1pl1h5hwdv4j"; authors = [ "David Tolnay " ]; @@ -3971,9 +4566,9 @@ rec { }; "js-sys" = rec { crateName = "js-sys"; - version = "0.3.81"; + version = "0.3.83"; edition = "2021"; - sha256 = "01ckbf16iwh7qj92fax9zh8vf2y9sk60cli6999cn7a1jxx96j7c"; + sha256 = "1n71vpxrzclly0530lwkcsx6mg73lipam2ak3rr1ypzmqw4kfjj6"; libName = "js_sys"; authors = [ "The wasm-bindgen Developers" @@ -4109,10 +4704,10 @@ rec { }; "k8s-openapi" = rec { crateName = "k8s-openapi"; - version = "0.26.0"; + version = "0.26.1"; edition = "2021"; - links = "k8s-openapi-0.26.0"; - sha256 = "14m6i7g6w8lh1rnc19f2c31cvf2ia2vzmggsmzn5p4ba6bahcgyi"; + links = "k8s-openapi-0.26.1"; + sha256 = "0aw8k7djlqxdbpc21qd7ir3rgx0hpsrf5mx03p2wsdyh3pkfbn86"; libName = "k8s_openapi"; authors = [ "Arnav Singh " @@ -4163,8 +4758,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "184423db7409f853bd69db7eeecd1affbf97ef40"; - sha256 = "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l"; + rev = "bac8ff44653d477deda650fbd5f690af042df6c2"; + sha256 = "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0"; }; libName = "k8s_version"; authors = [ @@ -4173,7 +4768,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling"; + packageId = "darling 0.23.0"; optional = true; } { @@ -4195,7 +4790,12 @@ rec { crateName = "kube"; version = "2.0.1"; edition = "2024"; - sha256 = "0kh1m9w0nhd3fai4pcshl7z5rx0s83zvcxa51v12ql26d85vprs8"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech/kube-rs"; + rev = "26543e85dc7daaf82d8f7dbd902b26775798879e"; + sha256 = "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf"; + }; authors = [ "clux " "Natalie Klestrup Röijezon " @@ -4262,13 +4862,18 @@ rec { "webpki-roots" = [ "kube-client/webpki-roots" "client" ]; "ws" = [ "kube-client/ws" "kube-core/ws" ]; }; - resolvedDefaultFeatures = [ "client" "config" "derive" "jsonpatch" "kube-client" "kube-derive" "kube-runtime" "ring" "runtime" "rustls-tls" ]; + resolvedDefaultFeatures = [ "admission" "client" "config" "derive" "jsonpatch" "kube-client" "kube-derive" "kube-runtime" "ring" "runtime" "rustls-tls" ]; }; "kube-client" = rec { crateName = "kube-client"; version = "2.0.1"; edition = "2024"; - sha256 = "0dksaqk698bciyda6k8ss9lr92bqyb3pygddzna54asd31xdb1s9"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech/kube-rs"; + rev = "26543e85dc7daaf82d8f7dbd902b26775798879e"; + sha256 = "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf"; + }; libName = "kube_client"; authors = [ "clux " @@ -4501,7 +5106,12 @@ rec { crateName = "kube-core"; version = "2.0.1"; edition = "2024"; - sha256 = "0wzfc1q78s5a3k1gfa6i8xjd9gmssbnw0f1mdsh23dvv1rvvnjwi"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech/kube-rs"; + rev = "26543e85dc7daaf82d8f7dbd902b26775798879e"; + sha256 = "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf"; + }; libName = "kube_core"; authors = [ "clux " @@ -4577,13 +5187,18 @@ rec { "schema" = [ "schemars" ]; "schemars" = [ "dep:schemars" ]; }; - resolvedDefaultFeatures = [ "json-patch" "jsonpatch" "schema" "schemars" ]; + resolvedDefaultFeatures = [ "admission" "json-patch" "jsonpatch" "schema" "schemars" ]; }; "kube-derive" = rec { crateName = "kube-derive"; version = "2.0.1"; edition = "2024"; - sha256 = "1ljhw6xmrj1v8ni144bpxrifwzbrrn0qnl5kd8m7fdz15cjyiph3"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech/kube-rs"; + rev = "26543e85dc7daaf82d8f7dbd902b26775798879e"; + sha256 = "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf"; + }; procMacro = true; libName = "kube_derive"; authors = [ @@ -4594,7 +5209,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling"; + packageId = "darling 0.21.3"; } { name = "proc-macro2"; @@ -4615,7 +5230,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "extra-traits" ]; } ]; @@ -4632,7 +5247,12 @@ rec { crateName = "kube-runtime"; version = "2.0.1"; edition = "2024"; - sha256 = "1zg34fih2r72y9sr58gmgyjizbkl6jv0nc0hmf4wrib2npj4vska"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech/kube-rs"; + rev = "26543e85dc7daaf82d8f7dbd902b26775798879e"; + sha256 = "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf"; + }; libName = "kube_runtime"; authors = [ "clux " @@ -4755,16 +5375,26 @@ 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"; - version = "0.2.177"; + version = "0.2.178"; edition = "2021"; - sha256 = "0xjrn69cywaii1iq2lib201bhlvan7czmrm604h5qcm28yps4x18"; + sha256 = "1490yks6mria93i3xdva1gm05cjz824g14mbv0ph32lxma6kvj9p"; authors = [ "The Rust Project Developers" ]; @@ -4778,10 +5408,10 @@ rec { }; "libgit2-sys" = rec { crateName = "libgit2-sys"; - version = "0.18.2+1.9.1"; - edition = "2018"; + version = "0.18.3+1.9.2"; + edition = "2021"; links = "git2"; - sha256 = "08n223x2pkf4gj6yrjmh3z6q236qj6nifwww78xcblrbvw1zwhhw"; + sha256 = "11rlbyihj3k35mnkxxz4yvsnlx33a4r9srl66c5vp08pp72arcy9"; libName = "libgit2_sys"; libPath = "lib.rs"; authors = [ @@ -4820,12 +5450,26 @@ rec { "zlib-ng-compat" = [ "libz-sys/zlib-ng" "libssh2-sys?/zlib-ng-compat" ]; }; }; + "libm" = rec { + crateName = "libm"; + version = "0.2.15"; + edition = "2021"; + sha256 = "1plpzf0p829viazdj57yw5dhmlr8ywf3apayxc2f2bq5a6mvryzr"; + authors = [ + "Jorge Aparicio " + ]; + features = { + "default" = [ "arch" ]; + "unstable" = [ "unstable-intrinsics" "unstable-float" ]; + }; + resolvedDefaultFeatures = [ "arch" "default" ]; + }; "libz-sys" = rec { crateName = "libz-sys"; - version = "1.1.22"; + version = "1.1.23"; edition = "2018"; links = "z"; - sha256 = "07b5wxh0ska996kc0g2hanjhmb4di7ksm6ndljhr4pi0vykyfw4b"; + sha256 = "1xy0l46gmhfyk28r9pm7njl0h7dh8l2vpiqw67kn043pyfxiil8m"; libName = "libz_sys"; authors = [ "Alex Crichton " @@ -4864,20 +5508,19 @@ rec { }; "litemap" = rec { crateName = "litemap"; - version = "0.8.0"; + version = "0.8.1"; edition = "2021"; - sha256 = "0mlrlskwwhirxk3wsz9psh6nxcy491n0dh8zl02qgj0jzpssw7i4"; + sha256 = "0xsy8pfp9s802rsj1bq2ys2kbk1g36w5dr3gkfip7gphb5x60wv3"; authors = [ "The ICU4X Project Developers" ]; features = { "databake" = [ "dep:databake" ]; "default" = [ "alloc" ]; - "serde" = [ "dep:serde" "alloc" ]; + "serde" = [ "dep:serde_core" "alloc" ]; "testing" = [ "alloc" ]; "yoke" = [ "dep:yoke" ]; }; - resolvedDefaultFeatures = [ "alloc" ]; }; "lock_api" = rec { crateName = "lock_api"; @@ -4903,9 +5546,9 @@ rec { }; "log" = rec { crateName = "log"; - version = "0.4.28"; + version = "0.4.29"; edition = "2021"; - sha256 = "0cklpzrpxafbaq1nyxarhnmcw9z3xcjrad3ch55mmr58xw2ha21l"; + sha256 = "15q8j9c8g5zpkcw0hnd6cf2z7fxqnvsjh3rw5mv5q10r83i34l2y"; authors = [ "The Rust Project Developers" ]; @@ -4917,7 +5560,8 @@ rec { "kv_unstable_serde" = [ "kv_serde" "kv_unstable_std" ]; "kv_unstable_std" = [ "kv_std" "kv_unstable" ]; "kv_unstable_sval" = [ "kv_sval" "kv_unstable" ]; - "serde" = [ "dep:serde" ]; + "serde" = [ "serde_core" ]; + "serde_core" = [ "dep:serde_core" ]; "sval" = [ "dep:sval" ]; "sval_ref" = [ "dep:sval_ref" ]; "value-bag" = [ "dep:value-bag" ]; @@ -5021,9 +5665,9 @@ rec { }; "mio" = rec { crateName = "mio"; - version = "1.1.0"; + version = "1.1.1"; edition = "2021"; - sha256 = "0wr816q3jrjwiajvw807lgi540i9s6r78a5fx4ycz3nwhq03pn39"; + sha256 = "1z2phpalqbdgihrcjp8y09l3kgq6309jnhnr6h11l9s7mnqcm6x6"; authors = [ "Carl Lerche " "Thomas de Zeeuw " @@ -5092,6 +5736,81 @@ 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.5"; + 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.5"; + 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.1.0"; @@ -5103,6 +5822,63 @@ rec { ]; }; + "num-integer" = rec { + crateName = "num-integer"; + version = "0.1.46"; + edition = "2018"; + sha256 = "13w5g54a9184cqlbsq80rnxw4jj4s0d8wv75jsq5r2lms8gncsbr"; + 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.45"; + edition = "2018"; + sha256 = "1gzm7vc5g9qsjjl3bqk9rz1h6raxhygbrcpbfl04swlh0i506a8l"; + 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" ]; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg"; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "num-integer/std" "num-traits/std" ]; + }; + }; "num-traits" = rec { crateName = "num-traits"; version = "0.2.19"; @@ -5112,6 +5888,13 @@ rec { authors = [ "The Rust Project Developers" ]; + dependencies = [ + { + name = "libm"; + packageId = "libm"; + optional = true; + } + ]; buildDependencies = [ { name = "autocfg"; @@ -5122,7 +5905,7 @@ rec { "default" = [ "std" ]; "libm" = [ "dep:libm" ]; }; - resolvedDefaultFeatures = [ "std" ]; + resolvedDefaultFeatures = [ "i128" "libm" "std" ]; }; "once_cell" = rec { crateName = "once_cell"; @@ -5553,7 +6336,7 @@ rec { } { name = "rand"; - packageId = "rand"; + packageId = "rand 0.9.2"; optional = true; usesDefaultFeatures = false; features = [ "std" "std_rng" "small_rng" "os_rng" "thread_rng" ]; @@ -5635,6 +6418,79 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "p256" = rec { + crateName = "p256"; + version = "0.13.2"; + edition = "2021"; + sha256 = "0jyd3c3k239ybs59ixpnl7dqkmm072fr1js8kh7ldx58bzc3m1n9"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "ecdsa"; + packageId = "ecdsa"; + rename = "ecdsa-core"; + optional = true; + usesDefaultFeatures = false; + features = [ "der" ]; + } + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "hazmat" "sec1" ]; + } + { + name = "primeorder"; + packageId = "primeorder"; + optional = true; + } + { + name = "sha2"; + packageId = "sha2"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "ecdsa"; + packageId = "ecdsa"; + rename = "ecdsa-core"; + usesDefaultFeatures = false; + features = [ "dev" ]; + } + { + name = "primeorder"; + packageId = "primeorder"; + features = [ "dev" ]; + } + ]; + 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" ]; + "ecdh" = [ "arithmetic" "elliptic-curve/ecdh" ]; + "ecdsa" = [ "arithmetic" "ecdsa-core/signing" "ecdsa-core/verifying" "sha256" ]; + "ecdsa-core" = [ "dep:ecdsa-core" ]; + "expose-field" = [ "arithmetic" ]; + "hash2curve" = [ "arithmetic" "elliptic-curve/hash2curve" ]; + "jwk" = [ "elliptic-curve/jwk" ]; + "pem" = [ "elliptic-curve/pem" "ecdsa-core/pem" "pkcs8" ]; + "pkcs8" = [ "ecdsa-core?/pkcs8" "elliptic-curve/pkcs8" ]; + "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" ]; + "test-vectors" = [ "dep:hex-literal" ]; + "voprf" = [ "elliptic-curve/voprf" "sha2" ]; + }; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "default" "digest" "ecdsa" "ecdsa-core" "pem" "pkcs8" "sha2" "sha256" "std" ]; + }; "parking" = rec { crateName = "parking"; version = "2.2.1"; @@ -5704,7 +6560,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link 0.2.1"; + packageId = "windows-link"; target = { target, features }: (target."windows" or false); } ]; @@ -5743,6 +6599,27 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "pem-rfc7468" = rec { + crateName = "pem-rfc7468"; + version = "0.7.0"; + edition = "2021"; + sha256 = "04l4852scl4zdva31c1z6jafbak0ni5pi0j38ml108zwzjdrrcw8"; + libName = "pem_rfc7468"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base64ct"; + packageId = "base64ct"; + } + ]; + features = { + "alloc" = [ "base64ct/alloc" ]; + "std" = [ "alloc" "base64ct/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "percent-encoding" = rec { crateName = "percent-encoding"; version = "2.3.2"; @@ -5760,9 +6637,9 @@ rec { }; "pest" = rec { crateName = "pest"; - version = "2.8.3"; + version = "2.8.4"; edition = "2021"; - sha256 = "1x3xc1s5vhwswmmr51i60kfbcnp1zgdblsxbqd8dxvs0l0hpb7lq"; + sha256 = "08ky7sxla38qbzq8m3nf0ppxlayk99w3amzhg40s9ssfdl5d5kyb"; authors = [ "Dragoș Tiselice " ]; @@ -5789,9 +6666,9 @@ rec { }; "pest_derive" = rec { crateName = "pest_derive"; - version = "2.8.3"; + version = "2.8.4"; edition = "2021"; - sha256 = "1pp2g39k2vjdyzr89k8zx5y7pp3np4iv635jpyxzmfhd0fisjz8q"; + sha256 = "0zsdv4ipr8fsk24m1irrb0mkyilzpqhw4vn2mnk1qyz6mn0jkxsi"; procMacro = true; authors = [ "Dragoș Tiselice " @@ -5818,9 +6695,9 @@ rec { }; "pest_generator" = rec { crateName = "pest_generator"; - version = "2.8.3"; + version = "2.8.4"; edition = "2021"; - sha256 = "0hr80m5xzzrhzjvnmbawk72cxvn0ssc5j216gblynmspizch3d29"; + sha256 = "098n4wyqi0wg2x8ffbjjdpnl2z7c3bw7d2q8h2d723dmrpcfzsfy"; authors = [ "Dragoș Tiselice " ]; @@ -5844,7 +6721,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; } ]; features = { @@ -5857,9 +6734,9 @@ rec { }; "pest_meta" = rec { crateName = "pest_meta"; - version = "2.8.3"; + version = "2.8.4"; edition = "2021"; - sha256 = "0nh6w1mv8hx0p1jli8s12j2w62ia2apsbyl69nf07yg9zqn7mwkj"; + sha256 = "10jvy17rin1xwh3nb2a3irfdi4z7khisdbrfllxw3gbn1s4707dz"; authors = [ "Dragoș Tiselice " ]; @@ -5913,7 +6790,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; usesDefaultFeatures = false; features = [ "parsing" "printing" "clone-impls" "proc-macro" "full" "visit-mut" ]; } @@ -5939,6 +6816,74 @@ rec { ]; }; + "pkcs1" = rec { + crateName = "pkcs1"; + version = "0.7.5"; + edition = "2021"; + sha256 = "0zz4mil3nchnxljdfs2k5ab1cjqn7kq5lqp62n9qfix01zqvkzy8"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "der"; + 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" ]; + "std" = [ "der/std" "alloc" ]; + "zeroize" = [ "der/zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "pem" "pkcs8" "std" "zeroize" ]; + }; + "pkcs8" = rec { + crateName = "pkcs8"; + version = "0.10.2"; + edition = "2021"; + sha256 = "1dx7w21gvn07azszgqd3ryjhyphsrjrmq5mmz1fbxkj5g0vv4l7r"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + { + name = "spki"; + packageId = "spki"; + } + ]; + features = { + "3des" = [ "encryption" "pkcs5/3des" ]; + "alloc" = [ "der/alloc" "der/zeroize" "spki/alloc" ]; + "des-insecure" = [ "encryption" "pkcs5/des-insecure" ]; + "encryption" = [ "alloc" "pkcs5/alloc" "pkcs5/pbes2" "rand_core" ]; + "getrandom" = [ "rand_core/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" ]; + }; "pkg-config" = rec { crateName = "pkg-config"; version = "0.3.32"; @@ -5952,9 +6897,9 @@ rec { }; "potential_utf" = rec { crateName = "potential_utf"; - version = "0.1.3"; + version = "0.1.4"; edition = "2021"; - sha256 = "12mhwvhpvvim6xqp6ifgkh1sniv9j2cmid6axn10fnjvpsnikpw4"; + sha256 = "0xxg0pkfpq299wvwln409z4fk80rbv55phh3f1jhjajy5x1ljfdp"; authors = [ "The ICU4X Project Developers" ]; @@ -5967,10 +6912,11 @@ rec { } ]; features = { - "alloc" = [ "serde?/alloc" "zerovec?/alloc" ]; + "alloc" = [ "serde_core?/alloc" "writeable/alloc" "zerovec?/alloc" ]; "databake" = [ "dep:databake" ]; - "serde" = [ "dep:serde" ]; - "writeable" = [ "dep:writeable" "alloc" ]; + "default" = [ "alloc" ]; + "serde" = [ "dep:serde_core" ]; + "writeable" = [ "dep:writeable" ]; "zerovec" = [ "dep:zerovec" ]; }; resolvedDefaultFeatures = [ "zerovec" ]; @@ -6010,11 +6956,34 @@ rec { }; resolvedDefaultFeatures = [ "simd" "std" ]; }; + "primeorder" = rec { + crateName = "primeorder"; + version = "0.13.6"; + edition = "2021"; + sha256 = "1rp16710mxksagcjnxqjjq9r9wf5vf72fs8wxffnvhb6i6hiqgim"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "arithmetic" "sec1" ]; + } + ]; + features = { + "alloc" = [ "elliptic-curve/alloc" ]; + "serde" = [ "elliptic-curve/serde" "serdect" ]; + "serdect" = [ "dep:serdect" ]; + "std" = [ "alloc" "elliptic-curve/std" ]; + }; + }; "proc-macro2" = rec { crateName = "proc-macro2"; - version = "1.0.103"; + version = "1.0.104"; edition = "2021"; - sha256 = "1s29bz20xl2qk5ffs2mbdqknaj43ri673dz86axdbf47xz25psay"; + sha256 = "1w5xdq7b4dvzyvrxa0rd6cc96mjz6qr7b9lm5hi3skxv87gzi5cn"; libName = "proc_macro2"; authors = [ "David Tolnay " @@ -6147,7 +7116,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "extra-traits" ]; } ]; @@ -6155,9 +7124,9 @@ rec { }; "quote" = rec { crateName = "quote"; - version = "1.0.41"; + version = "1.0.42"; edition = "2018"; - sha256 = "1lg108nb57lwbqlnpsii89cchk6i8pkcvrv88xh1p7a9gdz7c9ff"; + sha256 = "0zq6yc7dhpap669m27rb4qfbiywxfah17z6fwvfccv3ys90wqf53"; authors = [ "David Tolnay " ]; @@ -6186,11 +7155,11 @@ rec { "rustc-dep-of-std" = [ "core" ]; }; }; - "rand" = rec { + "rand 0.8.5" = rec { crateName = "rand"; - version = "0.9.2"; - edition = "2021"; - sha256 = "1lah73ainvrgl7brcxx0pwhpnqa3sm3qaj672034jz8i0q7pgckd"; + version = "0.8.5"; + edition = "2018"; + sha256 = "013l6931nn7gkc23jz5mm3qdhf93jjf0fg64nz2lp4i51qd8vbrl"; authors = [ "The Rand Project Developers" "The Rust Project Developers" @@ -6198,28 +7167,94 @@ rec { dependencies = [ { name = "rand_chacha"; - packageId = "rand_chacha"; + packageId = "rand_chacha 0.3.1"; optional = true; usesDefaultFeatures = false; } { name = "rand_core"; - packageId = "rand_core"; - usesDefaultFeatures = false; + packageId = "rand_core 0.6.4"; } ]; features = { - "default" = [ "std" "std_rng" "os_rng" "small_rng" "thread_rng" ]; + "alloc" = [ "rand_core/alloc" ]; + "default" = [ "std" "std_rng" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "libc" = [ "dep:libc" ]; "log" = [ "dep:log" ]; - "os_rng" = [ "rand_core/os_rng" ]; - "serde" = [ "dep:serde" "rand_core/serde" ]; - "std" = [ "rand_core/std" "rand_chacha?/std" "alloc" ]; + "packed_simd" = [ "dep:packed_simd" ]; + "rand_chacha" = [ "dep:rand_chacha" ]; + "serde" = [ "dep:serde" ]; + "serde1" = [ "serde" "rand_core/serde1" ]; + "simd_support" = [ "packed_simd" ]; + "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ]; + "std_rng" = [ "rand_chacha" ]; + }; + resolvedDefaultFeatures = [ "rand_chacha" "std_rng" ]; + }; + "rand 0.9.2" = rec { + crateName = "rand"; + version = "0.9.2"; + edition = "2021"; + sha256 = "1lah73ainvrgl7brcxx0pwhpnqa3sm3qaj672034jz8i0q7pgckd"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "rand_chacha"; + packageId = "rand_chacha 0.9.0"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.9.3"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" "std_rng" "os_rng" "small_rng" "thread_rng" ]; + "log" = [ "dep:log" ]; + "os_rng" = [ "rand_core/os_rng" ]; + "serde" = [ "dep:serde" "rand_core/serde" ]; + "std" = [ "rand_core/std" "rand_chacha?/std" "alloc" ]; "std_rng" = [ "dep:rand_chacha" ]; "thread_rng" = [ "std" "std_rng" "os_rng" ]; }; - resolvedDefaultFeatures = [ "alloc" "os_rng" "small_rng" "std" "std_rng" "thread_rng" ]; + resolvedDefaultFeatures = [ "alloc" "default" "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" = rec { + "rand_chacha 0.9.0" = rec { crateName = "rand_chacha"; version = "0.9.0"; edition = "2021"; @@ -6238,13 +7273,13 @@ rec { } { name = "rand_core"; - packageId = "rand_core"; + packageId = "rand_core 0.9.3"; } ]; devDependencies = [ { name = "rand_core"; - packageId = "rand_core"; + packageId = "rand_core 0.9.3"; features = [ "os_rng" ]; } ]; @@ -6256,7 +7291,31 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "rand_core" = 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.16"; + optional = true; + } + ]; + features = { + "getrandom" = [ "dep:getrandom" ]; + "serde" = [ "dep:serde" ]; + "serde1" = [ "serde" ]; + "std" = [ "alloc" "getrandom" "getrandom/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ]; + }; + "rand_core 0.9.3" = rec { crateName = "rand_core"; version = "0.9.3"; edition = "2021"; @@ -6339,7 +7398,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; } ]; @@ -6482,9 +7541,9 @@ rec { }; "reqwest" = rec { crateName = "reqwest"; - version = "0.12.24"; + version = "0.12.28"; edition = "2021"; - sha256 = "0vx3f2n6hfnv81y66v5wayrqh6jlzz4gakky88m0hywz1d0lc2cx"; + sha256 = "0iqidijghgqbzl3bjg5hb4zmigwa4r612bgi0yiq0c90b6jkrpgd"; authors = [ "Sean McArthur " ]; @@ -6682,13 +7741,13 @@ rec { "__rustls-ring" = [ "hyper-rustls?/ring" "tokio-rustls?/ring" "rustls?/ring" "quinn?/ring" ]; "__tls" = [ "dep:rustls-pki-types" "tokio/io-util" ]; "blocking" = [ "dep:futures-channel" "futures-channel?/sink" "dep:futures-util" "futures-util?/io" "futures-util?/sink" "tokio/sync" ]; - "brotli" = [ "dep:async-compression" "async-compression?/brotli" "dep:futures-util" "dep:tokio-util" ]; + "brotli" = [ "tower-http/decompression-br" ]; "charset" = [ "dep:encoding_rs" "dep:mime" ]; "cookies" = [ "dep:cookie_crate" "dep:cookie_store" ]; "default" = [ "default-tls" "charset" "http2" "system-proxy" ]; "default-tls" = [ "dep:hyper-tls" "dep:native-tls-crate" "__tls" "dep:tokio-native-tls" ]; - "deflate" = [ "dep:async-compression" "async-compression?/zlib" "dep:futures-util" "dep:tokio-util" ]; - "gzip" = [ "dep:async-compression" "async-compression?/gzip" "dep:futures-util" "dep:tokio-util" ]; + "deflate" = [ "tower-http/decompression-deflate" ]; + "gzip" = [ "tower-http/decompression-gzip" ]; "h2" = [ "dep:h2" ]; "hickory-dns" = [ "dep:hickory-resolver" "dep:once_cell" ]; "http2" = [ "h2" "hyper/http2" "hyper-util/http2" "hyper-rustls?/http2" ]; @@ -6709,10 +7768,33 @@ rec { "rustls-tls-webpki-roots-no-provider" = [ "dep:webpki-roots" "hyper-rustls?/webpki-tokio" "__rustls" ]; "stream" = [ "tokio/fs" "dep:futures-util" "dep:tokio-util" "dep:wasm-streams" ]; "system-proxy" = [ "hyper-util/client-proxy-system" ]; - "zstd" = [ "dep:async-compression" "async-compression?/zstd" "dep:futures-util" "dep:tokio-util" ]; + "zstd" = [ "tower-http/decompression-zstd" ]; }; resolvedDefaultFeatures = [ "blocking" ]; }; + "rfc6979" = rec { + crateName = "rfc6979"; + version = "0.4.0"; + edition = "2021"; + sha256 = "1chw95jgcfrysyzsq6a10b1j5qb7bagkx8h0wda4lv25in02mpgq"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "hmac"; + packageId = "hmac"; + usesDefaultFeatures = false; + features = [ "reset" ]; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + ]; + + }; "ring" = rec { crateName = "ring"; version = "0.17.14"; @@ -6774,11 +7856,137 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "dev_urandom_fallback" ]; }; + "rsa" = rec { + crateName = "rsa"; + version = "0.9.9"; + edition = "2021"; + sha256 = "122wywpd4m3v183sj7gzykqi5qkvgfzy8hynv5wq4dfha1n3g820"; + authors = [ + "RustCrypto Developers" + "dignifiedquire " + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + usesDefaultFeatures = false; + } + { + name = "digest"; + packageId = "digest"; + usesDefaultFeatures = false; + features = [ "alloc" "oid" ]; + } + { + name = "num-bigint-dig"; + packageId = "num-bigint-dig"; + rename = "num-bigint"; + usesDefaultFeatures = false; + features = [ "i128" "prime" "zeroize" ]; + } + { + name = "num-integer"; + packageId = "num-integer"; + usesDefaultFeatures = false; + } + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + features = [ "libm" ]; + } + { + name = "pkcs1"; + packageId = "pkcs1"; + usesDefaultFeatures = false; + features = [ "alloc" "pkcs8" ]; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "sha2"; + packageId = "sha2"; + optional = true; + usesDefaultFeatures = false; + features = [ "oid" ]; + } + { + name = "signature"; + packageId = "signature"; + usesDefaultFeatures = false; + features = [ "alloc" "digest" "rand_core" ]; + } + { + name = "spki"; + packageId = "spki"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + features = [ "alloc" ]; + } + ]; + devDependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "sha2"; + packageId = "sha2"; + usesDefaultFeatures = false; + features = [ "oid" ]; + } + ]; + features = { + "default" = [ "std" "pem" "u64_digit" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "nightly" = [ "num-bigint/nightly" ]; + "pem" = [ "pkcs1/pem" "pkcs8/pem" ]; + "pkcs5" = [ "pkcs8/encryption" ]; + "serde" = [ "dep:serde" "num-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" ]; + }; + resolvedDefaultFeatures = [ "default" "pem" "sha2" "std" "u64_digit" ]; + }; + "rustc_version" = rec { + crateName = "rustc_version"; + version = "0.4.1"; + edition = "2018"; + sha256 = "14lvdsmr5si5qbqzrajgb6vfn69k0sfygrvfvr2mps26xwi3mjyg"; + dependencies = [ + { + name = "semver"; + packageId = "semver"; + } + ]; + + }; "rustls" = rec { crateName = "rustls"; - version = "0.23.34"; + version = "0.23.35"; edition = "2021"; - sha256 = "19vzmdybp5rlgr0bjb4fykp28w2d6fkqq150aamqykrbxvlqd5ba"; + sha256 = "13xxk2qqchibd7pr0laqq6pzayx9xm4rb45d8rz68kvxday58gsk"; dependencies = [ { name = "log"; @@ -6876,9 +8084,9 @@ rec { }; "rustls-pki-types" = rec { crateName = "rustls-pki-types"; - version = "1.13.0"; + version = "1.13.2"; edition = "2021"; - sha256 = "0yjzsnpv1sjbnfxbbmrnyimd23jip48nav6l9hr1rjd06vcjl64l"; + sha256 = "10hjgkw4y5bjkm08j5dskcwpl9qajayshdk7p28l5ji856mz5ri1"; libName = "rustls_pki_types"; dependencies = [ { @@ -6898,9 +8106,9 @@ rec { }; "rustls-webpki" = rec { crateName = "rustls-webpki"; - version = "0.103.7"; + version = "0.103.8"; edition = "2021"; - sha256 = "1gqlsd0yqiqch97g0wbsnbmyrp75j6nbzfpf8dmhxa78j50ky2z1"; + sha256 = "0lpymb84bi5d2pm017n39nbiaa5cd046hgz06ir29ql6a8pzmz9g"; libName = "webpki"; dependencies = [ { @@ -6945,9 +8153,9 @@ rec { }; "ryu" = rec { crateName = "ryu"; - version = "1.0.20"; - edition = "2018"; - sha256 = "07s855l8sb333h6bpn24pka5sp7hjk2w667xy6a0khkf6sqv5lr8"; + version = "1.0.22"; + edition = "2021"; + sha256 = "1139acr2kd4n8p36bp1n42xrpaphn6dhwklnazh8hpdnfps4q3x5"; authors = [ "David Tolnay " ]; @@ -6982,9 +8190,9 @@ rec { }; "schemars" = rec { crateName = "schemars"; - version = "1.0.4"; + version = "1.2.0"; edition = "2021"; - sha256 = "1l7w773jfk6mz0v8wpahp60aslksjijlbm65ysi4y5mwj520rll2"; + sha256 = "1lk7qb6797dmixnb0qfkmlpsa5p2kgwk29s91xvpmia2hw811sal"; authors = [ "Graham Esau " ]; @@ -7053,6 +8261,7 @@ rec { "semver1" = [ "dep:semver1" ]; "smallvec1" = [ "dep:smallvec1" ]; "smol_str02" = [ "dep:smol_str02" ]; + "smol_str03" = [ "dep:smol_str03" ]; "url2" = [ "dep:url2" ]; "uuid1" = [ "dep:uuid1" ]; }; @@ -7060,9 +8269,9 @@ rec { }; "schemars_derive" = rec { crateName = "schemars_derive"; - version = "1.0.4"; + version = "1.2.0"; edition = "2021"; - sha256 = "107sprdfa5kacifxq41qv5ccv7a78msxyr8ikz0qs4qxdlwj1l1k"; + sha256 = "0ibwb8amvy70xrgbfqp1iqk0mvqd4x4hvpyg2bmshdahihlas229"; procMacro = true; authors = [ "Graham Esau " @@ -7082,13 +8291,13 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; } ]; devDependencies = [ { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "extra-traits" ]; } ]; @@ -7106,6 +8315,66 @@ rec { "default" = [ "use_std" ]; }; }; + "sec1" = rec { + crateName = "sec1"; + version = "0.7.3"; + edition = "2021"; + sha256 = "1p273j8c87pid6a1iyyc7vxbvifrw55wbxgr0dh3l8vnbxb7msfk"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base16ct"; + packageId = "base16ct"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "der"; + packageId = "der"; + optional = true; + features = [ "oid" ]; + } + { + name = "generic-array"; + packageId = "generic-array"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "der?/alloc" "pkcs8?/alloc" "zeroize?/alloc" ]; + "default" = [ "der" "point" ]; + "der" = [ "dep:der" "zeroize" ]; + "pem" = [ "alloc" "der/pem" "pkcs8/pem" ]; + "pkcs8" = [ "dep:pkcs8" ]; + "point" = [ "dep:base16ct" "dep:generic-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" ]; + }; "secrecy" = rec { crateName = "secrecy"; version = "0.10.3"; @@ -7321,7 +8590,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; usesDefaultFeatures = false; features = [ "clone-impls" "derive" "parsing" "printing" "proc-macro" ]; } @@ -7353,7 +8622,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; usesDefaultFeatures = false; features = [ "clone-impls" "derive" "parsing" "printing" ]; } @@ -7362,9 +8631,9 @@ rec { }; "serde_json" = rec { crateName = "serde_json"; - version = "1.0.145"; + version = "1.0.148"; edition = "2021"; - sha256 = "1767y6kxjf7gwpbv8bkhgwc50nhg46mqwm9gy9n122f7v1k6yaj0"; + sha256 = "1ni2d8rv2ilz3p2h52wfx9k3i5xs5ai85wcnb53qjqnxl53bb11h"; authors = [ "Erick Tryzelaar " "David Tolnay " @@ -7379,10 +8648,6 @@ rec { packageId = "memchr"; usesDefaultFeatures = false; } - { - name = "ryu"; - packageId = "ryu"; - } { name = "serde"; packageId = "serde"; @@ -7394,6 +8659,10 @@ rec { packageId = "serde_core"; usesDefaultFeatures = false; } + { + name = "zmij"; + packageId = "zmij"; + } ]; devDependencies = [ { @@ -7505,6 +8774,45 @@ rec { ]; }; + "sha1" = rec { + crateName = "sha1"; + version = "0.10.6"; + edition = "2018"; + sha256 = "1fnnxlfg08xhkmwf2ahv634as30l1i3xhlhkvxflmasi5nd85gz3"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "cpufeatures"; + packageId = "cpufeatures"; + target = { target, features }: (("aarch64" == target."arch" or null) || ("x86" == target."arch" or null) || ("x86_64" == target."arch" or null)); + } + { + name = "digest"; + packageId = "digest"; + } + ]; + devDependencies = [ + { + name = "digest"; + packageId = "digest"; + features = [ "dev" ]; + } + ]; + features = { + "asm" = [ "sha1-asm" ]; + "default" = [ "std" ]; + "oid" = [ "digest/oid" ]; + "sha1-asm" = [ "dep:sha1-asm" ]; + "std" = [ "digest/std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; "sha2" = rec { crateName = "sha2"; version = "0.10.9"; @@ -7543,6 +8851,7 @@ rec { "sha2-asm" = [ "dep:sha2-asm" ]; "std" = [ "digest/std" ]; }; + resolvedDefaultFeatures = [ "default" "oid" "std" ]; }; "sharded-slab" = rec { crateName = "sharded-slab"; @@ -7583,15 +8892,19 @@ rec { }; "signal-hook-registry" = rec { crateName = "signal-hook-registry"; - version = "1.4.6"; + version = "1.4.8"; edition = "2015"; - sha256 = "12y2v1ms5z111fymaw1v8k93m5chnkp21h0jknrydkj8zydp395j"; + sha256 = "06vc7pmnki6lmxar3z31gkyg9cw7py5x9g7px70gy2hil75nkny4"; libName = "signal_hook_registry"; authors = [ "Michal 'vorner' Vaner " "Masaki Hara " ]; dependencies = [ + { + name = "errno"; + packageId = "errno"; + } { name = "libc"; packageId = "libc"; @@ -7599,11 +8912,41 @@ rec { ]; }; + "signature" = rec { + crateName = "signature"; + version = "2.2.0"; + edition = "2021"; + sha256 = "1pi9hd5vqfr3q3k49k37z06p7gs5si0in32qia4mmr1dancr6m3p"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "digest"; + packageId = "digest"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + 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" ]; + }; "simd-adler32" = rec { crateName = "simd-adler32"; - version = "0.3.7"; + version = "0.3.8"; edition = "2018"; - sha256 = "1zkq40c3iajcnr5936gjp9jjh1lpzhy44p3dq3fiw75iwr1w2vfn"; + sha256 = "18lx2gdgislabbvlgw5q3j5ssrr77v8kmkrxaanp3liimp2sc873"; libName = "simd_adler32"; authors = [ "Marvin Countryman " @@ -7766,7 +9109,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "full" ]; } ]; @@ -7800,6 +9143,63 @@ rec { }; resolvedDefaultFeatures = [ "all" ]; }; + "spin" = rec { + crateName = "spin"; + version = "0.9.8"; + edition = "2015"; + sha256 = "0rvam5r0p3a6qhc18scqpvpgb3ckzyqxpgdfyjnghh8ja7byi039"; + 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"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base64ct"; + packageId = "base64ct"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + ]; + features = { + "alloc" = [ "base64ct?/alloc" "der/alloc" ]; + "arbitrary" = [ "std" "dep:arbitrary" "der/arbitrary" ]; + "base64" = [ "dep:base64ct" ]; + "fingerprint" = [ "sha2" ]; + "pem" = [ "alloc" "der/pem" ]; + "sha2" = [ "dep:sha2" ]; + "std" = [ "der/std" "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "pem" "std" ]; + }; "stable_deref_trait" = rec { crateName = "stable_deref_trait"; version = "1.2.1"; @@ -7812,7 +9212,109 @@ rec { "default" = [ "std" ]; "std" = [ "alloc" ]; }; - resolvedDefaultFeatures = [ "alloc" ]; + }; + "stackable-certs" = rec { + crateName = "stackable-certs"; + version = "0.4.0"; + edition = "2024"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "bac8ff44653d477deda650fbd5f690af042df6c2"; + sha256 = "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0"; + }; + libName = "stackable_certs"; + authors = [ + "Stackable GmbH " + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + features = [ "db" ]; + } + { + name = "ecdsa"; + packageId = "ecdsa"; + features = [ "digest" "pem" ]; + } + { + name = "k8s-openapi"; + packageId = "k8s-openapi"; + usesDefaultFeatures = false; + features = [ "schemars" "v1_34" ]; + } + { + name = "kube"; + packageId = "kube"; + usesDefaultFeatures = false; + features = [ "client" "jsonpatch" "runtime" "derive" "admission" "rustls-tls" "ring" ]; + } + { + name = "p256"; + packageId = "p256"; + features = [ "ecdsa" ]; + } + { + name = "rand"; + packageId = "rand 0.9.2"; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + } + { + name = "rsa"; + packageId = "rsa"; + features = [ "sha2" ]; + } + { + name = "sha2"; + packageId = "sha2"; + features = [ "oid" ]; + } + { + name = "signature"; + packageId = "signature"; + } + { + name = "snafu"; + packageId = "snafu 0.8.9"; + } + { + name = "stackable-shared"; + packageId = "stackable-shared"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "macros" "rt-multi-thread" "fs" ]; + } + { + name = "tokio-rustls"; + packageId = "tokio-rustls"; + optional = true; + usesDefaultFeatures = false; + features = [ "ring" "logging" "tls12" ]; + } + { + name = "tracing"; + packageId = "tracing"; + } + { + name = "x509-cert"; + packageId = "x509-cert"; + features = [ "builder" ]; + } + { + name = "zeroize"; + packageId = "zeroize"; + } + ]; + features = { + "rustls" = [ "dep:tokio-rustls" ]; + }; + resolvedDefaultFeatures = [ "default" "rustls" ]; }; "stackable-commons-operator" = rec { crateName = "stackable-commons-operator"; @@ -7847,6 +9349,10 @@ rec { name = "http"; packageId = "http"; } + { + name = "json-patch"; + packageId = "json-patch"; + } { name = "serde"; packageId = "serde"; @@ -7863,7 +9369,7 @@ rec { { name = "stackable-operator"; packageId = "stackable-operator"; - features = [ "telemetry" ]; + features = [ "telemetry" "webhook" ]; } { name = "strum"; @@ -7891,13 +9397,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.100.1"; + version = "0.101.1"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "184423db7409f853bd69db7eeecd1affbf97ef40"; - sha256 = "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l"; + rev = "bac8ff44653d477deda650fbd5f690af042df6c2"; + sha256 = "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0"; }; libName = "stackable_operator"; authors = [ @@ -7962,7 +9468,7 @@ rec { name = "kube"; packageId = "kube"; usesDefaultFeatures = false; - features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; + features = [ "client" "jsonpatch" "runtime" "derive" "admission" "rustls-tls" "ring" ]; } { name = "product-config"; @@ -8018,6 +9524,11 @@ rec { packageId = "stackable-versioned"; optional = true; } + { + name = "stackable-webhook"; + packageId = "stackable-webhook"; + optional = true; + } { name = "strum"; packageId = "strum"; @@ -8056,7 +9567,7 @@ rec { "versioned" = [ "dep:stackable-versioned" ]; "webhook" = [ "dep:stackable-webhook" ]; }; - resolvedDefaultFeatures = [ "clap" "default" "telemetry" "versioned" ]; + resolvedDefaultFeatures = [ "clap" "default" "telemetry" "versioned" "webhook" ]; }; "stackable-operator-derive" = rec { crateName = "stackable-operator-derive"; @@ -8065,8 +9576,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "184423db7409f853bd69db7eeecd1affbf97ef40"; - sha256 = "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l"; + rev = "bac8ff44653d477deda650fbd5f690af042df6c2"; + sha256 = "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -8076,7 +9587,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling"; + packageId = "darling 0.23.0"; } { name = "proc-macro2"; @@ -8088,7 +9599,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; } ]; @@ -8100,8 +9611,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "184423db7409f853bd69db7eeecd1affbf97ef40"; - sha256 = "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l"; + rev = "bac8ff44653d477deda650fbd5f690af042df6c2"; + sha256 = "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0"; }; libName = "stackable_shared"; authors = [ @@ -8124,7 +9635,7 @@ rec { name = "kube"; packageId = "kube"; usesDefaultFeatures = false; - features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; + features = [ "client" "jsonpatch" "runtime" "derive" "admission" "rustls-tls" "ring" ]; } { name = "schemars"; @@ -8182,8 +9693,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "184423db7409f853bd69db7eeecd1affbf97ef40"; - sha256 = "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l"; + rev = "bac8ff44653d477deda650fbd5f690af042df6c2"; + sha256 = "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0"; }; libName = "stackable_telemetry"; authors = [ @@ -8292,8 +9803,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "184423db7409f853bd69db7eeecd1affbf97ef40"; - sha256 = "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l"; + rev = "bac8ff44653d477deda650fbd5f690af042df6c2"; + sha256 = "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0"; }; libName = "stackable_versioned"; authors = [ @@ -8336,8 +9847,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "184423db7409f853bd69db7eeecd1affbf97ef40"; - sha256 = "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l"; + rev = "bac8ff44653d477deda650fbd5f690af042df6c2"; + sha256 = "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -8346,49 +9857,177 @@ rec { ]; dependencies = [ { - name = "convert_case"; - packageId = "convert_case"; + name = "convert_case"; + packageId = "convert_case"; + } + { + name = "darling"; + packageId = "darling 0.23.0"; + } + { + name = "indoc"; + packageId = "indoc"; + } + { + name = "itertools"; + packageId = "itertools"; + } + { + name = "k8s-openapi"; + packageId = "k8s-openapi"; + usesDefaultFeatures = false; + features = [ "schemars" "v1_34" ]; + } + { + name = "k8s-version"; + packageId = "k8s-version"; + features = [ "darling" ]; + } + { + name = "kube"; + packageId = "kube"; + usesDefaultFeatures = false; + features = [ "client" "jsonpatch" "runtime" "derive" "admission" "rustls-tls" "ring" ]; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.111"; + } + ]; + + }; + "stackable-webhook" = rec { + crateName = "stackable-webhook"; + version = "0.8.0"; + edition = "2024"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "bac8ff44653d477deda650fbd5f690af042df6c2"; + sha256 = "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0"; + }; + libName = "stackable_webhook"; + authors = [ + "Stackable GmbH " + ]; + dependencies = [ + { + name = "arc-swap"; + packageId = "arc-swap"; + } + { + name = "async-trait"; + packageId = "async-trait"; + } + { + name = "axum"; + packageId = "axum"; + features = [ "http2" ]; + } + { + name = "futures-util"; + packageId = "futures-util"; + } + { + name = "hyper"; + packageId = "hyper"; + features = [ "full" ]; + } + { + name = "hyper-util"; + packageId = "hyper-util"; + } + { + name = "k8s-openapi"; + packageId = "k8s-openapi"; + usesDefaultFeatures = false; + features = [ "schemars" "v1_34" ]; + } + { + name = "kube"; + packageId = "kube"; + usesDefaultFeatures = false; + features = [ "client" "jsonpatch" "runtime" "derive" "admission" "rustls-tls" "ring" ]; + } + { + name = "opentelemetry"; + packageId = "opentelemetry"; + } + { + name = "opentelemetry-semantic-conventions"; + packageId = "opentelemetry-semantic-conventions"; + } + { + name = "rand"; + packageId = "rand 0.9.2"; + } + { + name = "serde"; + packageId = "serde"; + features = [ "derive" ]; } { - name = "darling"; - packageId = "darling"; + name = "serde_json"; + packageId = "serde_json"; } { - name = "indoc"; - packageId = "indoc"; + name = "snafu"; + packageId = "snafu 0.8.9"; } { - name = "itertools"; - packageId = "itertools"; + name = "stackable-certs"; + packageId = "stackable-certs"; + features = [ "rustls" ]; } { - name = "k8s-openapi"; - packageId = "k8s-openapi"; - usesDefaultFeatures = false; - features = [ "schemars" "v1_34" ]; + name = "stackable-shared"; + packageId = "stackable-shared"; } { - name = "k8s-version"; - packageId = "k8s-version"; - features = [ "darling" ]; + name = "stackable-telemetry"; + packageId = "stackable-telemetry"; } { - name = "kube"; - packageId = "kube"; + name = "tokio"; + packageId = "tokio"; + features = [ "macros" "rt-multi-thread" "fs" ]; + } + { + name = "tokio-rustls"; + packageId = "tokio-rustls"; usesDefaultFeatures = false; - features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; + features = [ "ring" "logging" "tls12" ]; } { - name = "proc-macro2"; - packageId = "proc-macro2"; + name = "tower"; + packageId = "tower"; + features = [ "util" ]; } { - name = "quote"; - packageId = "quote"; + name = "tower-http"; + packageId = "tower-http"; + features = [ "trace" ]; } { - name = "syn"; - packageId = "syn 2.0.108"; + name = "tracing"; + packageId = "tracing"; + } + { + name = "tracing-opentelemetry"; + packageId = "tracing-opentelemetry"; + } + { + name = "x509-cert"; + packageId = "x509-cert"; + features = [ "builder" ]; } ]; @@ -8451,7 +10090,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "parsing" ]; } ]; @@ -8469,6 +10108,7 @@ rec { features = { "default" = [ "std" "i128" ]; }; + resolvedDefaultFeatures = [ "i128" ]; }; "syn 1.0.109" = rec { crateName = "syn"; @@ -8504,11 +10144,11 @@ rec { }; resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "full" "parsing" "printing" "proc-macro" "quote" ]; }; - "syn 2.0.108" = rec { + "syn 2.0.111" = rec { crateName = "syn"; - version = "2.0.108"; + version = "2.0.111"; edition = "2021"; - sha256 = "05z908svb0yw5wzrlv27l2i8j1d8l16hd5r8bjh809146myr2n6s"; + sha256 = "11rf9l6435w525vhqmnngcnwsly7x4xx369fmaqvswdbjjicj31r"; authors = [ "David Tolnay " ]; @@ -8580,7 +10220,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; usesDefaultFeatures = false; features = [ "derive" "parsing" "printing" "clone-impls" "visit" "extra-traits" ]; } @@ -8647,7 +10287,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; } ]; @@ -8673,7 +10313,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; } ]; @@ -8815,9 +10455,9 @@ rec { }; "tinystr" = rec { crateName = "tinystr"; - version = "0.8.1"; + version = "0.8.2"; edition = "2021"; - sha256 = "12sc6h3hnn6x78iycm5v6wrs2xhxph0ydm43yyn7gdfw8l8nsksx"; + sha256 = "0sa8z88axdsf088hgw5p4xcyi6g3w3sgbb6qdp81bph9bk2fkls2"; authors = [ "The ICU4X Project Developers" ]; @@ -8835,13 +10475,75 @@ rec { } ]; features = { - "alloc" = [ "zerovec?/alloc" ]; + "alloc" = [ "serde_core?/alloc" "zerovec?/alloc" ]; "databake" = [ "dep:databake" ]; "default" = [ "alloc" ]; - "serde" = [ "dep:serde" ]; + "serde" = [ "dep:serde_core" ]; "zerovec" = [ "dep:zerovec" ]; }; - resolvedDefaultFeatures = [ "alloc" "zerovec" ]; + resolvedDefaultFeatures = [ "zerovec" ]; + }; + "tls_codec" = rec { + crateName = "tls_codec"; + version = "0.4.2"; + edition = "2021"; + sha256 = "0sxzj0pdinn7fsc8aihqgfylsqi7z9jca0aqy3b8kfz28l9f1qhd"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "tls_codec_derive"; + packageId = "tls_codec_derive"; + optional = true; + } + { + name = "zeroize"; + packageId = "zeroize"; + usesDefaultFeatures = false; + features = [ "alloc" "zeroize_derive" ]; + } + ]; + features = { + "arbitrary" = [ "std" "dep:arbitrary" ]; + "conditional_deserialization" = [ "derive" "tls_codec_derive/conditional_deserialization" ]; + "default" = [ "std" ]; + "derive" = [ "tls_codec_derive" ]; + "serde" = [ "std" "dep:serde" ]; + "std" = [ "tls_codec_derive?/std" ]; + "tls_codec_derive" = [ "dep:tls_codec_derive" ]; + }; + resolvedDefaultFeatures = [ "derive" "std" "tls_codec_derive" ]; + }; + "tls_codec_derive" = rec { + crateName = "tls_codec_derive"; + version = "0.4.2"; + edition = "2021"; + sha256 = "1gglj5cxkpv7i3jazffksrfy5h5242kdvsqawjm2yh1915lpcbid"; + procMacro = true; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.111"; + features = [ "parsing" ]; + } + ]; + features = { + "conditional_deserialization" = [ "syn/full" ]; + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; }; "tokio" = rec { crateName = "tokio"; @@ -8979,7 +10681,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "full" ]; } ]; @@ -9021,7 +10723,7 @@ rec { "tls12" = [ "rustls/tls12" ]; "zlib" = [ "rustls/zlib" ]; }; - resolvedDefaultFeatures = [ "logging" "tls12" ]; + resolvedDefaultFeatures = [ "logging" "ring" "tls12" ]; }; "tokio-stream" = rec { crateName = "tokio-stream"; @@ -9069,9 +10771,9 @@ rec { }; "tokio-util" = rec { crateName = "tokio-util"; - version = "0.7.16"; + version = "0.7.17"; edition = "2021"; - sha256 = "1r9wdrg1k5hna3m0kc8kcb8jdb6n52g7vnw93kw2xxw4cyc7qc0l"; + sha256 = "152m2rp40bjphca5j581csczarvvr974zvwpzpldcwv0wygi9yif"; libName = "tokio_util"; authors = [ "Tokio Contributors " @@ -9404,9 +11106,9 @@ rec { }; "tower-http" = rec { crateName = "tower-http"; - version = "0.6.6"; + version = "0.6.8"; edition = "2018"; - sha256 = "1wh51y4rf03f91c6rvli6nwzsarx7097yx6sqlm75ag27pbjzj5d"; + sha256 = "1y514jwzbyrmrkbaajpwmss4rg0mak82k16d6588w9ncaffmbrnl"; libName = "tower_http"; authors = [ "Tower Maintainers " @@ -9558,9 +11260,9 @@ rec { }; "tracing" = rec { crateName = "tracing"; - version = "0.1.41"; + version = "0.1.44"; edition = "2018"; - sha256 = "1l5xrzyjfyayrwhvhldfnwdyligi1mpqm8mzbi2m1d6y6p2hlkkq"; + sha256 = "006ilqkg1lmfdh3xhg3z762izfwmxcvz0w7m4qx2qajbz9i1drv3"; authors = [ "Eliza Weisman " "Tokio Contributors " @@ -9605,9 +11307,9 @@ rec { }; "tracing-appender" = rec { crateName = "tracing-appender"; - version = "0.2.3"; + version = "0.2.4"; edition = "2018"; - sha256 = "1kq69qyjvb4dxch5c9zgii6cqhy9nkk81z0r4pj3y2nc537fhrim"; + sha256 = "1bxf7xvsr89glbq174cx0b9pinaacbhlmc85y1ssniv2rq5lhvbq"; libName = "tracing_appender"; authors = [ "Zeki Sherif " @@ -9620,7 +11322,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 1.0.69"; + packageId = "thiserror 2.0.17"; } { name = "time"; @@ -9641,9 +11343,9 @@ rec { }; "tracing-attributes" = rec { crateName = "tracing-attributes"; - version = "0.1.30"; + version = "0.1.31"; edition = "2018"; - sha256 = "00v9bhfgfg3v101nmmy7s3vdwadb7ngc8c1iw6wai9vj9sv3lf41"; + sha256 = "1np8d77shfvz0n7camx2bsf1qw0zg331lra0hxb4cdwnxjjwz43l"; procMacro = true; libName = "tracing_attributes"; authors = [ @@ -9662,7 +11364,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; usesDefaultFeatures = false; features = [ "full" "parsing" "printing" "visit-mut" "clone-impls" "extra-traits" "proc-macro" ]; } @@ -9672,9 +11374,9 @@ rec { }; "tracing-core" = rec { crateName = "tracing-core"; - version = "0.1.34"; + version = "0.1.36"; edition = "2018"; - sha256 = "0y3nc4mpnr79rzkrcylv5f5bnjjp19lsxwis9l4kzs97ya0jbldr"; + sha256 = "16mpbz6p8vd6j7sf925k9k8wzvm9vdfsjbynbmaxxyq6v7wwm5yv"; libName = "tracing_core"; authors = [ "Tokio Contributors " @@ -9860,9 +11562,9 @@ rec { }; "tracing-subscriber" = rec { crateName = "tracing-subscriber"; - version = "0.3.20"; + version = "0.3.22"; edition = "2018"; - sha256 = "1m9447bxq7236avgl6n5yb2aqwplrghm61dgipw03mh7ad7s2m10"; + sha256 = "07hz575a0p1c2i4xw3gs3hkrykhndnkbfhyqdwjhvayx4ww18c1g"; libName = "tracing_subscriber"; authors = [ "Eliza Weisman " @@ -10021,9 +11723,9 @@ rec { }; "unicode-ident" = rec { crateName = "unicode-ident"; - version = "1.0.20"; + version = "1.0.22"; edition = "2018"; - sha256 = "01lafj17xwizrlvn006zz8ip99hqisf77kjk0a8flfmpmrsynbj6"; + sha256 = "1x8xrz17vqi6qmkkcqr8cyf0an76ig7390j9cnqnk47zyv2gf4lk"; libName = "unicode_ident"; authors = [ "David Tolnay " @@ -10239,9 +11941,9 @@ rec { }; "wasm-bindgen" = rec { crateName = "wasm-bindgen"; - version = "0.2.104"; + version = "0.2.106"; edition = "2021"; - sha256 = "0b8f4l6pqm0bz0lj5xgwmchb6977n71vmh7srd0axwg93b011nn1"; + sha256 = "1zc0pcyv0w1dhp8r7ybmmfjsf4g18q784h0k7mv2sjm67x1ryx8d"; libName = "wasm_bindgen"; authors = [ "The wasm-bindgen Developers" @@ -10288,51 +11990,11 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; - "wasm-bindgen-backend" = rec { - crateName = "wasm-bindgen-backend"; - version = "0.2.104"; - edition = "2021"; - sha256 = "069vnhhn2j4w2gwd8rch6g8d3iwkrgi45fas6i3qm7glcrd9l737"; - libName = "wasm_bindgen_backend"; - authors = [ - "The wasm-bindgen Developers" - ]; - dependencies = [ - { - name = "bumpalo"; - packageId = "bumpalo"; - } - { - name = "log"; - packageId = "log"; - } - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn 2.0.108"; - features = [ "full" ]; - } - { - name = "wasm-bindgen-shared"; - packageId = "wasm-bindgen-shared"; - } - ]; - features = { - "extra-traits" = [ "syn/extra-traits" ]; - }; - }; "wasm-bindgen-futures" = rec { crateName = "wasm-bindgen-futures"; - version = "0.4.54"; + version = "0.4.56"; edition = "2021"; - sha256 = "0p5c10vfd7p7c607x3cgyfw9h77z1k33d6zzw2x77k3qwi0qs0vy"; + sha256 = "0z6f0zkylpgbfb7dkh7a85dxdwm57q7c2np2bngfxzh4sqi9cvc3"; libName = "wasm_bindgen_futures"; authors = [ "The wasm-bindgen Developers" @@ -10375,9 +12037,9 @@ rec { }; "wasm-bindgen-macro" = rec { crateName = "wasm-bindgen-macro"; - version = "0.2.104"; + version = "0.2.106"; edition = "2021"; - sha256 = "06d1m5bg272h6jabq0snm7c50fifjz6r20f5hqlmz7y5wivh99kw"; + sha256 = "1czfwzhqrkzyyhd3g58mdwb2jjk4q2pl9m1fajyfvfpq70k0vjs8"; procMacro = true; libName = "wasm_bindgen_macro"; authors = [ @@ -10399,14 +12061,18 @@ rec { }; "wasm-bindgen-macro-support" = rec { crateName = "wasm-bindgen-macro-support"; - version = "0.2.104"; + version = "0.2.106"; edition = "2021"; - sha256 = "1mr18kx7ima1pmsqlkk982q4a0vf3r8s1x6901jb59sd1prd41wz"; + sha256 = "0h6ddq6cc6jf9phsdh2a3x8lpjhmkya86ihfz3fdk4jzrpamkyyf"; libName = "wasm_bindgen_macro_support"; authors = [ "The wasm-bindgen Developers" ]; dependencies = [ + { + name = "bumpalo"; + packageId = "bumpalo"; + } { name = "proc-macro2"; packageId = "proc-macro2"; @@ -10417,13 +12083,9 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "visit" "visit-mut" "full" ]; } - { - name = "wasm-bindgen-backend"; - packageId = "wasm-bindgen-backend"; - } { name = "wasm-bindgen-shared"; packageId = "wasm-bindgen-shared"; @@ -10435,10 +12097,10 @@ rec { }; "wasm-bindgen-shared" = rec { crateName = "wasm-bindgen-shared"; - version = "0.2.104"; + version = "0.2.106"; edition = "2021"; links = "wasm_bindgen"; - sha256 = "1la1xj9v3gmawnlyi7lc3mb3xi447r6frb98hi2fb9m1nb47vmms"; + sha256 = "1d0dh3jn77qz67n5zh0s3rvzlbjv926p0blq5bvng2v4gq2kiifb"; libName = "wasm_bindgen_shared"; authors = [ "The wasm-bindgen Developers" @@ -10453,9 +12115,9 @@ rec { }; "web-sys" = rec { crateName = "web-sys"; - version = "0.3.81"; + version = "0.3.83"; edition = "2021"; - sha256 = "0871ifd79ni9813sp5amk7wb3avznkijlsly2ap4r9r4m4bw8rwk"; + sha256 = "1b1pw450ig62xr0cy1wfjlbahvmi725jl64d150j0hacfy6q4clv"; libName = "web_sys"; authors = [ "The wasm-bindgen Developers" @@ -10518,6 +12180,8 @@ rec { "CompositionEvent" = [ "Event" "UiEvent" ]; "ConstantSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; "ConvolverNode" = [ "AudioNode" "EventTarget" ]; + "CookieChangeEvent" = [ "Event" ]; + "CookieStore" = [ "EventTarget" ]; "CssAnimation" = [ "Animation" "EventTarget" ]; "CssConditionRule" = [ "CssGroupingRule" "CssRule" ]; "CssCounterStyleRule" = [ "CssRule" ]; @@ -10554,6 +12218,7 @@ rec { "Element" = [ "EventTarget" "Node" ]; "ErrorEvent" = [ "Event" ]; "EventSource" = [ "EventTarget" ]; + "ExtendableCookieChangeEvent" = [ "Event" "ExtendableEvent" ]; "ExtendableEvent" = [ "Event" ]; "ExtendableMessageEvent" = [ "Event" "ExtendableEvent" ]; "FetchEvent" = [ "Event" "ExtendableEvent" ]; @@ -10978,7 +12643,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link 0.2.1"; + packageId = "windows-link"; usesDefaultFeatures = false; } { @@ -11018,7 +12683,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; usesDefaultFeatures = false; features = [ "parsing" "proc-macro" "printing" "full" "clone-impls" ]; } @@ -11045,25 +12710,14 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; usesDefaultFeatures = false; features = [ "parsing" "proc-macro" "printing" "full" "clone-impls" ]; } ]; }; - "windows-link 0.1.3" = rec { - crateName = "windows-link"; - version = "0.1.3"; - edition = "2021"; - sha256 = "12kr1p46dbhpijr4zbwr2spfgq8i8c5x55mvvfmyl96m01cx4sjy"; - libName = "windows_link"; - authors = [ - "Microsoft" - ]; - - }; - "windows-link 0.2.1" = rec { + "windows-link" = rec { crateName = "windows-link"; version = "0.2.1"; edition = "2021"; @@ -11080,7 +12734,7 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link 0.2.1"; + packageId = "windows-link"; usesDefaultFeatures = false; } ]; @@ -11098,7 +12752,7 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link 0.2.1"; + packageId = "windows-link"; usesDefaultFeatures = false; } ]; @@ -11618,7 +13272,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_System" "Win32_System_Console" "Win32_System_IO" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_System" "Win32_System_IO" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; }; "windows-sys 0.61.2" = rec { crateName = "windows-sys"; @@ -11629,7 +13283,7 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link 0.2.1"; + packageId = "windows-link"; usesDefaultFeatures = false; } ]; @@ -11880,7 +13534,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_Com" "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" "Win32_UI" "Win32_UI_Shell" "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_Com" "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" "Win32_UI" "Win32_UI_Shell" "default" ]; }; "windows-targets 0.52.6" = rec { crateName = "windows-targets"; @@ -11944,7 +13598,7 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link 0.2.1"; + packageId = "windows-link"; usesDefaultFeatures = false; target = { target, features }: (target."windows_raw_dylib" or false); } @@ -12146,21 +13800,78 @@ rec { }; "writeable" = rec { crateName = "writeable"; - version = "0.6.1"; + version = "0.6.2"; edition = "2021"; - sha256 = "1fx29zncvbrqzgz7li88vzdm8zvgwgwy2r9bnjqxya09pfwi0bza"; + sha256 = "1fg08y97n6vk7l0rnjggw3xyrii6dcqg54wqaxldrlk98zdy1pcy"; authors = [ "The ICU4X Project Developers" ]; features = { + "default" = [ "alloc" ]; "either" = [ "dep:either" ]; }; }; + "x509-cert" = rec { + crateName = "x509-cert"; + version = "0.2.5"; + edition = "2021"; + sha256 = "155f42vm6m7phn8w7s2wmk9vli3ws45dqpk5z3jilw0a04syj08k"; + libName = "x509_cert"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + features = [ "db" ]; + } + { + name = "der"; + packageId = "der"; + features = [ "alloc" "derive" "flagset" "oid" ]; + } + { + name = "sha1"; + packageId = "sha1"; + optional = true; + } + { + name = "signature"; + packageId = "signature"; + optional = true; + features = [ "rand_core" ]; + } + { + name = "spki"; + packageId = "spki"; + features = [ "alloc" ]; + } + { + name = "tls_codec"; + packageId = "tls_codec"; + optional = true; + usesDefaultFeatures = false; + features = [ "derive" ]; + } + ]; + features = { + "arbitrary" = [ "dep:arbitrary" "std" "der/arbitrary" "spki/arbitrary" ]; + "builder" = [ "std" "sha1/default" "signature" ]; + "default" = [ "pem" "std" ]; + "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" ]; + }; + resolvedDefaultFeatures = [ "builder" "default" "pem" "sha1" "signature" "std" ]; + }; "xml" = rec { crateName = "xml"; - version = "1.0.1"; + version = "1.2.0"; edition = "2021"; - sha256 = "1k7s56phdygnsj40my5jascmvd0md4922ashl4j7958d8562g92q"; + sha256 = "0zifgd8wzqgdh5m50qzhzwrwb4rf3q7i1nblvar2f97dmigq5x9d"; authors = [ "Vladimir Matveev " "Kornel (https://github.com/kornelski)" @@ -12169,19 +13880,13 @@ rec { }; "yoke" = rec { crateName = "yoke"; - version = "0.8.0"; + version = "0.8.1"; edition = "2021"; - sha256 = "1k4mfr48vgi7wh066y11b7v1ilakghlnlhw9snzz8vi2p00vnhaz"; + sha256 = "0m29dm0bf5iakxgma0bj6dbmc3b8qi9b1vaw9sa76kdqmz3fbmkj"; authors = [ "Manish Goregaokar " ]; dependencies = [ - { - name = "serde"; - packageId = "serde"; - optional = true; - usesDefaultFeatures = false; - } { name = "stable_deref_trait"; packageId = "stable_deref_trait"; @@ -12200,27 +13905,19 @@ rec { usesDefaultFeatures = false; } ]; - devDependencies = [ - { - name = "serde"; - packageId = "serde"; - usesDefaultFeatures = false; - } - ]; features = { - "alloc" = [ "stable_deref_trait/alloc" "serde?/alloc" "zerofrom/alloc" ]; + "alloc" = [ "stable_deref_trait/alloc" "zerofrom/alloc" ]; "default" = [ "alloc" "zerofrom" ]; "derive" = [ "dep:yoke-derive" "zerofrom/derive" ]; - "serde" = [ "dep:serde" ]; "zerofrom" = [ "dep:zerofrom" ]; }; - resolvedDefaultFeatures = [ "alloc" "derive" "zerofrom" ]; + resolvedDefaultFeatures = [ "derive" "zerofrom" ]; }; "yoke-derive" = rec { crateName = "yoke-derive"; - version = "0.8.0"; + version = "0.8.1"; edition = "2021"; - sha256 = "1dha5jrjz9jaq8kmxq1aag86b98zbnm9lyjrihy5sv716sbkrniq"; + sha256 = "0pbyja133jnng4mrhimzdq4a0y26421g734ybgz8wsgbfhl0andn"; procMacro = true; libName = "yoke_derive"; authors = [ @@ -12237,7 +13934,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "fold" ]; } { @@ -12249,9 +13946,9 @@ rec { }; "zerocopy" = rec { crateName = "zerocopy"; - version = "0.8.27"; + version = "0.8.31"; edition = "2021"; - sha256 = "0b1870gf2zzlckca69v2k4mqwmf8yh2li37qldnzvvd3by58g508"; + sha256 = "1hwqn8f0zd8h1a7qz2hxym4iaqyzk8kdxgalllydn2i5p6cfqx7x"; authors = [ "Joshua Liebow-Feeser " "Jack Wrenn " @@ -12285,9 +13982,9 @@ rec { }; "zerocopy-derive" = rec { crateName = "zerocopy-derive"; - version = "0.8.27"; + version = "0.8.31"; edition = "2021"; - sha256 = "0c9qrylm2p55dvaplxsl24ma48add9qk4y0d6kjbkllaqvcvill8"; + sha256 = "0sjw20qqxbax8z8k9ifcmwjjlljjddpm0nmvih9zap7lzl4x5a6q"; procMacro = true; libName = "zerocopy_derive"; authors = [ @@ -12305,7 +14002,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "full" ]; } ]; @@ -12331,7 +14028,7 @@ rec { "default" = [ "alloc" ]; "derive" = [ "dep:zerofrom-derive" ]; }; - resolvedDefaultFeatures = [ "alloc" "derive" ]; + resolvedDefaultFeatures = [ "derive" ]; }; "zerofrom-derive" = rec { crateName = "zerofrom-derive"; @@ -12354,7 +14051,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "fold" ]; } { @@ -12372,6 +14069,13 @@ rec { authors = [ "The RustCrypto Project Developers" ]; + dependencies = [ + { + name = "zeroize_derive"; + packageId = "zeroize_derive"; + optional = true; + } + ]; features = { "default" = [ "alloc" ]; "derive" = [ "zeroize_derive" ]; @@ -12379,13 +14083,39 @@ rec { "std" = [ "alloc" ]; "zeroize_derive" = [ "dep:zeroize_derive" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" ]; + resolvedDefaultFeatures = [ "alloc" "default" "zeroize_derive" ]; + }; + "zeroize_derive" = rec { + crateName = "zeroize_derive"; + version = "1.4.2"; + edition = "2021"; + sha256 = "0sczjlqjdmrp3wn62g7mw6p438c9j4jgp2f9zamd56991mdycdnf"; + procMacro = true; + authors = [ + "The RustCrypto Project Developers" + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.111"; + features = [ "full" "extra-traits" "visit" ]; + } + ]; + }; "zerotrie" = rec { crateName = "zerotrie"; - version = "0.2.2"; + version = "0.2.3"; edition = "2021"; - sha256 = "15gmka7vw5k0d24s0vxgymr2j6zn2iwl12wpmpnpjgsqg3abpw1n"; + sha256 = "0lbqznlqazmrwwzslw0ci7p3pqxykrbfhq29npj0gmb2amxc2n9a"; authors = [ "The ICU4X Project Developers" ]; @@ -12412,7 +14142,7 @@ rec { features = { "databake" = [ "dep:databake" "zerovec?/databake" ]; "litemap" = [ "dep:litemap" "alloc" ]; - "serde" = [ "dep:serde" "dep:litemap" "alloc" "litemap/serde" "zerovec?/serde" ]; + "serde" = [ "dep:serde_core" "dep:litemap" "alloc" "litemap/serde" "zerovec?/serde" ]; "yoke" = [ "dep:yoke" ]; "zerofrom" = [ "dep:zerofrom" ]; "zerovec" = [ "dep:zerovec" ]; @@ -12421,9 +14151,9 @@ rec { }; "zerovec" = rec { crateName = "zerovec"; - version = "0.11.4"; + version = "0.11.5"; edition = "2021"; - sha256 = "0fz7j1ns8d86m2fqg2a4bzi5gnh5892bxv4kcr9apwc6a3ajpap7"; + sha256 = "00m0p47k2g9mkv505hky5xh3r6ps7v8qc0dy4pspg542jj972a3c"; authors = [ "The ICU4X Project Developers" ]; @@ -12446,28 +14176,21 @@ rec { usesDefaultFeatures = false; } ]; - devDependencies = [ - { - name = "yoke"; - packageId = "yoke"; - usesDefaultFeatures = false; - features = [ "derive" ]; - } - ]; features = { + "alloc" = [ "serde?/alloc" ]; "databake" = [ "dep:databake" ]; "derive" = [ "dep:zerovec-derive" ]; "hashmap" = [ "dep:twox-hash" "alloc" ]; - "serde" = [ "dep:serde" "alloc" ]; + "serde" = [ "dep:serde" ]; "yoke" = [ "dep:yoke" ]; }; - resolvedDefaultFeatures = [ "alloc" "derive" "yoke" ]; + resolvedDefaultFeatures = [ "derive" "yoke" ]; }; "zerovec-derive" = rec { crateName = "zerovec-derive"; - version = "0.11.1"; + version = "0.11.2"; edition = "2021"; - sha256 = "13zms8hj7vzpfswypwggyfr4ckmyc7v3di49pmj8r1qcz9z275jv"; + sha256 = "1wsig4h5j7a1scd5hrlnragnazjny9qjc44hancb6p6a76ay7p7a"; procMacro = true; libName = "zerovec_derive"; authors = [ @@ -12484,12 +14207,24 @@ rec { } { name = "syn"; - packageId = "syn 2.0.108"; + packageId = "syn 2.0.111"; features = [ "extra-traits" ]; } ]; }; + "zmij" = rec { + crateName = "zmij"; + version = "1.0.2"; + edition = "2021"; + sha256 = "0795wc0mal0ipxa4gass848bfgscgzhdpz04kwajvin5kn74wjhg"; + authors = [ + "David Tolnay " + ]; + features = { + "no-panic" = [ "dep:no-panic" ]; + }; + }; }; # diff --git a/Cargo.toml b/Cargo.toml index 6a95b3c8..815e5665 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,13 +10,14 @@ edition = "2021" repository = "https://github.com/stackabletech/commons-operator" [workspace.dependencies] -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["telemetry"], tag = "stackable-operator-0.100.1" } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.101.1", features = ["telemetry", "webhook"] } anyhow = "1.0" built = { version = "0.8", features = ["chrono", "git2"] } clap = "4.5" futures = { version = "0.3", features = ["compat"] } http = "1.3" +json-patch = "4.1" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" snafu = "0.8" @@ -24,5 +25,6 @@ strum = { version = "0.27", features = ["derive"] } tokio = { version = "1.40", features = ["full"] } tracing = "0.1" -# [patch."https://github.com/stackabletech/operator-rs.git"] +[patch."https://github.com/stackabletech/operator-rs.git"] +# stackable-operator = { path = "../operator-rs/crates/stackable-operator" } # stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } diff --git a/crate-hashes.json b/crate-hashes.json index 1c58f755..a5b16c53 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,10 +1,17 @@ { - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#k8s-version@0.1.3": "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#stackable-operator-derive@0.3.1": "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#stackable-operator@0.100.1": "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#stackable-shared@0.0.3": "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#stackable-telemetry@0.6.1": "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#stackable-versioned-macros@0.8.3": "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.1#stackable-versioned@0.8.3": "1a98klljvifnc168f1wc3d6szcry1lamxgjjdq89plr99p4b953l", + "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-client@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", + "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-core@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", + "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-derive@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", + "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-runtime@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", + "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#k8s-version@0.1.3": "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#stackable-certs@0.4.0": "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#stackable-operator-derive@0.3.1": "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#stackable-operator@0.101.1": "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#stackable-shared@0.0.3": "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#stackable-telemetry@0.6.1": "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#stackable-versioned-macros@0.8.3": "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#stackable-versioned@0.8.3": "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.101.1#stackable-webhook@0.8.0": "0gz11ifcpa64sqyydyjlzdvsqvj0x8d4wmd1mnrx31hwxzyq2sw0", "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file diff --git a/deploy/helm/commons-operator/crds/crds.yaml b/deploy/helm/commons-operator/crds/crds.yaml index fe6adb24..1d35d7c6 100644 --- a/deploy/helm/commons-operator/crds/crds.yaml +++ b/deploy/helm/commons-operator/crds/crds.yaml @@ -248,7 +248,6 @@ spec: intended to be used (via the `.well-known` discovery). enum: - Keycloak - - null nullable: true type: string rootPath: diff --git a/deploy/helm/commons-operator/templates/roles.yaml b/deploy/helm/commons-operator/templates/roles.yaml index 71b574f2..3dd83b2e 100644 --- a/deploy/helm/commons-operator/templates/roles.yaml +++ b/deploy/helm/commons-operator/templates/roles.yaml @@ -46,3 +46,10 @@ rules: - pods/eviction verbs: - create + # Required to maintain MutatingWebhookConfigurations. The operator needs to do this, as it needs + # to enter e.g. it's generated certificate in the webhooks. + - apiGroups: [admissionregistration.k8s.io] + resources: [mutatingwebhookconfigurations] + verbs: + - create + - patch diff --git a/rust/operator-binary/Cargo.toml b/rust/operator-binary/Cargo.toml index f4f05081..15833c7e 100644 --- a/rust/operator-binary/Cargo.toml +++ b/rust/operator-binary/Cargo.toml @@ -15,6 +15,7 @@ anyhow.workspace = true clap.workspace = true http.workspace = true futures.workspace = true +json-patch.workspace = true serde.workspace = true serde_json.workspace = true snafu.workspace = true diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index 5495162e..4e7fa4b8 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -2,10 +2,10 @@ // This will need changes in our and upstream error types. #![allow(clippy::large_enum_variant)] -mod restart_controller; - +use anyhow::anyhow; use clap::Parser; -use futures::FutureExt; +use futures::{FutureExt, TryFutureExt}; +use restart_controller::statefulset::create_context; use stackable_operator::{ YamlSchema as _, cli::{Command, RunArguments}, @@ -17,16 +17,37 @@ use stackable_operator::{ shared::yaml::SerializeOptions, telemetry::Tracing, }; +use webhook::create_webhook_server; + +mod restart_controller; +mod utils; +mod webhook; mod built_info { include!(concat!(env!("OUT_DIR"), "/built.rs")); } +pub const OPERATOR_NAME: &str = "commons.stackable.tech"; +pub const FIELD_MANAGER: &str = "commons-operator"; + #[derive(Parser)] #[clap(about, author)] struct Opts { #[clap(subcommand)] - cmd: Command, + cmd: Command, +} + +#[derive(Debug, PartialEq, Eq, Parser)] +pub struct CommonsOperatorRunArguments { + #[command(flatten)] + pub common: RunArguments, + + /// Don't start the controller mutating webhook and maintain the MutatingWebhookConfiguration. + /// + /// The mutating webhook is used to prevent an unneeded restart of the first Pod of freshly + /// created StatefulSets. It can be turned off in case you can accept an unneeded Pod restart. + #[arg(long, env)] + pub disable_restarter_mutating_webhook: bool, } #[tokio::main] @@ -41,12 +62,16 @@ async fn main() -> anyhow::Result<()> { S3Bucket::merged_crd(S3BucketVersion::V1Alpha1)? .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; } - Command::Run(RunArguments { - product_config: _, - watch_namespace, - operator_environment: _, - maintenance, - common, + Command::Run(CommonsOperatorRunArguments { + common: + RunArguments { + product_config: _, + watch_namespace, + operator_environment, + maintenance, + common, + }, + disable_restarter_mutating_webhook, }) => { // NOTE (@NickLarsenNZ): Before stackable-telemetry was used: // - The console log level was set by `COMMONS_OPERATOR_LOG`, and is now `CONSOLE_LOG` (when using Tracing::pre_configured). @@ -76,12 +101,34 @@ async fn main() -> anyhow::Result<()> { ) .await?; - let sts_restart_controller = - restart_controller::statefulset::start(&client, &watch_namespace).map(anyhow::Ok); + let (ctx, cm_store_tx, secret_store_tx) = create_context(client.clone()); + let sts_restart_controller = restart_controller::statefulset::start( + ctx.clone(), + cm_store_tx, + secret_store_tx, + &watch_namespace, + ) + .map(anyhow::Ok); let pod_restart_controller = restart_controller::pod::start(&client, &watch_namespace).map(anyhow::Ok); - futures::try_join!(sts_restart_controller, pod_restart_controller, eos_checker)?; + let webhook_server = create_webhook_server( + ctx, + &operator_environment, + disable_restarter_mutating_webhook, + client.as_kube_client(), + ) + .await?; + let webhook_server = webhook_server + .run() + .map_err(|err| anyhow!(err).context("failed to run webhook")); + + futures::try_join!( + sts_restart_controller, + pod_restart_controller, + webhook_server, + eos_checker, + )?; } } diff --git a/rust/operator-binary/src/restart_controller/pod.rs b/rust/operator-binary/src/restart_controller/pod.rs index 9ceed1fe..a20b2773 100644 --- a/rust/operator-binary/src/restart_controller/pod.rs +++ b/rust/operator-binary/src/restart_controller/pod.rs @@ -42,7 +42,7 @@ enum Error { #[snafu(display( "failed to parse expiry timestamp annotation ({annotation:?}: {value:?}) as RFC 3999" ))] - UnparseableExpiryTimestamp { + UnparsableExpiryTimestamp { source: chrono::ParseError, annotation: String, value: String, @@ -60,7 +60,7 @@ impl ReconcilerError for Error { match self { Error::PodHasNoName => None, Error::PodHasNoNamespace => None, - Error::UnparseableExpiryTimestamp { + Error::UnparsableExpiryTimestamp { source: _, annotation: _, value: _, @@ -73,6 +73,8 @@ impl ReconcilerError for Error { pub async fn start(client: &Client, watch_namespace: &WatchNamespace) { let controller = Controller::new( watch_namespace.get_api::>(client), + // TODO: Can we only watch a subset of Pods with a specify label, e.g. + // vendor=Stackable to reduce the memory footprint? watcher::Config::default(), ); let event_recorder = Arc::new(Recorder::new( @@ -124,7 +126,7 @@ async fn reconcile(pod: Arc>, ctx: Arc) -> Result>, - cms_inited: Arc, - secrets: Store>, - secrets_inited: Arc, +pub struct Ctx { + client: Client, + cms: DelayedInit>>, + secrets: DelayedInit>>, } #[derive(Snafu, Debug, EnumDiscriminants)] #[strum_discriminants(derive(IntoStaticStr))] -enum Error { +pub enum Error { #[snafu(display("StatefulSet object is invalid"))] InvalidStatefulSet { source: error_boundary::InvalidObject, @@ -56,11 +51,11 @@ enum Error { obj_ref: Box>, }, - #[snafu(display("configmaps were not yet loaded"))] - ConfigMapsUninitialized, + #[snafu(display("configmap initializer was cancelled"))] + ConfigMapsUninitialized { source: InitDropped }, - #[snafu(display("secrets were not yet loaded"))] - SecretsUninitialized, + #[snafu(display("secrets initializer was cancelled"))] + SecretsUninitialized { source: InitDropped }, } impl ReconcilerError for Error { @@ -70,25 +65,50 @@ impl ReconcilerError for Error { fn secondary_object(&self) -> Option> { match self { - Error::InvalidStatefulSet { source: _ } => None, + Error::InvalidStatefulSet { .. } => None, Error::PatchFailed { obj_ref, .. } => Some(*obj_ref.clone()), - Error::ConfigMapsUninitialized => None, - Error::SecretsUninitialized => None, + Error::ConfigMapsUninitialized { .. } => None, + Error::SecretsUninitialized { .. } => None, } } } -pub async fn start(client: &Client, watch_namespace: &WatchNamespace) { - let stses = watch_namespace.get_api::>(client); - let cms = watch_namespace.get_api::(client); - let secrets = watch_namespace.get_api::(client); +#[allow(clippy::type_complexity)] +pub fn create_context( + client: Client, +) -> ( + Arc, + Initializer>>, + Initializer>>, +) { + let (cm_store_tx, cm_store_delayed) = DelayedInit::new(); + let (secret_store_tx, secret_store_delayed) = DelayedInit::new(); + let ctx = Arc::new(Ctx { + client, + cms: cm_store_delayed, + secrets: secret_store_delayed, + }); + + (ctx, cm_store_tx, secret_store_tx) +} + +pub async fn start( + ctx: Arc, + cm_store_tx: Initializer>>, + secret_store_tx: Initializer>>, + watch_namespace: &WatchNamespace, +) { + let stses = watch_namespace.get_api::>(&ctx.client); + let cms = watch_namespace.get_api::(&ctx.client); + let secrets = watch_namespace.get_api::(&ctx.client); let sts_store = reflector::store::Writer::>::new(()); let cm_store = reflector::store::Writer::>::new(()); let secret_store = reflector::store::Writer::>::new(()); - let cms_inited = Arc::new(AtomicBool::from(false)); - let secrets_inited = Arc::new(AtomicBool::from(false)); + let mut cm_store_tx = Some(cm_store_tx); + let mut secret_store_tx = Some(secret_store_tx); + let ctx2 = ctx.clone(); let event_recorder = Arc::new(Recorder::new( - client.as_kube_client(), + ctx.client.as_kube_client(), Reporter { controller: FULL_CONTROLLER_NAME.to_string(), instance: None, @@ -98,29 +118,37 @@ pub async fn start(client: &Client, watch_namespace: &WatchNamespace) { applier( |sts, ctx| Box::pin(reconcile(sts, ctx)), error_policy, - Arc::new(Ctx { - kube: client.as_kube_client(), - cms: cm_store.as_reader(), - secrets: secret_store.as_reader(), - cms_inited: cms_inited.clone(), - secrets_inited: secrets_inited.clone(), - }), + ctx2, sts_store.as_reader(), stream::select( stream::select( trigger_all( - reflector(cm_store, metadata_watcher(cms, watcher::Config::default())) - .inspect(|_| cms_inited.store(true, std::sync::atomic::Ordering::SeqCst)) - .touched_objects(), + { + let cm_reader = cm_store.as_reader(); + reflector(cm_store, metadata_watcher(cms, watcher::Config::default())) + .inspect(move |_| { + if let Some(tx) = cm_store_tx.take() { + tx.init(cm_reader.clone()); + } + }) + .touched_objects() + }, sts_store.as_reader(), ), trigger_all( - reflector( - secret_store, - metadata_watcher(secrets, watcher::Config::default()), - ) - .inspect(|_| secrets_inited.store(true, std::sync::atomic::Ordering::SeqCst)) - .touched_objects(), + { + let secret_reader = secret_store.as_reader(); + reflector( + secret_store, + metadata_watcher(secrets, watcher::Config::default()), + ) + .inspect(move |_| { + if let Some(tx) = secret_store_tx.take() { + tx.init(secret_reader.clone()); + } + }) + .touched_objects() + }, sts_store.as_reader(), ), ), @@ -194,25 +222,13 @@ fn find_pod_refs<'a, K: Resource + 'a>( .chain(container_env_from_refs) } -async fn reconcile( - sts: Arc>, +pub async fn get_updated_restarter_annotations( + sts: &StatefulSet, ctx: Arc, -) -> Result { - tracing::info!("Starting reconcile"); - let sts = sts - .0 - .as_ref() - .map_err(error_boundary::InvalidObject::clone) - .context(InvalidStatefulSetSnafu)?; - - if !ctx.cms_inited.load(std::sync::atomic::Ordering::SeqCst) { - return ConfigMapsUninitializedSnafu.fail(); - } - if !ctx.secrets_inited.load(std::sync::atomic::Ordering::SeqCst) { - return SecretsUninitializedSnafu.fail(); - } - - let ns = sts.metadata.namespace.as_deref().unwrap(); +) -> Result, Error> { + let ns = sts.metadata.namespace.as_deref().expect( + "A StatefulSet observed by a reflector (so send by Kubernetes) always has a namespace set", + ); let mut annotations = BTreeMap::::new(); let pod_specs = sts .spec @@ -246,23 +262,20 @@ async fn reconcile( ) }) .map(|cm_ref| cm_ref.within(ns)); - annotations.extend( - cm_refs - .flat_map(|cm_ref| ctx.cms.get(&cm_ref)) - .flat_map(|cm| { - Some(( - format!( - "configmap.restarter.stackable.tech/{}", - cm.metadata.name.as_ref()? - ), - format!( - "{}/{}", - cm.metadata.uid.as_ref()?, - cm.metadata.resource_version.as_ref()? - ), - )) - }), - ); + let cms = ctx.cms.get().await.context(ConfigMapsUninitializedSnafu)?; + annotations.extend(cm_refs.flat_map(|cm_ref| cms.get(&cm_ref)).flat_map(|cm| { + Some(( + format!( + "configmap.restarter.stackable.tech/{}", + cm.metadata.name.as_ref()? + ), + format!( + "{}/{}", + cm.metadata.uid.as_ref()?, + cm.metadata.resource_version.as_ref()? + ), + )) + })); let secret_refs = pod_specs .flat_map(|pod_spec| { find_pod_refs( @@ -285,9 +298,10 @@ async fn reconcile( ) }) .map(|secret_ref| secret_ref.within(ns)); + let secrets = ctx.secrets.get().await.context(SecretsUninitializedSnafu)?; annotations.extend( secret_refs - .flat_map(|secret_ref| ctx.secrets.get(&secret_ref)) + .flat_map(|secret_ref| secrets.get(&secret_ref)) .flat_map(|cm| { Some(( format!( @@ -302,7 +316,22 @@ async fn reconcile( )) }), ); - let stses = kube::Api::::namespaced(ctx.kube.clone(), ns); + Ok(annotations) +} + +async fn reconcile( + sts: Arc>, + ctx: Arc, +) -> Result { + tracing::info!("Starting reconcile"); + let sts = sts + .0 + .as_ref() + .map_err(error_boundary::InvalidObject::clone) + .context(InvalidStatefulSetSnafu)?; + let ns = sts.metadata.namespace.as_deref().unwrap(); + + let stses = kube::Api::::namespaced(ctx.client.as_kube_client(), ns); stses .patch( &sts.name_unchecked(), @@ -324,7 +353,7 @@ async fn reconcile( "spec": { "template": { "metadata": { - "annotations": annotations, + "annotations": get_updated_restarter_annotations(sts, ctx).await?, }, }, }, diff --git a/rust/operator-binary/src/utils/delayed_init.rs b/rust/operator-binary/src/utils/delayed_init.rs new file mode 100644 index 00000000..6cf56b16 --- /dev/null +++ b/rust/operator-binary/src/utils/delayed_init.rs @@ -0,0 +1,212 @@ +// use tokio::sync::RwLock; +#[cfg(test)] +use std::sync::RwLockWriteGuard; +use std::{fmt::Debug, sync::RwLock, task::Poll}; + +use futures::{Future, FutureExt, channel}; +use snafu::Snafu; +use tracing::trace; + +/// The sending counterpart to a [`DelayedInit`] +pub struct Initializer(channel::oneshot::Sender); +impl Initializer { + /// Sends `value` to the linked [`DelayedInit`]. + pub fn init(self, value: T) { + // oneshot::Sender::send fails if no recipients remain, this is not really a relevant + // case to signal for our use case + let _ = self.0.send(value); + } +} + +/// A value that must be initialized by an external writer +/// +/// Can be considered equivalent to a [`channel::oneshot`] channel, except for that +/// the value produced is retained for subsequent calls to [`Self::get`]. +pub struct DelayedInit { + state: RwLock>, + // A test-only hook to let us create artificial race conditions + #[cfg(test)] + #[allow(clippy::type_complexity)] + test_hook_start_of_slow_path: + Box>) + Send + Sync>, +} +enum ReceiverState { + Waiting(channel::oneshot::Receiver), + Ready(Result), +} +impl DelayedInit { + /// Returns an empty `DelayedInit` that has no value, along with a linked [`Initializer`] + pub fn new() -> (Initializer, Self) { + let (tx, rx) = channel::oneshot::channel(); + ( + Initializer(tx), + DelayedInit { + state: RwLock::new(ReceiverState::Waiting(rx)), + #[cfg(test)] + test_hook_start_of_slow_path: Box::new(|_| ()), + }, + ) + } +} +impl DelayedInit { + /// Wait for the value to be available and then return it + /// + /// Calling `get` again if a value has already been returned is guaranteed to return (a clone of) + /// the same value. + pub async fn get(&self) -> Result { + DelayedInitGet(self).await + } +} + +// Using a manually implemented future because we don't want to hold the lock across poll calls +// since that would mean that an unpolled writer would stall all other tasks from being able to poll it +struct DelayedInitGet<'a, T>(&'a DelayedInit); +impl<'a, T> Future for DelayedInitGet<'a, T> +where + T: Clone, +{ + type Output = Result; + + #[tracing::instrument(name = "DelayedInit::get", level = "trace", skip(self, cx))] + fn poll( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + ) -> std::task::Poll { + let read_lock = self.0.state.read().unwrap(); + if let ReceiverState::Ready(v) = &*read_lock { + trace!("using fast path, value is already ready"); + Poll::Ready(v.clone()) + } else { + trace!("using slow path, need to wait for the channel"); + // IMPORTANT: Make sure that the optimistic read lock has been released already + drop(read_lock); + let mut state = self.0.state.write().unwrap(); + trace!("got write lock"); + #[cfg(test)] + (self.0.test_hook_start_of_slow_path)(&mut state); + match &mut *state { + ReceiverState::Waiting(rx) => { + trace!("channel still active, polling"); + if let Poll::Ready(value) = rx.poll_unpin(cx).map_err(|_| InitDropped) { + trace!("got value on slow path, memoizing"); + *state = ReceiverState::Ready(value.clone()); + Poll::Ready(value) + } else { + trace!("channel is still pending"); + Poll::Pending + } + } + ReceiverState::Ready(v) => { + trace!( + "slow path but value was already initialized, another writer already initialized" + ); + Poll::Ready(v.clone()) + } + } + } + } +} + +#[derive(Debug, Snafu, Clone, Copy, PartialEq, Eq)] +#[snafu(display("initializer was dropped before value was initialized"))] +pub struct InitDropped; + +#[cfg(test)] +mod tests { + use std::{ + sync::{Arc, Mutex}, + task::Poll, + }; + + use futures::{pin_mut, poll}; + + // use tracing::Level; + + // use tracing_subscriber::util::SubscriberInitExt; + use super::DelayedInit; + use crate::utils::delayed_init::ReceiverState; + + // fn setup_tracing() -> tracing::dispatcher::DefaultGuard { + // tracing_subscriber::fmt() + // .with_max_level(Level::TRACE) + // .with_test_writer() + // .finish() + // .set_default() + // } + + #[tokio::test] + async fn must_allow_single_reader() { + // let _tracing = setup_tracing(); + let (tx, rx) = DelayedInit::::new(); + let get1 = rx.get(); + pin_mut!(get1); + assert_eq!(poll!(get1.as_mut()), Poll::Pending); + tx.init(1); + assert_eq!(poll!(get1), Poll::Ready(Ok(1))); + } + + #[tokio::test] + async fn must_allow_concurrent_readers_while_waiting() { + // let _tracing = setup_tracing(); + let (tx, rx) = DelayedInit::::new(); + let get1 = rx.get(); + let get2 = rx.get(); + let get3 = rx.get(); + pin_mut!(get1, get2, get3); + assert_eq!(poll!(get1.as_mut()), Poll::Pending); + assert_eq!(poll!(get2.as_mut()), Poll::Pending); + assert_eq!(poll!(get3.as_mut()), Poll::Pending); + tx.init(1); + assert_eq!(poll!(get1), Poll::Ready(Ok(1))); + assert_eq!(poll!(get2), Poll::Ready(Ok(1))); + assert_eq!(poll!(get3), Poll::Ready(Ok(1))); + } + + #[tokio::test] + async fn must_allow_reading_after_init() { + // let _tracing = setup_tracing(); + let (tx, rx) = DelayedInit::::new(); + let get1 = rx.get(); + pin_mut!(get1); + assert_eq!(poll!(get1.as_mut()), Poll::Pending); + tx.init(1); + assert_eq!(poll!(get1), Poll::Ready(Ok(1))); + assert_eq!(rx.get().await, Ok(1)); + assert_eq!(rx.get().await, Ok(1)); + } + + #[tokio::test] + async fn must_allow_concurrent_readers_in_any_order() { + // let _tracing = setup_tracing(); + let (tx, rx) = DelayedInit::::new(); + let get1 = rx.get(); + let get2 = rx.get(); + let get3 = rx.get(); + pin_mut!(get1, get2, get3); + assert_eq!(poll!(get1.as_mut()), Poll::Pending); + assert_eq!(poll!(get2.as_mut()), Poll::Pending); + assert_eq!(poll!(get3.as_mut()), Poll::Pending); + tx.init(1); + assert_eq!(poll!(get3), Poll::Ready(Ok(1))); + assert_eq!(poll!(get2), Poll::Ready(Ok(1))); + assert_eq!(poll!(get1), Poll::Ready(Ok(1))); + } + + #[tokio::test] + async fn must_work_despite_writer_race() { + // let _tracing = setup_tracing(); + let (_tx, mut rx) = DelayedInit::::new(); + let slow_path_calls = Arc::new(Mutex::new(0)); + let slow_path_calls2 = slow_path_calls.clone(); + // This emulates two racing get() calls, where a fake get() memoizes a value while the true get() + // is waiting to upgrade its read lock to a write lock. + rx.test_hook_start_of_slow_path = Box::new(move |state| { + *slow_path_calls2.lock().unwrap() += 1; + **state = ReceiverState::Ready(Ok(1)); + }); + assert_eq!(rx.get().await, Ok(1)); + assert_eq!(rx.get().await, Ok(1)); + assert_eq!(rx.get().await, Ok(1)); + assert_eq!(*slow_path_calls.lock().unwrap(), 1); + } +} diff --git a/rust/operator-binary/src/utils/mod.rs b/rust/operator-binary/src/utils/mod.rs new file mode 100644 index 00000000..2e542e1b --- /dev/null +++ b/rust/operator-binary/src/utils/mod.rs @@ -0,0 +1 @@ +pub mod delayed_init; diff --git a/rust/operator-binary/src/webhook/mod.rs b/rust/operator-binary/src/webhook/mod.rs new file mode 100644 index 00000000..300f7ee7 --- /dev/null +++ b/rust/operator-binary/src/webhook/mod.rs @@ -0,0 +1,56 @@ +use std::sync::Arc; + +use restarter_mutate_sts::{ + add_sts_restarter_annotations_handler, get_sts_restarter_mutating_webhook_configuration, +}; +use snafu::{ResultExt, Snafu}; +use stackable_operator::{ + cli::OperatorEnvironmentOptions, + kube::Client, + webhook::{ + WebhookServer, WebhookServerError, WebhookServerOptions, + webhooks::{MutatingWebhook, MutatingWebhookOptions, Webhook}, + }, +}; + +use crate::{FIELD_MANAGER, restart_controller::statefulset::Ctx}; + +mod restarter_mutate_sts; + +#[derive(Debug, Snafu)] +pub enum Error { + #[snafu(display("failed to create webhook server"))] + CreateWebhookServer { source: WebhookServerError }, +} + +pub async fn create_webhook_server( + ctx: Arc, + operator_environment: &OperatorEnvironmentOptions, + disable_restarter_mutating_webhook: bool, + client: Client, +) -> Result { + let mut webhooks: Vec> = vec![]; + if !disable_restarter_mutating_webhook { + let mutating_webhook_options = MutatingWebhookOptions { + disable_mwc_maintenance: disable_restarter_mutating_webhook, + field_manager: FIELD_MANAGER.to_owned(), + }; + + webhooks.push(Box::new(MutatingWebhook::new( + get_sts_restarter_mutating_webhook_configuration(), + add_sts_restarter_annotations_handler, + ctx, + client, + mutating_webhook_options, + ))); + } + + let webhook_options = WebhookServerOptions { + socket_addr: WebhookServer::DEFAULT_SOCKET_ADDRESS, + webhook_namespace: operator_environment.operator_namespace.to_owned(), + webhook_service_name: operator_environment.operator_service_name.to_owned(), + }; + WebhookServer::new(webhooks, webhook_options) + .await + .context(CreateWebhookServerSnafu) +} diff --git a/rust/operator-binary/src/webhook/restarter_mutate_sts.rs b/rust/operator-binary/src/webhook/restarter_mutate_sts.rs new file mode 100644 index 00000000..f31d53c0 --- /dev/null +++ b/rust/operator-binary/src/webhook/restarter_mutate_sts.rs @@ -0,0 +1,140 @@ +use std::{collections::BTreeMap, sync::Arc}; + +use json_patch::{AddOperation, Patch, PatchOperation, jsonptr::PointerBuf}; +use stackable_operator::{ + builder::meta::ObjectMetaBuilder, + k8s_openapi::{ + api::{ + admissionregistration::v1::{ + MutatingWebhook, MutatingWebhookConfiguration, RuleWithOperations, + WebhookClientConfig, + }, + apps::v1::StatefulSet, + }, + apimachinery::pkg::apis::meta::v1::LabelSelector, + }, + kube::core::admission::{AdmissionRequest, AdmissionResponse}, + kvp::Label, +}; + +use crate::{ + OPERATOR_NAME, + restart_controller::statefulset::{Ctx, get_updated_restarter_annotations}, +}; + +pub fn get_sts_restarter_mutating_webhook_configuration() -> MutatingWebhookConfiguration { + let webhook_name = "restarter-sts-enricher.stackable.tech"; + let metadata = ObjectMetaBuilder::new() + .name(webhook_name) + .with_label(Label::stackable_vendor()) + .with_label( + Label::managed_by(OPERATOR_NAME, webhook_name).expect("static label is always valid"), + ) + .build(); + + MutatingWebhookConfiguration { + metadata, + webhooks: Some(vec![MutatingWebhook { + name: webhook_name.to_owned(), + // This is checked by the stackable_webhook code + admission_review_versions: vec!["v1".to_owned()], + rules: Some(vec![RuleWithOperations { + api_groups: Some(vec!["apps".to_owned()]), + api_versions: Some(vec!["v1".to_owned()]), + resources: Some(vec!["statefulsets".to_owned()]), + operations: Some(vec!["CREATE".to_owned()]), + scope: Some("Namespaced".to_owned()), + }]), + // We only need to care about StatefulSets with the `restarter.stackable.tech/enabled`` + // label set to `true`. + object_selector: Some(LabelSelector { + match_labels: Some(BTreeMap::from([( + "restarter.stackable.tech/enabled".to_owned(), + "true".to_owned(), + )])), + match_expressions: None, + }), + // Will be set by the stackable_webhook code + client_config: WebhookClientConfig::default(), + // Worst case if the annotations are missing they cause a restart of Pod 0, basically + // the same behavior which we had for years. + // See https://github.com/stackabletech/commons-operator/issues/111 for details + failure_policy: Some("Ignore".to_owned()), + // It could be the case that other mutating webhooks add more ConfigMap/Secret mounts, + // in which case it would be nice if we detect that. + reinvocation_policy: Some("IfNeeded".to_owned()), + // > Webhooks typically operate only on the content of the AdmissionReview sent to them. + // > Some webhooks, however, make out-of-band changes as part of processing admission requests. + // + // We read in the state of the world using the ConfigMap and Secret store. + // So, technically our outcome depends on external factors, *but* this webhook is not + // creating any external objects, so from our understanding it's side-effect free. + side_effects: "None".to_owned(), + ..Default::default() + }]), + } +} + +pub async fn add_sts_restarter_annotations_handler( + ctx: Arc, + request: AdmissionRequest, +) -> AdmissionResponse { + let Some(sts) = &request.object else { + return AdmissionResponse::invalid( + "object (of type StatefulSet) missing - for operation CREATE it must be always present", + ); + }; + + let mut paths_to_be_created = vec![]; + let spec = sts.spec.as_ref(); + if spec.is_none() { + paths_to_be_created.push("/spec"); + } + let metadata = spec.and_then(|spec| spec.template.metadata.as_ref()); + if metadata.is_none() { + paths_to_be_created.push("/spec/template/metadata"); + } + let annotations = metadata.and_then(|metadata| metadata.annotations.as_ref()); + if annotations.is_none() { + paths_to_be_created.push("/spec/template/metadata/annotations"); + } + let create_paths = paths_to_be_created.into_iter().map(|path| { + PatchOperation::Add(AddOperation { + path: PointerBuf::parse(path).expect("hard-coded annotation paths are valid"), + value: serde_json::Value::Object(serde_json::Map::new()), + }) + }); + + let annotations = match get_updated_restarter_annotations(sts, ctx).await { + Ok(annotations) => annotations, + Err(err) => { + return AdmissionResponse::invalid(format!( + "failed to get updated restarted annotations: {err:#}" + )); + } + }; + + let add_annotations = annotations.iter().map(|(k, v)| { + PatchOperation::Add(AddOperation { + path: PointerBuf::from_tokens([ + "spec", + "template", + "metadata", + "annotations", + // It's totally fine (and even expected) that the annotations contains slashes ("/"), + // as `PointerBuf::from_tokens` escapes them + k, + ]), + value: serde_json::Value::String(v.to_owned()), + }) + }); + + match AdmissionResponse::from(&request) + .with_patch(Patch(create_paths.chain(add_annotations).collect())) + { + Ok(response) => response, + Err(err) => { + AdmissionResponse::invalid(format!("failed to add patch to AdmissionResponse: {err:#}")) + } + } +} diff --git a/tests/templates/kuttl/restarter-no-unneeded-restart/00-patch-ns.yaml.j2 b/tests/templates/kuttl/restarter-no-unneeded-restart/00-patch-ns.yaml.j2 new file mode 100644 index 00000000..67185acf --- /dev/null +++ b/tests/templates/kuttl/restarter-no-unneeded-restart/00-patch-ns.yaml.j2 @@ -0,0 +1,9 @@ +{% if test_scenario['values']['openshift'] == 'true' %} +# see https://github.com/stackabletech/issues/issues/566 +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - script: kubectl patch namespace $NAMESPACE -p '{"metadata":{"labels":{"pod-security.kubernetes.io/enforce":"privileged"}}}' + timeout: 120 +{% endif %} diff --git a/tests/templates/kuttl/restarter-no-unneeded-restart/01-assert.yaml b/tests/templates/kuttl/restarter-no-unneeded-restart/01-assert.yaml new file mode 100644 index 00000000..1d25c54e --- /dev/null +++ b/tests/templates/kuttl/restarter-no-unneeded-restart/01-assert.yaml @@ -0,0 +1,22 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 180 +commands: + - script: | + kubectl -n $NAMESPACE rollout status sts/early --timeout=5m + + read n1 t1 n2 t2 n3 t3 < <( + kubectl -n $NAMESPACE get pod early-{1,2,0} \ + -o jsonpath='{range .items[*]}{.metadata.name}{" "}{.metadata.creationTimestamp}{" "}{end}' + ) + + if [[ "$t1" > "$t2" || "$t2" > "$t3" ]]; then + echo "ERROR: Pod creation order invalid:" + printf " %s: %s\n %s: %s\n %s: %s\n" "$n1" "$t1" "$n2" "$t2" "$n3" "$t3" + exit 1 + fi + + echo "OK: Pod creation order verified:" + printf " %s (%s)\n %s (%s)\n %s (%s)\n" "$n1" "$t1" "$n2" "$t2" "$n3" "$t3" + echo " Asserted: $n1 <= $n2 <= $n3" diff --git a/tests/templates/kuttl/restarter-no-unneeded-restart/01-early-before-config.yaml b/tests/templates/kuttl/restarter-no-unneeded-restart/01-early-before-config.yaml new file mode 100644 index 00000000..69d65e81 --- /dev/null +++ b/tests/templates/kuttl/restarter-no-unneeded-restart/01-early-before-config.yaml @@ -0,0 +1,60 @@ +--- +# As the STS is created *before* the ConfigMap, even the mutating webhook can not prevent the first +# Pod from being restarted. + +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: early + labels: + restarter.stackable.tech/enabled: "true" +spec: + selector: + matchLabels: + app: early + serviceName: early + replicas: 3 + template: + metadata: + labels: + app: early + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: nginx + image: registry.k8s.io/nginx-slim:0.24 + volumeMounts: + - name: config + mountPath: "/config" + envFrom: + - configMapRef: + name: early-config-2 + volumes: + - name: config + configMap: + name: early-config +--- +apiVersion: v1 +kind: Service +metadata: + name: early + labels: + app: early +spec: + clusterIP: None + selector: + app: early +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: early-config +data: + foo: bar +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: early-config-2 +data: + foo: bar diff --git a/tests/templates/kuttl/restarter-no-unneeded-restart/02-assert.yaml b/tests/templates/kuttl/restarter-no-unneeded-restart/02-assert.yaml new file mode 100644 index 00000000..a1d3817c --- /dev/null +++ b/tests/templates/kuttl/restarter-no-unneeded-restart/02-assert.yaml @@ -0,0 +1,22 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 180 +commands: + - script: | + kubectl -n $NAMESPACE rollout status sts/late --timeout=5m + + read n0 t0 n1 t1 n2 t2 < <( + kubectl -n $NAMESPACE get pod late-{0,1,2} \ + -o jsonpath='{range .items[*]}{.metadata.name}{" "}{.metadata.creationTimestamp}{" "}{end}' + ) + + if [[ "$t0" > "$t1" || "$t1" > "$t2" ]]; then + echo "ERROR: Pod creation order invalid:" + printf " %s: %s\n %s: %s\n %s: %s\n" "$n0" "$t0" "$n1" "$t1" "$n2" "$t2" + exit 1 + fi + + echo "OK: Pod creation order verified:" + printf " %s (%s)\n %s (%s)\n %s (%s)\n" "$n0" "$t0" "$n1" "$t1" "$n2" "$t2" + echo " Asserted: $n0 <= $n1 <= $n2" diff --git a/tests/templates/kuttl/restarter-no-unneeded-restart/02-late-after-config.yaml b/tests/templates/kuttl/restarter-no-unneeded-restart/02-late-after-config.yaml new file mode 100644 index 00000000..a9c951b9 --- /dev/null +++ b/tests/templates/kuttl/restarter-no-unneeded-restart/02-late-after-config.yaml @@ -0,0 +1,60 @@ +--- +# Same situation as in 01-late-before-config.yaml, but this time the STS is created *after* the +# mounted ConfigMaps, so no unneeded Pod restarts occur. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: late-config +data: + foo: bar +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: late-config-2 +data: + foo: bar +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: late + labels: + restarter.stackable.tech/enabled: "true" +spec: + selector: + matchLabels: + app: late + serviceName: late + replicas: 3 + template: + metadata: + labels: + app: late + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: nginx + image: registry.k8s.io/nginx-slim:0.24 + volumeMounts: + - name: config + mountPath: "/config" + envFrom: + - configMapRef: + name: late-config-2 + volumes: + - name: config + configMap: + name: late-config +--- +apiVersion: v1 +kind: Service +metadata: + name: late + labels: + app: late +spec: + clusterIP: None + selector: + app: late diff --git a/tests/templates/kuttl/restarter/10-sleep.yaml b/tests/templates/kuttl/restarter/10-sleep.yaml index 5b9c4ca6..4d592f6b 100644 --- a/tests/templates/kuttl/restarter/10-sleep.yaml +++ b/tests/templates/kuttl/restarter/10-sleep.yaml @@ -41,3 +41,4 @@ spec: volumeMounts: - name: config mountPath: /config + terminationGracePeriodSeconds: 5 diff --git a/tests/test-definition.yaml b/tests/test-definition.yaml index 3e78406b..f3f23932 100644 --- a/tests/test-definition.yaml +++ b/tests/test-definition.yaml @@ -7,6 +7,9 @@ tests: - name: restarter dimensions: - openshift + - name: restarter-no-unneeded-restart + dimensions: + - openshift suites: - name: nightly - name: openshift