diff --git a/CHANGELOG.md b/CHANGELOG.md index 251298f0..a0b08316 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to this project will be documented in this file. ### Added +- Add end-of-support checker which can be controlled with environment variables and CLI arguments ([#771]). + - `EOS_CHECK_MODE` (`--eos-check-mode`) to set the EoS check mode. Currently, only "offline" is supported. + - `EOS_INTERVAL` (`--eos-interval`) to set the interval in which the operator checks if it is EoS. + - `EOS_DISABLED` (`--eos-disabled`) to disable the EoS checker completely. - Add a dedicated per-rolegroup `-metrics` Service, which can be used to get Prometheus metrics ([#748]). - Expose more Prometheus metrics, such as successful or failed bundle loads and information about the OPA environment ([#748]). - Helm: Allow Pod `priorityClassName` to be configured ([#762]). @@ -34,6 +38,7 @@ All notable changes to this project will be documented in this file. [#762]: https://github.com/stackabletech/opa-operator/pull/762 [#765]: https://github.com/stackabletech/opa-operator/pull/765 [#767]: https://github.com/stackabletech/opa-operator/pull/767 +[#771]: https://github.com/stackabletech/opa-operator/pull/771 ## [25.7.0] - 2025-07-23 diff --git a/Cargo.lock b/Cargo.lock index 884b3b37..71f776be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -292,18 +292,18 @@ dependencies = [ [[package]] name = "bit-set" -version = "0.5.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" @@ -573,38 +573,14 @@ dependencies = [ "typenum", ] -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core 0.20.11", - "darling_macro 0.20.11", -] - [[package]] name = "darling" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core 0.21.3", - "darling_macro 0.21.3", -] - -[[package]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.106", + "darling_core", + "darling_macro", ] [[package]] @@ -621,24 +597,13 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core 0.20.11", - "quote", - "syn 2.0.106", -] - [[package]] name = "darling_macro" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core 0.21.3", + "darling_core", "quote", "syn 2.0.106", ] @@ -825,9 +790,9 @@ dependencies = [ [[package]] name = "fancy-regex" -version = "0.13.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" +checksum = "998b056554fbe42e03ae0e152895cd1a7e1002aec800fdc6635d20270260c46f" dependencies = [ "bit-set", "regex-automata", @@ -1101,30 +1066,6 @@ dependencies = [ "foldhash", ] -[[package]] -name = "headers" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" -dependencies = [ - "base64", - "bytes", - "headers-core", - "http", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" -dependencies = [ - "http", -] - [[package]] name = "heck" version = "0.5.0" @@ -1220,26 +1161,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-http-proxy" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad4b0a1e37510028bc4ba81d0e38d239c39671b0f0ce9e02dfa93a8133f7c08" -dependencies = [ - "bytes", - "futures-util", - "headers", - "http", - "hyper", - "hyper-rustls", - "hyper-util", - "pin-project-lite", - "rustls-native-certs 0.7.3", - "tokio", - "tokio-rustls", - "tower-service", -] - [[package]] name = "hyper-rustls" version = "0.27.7" @@ -1251,7 +1172,7 @@ dependencies = [ "hyper-util", "log", "rustls", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", @@ -1591,9 +1512,9 @@ dependencies = [ [[package]] name = "k8s-openapi" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa60a41b57ae1a0a071af77dbcf89fc9819cfe66edaf2beeb204c34459dcf0b2" +checksum = "d13f06d5326a915becaffabdfab75051b8cdc260c2a5c06c0e90226ede89a692" dependencies = [ "base64", "chrono", @@ -1605,9 +1526,9 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#89f484ca4e86b565e083e9ad7573e21dbe29a3af" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" dependencies = [ - "darling 0.21.3", + "darling", "regex", "snafu 0.8.7", ] @@ -1632,9 +1553,9 @@ dependencies = [ [[package]] name = "kube" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778f98664beaf4c3c11372721e14310d1ae00f5e2d9aabcf8906c881aa4e9f51" +checksum = "48e7bb0b6a46502cc20e4575b6ff401af45cfea150b34ba272a3410b78aa014e" dependencies = [ "k8s-openapi", "kube-client", @@ -1645,9 +1566,9 @@ dependencies = [ [[package]] name = "kube-client" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb276b85b6e94ded00ac8ea2c68fcf4697ea0553cb25fddc35d4a0ab718db8d" +checksum = "4987d57a184d2b5294fdad3d7fc7f278899469d21a4da39a8f6ca16426567a36" dependencies = [ "base64", "bytes", @@ -1659,7 +1580,6 @@ dependencies = [ "http-body", "http-body-util", "hyper", - "hyper-http-proxy", "hyper-rustls", "hyper-timeout", "hyper-util", @@ -1682,9 +1602,9 @@ dependencies = [ [[package]] name = "kube-core" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c56ff45deb0031f2a476017eed60c06872251f271b8387ad8020b8fef60960" +checksum = "914bbb770e7bb721a06e3538c0edd2babed46447d128f7c21caa68747060ee73" dependencies = [ "chrono", "derive_more", @@ -1701,11 +1621,11 @@ dependencies = [ [[package]] name = "kube-derive" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "079fc8c1c397538628309cfdee20696ebdcc26745f9fb17f89b78782205bd995" +checksum = "03dee8252be137772a6ab3508b81cd797dee62ee771112a2453bc85cbbe150d2" dependencies = [ - "darling 0.20.11", + "darling", "proc-macro2", "quote", "serde", @@ -1715,9 +1635,9 @@ dependencies = [ [[package]] name = "kube-runtime" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f1326e946fadf6248febdf8a1c001809c3899ccf48cb9768cbc536b741040dc" +checksum = "6aea4de4b562c5cc89ab10300bb63474ae1fa57ff5a19275f2e26401a323e3fd" dependencies = [ "ahash", "async-broadcast", @@ -2101,9 +2021,9 @@ dependencies = [ [[package]] name = "opentelemetry" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf416e4cb72756655126f7dd7bb0af49c674f4c1b9903e80c009e0c37e552e6" +checksum = "b84bcd6ae87133e903af7ef497404dda70c60d0ea14895fc8a5e6722754fc2a0" dependencies = [ "futures-core", "futures-sink", @@ -2115,9 +2035,9 @@ dependencies = [ [[package]] name = "opentelemetry-appender-tracing" -version = "0.30.1" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68f63eca5fad47e570e00e893094fc17be959c80c79a7d6ec1abdd5ae6ffc16" +checksum = "ef6a1ac5ca3accf562b8c306fa8483c85f4390f768185ab775f242f7fe8fdcc2" dependencies = [ "opentelemetry", "tracing", @@ -2127,9 +2047,9 @@ dependencies = [ [[package]] name = "opentelemetry-http" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f6639e842a97dbea8886e3439710ae463120091e2e064518ba8e716e6ac36d" +checksum = "d7a6d09a73194e6b66df7c8f1b680f156d916a1a942abf2de06823dd02b7855d" dependencies = [ "async-trait", "bytes", @@ -2140,9 +2060,9 @@ dependencies = [ [[package]] name = "opentelemetry-otlp" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbee664a43e07615731afc539ca60c6d9f1a9425e25ca09c57bc36c87c55852b" +checksum = "7a2366db2dca4d2ad033cad11e6ee42844fd727007af5ad04a1730f4cb8163bf" dependencies = [ "http", "opentelemetry", @@ -2159,27 +2079,28 @@ dependencies = [ [[package]] name = "opentelemetry-proto" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e046fd7660710fe5a05e8748e70d9058dc15c94ba914e7c4faa7c728f0e8ddc" +checksum = "a7175df06de5eaee9909d4805a3d07e28bb752c34cab57fa9cff549da596b30f" dependencies = [ "opentelemetry", "opentelemetry_sdk", "prost", "tonic", + "tonic-prost", ] [[package]] name = "opentelemetry-semantic-conventions" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d059a296a47436748557a353c5e6c5705b9470ef6c95cfc52c21a8814ddac2" +checksum = "e62e29dfe041afb8ed2a6c9737ab57db4907285d999ef8ad3a59092a36bdc846" [[package]] name = "opentelemetry_sdk" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f644aa9e5e31d11896e024305d7e3c98a88884d9f8919dbf37a9991bc47a4b" +checksum = "e14ae4f5991976fd48df6d843de219ca6d31b01daaab2dad5af2badeded372bd" dependencies = [ "futures-channel", "futures-executor", @@ -2187,7 +2108,6 @@ dependencies = [ "opentelemetry", "percent-encoding", "rand", - "serde_json", "thiserror 2.0.16", "tokio", "tokio-stream", @@ -2380,8 +2300,8 @@ dependencies = [ [[package]] name = "product-config" -version = "0.7.0" -source = "git+https://github.com/stackabletech/product-config.git?tag=0.7.0#d61d4c7542c942da2ba0e9af4e5e3c3113abb0cf" +version = "0.8.0" +source = "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#678fb7cf30af7d7b516c9a46698a1b661120d54a" dependencies = [ "fancy-regex", "java-properties", @@ -2391,14 +2311,14 @@ dependencies = [ "serde_json", "serde_yaml", "snafu 0.8.7", - "xml-rs", + "xml", ] [[package]] name = "prost" -version = "0.13.5" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" dependencies = [ "bytes", "prost-derive", @@ -2406,12 +2326,12 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.5" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.106", @@ -2470,6 +2390,26 @@ dependencies = [ "bitflags", ] +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "regex" version = "1.11.2" @@ -2604,19 +2544,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "rustls-pki-types", - "schannel", - "security-framework 2.11.1", -] - [[package]] name = "rustls-native-certs" version = "0.8.1" @@ -2681,11 +2608,12 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.22" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" dependencies = [ "dyn-clone", + "ref-cast", "schemars_derive", "serde", "serde_json", @@ -2694,9 +2622,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.22" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80" dependencies = [ "proc-macro2", "quote", @@ -2855,17 +2783,6 @@ 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" @@ -3048,8 +2965,8 @@ dependencies = [ [[package]] name = "stackable-operator" -version = "0.96.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#89f484ca4e86b565e083e9ad7573e21dbe29a3af" +version = "0.99.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" dependencies = [ "chrono", "clap", @@ -3087,9 +3004,9 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#89f484ca4e86b565e083e9ad7573e21dbe29a3af" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" dependencies = [ - "darling 0.21.3", + "darling", "proc-macro2", "quote", "syn 2.0.106", @@ -3097,9 +3014,10 @@ dependencies = [ [[package]] name = "stackable-shared" -version = "0.0.2" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#89f484ca4e86b565e083e9ad7573e21dbe29a3af" +version = "0.0.3" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" dependencies = [ + "chrono", "k8s-openapi", "kube", "schemars", @@ -3114,7 +3032,7 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#89f484ca4e86b565e083e9ad7573e21dbe29a3af" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" dependencies = [ "axum", "clap", @@ -3137,8 +3055,8 @@ dependencies = [ [[package]] name = "stackable-versioned" -version = "0.8.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#89f484ca4e86b565e083e9ad7573e21dbe29a3af" +version = "0.8.2" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" dependencies = [ "schemars", "serde", @@ -3150,11 +3068,11 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" -version = "0.8.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#89f484ca4e86b565e083e9ad7573e21dbe29a3af" +version = "0.8.2" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" dependencies = [ "convert_case", - "darling 0.21.3", + "darling", "indoc", "itertools 0.14.0", "k8s-openapi", @@ -3459,9 +3377,9 @@ dependencies = [ [[package]] name = "tonic" -version = "0.13.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" +checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" dependencies = [ "async-trait", "base64", @@ -3475,7 +3393,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost", + "sync_wrapper", "tokio", "tokio-stream", "tower", @@ -3484,6 +3402,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "tonic-prost" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" +dependencies = [ + "bytes", + "prost", + "tonic", +] + [[package]] name = "tower" version = "0.5.2" @@ -3594,15 +3523,16 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddcf5959f39507d0d04d6413119c04f33b623f4f951ebcbdddddfad2d0623a9c" +checksum = "1e6e5658463dd88089aba75c7791e1d3120633b1bfde22478b28f625a9bb1b8e" dependencies = [ "js-sys", - "once_cell", "opentelemetry", "opentelemetry_sdk", + "rustversion", "smallvec", + "thiserror 2.0.16", "tracing", "tracing-core", "tracing-log", @@ -4161,10 +4091,10 @@ dependencies = [ ] [[package]] -name = "xml-rs" -version = "0.8.27" +name = "xml" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" +checksum = "72e6e0a83ae73d886ab66fc2f82b598fbbb8f373357d5f2f9f783e50e4d06435" [[package]] name = "yoke" diff --git a/Cargo.nix b/Cargo.nix index 87fa41b2..c35a1b51 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -1016,9 +1016,9 @@ rec { }; "bit-set" = rec { crateName = "bit-set"; - version = "0.5.3"; + version = "0.8.0"; edition = "2015"; - sha256 = "1wcm9vxi00ma4rcxkl3pzzjli6ihrpn9cfdi0c5b4cvga2mxs007"; + sha256 = "18riaa10s6n59n39vix0cr7l2dgwdhcpbcm97x1xbyfp1q47x008"; libName = "bit_set"; authors = [ "Alexis Beingessner " @@ -1032,21 +1032,26 @@ rec { ]; features = { "default" = [ "std" ]; + "serde" = [ "dep:serde" "bit-vec/serde" ]; "std" = [ "bit-vec/std" ]; }; resolvedDefaultFeatures = [ "std" ]; }; "bit-vec" = rec { crateName = "bit-vec"; - version = "0.6.3"; + version = "0.8.0"; edition = "2015"; - sha256 = "1ywqjnv60cdh1slhz67psnp422md6jdliji6alq0gmly2xm9p7rl"; + sha256 = "1xxa1s2cj291r7k1whbxq840jxvmdsq9xgh7bvrxl46m80fllxjy"; libName = "bit_vec"; authors = [ "Alexis Beingessner " ]; features = { + "borsh" = [ "dep:borsh" ]; + "borsh_std" = [ "borsh/std" ]; "default" = [ "std" ]; + "miniserde" = [ "dep:miniserde" ]; + "nanoserde" = [ "dep:nanoserde" ]; "serde" = [ "dep:serde" ]; "serde_no_std" = [ "serde/alloc" ]; "serde_std" = [ "std" "serde/std" ]; @@ -1834,34 +1839,8 @@ rec { "getrandom" = [ "rand_core/getrandom" ]; "rand_core" = [ "dep:rand_core" ]; }; - resolvedDefaultFeatures = [ "std" ]; }; - "darling 0.20.11" = rec { - crateName = "darling"; - version = "0.20.11"; - edition = "2021"; - sha256 = "1vmlphlrlw4f50z16p4bc9p5qwdni1ba95qmxfrrmzs6dh8lczzw"; - authors = [ - "Ted Driggs " - ]; - dependencies = [ - { - name = "darling_core"; - packageId = "darling_core 0.20.11"; - } - { - name = "darling_macro"; - packageId = "darling_macro 0.20.11"; - } - ]; - features = { - "default" = [ "suggestions" ]; - "diagnostics" = [ "darling_core/diagnostics" ]; - "suggestions" = [ "darling_core/suggestions" ]; - }; - resolvedDefaultFeatures = [ "default" "suggestions" ]; - }; - "darling 0.21.3" = rec { + "darling" = rec { crateName = "darling"; version = "0.21.3"; edition = "2021"; @@ -1872,11 +1851,11 @@ rec { dependencies = [ { name = "darling_core"; - packageId = "darling_core 0.21.3"; + packageId = "darling_core"; } { name = "darling_macro"; - packageId = "darling_macro 0.21.3"; + packageId = "darling_macro"; } ]; features = { @@ -1887,49 +1866,7 @@ rec { }; resolvedDefaultFeatures = [ "default" "suggestions" ]; }; - "darling_core 0.20.11" = rec { - crateName = "darling_core"; - version = "0.20.11"; - edition = "2021"; - sha256 = "0bj1af6xl4ablnqbgn827m43b8fiicgv180749f5cphqdmcvj00d"; - authors = [ - "Ted Driggs " - ]; - dependencies = [ - { - name = "fnv"; - packageId = "fnv"; - } - { - 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.106"; - features = [ "full" "extra-traits" ]; - } - ]; - features = { - "strsim" = [ "dep:strsim" ]; - "suggestions" = [ "strsim" ]; - }; - resolvedDefaultFeatures = [ "strsim" "suggestions" ]; - }; - "darling_core 0.21.3" = rec { + "darling_core" = rec { crateName = "darling_core"; version = "0.21.3"; edition = "2021"; @@ -1972,32 +1909,7 @@ rec { }; resolvedDefaultFeatures = [ "strsim" "suggestions" ]; }; - "darling_macro 0.20.11" = rec { - crateName = "darling_macro"; - version = "0.20.11"; - edition = "2021"; - sha256 = "1bbfbc2px6sj1pqqq97bgqn6c8xdnb2fmz66f7f40nrqrcybjd7w"; - procMacro = true; - authors = [ - "Ted Driggs " - ]; - dependencies = [ - { - name = "darling_core"; - packageId = "darling_core 0.20.11"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn 2.0.106"; - } - ]; - - }; - "darling_macro 0.21.3" = rec { + "darling_macro" = rec { crateName = "darling_macro"; version = "0.21.3"; edition = "2021"; @@ -2009,7 +1921,7 @@ rec { dependencies = [ { name = "darling_core"; - packageId = "darling_core 0.21.3"; + packageId = "darling_core"; } { name = "quote"; @@ -2199,7 +2111,7 @@ rec { "std" = [ "alloc" "crypto-common/std" ]; "subtle" = [ "dep:subtle" ]; }; - resolvedDefaultFeatures = [ "alloc" "block-buffer" "core-api" "default" "std" ]; + resolvedDefaultFeatures = [ "block-buffer" "core-api" "default" ]; }; "displaydoc" = rec { crateName = "displaydoc"; @@ -2546,13 +2458,14 @@ rec { }; "fancy-regex" = rec { crateName = "fancy-regex"; - version = "0.13.0"; + version = "0.16.2"; edition = "2018"; - sha256 = "1wjbqjsdj8fkq6z2i9llq25iaqzd9f208vxnwg8mdbr2ba1lc7jk"; + sha256 = "0vy4c012f82xcg3gs068mq110zhsrnajh58fmq1jxr7vaijhb2wr"; libName = "fancy_regex"; authors = [ "Raph Levien " "Robin Stocker " + "Keith Hall " ]; dependencies = [ { @@ -3434,64 +3347,6 @@ rec { }; resolvedDefaultFeatures = [ "allocator-api2" "default" "default-hasher" "equivalent" "inline-more" "raw-entry" ]; }; - "headers" = rec { - crateName = "headers"; - version = "0.4.1"; - edition = "2018"; - sha256 = "1sr4zygaq1b2f0k7b5l8vx5vp05wvd82w7vpavgvr52xvdd4scdk"; - authors = [ - "Sean McArthur " - ]; - dependencies = [ - { - name = "base64"; - packageId = "base64"; - } - { - name = "bytes"; - packageId = "bytes"; - } - { - name = "headers-core"; - packageId = "headers-core"; - } - { - name = "http"; - packageId = "http"; - } - { - name = "httpdate"; - packageId = "httpdate"; - } - { - name = "mime"; - packageId = "mime"; - } - { - name = "sha1"; - packageId = "sha1"; - } - ]; - features = { - }; - }; - "headers-core" = rec { - crateName = "headers-core"; - version = "0.3.0"; - edition = "2015"; - sha256 = "1r1w80i2bhmyh8s5mjr2dz6baqlrm6cak6yvzm4jq96lacjs5d2l"; - libName = "headers_core"; - authors = [ - "Sean McArthur " - ]; - dependencies = [ - { - name = "http"; - packageId = "http"; - } - ]; - - }; "heck" = rec { crateName = "heck"; version = "0.5.0"; @@ -3767,104 +3622,6 @@ rec { }; resolvedDefaultFeatures = [ "client" "default" "http1" "http2" "server" ]; }; - "hyper-http-proxy" = rec { - crateName = "hyper-http-proxy"; - version = "1.1.0"; - edition = "2021"; - sha256 = "023w7w9si4zs5phfj30g3dkkk713ipix10dsqj5h443mwfhv1m3s"; - libName = "hyper_http_proxy"; - authors = [ - "MetalBear Tech LTD " - ]; - dependencies = [ - { - name = "bytes"; - packageId = "bytes"; - } - { - name = "futures-util"; - packageId = "futures-util"; - usesDefaultFeatures = false; - } - { - name = "headers"; - packageId = "headers"; - } - { - name = "http"; - packageId = "http"; - } - { - name = "hyper"; - packageId = "hyper"; - features = [ "client" ]; - } - { - name = "hyper-rustls"; - packageId = "hyper-rustls"; - optional = true; - usesDefaultFeatures = false; - } - { - name = "hyper-util"; - packageId = "hyper-util"; - features = [ "client" "client-legacy" "tokio" ]; - } - { - name = "pin-project-lite"; - packageId = "pin-project-lite"; - } - { - name = "rustls-native-certs"; - packageId = "rustls-native-certs 0.7.3"; - optional = true; - } - { - name = "tokio"; - packageId = "tokio"; - features = [ "io-std" "io-util" ]; - } - { - name = "tokio-rustls"; - packageId = "tokio-rustls"; - optional = true; - usesDefaultFeatures = false; - } - { - name = "tower-service"; - packageId = "tower-service"; - } - ]; - devDependencies = [ - { - name = "hyper"; - packageId = "hyper"; - features = [ "client" "http1" ]; - } - { - name = "hyper-util"; - packageId = "hyper-util"; - features = [ "client" "client-legacy" "http1" "tokio" ]; - } - { - name = "tokio"; - packageId = "tokio"; - features = [ "full" ]; - } - ]; - features = { - "__rustls" = [ "dep:hyper-rustls" "dep:tokio-rustls" "__tls" ]; - "default" = [ "default-tls" ]; - "default-tls" = [ "rustls-tls-native-roots" ]; - "hyper-tls" = [ "dep:hyper-tls" ]; - "native-tls" = [ "dep:native-tls" "tokio-native-tls" "hyper-tls" "__tls" ]; - "native-tls-vendored" = [ "native-tls" "tokio-native-tls?/vendored" ]; - "rustls-tls-native-roots" = [ "dep:rustls-native-certs" "__rustls" "hyper-rustls/rustls-native-certs" ]; - "rustls-tls-webpki-roots" = [ "dep:webpki-roots" "__rustls" "hyper-rustls/webpki-roots" ]; - "tokio-native-tls" = [ "dep:tokio-native-tls" ]; - }; - resolvedDefaultFeatures = [ "__rustls" "__tls" "rustls-tls-native-roots" ]; - }; "hyper-rustls" = rec { crateName = "hyper-rustls"; version = "0.27.7"; @@ -3899,7 +3656,7 @@ rec { } { name = "rustls-native-certs"; - packageId = "rustls-native-certs 0.8.1"; + packageId = "rustls-native-certs"; optional = true; } { @@ -4801,6 +4558,7 @@ rec { "default" = [ "use_std" ]; "use_std" = [ "use_alloc" "either/use_std" ]; }; + resolvedDefaultFeatures = [ "default" "use_alloc" "use_std" ]; }; "itertools 0.14.0" = rec { crateName = "itertools"; @@ -5022,10 +4780,10 @@ rec { }; "k8s-openapi" = rec { crateName = "k8s-openapi"; - version = "0.25.0"; + version = "0.26.0"; edition = "2021"; - links = "k8s-openapi-0.25.0"; - sha256 = "1cphvicl9hq4nbp2pbzdcvz9r0f9kzwbqzgp383hl6mfawds8q5a"; + links = "k8s-openapi-0.26.0"; + sha256 = "14m6i7g6w8lh1rnc19f2c31cvf2ia2vzmggsmzn5p4ba6bahcgyi"; libName = "k8s_openapi"; authors = [ "Arnav Singh " @@ -5064,10 +4822,10 @@ rec { features = { "default" = [ "std" ]; "earliest" = [ "v1_30" ]; - "latest" = [ "v1_33" ]; + "latest" = [ "v1_34" ]; "schemars" = [ "dep:schemars" ]; }; - resolvedDefaultFeatures = [ "schemars" "v1_33" ]; + resolvedDefaultFeatures = [ "schemars" "v1_34" ]; }; "k8s-version" = rec { crateName = "k8s-version"; @@ -5076,8 +4834,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "89f484ca4e86b565e083e9ad7573e21dbe29a3af"; - sha256 = "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c"; + rev = "be422046081be2fb9f37dfece660e007273f4e32"; + sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; }; libName = "k8s_version"; authors = [ @@ -5086,7 +4844,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling 0.21.3"; + packageId = "darling"; optional = true; } { @@ -5157,9 +4915,9 @@ rec { }; "kube" = rec { crateName = "kube"; - version = "1.1.0"; - edition = "2021"; - sha256 = "0lcz9sm83j06i77sp6idbq7y06hd64a1wwkj2g0w7x7a9dk9i3vp"; + version = "2.0.1"; + edition = "2024"; + sha256 = "0kh1m9w0nhd3fai4pcshl7z5rx0s83zvcxa51v12ql26d85vprs8"; authors = [ "clux " "Natalie Klestrup Röijezon " @@ -5230,9 +4988,9 @@ rec { }; "kube-client" = rec { crateName = "kube-client"; - version = "1.1.0"; - edition = "2021"; - sha256 = "13fv32vhljjxqgfmzciwanh7wsglzil2rsn81b8dx53fbfw7dckw"; + version = "2.0.1"; + edition = "2024"; + sha256 = "0dksaqk698bciyda6k8ss9lr92bqyb3pygddzna54asd31xdb1s9"; libName = "kube_client"; authors = [ "clux " @@ -5293,12 +5051,6 @@ rec { optional = true; features = [ "client" "http1" ]; } - { - name = "hyper-http-proxy"; - packageId = "hyper-http-proxy"; - optional = true; - usesDefaultFeatures = false; - } { name = "hyper-rustls"; packageId = "hyper-rustls"; @@ -5436,12 +5188,10 @@ rec { "home" = [ "dep:home" ]; "http-body" = [ "dep:http-body" ]; "http-body-util" = [ "dep:http-body-util" ]; - "http-proxy" = [ "hyper-http-proxy" ]; + "http-proxy" = [ "hyper-util/client-proxy" ]; "hyper" = [ "dep:hyper" ]; - "hyper-http-proxy" = [ "dep:hyper-http-proxy" ]; "hyper-openssl" = [ "dep:hyper-openssl" ]; "hyper-rustls" = [ "dep:hyper-rustls" ]; - "hyper-socks2" = [ "dep:hyper-socks2" ]; "hyper-timeout" = [ "dep:hyper-timeout" ]; "hyper-util" = [ "dep:hyper-util" ]; "jsonpatch" = [ "kube-core/jsonpatch" ]; @@ -5454,9 +5204,9 @@ rec { "pem" = [ "dep:pem" ]; "ring" = [ "hyper-rustls?/ring" ]; "rustls" = [ "dep:rustls" ]; - "rustls-tls" = [ "rustls" "hyper-rustls" "hyper-http-proxy?/rustls-tls-native-roots" ]; + "rustls-tls" = [ "rustls" "hyper-rustls" ]; "serde_yaml" = [ "dep:serde_yaml" ]; - "socks5" = [ "hyper-socks2" ]; + "socks5" = [ "hyper-util/client-proxy" ]; "tame-oauth" = [ "dep:tame-oauth" ]; "tokio" = [ "dep:tokio" ]; "tokio-tungstenite" = [ "dep:tokio-tungstenite" ]; @@ -5471,9 +5221,9 @@ rec { }; "kube-core" = rec { crateName = "kube-core"; - version = "1.1.0"; - edition = "2021"; - sha256 = "0q09yvzbh840mn3q66r73wjp4s60c3npw0bnlkr3207bbps6zig3"; + version = "2.0.1"; + edition = "2024"; + sha256 = "0wzfc1q78s5a3k1gfa6i8xjd9gmssbnw0f1mdsh23dvv1rvvnjwi"; libName = "kube_core"; authors = [ "clux " @@ -5553,9 +5303,9 @@ rec { }; "kube-derive" = rec { crateName = "kube-derive"; - version = "1.1.0"; - edition = "2021"; - sha256 = "15frbch851xpi5zv37szfhkcrgbfd4hfxzcw60l8clwpqg0wi7q7"; + version = "2.0.1"; + edition = "2024"; + sha256 = "1ljhw6xmrj1v8ni144bpxrifwzbrrn0qnl5kd8m7fdz15cjyiph3"; procMacro = true; libName = "kube_derive"; authors = [ @@ -5566,7 +5316,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling 0.20.11"; + packageId = "darling"; } { name = "proc-macro2"; @@ -5602,9 +5352,9 @@ rec { }; "kube-runtime" = rec { crateName = "kube-runtime"; - version = "1.1.0"; - edition = "2021"; - sha256 = "1p2021s6nlxwiivbk37lrjcki740070a3y5xzr465pzs8vljc4rg"; + version = "2.0.1"; + edition = "2024"; + sha256 = "1zg34fih2r72y9sr58gmgyjizbkl6jv0nc0hmf4wrib2npj4vska"; libName = "kube_runtime"; authors = [ "clux " @@ -6803,9 +6553,9 @@ rec { }; "opentelemetry" = rec { crateName = "opentelemetry"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "1rjjwlvhr7h01kl0768v9i7ng77l1axxfzbg29ancxbjrgj1dx5a"; + sha256 = "18629xsj4rsyiby9aj511q6wcw6s9m09gx3ymw1yjcvix1mcsjxq"; dependencies = [ { name = "futures-core"; @@ -6857,14 +6607,15 @@ rec { }; "opentelemetry-appender-tracing" = rec { crateName = "opentelemetry-appender-tracing"; - version = "0.30.1"; + version = "0.31.1"; edition = "2021"; - sha256 = "05pwdypdbg8sxkbafy8cr1cyjyy19w4r7s001rbpxm7slpn673z6"; + sha256 = "1hnwizzgfhpjfnvml638yy846py8hf2gl1n3p1igbk1srb2ilspg"; libName = "opentelemetry_appender_tracing"; dependencies = [ { name = "opentelemetry"; packageId = "opentelemetry"; + usesDefaultFeatures = false; features = [ "logs" ]; } { @@ -6910,9 +6661,9 @@ rec { }; "opentelemetry-http" = rec { crateName = "opentelemetry-http"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "0vf3d9p733ms312hcbhy14h32imf22bl7qw6i3mdp5rahjg67xjh"; + sha256 = "0pc5nw1ds8v8w0nvyall39m92v8m1xl1p3vwvxk6nkhrffdd19np"; libName = "opentelemetry_http"; dependencies = [ { @@ -6932,6 +6683,7 @@ rec { { name = "opentelemetry"; packageId = "opentelemetry"; + usesDefaultFeatures = false; features = [ "trace" ]; } { @@ -6939,7 +6691,6 @@ rec { packageId = "reqwest"; optional = true; usesDefaultFeatures = false; - features = [ "blocking" ]; } ]; features = { @@ -6947,16 +6698,17 @@ rec { "hyper" = [ "dep:http-body-util" "dep:hyper" "dep:hyper-util" "dep:tokio" ]; "internal-logs" = [ "opentelemetry/internal-logs" ]; "reqwest" = [ "dep:reqwest" ]; - "reqwest-rustls" = [ "reqwest" "reqwest/rustls-tls-native-roots" ]; - "reqwest-rustls-webpki-roots" = [ "reqwest" "reqwest/rustls-tls-webpki-roots" ]; + "reqwest-blocking" = [ "dep:reqwest" "reqwest/blocking" ]; + "reqwest-rustls" = [ "dep:reqwest" "reqwest/rustls-tls-native-roots" ]; + "reqwest-rustls-webpki-roots" = [ "dep:reqwest" "reqwest/rustls-tls-webpki-roots" ]; }; - resolvedDefaultFeatures = [ "default" "internal-logs" "reqwest" ]; + resolvedDefaultFeatures = [ "internal-logs" "reqwest" "reqwest-blocking" ]; }; "opentelemetry-otlp" = rec { crateName = "opentelemetry-otlp"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "0aw5amychdmwayfa0p724na1m7vd1jk9qlzw39riaxp08d56dvnv"; + sha256 = "1gv3h75z8c0p9b85mbq7f1rgsi18wip1xlfa6g82lkfa5pdnc8vs"; libName = "opentelemetry_otlp"; dependencies = [ { @@ -6975,6 +6727,7 @@ rec { name = "opentelemetry-http"; packageId = "opentelemetry-http"; optional = true; + usesDefaultFeatures = false; } { name = "opentelemetry-proto"; @@ -7023,6 +6776,12 @@ rec { } ]; devDependencies = [ + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk"; + usesDefaultFeatures = false; + features = [ "trace" "testing" ]; + } { name = "tokio"; packageId = "tokio"; @@ -7038,20 +6797,22 @@ rec { ]; features = { "default" = [ "http-proto" "reqwest-blocking-client" "trace" "metrics" "logs" "internal-logs" ]; + "flate2" = [ "dep:flate2" ]; "grpc-tonic" = [ "tonic" "prost" "http" "tokio" "opentelemetry-proto/gen-tonic" ]; + "gzip-http" = [ "flate2" ]; "gzip-tonic" = [ "tonic/gzip" ]; "http" = [ "dep:http" ]; "http-json" = [ "serde_json" "prost" "opentelemetry-http" "opentelemetry-proto/gen-tonic-messages" "opentelemetry-proto/with-serde" "http" "trace" "metrics" ]; "http-proto" = [ "prost" "opentelemetry-http" "opentelemetry-proto/gen-tonic-messages" "http" "trace" "metrics" ]; "hyper-client" = [ "opentelemetry-http/hyper" ]; "integration-testing" = [ "tonic" "prost" "tokio/full" "trace" "logs" ]; - "internal-logs" = [ "tracing" "opentelemetry/internal-logs" ]; + "internal-logs" = [ "tracing" "opentelemetry_sdk/internal-logs" "opentelemetry-http/internal-logs" ]; "logs" = [ "opentelemetry/logs" "opentelemetry_sdk/logs" "opentelemetry-proto/logs" ]; "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" "opentelemetry-proto/metrics" ]; "opentelemetry-http" = [ "dep:opentelemetry-http" ]; "prost" = [ "dep:prost" ]; "reqwest" = [ "dep:reqwest" ]; - "reqwest-blocking-client" = [ "reqwest/blocking" "opentelemetry-http/reqwest" ]; + "reqwest-blocking-client" = [ "reqwest/blocking" "opentelemetry-http/reqwest-blocking" ]; "reqwest-client" = [ "reqwest" "opentelemetry-http/reqwest" ]; "reqwest-rustls" = [ "reqwest" "opentelemetry-http/reqwest-rustls" ]; "reqwest-rustls-webpki-roots" = [ "reqwest" "opentelemetry-http/reqwest-rustls-webpki-roots" ]; @@ -7065,15 +6826,17 @@ rec { "tonic" = [ "dep:tonic" ]; "trace" = [ "opentelemetry/trace" "opentelemetry_sdk/trace" "opentelemetry-proto/trace" ]; "tracing" = [ "dep:tracing" ]; + "zstd" = [ "dep:zstd" ]; + "zstd-http" = [ "zstd" ]; "zstd-tonic" = [ "tonic/zstd" ]; }; resolvedDefaultFeatures = [ "default" "grpc-tonic" "gzip-tonic" "http" "http-proto" "internal-logs" "logs" "metrics" "opentelemetry-http" "prost" "reqwest" "reqwest-blocking-client" "tokio" "tonic" "trace" "tracing" ]; }; "opentelemetry-proto" = rec { crateName = "opentelemetry-proto"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "1p4d1s7p4z5a9xy4x4dsjifc3385v5q8wx780mdgw407cvbny11f"; + sha256 = "03xkjsjrsm7zkkx5gascqd9bg2z20wymm06l16cyxsp5dpq5s5x7"; libName = "opentelemetry_proto"; dependencies = [ { @@ -7096,36 +6859,51 @@ rec { packageId = "tonic"; optional = true; usesDefaultFeatures = false; - features = [ "codegen" "prost" ]; + features = [ "codegen" ]; + } + { + name = "tonic-prost"; + packageId = "tonic-prost"; + optional = true; + } + ]; + devDependencies = [ + { + name = "opentelemetry"; + packageId = "opentelemetry"; + usesDefaultFeatures = false; + features = [ "testing" ]; } ]; features = { "base64" = [ "dep:base64" ]; + "const-hex" = [ "dep:const-hex" ]; "default" = [ "full" ]; "full" = [ "gen-tonic" "trace" "logs" "metrics" "zpages" "with-serde" "internal-logs" ]; "gen-tonic" = [ "gen-tonic-messages" "tonic/channel" ]; - "gen-tonic-messages" = [ "tonic" "prost" ]; - "hex" = [ "dep:hex" ]; + "gen-tonic-messages" = [ "tonic" "tonic-prost" "prost" ]; "internal-logs" = [ "opentelemetry/internal-logs" ]; "logs" = [ "opentelemetry/logs" "opentelemetry_sdk/logs" ]; "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" ]; "prost" = [ "dep:prost" ]; "schemars" = [ "dep:schemars" ]; "serde" = [ "dep:serde" ]; + "serde_json" = [ "dep:serde_json" ]; "testing" = [ "opentelemetry/testing" ]; "tonic" = [ "dep:tonic" ]; + "tonic-prost" = [ "dep:tonic-prost" ]; "trace" = [ "opentelemetry/trace" "opentelemetry_sdk/trace" ]; "with-schemars" = [ "schemars" ]; - "with-serde" = [ "serde" "hex" "base64" ]; + "with-serde" = [ "serde" "const-hex" "base64" "serde_json" ]; "zpages" = [ "trace" ]; }; - resolvedDefaultFeatures = [ "gen-tonic" "gen-tonic-messages" "logs" "metrics" "prost" "tonic" "trace" ]; + resolvedDefaultFeatures = [ "gen-tonic" "gen-tonic-messages" "logs" "metrics" "prost" "tonic" "tonic-prost" "trace" ]; }; "opentelemetry-semantic-conventions" = rec { crateName = "opentelemetry-semantic-conventions"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "1hns9n0sh89cqp7rav7gf2a5nw65wv2m78sphms3cx54jsi5kl43"; + sha256 = "0in8plv2l2ar7anzi7lrbll0fjfvaymkg5vc5bnvibs1w3gjjbp6"; libName = "opentelemetry_semantic_conventions"; features = { }; @@ -7133,9 +6911,9 @@ rec { }; "opentelemetry_sdk" = rec { crateName = "opentelemetry_sdk"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "0jvsqhdrka9ppyfr3y6rhj4ai61wgrfk0970jqcd2cayksm49xhi"; + sha256 = "1gbjsggdxfpjbanjvaxa3nq32vfa37i3v13dvx4gsxhrk7sy8jp1"; dependencies = [ { name = "futures-channel"; @@ -7154,6 +6932,7 @@ rec { { name = "opentelemetry"; packageId = "opentelemetry"; + usesDefaultFeatures = false; } { name = "percent-encoding"; @@ -7167,11 +6946,6 @@ rec { usesDefaultFeatures = false; features = [ "std" "std_rng" "small_rng" "os_rng" "thread_rng" ]; } - { - name = "serde_json"; - packageId = "serde_json"; - optional = true; - } { name = "thiserror"; packageId = "thiserror 2.0.16"; @@ -7182,7 +6956,6 @@ rec { packageId = "tokio"; optional = true; usesDefaultFeatures = false; - features = [ "rt" "time" ]; } { name = "tokio-stream"; @@ -7197,17 +6970,17 @@ rec { "experimental_metrics_custom_reader" = [ "metrics" ]; "experimental_metrics_disable_name_validation" = [ "metrics" ]; "experimental_metrics_periodicreader_with_async_runtime" = [ "metrics" "experimental_async_runtime" ]; - "experimental_trace_batch_span_processor_with_async_runtime" = [ "trace" "experimental_async_runtime" ]; + "experimental_trace_batch_span_processor_with_async_runtime" = [ "tokio/sync" "trace" "experimental_async_runtime" ]; "http" = [ "dep:http" ]; "internal-logs" = [ "opentelemetry/internal-logs" ]; "jaeger_remote_sampler" = [ "trace" "opentelemetry-http" "http" "serde" "serde_json" "url" "experimental_async_runtime" ]; - "logs" = [ "opentelemetry/logs" "serde_json" ]; + "logs" = [ "opentelemetry/logs" ]; "metrics" = [ "opentelemetry/metrics" ]; "opentelemetry-http" = [ "dep:opentelemetry-http" ]; "percent-encoding" = [ "dep:percent-encoding" ]; "rand" = [ "dep:rand" ]; - "rt-tokio" = [ "tokio" "tokio-stream" "experimental_async_runtime" ]; - "rt-tokio-current-thread" = [ "tokio" "tokio-stream" "experimental_async_runtime" ]; + "rt-tokio" = [ "tokio/rt" "tokio/time" "tokio-stream" "experimental_async_runtime" ]; + "rt-tokio-current-thread" = [ "tokio/rt" "tokio/time" "tokio-stream" "experimental_async_runtime" ]; "serde" = [ "dep:serde" ]; "serde_json" = [ "dep:serde_json" ]; "spec_unstable_logs_enabled" = [ "logs" "opentelemetry/spec_unstable_logs_enabled" ]; @@ -7218,7 +6991,7 @@ rec { "trace" = [ "opentelemetry/trace" "rand" "percent-encoding" ]; "url" = [ "dep:url" ]; }; - resolvedDefaultFeatures = [ "default" "experimental_async_runtime" "internal-logs" "logs" "metrics" "percent-encoding" "rand" "rt-tokio" "serde_json" "spec_unstable_logs_enabled" "tokio" "tokio-stream" "trace" ]; + resolvedDefaultFeatures = [ "default" "experimental_async_runtime" "internal-logs" "logs" "metrics" "percent-encoding" "rand" "rt-tokio" "spec_unstable_logs_enabled" "tokio" "tokio-stream" "trace" ]; }; "ordered-float" = rec { crateName = "ordered-float"; @@ -7707,13 +7480,13 @@ rec { }; "product-config" = rec { crateName = "product-config"; - version = "0.7.0"; + version = "0.8.0"; edition = "2021"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/product-config.git"; - rev = "d61d4c7542c942da2ba0e9af4e5e3c3113abb0cf"; - sha256 = "0gjsm80g6r75pm3824dcyiz4ysq1ka4c1if6k1mjm9cnd5ym0gny"; + rev = "678fb7cf30af7d7b516c9a46698a1b661120d54a"; + sha256 = "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987"; }; libName = "product_config"; authors = [ @@ -7754,17 +7527,17 @@ rec { packageId = "snafu 0.8.7"; } { - name = "xml-rs"; - packageId = "xml-rs"; + name = "xml"; + packageId = "xml"; } ]; }; "prost" = rec { crateName = "prost"; - version = "0.13.5"; + version = "0.14.1"; edition = "2021"; - sha256 = "1r8yi6zxxwv9gq5ia9p55nspgwmchs94sqpp64x33v5k3njgm5i7"; + sha256 = "0gazm7m6yqvksw0jilhrdd4rzbf0br5wgfmdb1mwhcrx7ndvscbj"; authors = [ "Dan Burkert " "Lucio Franco " @@ -7786,15 +7559,14 @@ rec { features = { "default" = [ "derive" "std" ]; "derive" = [ "dep:prost-derive" ]; - "prost-derive" = [ "derive" ]; }; resolvedDefaultFeatures = [ "default" "derive" "std" ]; }; "prost-derive" = rec { crateName = "prost-derive"; - version = "0.13.5"; + version = "0.14.1"; edition = "2021"; - sha256 = "0kgc9gbzsa998xixblfi3kfydka64zqf6rmpm53b761cjxbxfmla"; + sha256 = "0994czxnv69jnchcrr25rk4vp77cs0kzagc0ldxsd2f3mw7nj84i"; procMacro = true; libName = "prost_derive"; authors = [ @@ -7810,7 +7582,7 @@ rec { } { name = "itertools"; - packageId = "itertools 0.14.0"; + packageId = "itertools 0.13.0"; } { name = "proc-macro2"; @@ -7976,6 +7748,49 @@ rec { }; resolvedDefaultFeatures = [ "default" "userspace" ]; }; + "ref-cast" = rec { + crateName = "ref-cast"; + version = "1.0.25"; + edition = "2021"; + sha256 = "0zdzc34qjva9xxgs889z5iz787g81hznk12zbk4g2xkgwq530m7k"; + libName = "ref_cast"; + authors = [ + "David Tolnay " + ]; + dependencies = [ + { + name = "ref-cast-impl"; + packageId = "ref-cast-impl"; + } + ]; + + }; + "ref-cast-impl" = rec { + crateName = "ref-cast-impl"; + version = "1.0.25"; + edition = "2021"; + sha256 = "1nkhn1fklmn342z5c4mzfzlxddv3x8yhxwwk02cj06djvh36065p"; + procMacro = true; + libName = "ref_cast_impl"; + authors = [ + "David Tolnay " + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.106"; + } + ]; + + }; "regex" = rec { crateName = "regex"; version = "1.11.2"; @@ -8675,41 +8490,7 @@ rec { }; resolvedDefaultFeatures = [ "log" "logging" "ring" "std" "tls12" ]; }; - "rustls-native-certs 0.7.3" = rec { - crateName = "rustls-native-certs"; - version = "0.7.3"; - edition = "2021"; - sha256 = "1r9ib5gwkfci2wbqnbh44nigvrfgxs4n1x89js82w97dxsab7gz5"; - libName = "rustls_native_certs"; - dependencies = [ - { - name = "openssl-probe"; - packageId = "openssl-probe"; - target = { target, features }: ((target."unix" or false) && (!("macos" == target."os" or null))); - } - { - name = "rustls-pemfile"; - packageId = "rustls-pemfile"; - } - { - name = "rustls-pki-types"; - packageId = "rustls-pki-types"; - rename = "pki-types"; - } - { - name = "schannel"; - packageId = "schannel"; - target = { target, features }: (target."windows" or false); - } - { - name = "security-framework"; - packageId = "security-framework 2.11.1"; - target = { target, features }: ("macos" == target."os" or null); - } - ]; - - }; - "rustls-native-certs 0.8.1" = rec { + "rustls-native-certs" = rec { crateName = "rustls-native-certs"; version = "0.8.1"; edition = "2021"; @@ -8867,9 +8648,9 @@ rec { }; "schemars" = rec { crateName = "schemars"; - version = "0.8.22"; + version = "1.0.4"; edition = "2021"; - sha256 = "05an9nbi18ynyxv1rjmwbg6j08j0496hd64mjggh53mwp3hjmgrz"; + sha256 = "1l7w773jfk6mz0v8wpahp60aslksjijlbm65ysi4y5mwj520rll2"; authors = [ "Graham Esau " ]; @@ -8878,6 +8659,10 @@ rec { name = "dyn-clone"; packageId = "dyn-clone"; } + { + name = "ref-cast"; + packageId = "ref-cast"; + } { name = "schemars_derive"; packageId = "schemars_derive"; @@ -8886,56 +8671,64 @@ rec { { name = "serde"; packageId = "serde"; - features = [ "derive" ]; + usesDefaultFeatures = false; + features = [ "alloc" ]; } { name = "serde_json"; packageId = "serde_json"; + usesDefaultFeatures = false; + features = [ "alloc" ]; } { name = "url"; packageId = "url"; + rename = "url2"; optional = true; usesDefaultFeatures = false; } ]; + devDependencies = [ + { + name = "serde"; + packageId = "serde"; + features = [ "derive" ]; + } + { + name = "url"; + packageId = "url"; + rename = "url2"; + usesDefaultFeatures = false; + features = [ "serde" "std" ]; + } + ]; features = { - "arrayvec" = [ "arrayvec05" ]; - "arrayvec05" = [ "dep:arrayvec05" ]; "arrayvec07" = [ "dep:arrayvec07" ]; - "bigdecimal" = [ "bigdecimal03" ]; - "bigdecimal03" = [ "dep:bigdecimal03" ]; "bigdecimal04" = [ "dep:bigdecimal04" ]; - "bytes" = [ "dep:bytes" ]; - "chrono" = [ "dep:chrono" ]; - "default" = [ "derive" ]; + "bytes1" = [ "dep:bytes1" ]; + "chrono04" = [ "dep:chrono04" ]; + "default" = [ "derive" "std" ]; "derive" = [ "schemars_derive" ]; - "derive_json_schema" = [ "impl_json_schema" ]; - "either" = [ "dep:either" ]; - "enumset" = [ "dep:enumset" ]; - "impl_json_schema" = [ "derive" ]; - "indexmap" = [ "dep:indexmap" ]; - "indexmap1" = [ "indexmap" ]; + "either1" = [ "dep:either1" ]; "indexmap2" = [ "dep:indexmap2" ]; - "preserve_order" = [ "indexmap" ]; + "jiff02" = [ "dep:jiff02" ]; + "preserve_order" = [ "serde_json/preserve_order" ]; "raw_value" = [ "serde_json/raw_value" ]; - "rust_decimal" = [ "dep:rust_decimal" ]; + "rust_decimal1" = [ "dep:rust_decimal1" ]; "schemars_derive" = [ "dep:schemars_derive" ]; - "semver" = [ "dep:semver" ]; - "smallvec" = [ "dep:smallvec" ]; - "smol_str" = [ "dep:smol_str" ]; - "url" = [ "dep:url" ]; - "uuid" = [ "uuid08" ]; - "uuid08" = [ "dep:uuid08" ]; + "semver1" = [ "dep:semver1" ]; + "smallvec1" = [ "dep:smallvec1" ]; + "smol_str02" = [ "dep:smol_str02" ]; + "url2" = [ "dep:url2" ]; "uuid1" = [ "dep:uuid1" ]; }; - resolvedDefaultFeatures = [ "default" "derive" "schemars_derive" "url" ]; + resolvedDefaultFeatures = [ "default" "derive" "schemars_derive" "std" "url2" ]; }; "schemars_derive" = rec { crateName = "schemars_derive"; - version = "0.8.22"; + version = "1.0.4"; edition = "2021"; - sha256 = "0kakyzrp5801s4i043l4ilv96lzimnlh01pap958h66n99w6bqij"; + sha256 = "107sprdfa5kacifxq41qv5ccv7a78msxyr8ikz0qs4qxdlwj1l1k"; procMacro = true; authors = [ "Graham Esau " @@ -8953,6 +8746,12 @@ rec { name = "serde_derive_internals"; packageId = "serde_derive_internals"; } + { + name = "syn"; + packageId = "syn 2.0.106"; + } + ]; + devDependencies = [ { name = "syn"; packageId = "syn 2.0.106"; @@ -9384,45 +9183,6 @@ 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"; @@ -10023,13 +9783,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.96.0"; + version = "0.99.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "89f484ca4e86b565e083e9ad7573e21dbe29a3af"; - sha256 = "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c"; + rev = "be422046081be2fb9f37dfece660e007273f4e32"; + sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; }; libName = "stackable_operator"; authors = [ @@ -10088,7 +9848,7 @@ rec { name = "k8s-openapi"; packageId = "k8s-openapi"; usesDefaultFeatures = false; - features = [ "schemars" "v1_33" ]; + features = [ "schemars" "v1_34" ]; } { name = "kube"; @@ -10107,7 +9867,7 @@ rec { { name = "schemars"; packageId = "schemars"; - features = [ "url" ]; + features = [ "url2" ]; } { name = "semver"; @@ -10137,6 +9897,7 @@ rec { { name = "stackable-shared"; packageId = "stackable-shared"; + features = [ "chrono" "time" ]; } { name = "stackable-telemetry"; @@ -10180,14 +9941,14 @@ rec { ]; features = { "certs" = [ "dep:stackable-certs" ]; - "default" = [ "telemetry" "versioned" ]; - "full" = [ "certs" "telemetry" "versioned" "time" "webhook" ]; + "default" = [ "telemetry" "versioned" "clap" ]; + "full" = [ "certs" "telemetry" "versioned" "time" "webhook" "clap" ]; "telemetry" = [ "dep:stackable-telemetry" ]; "time" = [ "stackable-shared/time" ]; "versioned" = [ "dep:stackable-versioned" ]; "webhook" = [ "dep:stackable-webhook" ]; }; - resolvedDefaultFeatures = [ "default" "telemetry" "versioned" ]; + resolvedDefaultFeatures = [ "clap" "default" "telemetry" "versioned" ]; }; "stackable-operator-derive" = rec { crateName = "stackable-operator-derive"; @@ -10196,8 +9957,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "89f484ca4e86b565e083e9ad7573e21dbe29a3af"; - sha256 = "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c"; + rev = "be422046081be2fb9f37dfece660e007273f4e32"; + sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -10207,7 +9968,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling 0.21.3"; + packageId = "darling"; } { name = "proc-macro2"; @@ -10226,24 +9987,30 @@ rec { }; "stackable-shared" = rec { crateName = "stackable-shared"; - version = "0.0.2"; + version = "0.0.3"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "89f484ca4e86b565e083e9ad7573e21dbe29a3af"; - sha256 = "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c"; + rev = "be422046081be2fb9f37dfece660e007273f4e32"; + sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; }; libName = "stackable_shared"; authors = [ "Stackable GmbH " ]; dependencies = [ + { + name = "chrono"; + packageId = "chrono"; + optional = true; + usesDefaultFeatures = false; + } { name = "k8s-openapi"; packageId = "k8s-openapi"; usesDefaultFeatures = false; - features = [ "schemars" "v1_33" ]; + features = [ "schemars" "v1_34" ]; } { name = "kube"; @@ -10254,7 +10021,7 @@ rec { { name = "schemars"; packageId = "schemars"; - features = [ "url" ]; + features = [ "url2" ]; } { name = "semver"; @@ -10289,15 +10056,16 @@ rec { name = "k8s-openapi"; packageId = "k8s-openapi"; usesDefaultFeatures = false; - features = [ "schemars" "v1_33" ]; + features = [ "schemars" "v1_34" ]; } ]; features = { + "chrono" = [ "dep:chrono" ]; "default" = [ "time" ]; - "full" = [ "time" ]; + "full" = [ "chrono" "time" ]; "time" = [ "dep:time" ]; }; - resolvedDefaultFeatures = [ "default" "time" ]; + resolvedDefaultFeatures = [ "chrono" "default" "time" ]; }; "stackable-telemetry" = rec { crateName = "stackable-telemetry"; @@ -10306,8 +10074,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "89f484ca4e86b565e083e9ad7573e21dbe29a3af"; - sha256 = "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c"; + rev = "be422046081be2fb9f37dfece660e007273f4e32"; + sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; }; libName = "stackable_telemetry"; authors = [ @@ -10411,13 +10179,13 @@ rec { }; "stackable-versioned" = rec { crateName = "stackable-versioned"; - version = "0.8.1"; + version = "0.8.2"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "89f484ca4e86b565e083e9ad7573e21dbe29a3af"; - sha256 = "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c"; + rev = "be422046081be2fb9f37dfece660e007273f4e32"; + sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; }; libName = "stackable_versioned"; authors = [ @@ -10427,7 +10195,7 @@ rec { { name = "schemars"; packageId = "schemars"; - features = [ "url" ]; + features = [ "url2" ]; } { name = "serde"; @@ -10455,13 +10223,13 @@ rec { }; "stackable-versioned-macros" = rec { crateName = "stackable-versioned-macros"; - version = "0.8.1"; + version = "0.8.2"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "89f484ca4e86b565e083e9ad7573e21dbe29a3af"; - sha256 = "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c"; + rev = "be422046081be2fb9f37dfece660e007273f4e32"; + sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -10475,7 +10243,7 @@ rec { } { name = "darling"; - packageId = "darling 0.21.3"; + packageId = "darling"; } { name = "indoc"; @@ -10489,7 +10257,7 @@ rec { name = "k8s-openapi"; packageId = "k8s-openapi"; usesDefaultFeatures = false; - features = [ "schemars" "v1_33" ]; + features = [ "schemars" "v1_34" ]; } { name = "k8s-version"; @@ -11428,9 +11196,9 @@ rec { }; "tonic" = rec { crateName = "tonic"; - version = "0.13.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "1acvnjzh61y0m829mijj6z2nzqnwshdsnmbcl2g4spw3bahinn3y"; + sha256 = "00vjbvccmyzjbi0j0ydi1l8psd0lb1nb4p8qzrdxzxz9ihc16xpb"; authors = [ "Lucio Franco " ]; @@ -11491,11 +11259,8 @@ rec { packageId = "pin-project"; } { - name = "prost"; - packageId = "prost"; - optional = true; - usesDefaultFeatures = false; - features = [ "std" ]; + name = "sync_wrapper"; + packageId = "sync_wrapper"; } { name = "tokio"; @@ -11536,27 +11301,53 @@ rec { { name = "tower"; packageId = "tower"; - features = [ "full" ]; + features = [ "load-shed" "timeout" ]; } ]; features = { - "_tls-any" = [ "dep:tokio-rustls" "dep:tokio" "tokio?/rt" "tokio?/macros" ]; - "channel" = [ "dep:hyper" "hyper?/client" "dep:hyper-util" "hyper-util?/client-legacy" "dep:tower" "tower?/balance" "tower?/buffer" "tower?/discover" "tower?/limit" "tower?/util" "dep:tokio" "tokio?/time" "dep:hyper-timeout" ]; + "_tls-any" = [ "dep:tokio" "tokio?/rt" "tokio?/macros" "tls-connect-info" ]; + "channel" = [ "dep:hyper" "hyper?/client" "dep:hyper-util" "hyper-util?/client-legacy" "dep:tower" "tower?/balance" "tower?/buffer" "tower?/discover" "tower?/limit" "tower?/load-shed" "tower?/util" "dep:tokio" "tokio?/time" "dep:hyper-timeout" ]; "codegen" = [ "dep:async-trait" ]; - "default" = [ "router" "transport" "codegen" "prost" ]; + "default" = [ "router" "transport" "codegen" ]; "deflate" = [ "dep:flate2" ]; "gzip" = [ "dep:flate2" ]; - "prost" = [ "dep:prost" ]; "router" = [ "dep:axum" "dep:tower" "tower?/util" ]; - "server" = [ "dep:h2" "dep:hyper" "hyper?/server" "dep:hyper-util" "hyper-util?/service" "hyper-util?/server-auto" "dep:socket2" "dep:tokio" "tokio?/macros" "tokio?/net" "tokio?/time" "tokio-stream/net" "dep:tower" "tower?/util" "tower?/limit" ]; + "server" = [ "dep:h2" "dep:hyper" "hyper?/server" "dep:hyper-util" "hyper-util?/service" "hyper-util?/server-auto" "dep:socket2" "dep:tokio" "tokio?/macros" "tokio?/net" "tokio?/time" "tokio-stream/net" "dep:tower" "tower?/util" "tower?/limit" "tower?/load-shed" ]; "tls-aws-lc" = [ "_tls-any" "tokio-rustls/aws-lc-rs" ]; + "tls-connect-info" = [ "dep:tokio-rustls" ]; "tls-native-roots" = [ "_tls-any" "channel" "dep:rustls-native-certs" ]; "tls-ring" = [ "_tls-any" "tokio-rustls/ring" ]; "tls-webpki-roots" = [ "_tls-any" "channel" "dep:webpki-roots" ]; "transport" = [ "server" "channel" ]; "zstd" = [ "dep:zstd" ]; }; - resolvedDefaultFeatures = [ "channel" "codegen" "gzip" "prost" ]; + resolvedDefaultFeatures = [ "channel" "codegen" "gzip" ]; + }; + "tonic-prost" = rec { + crateName = "tonic-prost"; + version = "0.14.2"; + edition = "2021"; + sha256 = "0rxamvbxxl7x673g97pvhr5gag2czrj3sjq2xy3js9g1djnm1gb6"; + libName = "tonic_prost"; + authors = [ + "Lucio Franco " + ]; + dependencies = [ + { + name = "bytes"; + packageId = "bytes"; + } + { + name = "prost"; + packageId = "prost"; + } + { + name = "tonic"; + packageId = "tonic"; + usesDefaultFeatures = false; + } + ]; + }; "tower" = rec { crateName = "tower"; @@ -11675,7 +11466,7 @@ rec { "tracing" = [ "dep:tracing" ]; "util" = [ "__common" "futures-util" "pin-project-lite" "sync_wrapper" ]; }; - resolvedDefaultFeatures = [ "__common" "balance" "buffer" "discover" "filter" "futures-core" "futures-util" "indexmap" "limit" "load" "log" "make" "pin-project-lite" "ready-cache" "retry" "slab" "sync_wrapper" "timeout" "tokio" "tokio-util" "tracing" "util" ]; + resolvedDefaultFeatures = [ "__common" "balance" "buffer" "discover" "filter" "futures-core" "futures-util" "indexmap" "limit" "load" "load-shed" "log" "make" "pin-project-lite" "ready-cache" "retry" "slab" "sync_wrapper" "timeout" "tokio" "tokio-util" "tracing" "util" ]; }; "tower-http" = rec { crateName = "tower-http"; @@ -12010,9 +11801,9 @@ rec { }; "tracing-opentelemetry" = rec { crateName = "tracing-opentelemetry"; - version = "0.31.0"; + version = "0.32.0"; edition = "2021"; - sha256 = "171scb8d5ynxvnyvq7lm9wzn4fzk0jf124v49p8d01wmydcmkkyx"; + sha256 = "13hvpfljbxi8id3j5pmzn4rhc4nkw68pfp57mf4q1n1x8rc5cvhy"; libName = "tracing_opentelemetry"; dependencies = [ { @@ -12020,10 +11811,6 @@ rec { packageId = "js-sys"; target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); } - { - name = "once_cell"; - packageId = "once_cell"; - } { name = "opentelemetry"; packageId = "opentelemetry"; @@ -12036,11 +11823,20 @@ rec { usesDefaultFeatures = false; features = [ "trace" ]; } + { + name = "rustversion"; + packageId = "rustversion"; + } { name = "smallvec"; packageId = "smallvec"; optional = true; } + { + name = "thiserror"; + packageId = "thiserror 2.0.16"; + usesDefaultFeatures = false; + } { name = "tracing"; packageId = "tracing"; @@ -12079,7 +11875,7 @@ rec { name = "opentelemetry_sdk"; packageId = "opentelemetry_sdk"; usesDefaultFeatures = false; - features = [ "trace" "rt-tokio" "experimental_metrics_custom_reader" ]; + features = [ "trace" "rt-tokio" "experimental_metrics_custom_reader" "testing" ]; } { name = "tracing"; @@ -12095,14 +11891,10 @@ rec { } ]; features = { - "async-trait" = [ "dep:async-trait" ]; "default" = [ "tracing-log" "metrics" ]; - "futures-util" = [ "dep:futures-util" ]; "lazy_static" = [ "dep:lazy_static" ]; "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" "smallvec" ]; "smallvec" = [ "dep:smallvec" ]; - "thiserror" = [ "dep:thiserror" ]; - "thiserror-1" = [ "dep:thiserror-1" ]; "tracing-log" = [ "dep:tracing-log" ]; }; resolvedDefaultFeatures = [ "default" "metrics" "smallvec" "tracing-log" ]; @@ -15402,15 +15194,14 @@ rec { }; resolvedDefaultFeatures = [ "default" "unsupported" ]; }; - "xml-rs" = rec { - crateName = "xml-rs"; - version = "0.8.27"; + "xml" = rec { + crateName = "xml"; + version = "1.0.0"; edition = "2021"; - crateBin = []; - sha256 = "1irplg223x6w3lvj0yig6czbiwci06495wc9xg3660kh6cvl1n3g"; - libName = "xml"; + sha256 = "0db4s3j50gkqkwpmyz9mfgrvifwgb4mzihkgnrm8hgg77alf1rkj"; authors = [ "Vladimir Matveev " + "Kornel (https://github.com/kornelski)" ]; }; diff --git a/Cargo.toml b/Cargo.toml index 7650e5d7..0f963d47 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,8 +10,8 @@ edition = "2021" repository = "https://github.com/stackabletech/opa-operator" [workspace.dependencies] -product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.7.0" } -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["telemetry", "versioned"], tag = "stackable-operator-0.96.0" } +product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.8.0" } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["telemetry", "versioned"], tag = "stackable-operator-0.99.0" } krb5 = { git = "https://github.com/stackabletech/krb5-rs.git", tag = "v0.1.0" } anyhow = "1.0" diff --git a/crate-hashes.json b/crate-hashes.json index 30a54dc0..b569c56a 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,12 +1,12 @@ { "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5-sys@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#k8s-version@0.1.3": "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#stackable-operator-derive@0.3.1": "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#stackable-operator@0.96.0": "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#stackable-shared@0.0.2": "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#stackable-telemetry@0.6.1": "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#stackable-versioned-macros@0.8.1": "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.96.0#stackable-versioned@0.8.1": "05xhfz0bd09095ljkaj950r80bchdb202d8nka95cq356y4wha4c", - "git+https://github.com/stackabletech/product-config.git?tag=0.7.0#product-config@0.7.0": "0gjsm80g6r75pm3824dcyiz4ysq1ka4c1if6k1mjm9cnd5ym0gny" + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#k8s-version@0.1.3": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-operator-derive@0.3.1": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-operator@0.99.0": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-shared@0.0.3": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-telemetry@0.6.1": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-versioned-macros@0.8.2": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-versioned@0.8.2": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", + "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/opa-operator/crds/crds.yaml b/deploy/helm/opa-operator/crds/crds.yaml index e03f1f0b..13deb8b5 100644 --- a/deploy/helm/opa-operator/crds/crds.yaml +++ b/deploy/helm/opa-operator/crds/crds.yaml @@ -41,14 +41,18 @@ spec: * external-stable: Use a LoadBalancer service - This is a temporary solution with the goal to keep yaml manifests forward compatible. In the future, this setting will control which ListenerClass will be used to expose the service, and ListenerClass names will stay the same, allowing for a non-breaking change. + This is a temporary solution with the goal to keep yaml manifests forward compatible. + In the future, this setting will control which ListenerClass + will be used to expose the service, and ListenerClass names will stay the same, allowing for a non-breaking change. enum: - cluster-internal - external-unstable - external-stable type: string userInfo: - description: Configures how to fetch additional metadata about users (such as group memberships) from an external directory service. + description: |- + Configures how to fetch additional metadata about users (such as group memberships) + from an external directory service. nullable: true properties: backend: @@ -77,7 +81,8 @@ spec: description: |- Attributes that groups must have to be returned. - These fields will be spliced into an LDAP Search Query, so wildcards can be used, but characters with a special meaning in LDAP will need to be escaped. + These fields will be spliced into an LDAP Search Query, so wildcards can be used, + but characters with a special meaning in LDAP will need to be escaped. type: object baseDistinguishedName: description: The root Distinguished Name (DN) where users and groups are located. @@ -121,10 +126,15 @@ spec: - secretClass properties: secretClass: - description: Name of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) which will provide the CA certificate. Note that a SecretClass does not need to have a key but can also work with just a CA certificate, so if you got provided with a CA cert but don't have access to the key you can still use this method. + description: |- + Name of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) which will provide the CA certificate. + Note that a SecretClass does not need to have a key but can also work with just a CA certificate, + so if you got provided with a CA cert but don't have access to the key you can still use this method. type: string webPki: - description: Use TLS and the CA certificates trusted by the common web browsers to verify the server. This can be useful when you e.g. use public AWS S3 or other public available services. + description: |- + Use TLS and the CA certificates trusted by the common web browsers to verify the server. + This can be useful when you e.g. use public AWS S3 or other public available services. type: object type: object required: @@ -144,13 +154,15 @@ spec: properties: clientCredentialsSecret: description: |- - Name of a Secret that contains client credentials of an Entra account with permissions `User.ReadAll` and `GroupMemberShip.ReadAll`. + Name of a Secret that contains client credentials of an Entra account with + permissions `User.ReadAll` and `GroupMemberShip.ReadAll`. Must contain the fields `clientId` and `clientSecret`. type: string port: description: Port of the identity provider. If TLS is used defaults to `443`, otherwise to `80`. format: uint16 + maximum: 65535.0 minimum: 0.0 nullable: true type: integer @@ -189,10 +201,15 @@ spec: - secretClass properties: secretClass: - description: Name of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) which will provide the CA certificate. Note that a SecretClass does not need to have a key but can also work with just a CA certificate, so if you got provided with a CA cert but don't have access to the key you can still use this method. + description: |- + Name of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) which will provide the CA certificate. + Note that a SecretClass does not need to have a key but can also work with just a CA certificate, + so if you got provided with a CA cert but don't have access to the key you can still use this method. type: string webPki: - description: Use TLS and the CA certificates trusted by the common web browsers to verify the server. This can be useful when you e.g. use public AWS S3 or other public available services. + description: |- + Use TLS and the CA certificates trusted by the common web browsers to verify the server. + This can be useful when you e.g. use public AWS S3 or other public available services. type: object type: object required: @@ -215,7 +232,9 @@ spec: - tenantId type: object experimentalXfscAas: - description: Backend that fetches user information from the Gaia-X Cross Federation Services Components (XFSC) Authentication & Authorization Service. + description: |- + Backend that fetches user information from the Gaia-X + Cross Federation Services Components (XFSC) Authentication & Authorization Service. properties: hostname: description: Hostname of the identity provider, e.g. `my.aas.corp`. @@ -224,6 +243,7 @@ spec: default: 5000 description: Port of the identity provider. Defaults to port 5000. format: uint16 + maximum: 65535.0 minimum: 0.0 type: integer required: @@ -250,6 +270,7 @@ spec: port: description: Port of the identity provider. If TLS is used defaults to `443`, otherwise to `80`. format: uint16 + maximum: 65535.0 minimum: 0.0 nullable: true type: integer @@ -284,10 +305,15 @@ spec: - secretClass properties: secretClass: - description: Name of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) which will provide the CA certificate. Note that a SecretClass does not need to have a key but can also work with just a CA certificate, so if you got provided with a CA cert but don't have access to the key you can still use this method. + description: |- + Name of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) which will provide the CA certificate. + Note that a SecretClass does not need to have a key but can also work with just a CA certificate, + so if you got provided with a CA cert but don't have access to the key you can still use this method. type: string webPki: - description: Use TLS and the CA certificates trusted by the common web browsers to verify the server. This can be useful when you e.g. use public AWS S3 or other public available services. + description: |- + Use TLS and the CA certificates trusted by the common web browsers to verify the server. + This can be useful when you e.g. use public AWS S3 or other public available services. type: object type: object required: @@ -322,7 +348,9 @@ spec: type: object type: object vectorAggregatorConfigMapName: - description: Name of the Vector aggregator discovery ConfigMap. It must contain the key `ADDRESS` with the address of the Vector aggregator. + description: |- + Name of the Vector aggregator discovery ConfigMap. + It must contain the key `ADDRESS` with the address of the Vector aggregator. nullable: true type: string type: object @@ -334,11 +362,22 @@ spec: properties: reconciliationPaused: default: false - description: Flag to stop cluster reconciliation by the operator. This means that all changes in the custom resource spec are ignored until this flag is set to false or removed. The operator will however still watch the deployed resources at the time and update the custom resource status field. If applied at the same time with `stopped`, `reconciliationPaused` will take precedence over `stopped` and stop the reconciliation immediately. + description: |- + Flag to stop cluster reconciliation by the operator. This means that all changes in the + custom resource spec are ignored until this flag is set to false or removed. The operator + will however still watch the deployed resources at the time and update the custom resource + status field. + If applied at the same time with `stopped`, `reconciliationPaused` will take precedence over + `stopped` and stop the reconciliation immediately. type: boolean stopped: default: false - description: Flag to stop the cluster. This means all deployed resources (e.g. Services, StatefulSets, ConfigMaps) are kept but all deployed Pods (e.g. replicas from a StatefulSet) are scaled to 0 and therefore stopped and removed. If applied at the same time with `reconciliationPaused`, the latter will pause reconciliation and `stopped` will take no effect until `reconciliationPaused` is set to false or removed. + description: |- + Flag to stop the cluster. This means all deployed resources (e.g. Services, StatefulSets, + ConfigMaps) are kept but all deployed Pods (e.g. replicas from a StatefulSet) are scaled to 0 + and therefore stopped and removed. + If applied at the same time with `reconciliationPaused`, the latter will pause reconciliation + and `stopped` will take no effect until `reconciliationPaused` is set to false or removed. type: boolean type: object image: @@ -351,7 +390,9 @@ spec: description: The OPA image to use properties: custom: - description: Overwrite the docker image. Specify the full docker image name, e.g. `oci.stackable.tech/sdp/superset:1.4.1-stackable2.1.0` + description: |- + Overwrite the docker image. + Specify the full docker image name, e.g. `oci.stackable.tech/sdp/superset:1.4.1-stackable2.1.0` type: string productVersion: description: Version of the product, e.g. `1.4.1`. @@ -382,7 +423,10 @@ spec: nullable: true type: string stackableVersion: - description: Stackable version of the product, e.g. `23.4`, `23.4.1` or `0.0.0-dev`. If not specified, the operator will use its own version, e.g. `23.4.1`. When using a nightly operator or a pr version, it will use the nightly `0.0.0-dev` image. + description: |- + Stackable version of the product, e.g. `23.4`, `23.4.1` or `0.0.0-dev`. + If not specified, the operator will use its own version, e.g. `23.4.1`. + When using a nightly operator or a pr version, it will use the nightly `0.0.0-dev` image. nullable: true type: string type: object @@ -403,7 +447,9 @@ spec: nodeSelector: null podAffinity: null podAntiAffinity: null - description: These configuration settings control [Pod placement](https://docs.stackable.tech/home/nightly/concepts/operations/pod_placement). + description: |- + These configuration settings control + [Pod placement](https://docs.stackable.tech/home/nightly/concepts/operations/pod_placement). properties: nodeAffinity: description: Same as the `spec.affinity.nodeAffinity` field on the Pod, see the [Kubernetes docs](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node) @@ -450,7 +496,9 @@ spec: nullable: true properties: level: - description: The log level threshold. Log events with a lower log level are discarded. + description: |- + The log level threshold. + Log events with a lower log level are discarded. enum: - TRACE - DEBUG @@ -459,6 +507,7 @@ spec: - ERROR - FATAL - NONE + - null nullable: true type: string type: object @@ -475,7 +524,9 @@ spec: nullable: true properties: level: - description: The log level threshold. Log events with a lower log level are discarded. + description: |- + The log level threshold. + Log events with a lower log level are discarded. enum: - TRACE - DEBUG @@ -484,6 +535,7 @@ spec: - ERROR - FATAL - NONE + - null nullable: true type: string type: object @@ -492,7 +544,9 @@ spec: description: Configuration of a logger properties: level: - description: The log level threshold. Log events with a lower log level are discarded. + description: |- + The log level threshold. + Log events with a lower log level are discarded. enum: - TRACE - DEBUG @@ -501,6 +555,7 @@ spec: - ERROR - FATAL - NONE + - null nullable: true type: string type: object @@ -524,7 +579,9 @@ spec: limit: null runtimeLimits: {} storage: {} - description: Resource usage is configured here, this includes CPU usage, memory usage and disk storage usage, if this role needs any. + description: |- + Resource usage is configured here, this includes CPU usage, memory usage and disk storage + usage, if this role needs any. properties: cpu: default: @@ -532,18 +589,32 @@ spec: min: null properties: max: - description: The maximum amount of CPU cores that can be requested by Pods. Equivalent to the `limit` for Pod resource configuration. Cores are specified either as a decimal point number or as milli units. For example:`1.5` will be 1.5 cores, also written as `1500m`. + description: |- + The maximum amount of CPU cores that can be requested by Pods. + Equivalent to the `limit` for Pod resource configuration. + Cores are specified either as a decimal point number or as milli units. + For example:`1.5` will be 1.5 cores, also written as `1500m`. nullable: true type: string min: - description: The minimal amount of CPU cores that Pods need to run. Equivalent to the `request` for Pod resource configuration. Cores are specified either as a decimal point number or as milli units. For example:`1.5` will be 1.5 cores, also written as `1500m`. + description: |- + The minimal amount of CPU cores that Pods need to run. + Equivalent to the `request` for Pod resource configuration. + Cores are specified either as a decimal point number or as milli units. + For example:`1.5` will be 1.5 cores, also written as `1500m`. nullable: true type: string type: object memory: properties: limit: - description: 'The maximum amount of memory that should be available to the Pod. Specified as a byte [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/), which means these suffixes are supported: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following represent roughly the same value: `128974848, 129e6, 129M, 128974848000m, 123Mi`' + description: |- + The maximum amount of memory that should be available to the Pod. + Specified as a byte [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/), + which means these suffixes are supported: E, P, T, G, M, k. + You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. + For example, the following represent roughly the same value: + `128974848, 129e6, 129M, 128974848000m, 123Mi` nullable: true type: string runtimeLimits: @@ -560,22 +631,41 @@ spec: type: string type: object default: {} - description: The `configOverrides` can be used to configure properties in product config files that are not exposed in the CRD. Read the [config overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#config-overrides) and consult the operator specific usage guide documentation for details on the available config files and settings for the specific product. + description: |- + The `configOverrides` can be used to configure properties in product config files + that are not exposed in the CRD. Read the + [config overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#config-overrides) + and consult the operator specific usage guide documentation for details on the + available config files and settings for the specific product. type: object envOverrides: additionalProperties: type: string default: {} - description: '`envOverrides` configure environment variables to be set in the Pods. It is a map from strings to strings - environment variables and the value to set. Read the [environment variable overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#env-overrides) for more information and consult the operator specific usage guide to find out about the product specific environment variables that are available.' + description: |- + `envOverrides` configure environment variables to be set in the Pods. + It is a map from strings to strings - environment variables and the value to set. + Read the + [environment variable overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#env-overrides) + for more information and consult the operator specific usage guide to find out about + the product specific environment variables that are available. type: object podOverrides: default: {} - description: In the `podOverrides` property you can define a [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core) to override any property that can be set on a Kubernetes Pod. Read the [Pod overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#pod-overrides) for more information. + description: |- + In the `podOverrides` property you can define a + [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core) + to override any property that can be set on a Kubernetes Pod. + Read the + [Pod overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#pod-overrides) + for more information. type: object x-kubernetes-preserve-unknown-fields: true roleConfig: default: {} - description: This is a product-agnostic RoleConfig, with nothing in it. It is used e.g. by products that have nothing configurable at role level. + description: |- + This is a product-agnostic RoleConfig, with nothing in it. It is used e.g. by products that have + nothing configurable at role level. type: object roleGroups: additionalProperties: @@ -594,7 +684,9 @@ spec: nodeSelector: null podAffinity: null podAntiAffinity: null - description: These configuration settings control [Pod placement](https://docs.stackable.tech/home/nightly/concepts/operations/pod_placement). + description: |- + These configuration settings control + [Pod placement](https://docs.stackable.tech/home/nightly/concepts/operations/pod_placement). properties: nodeAffinity: description: Same as the `spec.affinity.nodeAffinity` field on the Pod, see the [Kubernetes docs](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node) @@ -641,7 +733,9 @@ spec: nullable: true properties: level: - description: The log level threshold. Log events with a lower log level are discarded. + description: |- + The log level threshold. + Log events with a lower log level are discarded. enum: - TRACE - DEBUG @@ -650,6 +744,7 @@ spec: - ERROR - FATAL - NONE + - null nullable: true type: string type: object @@ -666,7 +761,9 @@ spec: nullable: true properties: level: - description: The log level threshold. Log events with a lower log level are discarded. + description: |- + The log level threshold. + Log events with a lower log level are discarded. enum: - TRACE - DEBUG @@ -675,6 +772,7 @@ spec: - ERROR - FATAL - NONE + - null nullable: true type: string type: object @@ -683,7 +781,9 @@ spec: description: Configuration of a logger properties: level: - description: The log level threshold. Log events with a lower log level are discarded. + description: |- + The log level threshold. + Log events with a lower log level are discarded. enum: - TRACE - DEBUG @@ -692,6 +792,7 @@ spec: - ERROR - FATAL - NONE + - null nullable: true type: string type: object @@ -715,7 +816,9 @@ spec: limit: null runtimeLimits: {} storage: {} - description: Resource usage is configured here, this includes CPU usage, memory usage and disk storage usage, if this role needs any. + description: |- + Resource usage is configured here, this includes CPU usage, memory usage and disk storage + usage, if this role needs any. properties: cpu: default: @@ -723,18 +826,32 @@ spec: min: null properties: max: - description: The maximum amount of CPU cores that can be requested by Pods. Equivalent to the `limit` for Pod resource configuration. Cores are specified either as a decimal point number or as milli units. For example:`1.5` will be 1.5 cores, also written as `1500m`. + description: |- + The maximum amount of CPU cores that can be requested by Pods. + Equivalent to the `limit` for Pod resource configuration. + Cores are specified either as a decimal point number or as milli units. + For example:`1.5` will be 1.5 cores, also written as `1500m`. nullable: true type: string min: - description: The minimal amount of CPU cores that Pods need to run. Equivalent to the `request` for Pod resource configuration. Cores are specified either as a decimal point number or as milli units. For example:`1.5` will be 1.5 cores, also written as `1500m`. + description: |- + The minimal amount of CPU cores that Pods need to run. + Equivalent to the `request` for Pod resource configuration. + Cores are specified either as a decimal point number or as milli units. + For example:`1.5` will be 1.5 cores, also written as `1500m`. nullable: true type: string type: object memory: properties: limit: - description: 'The maximum amount of memory that should be available to the Pod. Specified as a byte [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/), which means these suffixes are supported: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following represent roughly the same value: `128974848, 129e6, 129M, 128974848000m, 123Mi`' + description: |- + The maximum amount of memory that should be available to the Pod. + Specified as a byte [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/), + which means these suffixes are supported: E, P, T, G, M, k. + You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. + For example, the following represent roughly the same value: + `128974848, 129e6, 129M, 128974848000m, 123Mi` nullable: true type: string runtimeLimits: @@ -751,21 +868,39 @@ spec: type: string type: object default: {} - description: The `configOverrides` can be used to configure properties in product config files that are not exposed in the CRD. Read the [config overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#config-overrides) and consult the operator specific usage guide documentation for details on the available config files and settings for the specific product. + description: |- + The `configOverrides` can be used to configure properties in product config files + that are not exposed in the CRD. Read the + [config overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#config-overrides) + and consult the operator specific usage guide documentation for details on the + available config files and settings for the specific product. type: object envOverrides: additionalProperties: type: string default: {} - description: '`envOverrides` configure environment variables to be set in the Pods. It is a map from strings to strings - environment variables and the value to set. Read the [environment variable overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#env-overrides) for more information and consult the operator specific usage guide to find out about the product specific environment variables that are available.' + description: |- + `envOverrides` configure environment variables to be set in the Pods. + It is a map from strings to strings - environment variables and the value to set. + Read the + [environment variable overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#env-overrides) + for more information and consult the operator specific usage guide to find out about + the product specific environment variables that are available. type: object podOverrides: default: {} - description: In the `podOverrides` property you can define a [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core) to override any property that can be set on a Kubernetes Pod. Read the [Pod overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#pod-overrides) for more information. + description: |- + In the `podOverrides` property you can define a + [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core) + to override any property that can be set on a Kubernetes Pod. + Read the + [Pod overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#pod-overrides) + for more information. type: object x-kubernetes-preserve-unknown-fields: true replicas: format: uint16 + maximum: 65535.0 minimum: 0.0 nullable: true type: integer diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index 5bdb7007..ee4e5bbe 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -9,8 +9,9 @@ use product_config::ProductConfigManager; use stackable_opa_operator::crd::{OPERATOR_NAME, OpaCluster, OpaClusterVersion, v1alpha1}; use stackable_operator::{ YamlSchema, - cli::{Command, CommonOptions, ProductOperatorRun}, + cli::{Command, RunArguments}, client::{self, Client}, + eos::EndOfSupportChecker, k8s_openapi::api::{ apps::v1::DaemonSet, core::v1::{ConfigMap, Service}, @@ -57,7 +58,7 @@ struct OpaRun { operator_image: String, #[clap(flatten)] - common: ProductOperatorRun, + common: RunArguments, } #[tokio::main] @@ -71,22 +72,20 @@ async fn main() -> anyhow::Result<()> { Command::Run(OpaRun { operator_image, common: - ProductOperatorRun { - common: - CommonOptions { - telemetry, - cluster_info, - }, - product_config, - watch_namespace, + RunArguments { operator_environment: _, + watch_namespace, + product_config, + maintenance, + common, }, }) => { // NOTE (@NickLarsenNZ): Before stackable-telemetry was used: // - The console log level was set by `OPA_OPERATOR_LOG`, and is now `CONSOLE_LOG` (when using Tracing::pre_configured). // - The file log level was set by `OPA_OPERATOR_LOG`, and is now set via `FILE_LOG` (when using Tracing::pre_configured). // - The file log directory was set by `OPA_OPERATOR_LOG_DIRECTORY`, and is now set by `ROLLING_LOGS_DIR` (or via `--rolling-logs `). - let _tracing_guard = Tracing::pre_configured(built_info::PKG_NAME, telemetry).init()?; + let _tracing_guard = + Tracing::pre_configured(built_info::PKG_NAME, common.telemetry).init()?; tracing::info!( built_info.pkg_version = built_info::PKG_VERSION, @@ -97,23 +96,32 @@ async fn main() -> anyhow::Result<()> { "Starting {description}", description = built_info::PKG_DESCRIPTION ); + + let eos_checker = + EndOfSupportChecker::new(built_info::BUILT_TIME_UTC, maintenance.end_of_support)? + .run(); + let product_config = product_config.load(&[ "deploy/config-spec/properties.yaml", "/etc/stackable/opa-operator/config-spec/properties.yaml", ])?; let client = - client::initialize_operator(Some(OPERATOR_NAME.to_string()), &cluster_info).await?; + client::initialize_operator(Some(OPERATOR_NAME.to_string()), &common.cluster_info) + .await?; + let kubernetes_cluster_info = client.kubernetes_cluster_info.clone(); - create_controller( + + let controller = create_controller( client, product_config, watch_namespace, operator_image.clone(), operator_image, kubernetes_cluster_info, - ) - .await; + ); + + futures::join!(controller, eos_checker); } };