From 19db6016804cc977ba1d43475317e68502fdf949 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Fri, 13 Dec 2024 16:40:25 +0100 Subject: [PATCH 01/14] feat: Support experimental additional JVM arguments --- Cargo.lock | 143 ++++++---- Cargo.toml | 4 +- deploy/helm/trino-operator/crds/crds.yaml | 80 ++++++ rust/crd/src/lib.rs | 13 +- rust/operator-binary/src/config/jvm.rs | 329 +++++++++++++++++----- rust/operator-binary/src/controller.rs | 39 ++- 6 files changed, 463 insertions(+), 145 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6c74e9e5..63fac1ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 4 +version = 3 [[package]] name = "addr2line" @@ -270,9 +270,9 @@ checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cc" -version = "1.2.2" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" +checksum = "9157bbaa6b165880c27a4293a474c91cdcf265cc68cc829bf10be0964a391caf" dependencies = [ "jobserver", "libc", @@ -287,9 +287,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", @@ -355,18 +355,18 @@ dependencies = [ [[package]] name = "const_format" -version = "0.2.33" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c655d81ff1114fb0dcdea9225ea9f0cc712a6f8d189378e82bdf62a473a64b" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" dependencies = [ "const_format_proc_macros", ] [[package]] name = "const_format_proc_macros" -version = "0.2.33" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff1a44b93f47b1bac19a27932f5c591e43d1ba357ee4f61526c8a25603f0eb1" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" dependencies = [ "proc-macro2", "quote", @@ -568,7 +568,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06c36cb11dbde389f4096111698d8b567c0720e3452fd5ac3e6b4e47e1939932" dependencies = [ - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1246,9 +1246,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.74" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ "once_cell", "wasm-bindgen", @@ -1263,7 +1263,7 @@ dependencies = [ "jsonptr", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1278,7 +1278,7 @@ dependencies = [ "pest_derive", "regex", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1349,7 +1349,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-util", "tower", @@ -1372,7 +1372,7 @@ dependencies = [ "serde", "serde-value", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1410,7 +1410,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-util", "tracing", @@ -1424,9 +1424,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.167" +version = "0.2.168" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" +checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" [[package]] name = "libgit2-sys" @@ -1620,7 +1620,7 @@ dependencies = [ "js-sys", "once_cell", "pin-project-lite", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1662,7 +1662,7 @@ dependencies = [ "ordered-float 4.5.0", "percent-encoding", "rand", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", ] @@ -1738,20 +1738,20 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror", + "thiserror 2.0.6", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" +checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" dependencies = [ "pest", "pest_generator", @@ -1759,9 +1759,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" +checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" dependencies = [ "pest", "pest_meta", @@ -1772,9 +1772,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" +checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" dependencies = [ "once_cell", "pest", @@ -1909,9 +1909,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ "bitflags 2.6.0", ] @@ -2028,9 +2028,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.19" +version = "0.23.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" +checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" dependencies = [ "log", "once_cell", @@ -2191,15 +2191,15 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" [[package]] name = "serde" -version = "1.0.215" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" dependencies = [ "serde_derive", ] @@ -2216,9 +2216,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.215" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", @@ -2389,7 +2389,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stackable-operator" version = "0.83.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.83.0#3ce7bcbdb58097cde0c0f19488a104c96f69dbc3" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#a7ae846f88c2cc0e4f0f41f2664f6c807f702b4c" dependencies = [ "chrono", "clap", @@ -2427,7 +2427,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.83.0#3ce7bcbdb58097cde0c0f19488a104c96f69dbc3" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#a7ae846f88c2cc0e4f0f41f2664f6c807f702b4c" dependencies = [ "darling", "proc-macro2", @@ -2438,7 +2438,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.83.0#3ce7bcbdb58097cde0c0f19488a104c96f69dbc3" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#a7ae846f88c2cc0e4f0f41f2664f6c807f702b4c" dependencies = [ "kube", "semver", @@ -2544,9 +2544,9 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "0.1.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" [[package]] name = "synstructure" @@ -2565,7 +2565,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47" +dependencies = [ + "thiserror-impl 2.0.6", ] [[package]] @@ -2579,6 +2588,17 @@ dependencies = [ "syn 2.0.90", ] +[[package]] +name = "thiserror-impl" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "thread_local" version = "1.1.8" @@ -2693,9 +2713,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -2735,9 +2755,9 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", @@ -2799,7 +2819,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror", + "thiserror 1.0.69", "time", "tracing-subscriber", ] @@ -2992,9 +3012,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.97" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", "once_cell", @@ -3003,13 +3023,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.97" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", "syn 2.0.90", @@ -3018,9 +3037,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.97" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3028,9 +3047,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.97" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", @@ -3041,9 +3060,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.97" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "web-time" diff --git a/Cargo.toml b/Cargo.toml index c630202d..f83068c9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,6 +30,6 @@ strum = { version = "0.26", features = ["derive"] } tokio = { version = "1.40", features = ["full"] } tracing = "0.1" -#[patch."https://github.com/stackabletech/operator-rs.git"] -#stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } +[patch."https://github.com/stackabletech/operator-rs.git"] +stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "feat/jvm-arguments" } # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } diff --git a/deploy/helm/trino-operator/crds/crds.yaml b/deploy/helm/trino-operator/crds/crds.yaml index bf803700..69e00cd3 100644 --- a/deploy/helm/trino-operator/crds/crds.yaml +++ b/deploy/helm/trino-operator/crds/crds.yaml @@ -400,6 +400,26 @@ spec: 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.' type: object + jvmArgumentOverrides: + additionalProperties: + oneOf: + - required: + - argument + - required: + - flag + - required: + - remove + properties: + argument: + type: string + flag: + type: object + remove: + type: object + type: object + default: {} + description: Allows overriding JVM arguments. + 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. @@ -673,6 +693,26 @@ spec: 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.' type: object + jvmArgumentOverrides: + additionalProperties: + oneOf: + - required: + - argument + - required: + - flag + - required: + - remove + properties: + argument: + type: string + flag: + type: object + remove: + type: object + type: object + default: {} + description: Allows overriding JVM arguments. + 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. @@ -975,6 +1015,26 @@ spec: 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.' type: object + jvmArgumentOverrides: + additionalProperties: + oneOf: + - required: + - argument + - required: + - flag + - required: + - remove + properties: + argument: + type: string + flag: + type: object + remove: + type: object + type: object + default: {} + description: Allows overriding JVM arguments. + 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. @@ -1248,6 +1308,26 @@ spec: 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.' type: object + jvmArgumentOverrides: + additionalProperties: + oneOf: + - required: + - argument + - required: + - flag + - required: + - remove + properties: + argument: + type: string + flag: + type: object + remove: + type: object + type: object + default: {} + description: Allows overriding JVM arguments. + 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. diff --git a/rust/crd/src/lib.rs b/rust/crd/src/lib.rs index 5665b82d..e8be4204 100644 --- a/rust/crd/src/lib.rs +++ b/rust/crd/src/lib.rs @@ -29,7 +29,7 @@ use stackable_operator::{ kube::{runtime::reflector::ObjectRef, CustomResource, ResourceExt}, product_config_utils::{Configuration, Error as ConfigError}, product_logging::{self, spec::Logging}, - role_utils::{GenericRoleConfig, Role, RoleGroup, RoleGroupRef}, + role_utils::{GenericRoleConfig, JavaCommonConfig, Role, RoleGroup, RoleGroupRef}, schemars::{self, JsonSchema}, status::condition::{ClusterCondition, HasStatusCondition}, time::Duration, @@ -189,11 +189,11 @@ pub struct TrinoClusterSpec { // no doc - it's in the struct. #[serde(default, skip_serializing_if = "Option::is_none")] - pub coordinators: Option>, + pub coordinators: Option>, // no doc - it's in the struct. #[serde(default, skip_serializing_if = "Option::is_none")] - pub workers: Option>, + pub workers: Option>, } #[derive(Clone, Debug, Deserialize, JsonSchema, PartialEq, Serialize)] @@ -672,7 +672,10 @@ impl TrinoCluster { } /// Returns a reference to the role. Raises an error if the role is not defined. - pub fn role(&self, role_variant: &TrinoRole) -> Result<&Role, Error> { + pub fn role( + &self, + role_variant: &TrinoRole, + ) -> Result<&Role, Error> { match role_variant { TrinoRole::Coordinator => self.spec.coordinators.as_ref(), TrinoRole::Worker => self.spec.workers.as_ref(), @@ -686,7 +689,7 @@ impl TrinoCluster { pub fn rolegroup( &self, rolegroup_ref: &RoleGroupRef, - ) -> Result<&RoleGroup, Error> { + ) -> Result<&RoleGroup, Error> { let role_variant = TrinoRole::from_str(&rolegroup_ref.role).with_context(|_| UnknownTrinoRoleSnafu { role: rolegroup_ref.role.to_owned(), diff --git a/rust/operator-binary/src/config/jvm.rs b/rust/operator-binary/src/config/jvm.rs index 427e0cea..cd6200d6 100644 --- a/rust/operator-binary/src/config/jvm.rs +++ b/rust/operator-binary/src/config/jvm.rs @@ -1,13 +1,15 @@ +use std::collections::BTreeMap; + // As of 2024-07-05 we support multiple Trino versions. Some using Java 17, some Java 21 and the latest (455) uses Java 22. // This requires a different JVM config -use indoc::formatdoc; use snafu::{OptionExt, ResultExt, Snafu}; use stackable_operator::{ - commons::product_image_selection::ResolvedProductImage, + config::merge::Merge, memory::{BinaryMultiple, MemoryQuantity}, + role_utils::{JavaCommonConfig, JvmArgument}, }; use stackable_trino_crd::{ - TrinoConfig, TrinoRole, JVM_HEAP_FACTOR, JVM_SECURITY_PROPERTIES, RW_CONFIG_DIR_NAME, + TrinoConfig, JVM_HEAP_FACTOR, JVM_SECURITY_PROPERTIES, METRICS_PORT, RW_CONFIG_DIR_NAME, STACKABLE_CLIENT_TLS_DIR, STACKABLE_TLS_STORE_PASSWORD, }; @@ -35,9 +37,9 @@ pub enum Error { // Currently works for all supported versions (451 and 455 as of 2024-09-04) but maybe be changed // in the future depending on the role and version. pub fn jvm_config( - resolved_product_image: &ResolvedProductImage, - _role: &TrinoRole, + product_version: &str, merged_config: &TrinoConfig, + java_common_config: &JavaCommonConfig, ) -> Result { let memory_unit = BinaryMultiple::Mebi; let heap_size = MemoryQuantity::try_from( @@ -60,69 +62,268 @@ pub fn jvm_config( }, )?; - match resolved_product_image.product_version.as_str() { + let mut jvm_args = BTreeMap::from([ + ("-server".to_owned(), JvmArgument::Flag {}), + // Heap settings + (format!("-Xms{heap}"), JvmArgument::Flag {}), + (format!("-Xmx{heap}"), JvmArgument::Flag {}), + // Truststore settings + ( + "-Djavax.net.ssl.trustStore".to_owned(), + JvmArgument::Argument(format!("{STACKABLE_CLIENT_TLS_DIR}/truststore.p12")), + ), + ( + "-Djavax.net.ssl.trustStorePassword".to_owned(), + JvmArgument::Argument(STACKABLE_TLS_STORE_PASSWORD.to_owned()), + ), + ( + "-Djavax.net.ssl.trustStoreType".to_owned(), + JvmArgument::Argument("pkcs12".to_owned()), + ), + // security.properties + ( + "-Djava.security.properties".to_owned(), + JvmArgument::Argument(format!("{RW_CONFIG_DIR_NAME}/{JVM_SECURITY_PROPERTIES}")), + ), + // Prometheus metrics exporter + ( + "-javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar".to_owned(), + JvmArgument::Argument(format!("{METRICS_PORT}:/stackable/jmx/config.yaml")), + ), + ]); + jvm_args.extend(recommended_trino_jvm_args(product_version)?); + + let mut merged_java_config = java_common_config.clone(); + merged_java_config.merge(&JavaCommonConfig::new(jvm_args)); + + Ok(merged_java_config + .effective_jvm_config() + .into_iter() + .map(|(key, value)| match value { + Some(argument) => { + format!("{key}={argument}") + } + None => key, + }) + .collect::>() + .join("\n")) +} + +fn recommended_trino_jvm_args( + product_version: &str, +) -> Result, Error> { + match product_version { // Copied from https://trino.io/docs/451/installation/deployment.html - "451" => Ok(formatdoc!( - "-server - -Xms{heap} - -Xmx{heap} - - -XX:InitialRAMPercentage=80 - -XX:MaxRAMPercentage=80 - -XX:G1HeapRegionSize=32M - -XX:+ExplicitGCInvokesConcurrent - -XX:+ExitOnOutOfMemoryError - -XX:+HeapDumpOnOutOfMemoryError - -XX:-OmitStackTraceInFastThrow - -XX:ReservedCodeCacheSize=512M - -XX:PerMethodRecompilationCutoff=10000 - -XX:PerBytecodeRecompilationCutoff=10000 - -Djdk.attach.allowAttachSelf=true - -Djdk.nio.maxCachedBufferSize=2000000 - -Dfile.encoding=UTF-8 - # Allow loading dynamic agent used by JOL - -XX:+EnableDynamicAgentLoading - # https://bugs.openjdk.org/browse/JDK-8329528 - -XX:+UnlockDiagnosticVMOptions - -XX:G1NumCollectionsKeepPinned=10000000 - - -Djavax.net.ssl.trustStore={STACKABLE_CLIENT_TLS_DIR}/truststore.p12 - -Djavax.net.ssl.trustStorePassword={STACKABLE_TLS_STORE_PASSWORD} - -Djavax.net.ssl.trustStoreType=pkcs12 - -Djava.security.properties={RW_CONFIG_DIR_NAME}/{JVM_SECURITY_PROPERTIES} - ", - )), + "451" => Ok(BTreeMap::from([ + ( + "-XX:InitialRAMPercentage".to_owned(), + JvmArgument::Argument("80".to_owned()), + ), + ( + "-XX:MaxRAMPercentage".to_owned(), + JvmArgument::Argument("80".to_owned()), + ), + ( + "-XX:G1HeapRegionSize".to_owned(), + JvmArgument::Argument("32M".to_owned()), + ), + ( + "-XX:+ExitOnOutOfMemoryError".to_owned(), + JvmArgument::Flag {}, + ), + ( + "-XX:+HeapDumpOnOutOfMemoryError".to_owned(), + JvmArgument::Flag {}, + ), + ( + "-XX:-OmitStackTraceInFastThrow".to_owned(), + JvmArgument::Flag {}, + ), + ( + "-XX:ReservedCodeCacheSize".to_owned(), + JvmArgument::Argument("512M".to_owned()), + ), + ( + "-XX:PerMethodRecompilationCutoff".to_owned(), + JvmArgument::Argument("10000".to_owned()), + ), + ( + "-XX:PerBytecodeRecompilationCutoff".to_owned(), + JvmArgument::Argument("10000".to_owned()), + ), + ( + "-Djdk.attach.allowAttachSelf".to_owned(), + JvmArgument::Argument("true".to_owned()), + ), + ( + "-Djdk.nio.maxCachedBufferSize".to_owned(), + JvmArgument::Argument("2000000".to_owned()), + ), + ( + "-Dfile.encoding".to_owned(), + JvmArgument::Argument("UTF-8".to_owned()), + ), + ( + "-XX:+EnableDynamicAgentLoading".to_owned(), + JvmArgument::Flag {}, + ), + ( + "-XX:+UnlockDiagnosticVMOptions".to_owned(), + JvmArgument::Flag {}, + ), + ( + "-XX:G1NumCollectionsKeepPinned".to_owned(), + JvmArgument::Argument("10000000".to_owned()), + ), + ])), // Copied from https://trino.io/docs/455/installation/deployment.html#jvm-config - "455" => Ok(formatdoc!( - "-server - -Xms{heap} - -Xmx{heap} - - -XX:InitialRAMPercentage=80 - -XX:MaxRAMPercentage=80 - -XX:G1HeapRegionSize=32M - -XX:+ExplicitGCInvokesConcurrent - -XX:+ExitOnOutOfMemoryError - -XX:+HeapDumpOnOutOfMemoryError - -XX:-OmitStackTraceInFastThrow - -XX:ReservedCodeCacheSize=512M - -XX:PerMethodRecompilationCutoff=10000 - -XX:PerBytecodeRecompilationCutoff=10000 - -Djdk.attach.allowAttachSelf=true - -Djdk.nio.maxCachedBufferSize=2000000 - -Dfile.encoding=UTF-8 - # Allow loading dynamic agent used by JOL - -XX:+EnableDynamicAgentLoading - - -Djavax.net.ssl.trustStore={STACKABLE_CLIENT_TLS_DIR}/truststore.p12 - -Djavax.net.ssl.trustStorePassword={STACKABLE_TLS_STORE_PASSWORD} - -Djavax.net.ssl.trustStoreType=pkcs12 - -Djava.security.properties={RW_CONFIG_DIR_NAME}/{JVM_SECURITY_PROPERTIES} - ", - )), + "455" => Ok(BTreeMap::from([ + ( + "-XX:InitialRAMPercentage".to_owned(), + JvmArgument::Argument("80".to_owned()), + ), + ( + "-XX:MaxRAMPercentage".to_owned(), + JvmArgument::Argument("80".to_owned()), + ), + ( + "-XX:G1HeapRegionSize".to_owned(), + JvmArgument::Argument("32M".to_owned()), + ), + ( + "-XX:+ExplicitGCInvokesConcurrent".to_owned(), + JvmArgument::Flag {}, + ), + ( + "-XX:+ExitOnOutOfMemoryError".to_owned(), + JvmArgument::Flag {}, + ), + ( + "-XX:+HeapDumpOnOutOfMemoryError".to_owned(), + JvmArgument::Flag {}, + ), + ( + "-XX:-OmitStackTraceInFastThrow".to_owned(), + JvmArgument::Flag {}, + ), + ( + "-XX:ReservedCodeCacheSize".to_owned(), + JvmArgument::Argument("512M".to_owned()), + ), + ( + "-XX:PerMethodRecompilationCutoff".to_owned(), + JvmArgument::Argument("10000".to_owned()), + ), + ( + "-XX:PerBytecodeRecompilationCutoff".to_owned(), + JvmArgument::Argument("10000".to_owned()), + ), + ( + "-Djdk.attach.allowAttachSelf".to_owned(), + JvmArgument::Argument("true".to_owned()), + ), + ( + "-Djdk.nio.maxCachedBufferSize".to_owned(), + JvmArgument::Argument("2000000".to_owned()), + ), + ( + "-Dfile.encoding".to_owned(), + JvmArgument::Argument("UTF-8".to_owned()), + ), + ( + "-XX:+EnableDynamicAgentLoading".to_owned(), + JvmArgument::Flag {}, + ), + ])), _ => TrinoVersionNotSupportedSnafu { - version: resolved_product_image.product_version.clone(), + version: product_version, } .fail(), } } + +#[cfg(test)] +mod tests { + use indoc::indoc; + use stackable_trino_crd::{TrinoCluster, TrinoRole}; + + use super::*; + + #[test] + fn test_jvm_config_defaults() { + let input = r#" + apiVersion: trino.stackable.tech/v1alpha1 + kind: TrinoCluster + metadata: + name: simple-trino + spec: + image: + productVersion: "455" + clusterConfig: + catalogLabelSelector: {} + coordinators: + config: + resources: + memory: + limit: 42Gi + experimentalAdditionalJvmArguments: + -Dhttps.proxyHost: proxy.my.corp + -Dhttps.proxyPort: "1234" + -Dhttp.nonProxyHosts: localhost + -Djava.net.preferIPv4Stack: "true" + -XX:+ExitOnOutOfMemoryError: null + roleGroups: + default: + replicas: 1 + "#; + let trino: TrinoCluster = serde_yaml::from_str(input).expect("illegal test input"); + + let role = TrinoRole::Coordinator; + let rolegroup_ref = role.rolegroup_ref(&trino, "default"); + let merged_config = trino.merged_config(&role, &rolegroup_ref, &[]).unwrap(); + let java_common_config = trino + .spec + .coordinators + .unwrap() + .merged_product_specific_common_config("default") + .unwrap(); + let jvm_config = jvm_config( + trino.spec.image.product_version(), + &merged_config, + &java_common_config, + ) + .unwrap(); + + assert_eq!( + jvm_config, + indoc! {" + -Dfile.encoding=UTF-8 + -Djava.security.properties=/stackable/rwconfig/security.properties + -Djavax.net.ssl.trustStore=/stackable/client_tls/truststore.p12 + -Djavax.net.ssl.trustStorePassword=changeit + -Djavax.net.ssl.trustStoreType=pkcs12 + -Djdk.attach.allowAttachSelf=true + -Djdk.nio.maxCachedBufferSize=2000000 + -XX:+EnableDynamicAgentLoading + -XX:+ExitOnOutOfMemoryError + -XX:+ExplicitGCInvokesConcurrent + -XX:+HeapDumpOnOutOfMemoryError + -XX:-OmitStackTraceInFastThrow + -XX:G1HeapRegionSize=32M + -XX:InitialRAMPercentage=80 + -XX:MaxRAMPercentage=80 + -XX:PerBytecodeRecompilationCutoff=10000 + -XX:PerMethodRecompilationCutoff=10000 + -XX:ReservedCodeCacheSize=512M + -Xms34406m + -Xmx34406m + -javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar=8081:/stackable/jmx/config.yaml + -server"} + ); + } + + #[test] + fn test_jvm_config_jvm_argument_overrides() { + todo!("It's Friday...") + } +} diff --git a/rust/operator-binary/src/controller.rs b/rust/operator-binary/src/controller.rs index e71b883e..80106581 100644 --- a/rust/operator-binary/src/controller.rs +++ b/rust/operator-binary/src/controller.rs @@ -2,7 +2,6 @@ use std::{ collections::{BTreeMap, HashMap}, convert::Infallible, - fmt::Write, ops::Div, str::FromStr, sync::Arc, @@ -63,7 +62,7 @@ use stackable_operator::{ CustomContainerLogConfig, }, }, - role_utils::{GenericRoleConfig, RoleGroupRef}, + role_utils::{GenericRoleConfig, JavaCommonConfig, RoleGroupRef}, status::condition::{ compute_conditions, operations::ClusterOperationsConditionBuilder, statefulset::StatefulSetConditionBuilder, @@ -130,7 +129,7 @@ pub enum Error { #[snafu(display("object defines no namespace"))] ObjectHasNoNamespace, - #[snafu(display("object defines no {} role", role))] + #[snafu(display("object defines no {role:?} role"))] MissingTrinoRole { role: String }, #[snafu(display("failed to create cluster resources"))] @@ -340,6 +339,14 @@ pub enum Error { InvalidTrinoCluster { source: error_boundary::InvalidObject, }, + + #[snafu(display("failed to read role config"))] + ReadRoleConfig { source: stackable_trino_crd::Error }, + + #[snafu(display("failed to get merged jvmArgumentOverrides"))] + GetMergedJvmArgumentOverrides { + source: stackable_operator::role_utils::Error, + }, } type Result = std::result::Result; @@ -464,11 +471,15 @@ pub async fn reconcile_trino( let mut sts_cond_builder = StatefulSetConditionBuilder::default(); - for (role, role_config) in validated_config { - let trino_role = TrinoRole::from_str(&role).context(FailedToParseRoleSnafu)?; + for (trino_role_str, role_config) in validated_config { + let trino_role = TrinoRole::from_str(&trino_role_str).context(FailedToParseRoleSnafu)?; + let role = trino.role(&trino_role).context(ReadRoleConfigSnafu)?; for (role_group, config) in role_config { - let rolegroup = trino_role.rolegroup_ref(trino, role_group); + let rolegroup = trino_role.rolegroup_ref(trino, &role_group); + let java_common_config = role + .merged_product_specific_common_config(&role_group) + .context(GetMergedJvmArgumentOverridesSnafu)?; let merged_config = trino .merged_config(&trino_role, &rolegroup, &catalog_definitions) .context(FailedToResolveConfigSnafu)?; @@ -481,6 +492,7 @@ pub async fn reconcile_trino( &rolegroup, &config, &merged_config, + &java_common_config, &trino_authentication_config, &trino_opa_config, vector_aggregator_address.as_deref(), @@ -616,6 +628,7 @@ fn build_rolegroup_config_map( rolegroup_ref: &RoleGroupRef, config: &HashMap>, merged_config: &TrinoConfig, + java_common_config: &JavaCommonConfig, trino_authentication_config: &TrinoAuthenticationConfig, trino_opa_config: &Option, vector_aggregator_address: Option<&str>, @@ -623,9 +636,12 @@ fn build_rolegroup_config_map( ) -> Result { let mut cm_conf_data = BTreeMap::new(); - // retrieve JVM config - TODO: currently not overridable - let mut jvm_config = config::jvm::jvm_config(resolved_product_image, role, merged_config) - .context(FailedToCreateJvmConfigSnafu)?; + let jvm_config = config::jvm::jvm_config( + &resolved_product_image.product_version, + merged_config, + java_common_config, + ) + .context(FailedToCreateJvmConfigSnafu)?; // TODO: we support only one coordinator for now let coordinator_ref: TrinoPodRef = trino @@ -754,9 +770,7 @@ fn build_rolegroup_config_map( ); } } - PropertyNameKind::File(file_name) if file_name == JVM_CONFIG => { - let _ = writeln!(jvm_config, "-javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar={}:/stackable/jmx/config.yaml", METRICS_PORT); - } + PropertyNameKind::File(file_name) if file_name == JVM_CONFIG => {} _ => {} } } @@ -1736,6 +1750,7 @@ mod tests { .get("default") .unwrap(), &merged_config, + &Default::default(), &trino_authentication_config, &None, None, From 65a17199118c027d48a3010e2bf5677e5bbf9d41 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Mon, 16 Dec 2024 10:20:50 +0100 Subject: [PATCH 02/14] Update tests --- rust/operator-binary/src/config/jvm.rs | 113 +++++++++++++++++++------ 1 file changed, 89 insertions(+), 24 deletions(-) diff --git a/rust/operator-binary/src/config/jvm.rs b/rust/operator-binary/src/config/jvm.rs index cd6200d6..9a803b06 100644 --- a/rust/operator-binary/src/config/jvm.rs +++ b/rust/operator-binary/src/config/jvm.rs @@ -266,33 +266,11 @@ mod tests { resources: memory: limit: 42Gi - experimentalAdditionalJvmArguments: - -Dhttps.proxyHost: proxy.my.corp - -Dhttps.proxyPort: "1234" - -Dhttp.nonProxyHosts: localhost - -Djava.net.preferIPv4Stack: "true" - -XX:+ExitOnOutOfMemoryError: null roleGroups: default: replicas: 1 "#; - let trino: TrinoCluster = serde_yaml::from_str(input).expect("illegal test input"); - - let role = TrinoRole::Coordinator; - let rolegroup_ref = role.rolegroup_ref(&trino, "default"); - let merged_config = trino.merged_config(&role, &rolegroup_ref, &[]).unwrap(); - let java_common_config = trino - .spec - .coordinators - .unwrap() - .merged_product_specific_common_config("default") - .unwrap(); - let jvm_config = jvm_config( - trino.spec.image.product_version(), - &merged_config, - &java_common_config, - ) - .unwrap(); + let jvm_config = construct_jvm_config(&input); assert_eq!( jvm_config, @@ -324,6 +302,93 @@ mod tests { #[test] fn test_jvm_config_jvm_argument_overrides() { - todo!("It's Friday...") + let input = r#" + apiVersion: trino.stackable.tech/v1alpha1 + kind: TrinoCluster + metadata: + name: simple-trino + spec: + image: + productVersion: "455" + clusterConfig: + catalogLabelSelector: {} + coordinators: + config: + resources: + memory: + limit: 42Gi + jvmArgumentOverrides: + -XX:+UseG1GC: + remove: {} + -Dhttps.proxyHost: + argument: proxy.my.corp + -Dhttps.proxyPort: + argument: "8080" + -Djava.net.preferIPv4Stack: + argument: "true" + roleGroups: + default: + replicas: 1 + jvmArgumentOverrides: + # We need more memory! + -Xmx34406m: + remove: {} + -Xmx40000m: + flag: {} + -Dhttps.proxyPort: + argument: "1234" + "#; + let jvm_config = construct_jvm_config(&input); + + assert_eq!( + jvm_config, + indoc! {" + -Dfile.encoding=UTF-8 + -Dhttps.proxyHost=proxy.my.corp + -Dhttps.proxyPort=1234 + -Djava.net.preferIPv4Stack=true + -Djava.security.properties=/stackable/rwconfig/security.properties + -Djavax.net.ssl.trustStore=/stackable/client_tls/truststore.p12 + -Djavax.net.ssl.trustStorePassword=changeit + -Djavax.net.ssl.trustStoreType=pkcs12 + -Djdk.attach.allowAttachSelf=true + -Djdk.nio.maxCachedBufferSize=2000000 + -XX:+EnableDynamicAgentLoading + -XX:+ExitOnOutOfMemoryError + -XX:+ExplicitGCInvokesConcurrent + -XX:+HeapDumpOnOutOfMemoryError + -XX:-OmitStackTraceInFastThrow + -XX:G1HeapRegionSize=32M + -XX:InitialRAMPercentage=80 + -XX:MaxRAMPercentage=80 + -XX:PerBytecodeRecompilationCutoff=10000 + -XX:PerMethodRecompilationCutoff=10000 + -XX:ReservedCodeCacheSize=512M + -Xms34406m + -Xmx40000m + -javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar=8081:/stackable/jmx/config.yaml + -server"} + ); + } + + fn construct_jvm_config(trino_cluster: &str) -> String { + let trino: TrinoCluster = serde_yaml::from_str(trino_cluster).expect("illegal test input"); + + let role = TrinoRole::Coordinator; + let rolegroup_ref = role.rolegroup_ref(&trino, "default"); + let merged_config = trino.merged_config(&role, &rolegroup_ref, &[]).unwrap(); + let java_common_config = trino + .spec + .coordinators + .unwrap() + .merged_product_specific_common_config("default") + .unwrap(); + + jvm_config( + trino.spec.image.product_version(), + &merged_config, + &java_common_config, + ) + .unwrap() } } From 5c896115bfc39f0e807784c89d7797b9ffca6729 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Mon, 16 Dec 2024 13:24:59 +0100 Subject: [PATCH 03/14] clippy --- rust/operator-binary/src/config/jvm.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/operator-binary/src/config/jvm.rs b/rust/operator-binary/src/config/jvm.rs index 9a803b06..bbf90b50 100644 --- a/rust/operator-binary/src/config/jvm.rs +++ b/rust/operator-binary/src/config/jvm.rs @@ -270,7 +270,7 @@ mod tests { default: replicas: 1 "#; - let jvm_config = construct_jvm_config(&input); + let jvm_config = construct_jvm_config(input); assert_eq!( jvm_config, @@ -338,7 +338,7 @@ mod tests { -Dhttps.proxyPort: argument: "1234" "#; - let jvm_config = construct_jvm_config(&input); + let jvm_config = construct_jvm_config(input); assert_eq!( jvm_config, From 00ee4b30d2c4e1b52fb3c70d20cef15748f283e6 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Fri, 27 Dec 2024 10:35:59 +0100 Subject: [PATCH 04/14] Update op-rs --- Cargo.lock | 166 +++++------ rust/operator-binary/src/config/jvm.rs | 378 ++++++++++--------------- rust/operator-binary/src/controller.rs | 14 +- 3 files changed, 235 insertions(+), 323 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 63fac1ef..36459df9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -111,15 +111,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" [[package]] name = "async-broadcast" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ "event-listener", "event-listener-strategy", @@ -146,7 +146,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -157,7 +157,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -270,9 +270,9 @@ checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cc" -version = "1.2.4" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9157bbaa6b165880c27a4293a474c91cdcf265cc68cc829bf10be0964a391caf" +checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" dependencies = [ "jobserver", "libc", @@ -329,7 +329,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -410,18 +410,18 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" @@ -454,7 +454,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -465,7 +465,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -476,7 +476,7 @@ checksum = "bc2323e10c92e1cf4d86e11538512e6dc03ceb586842970b6332af3d4046a046" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -506,7 +506,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -544,7 +544,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -588,7 +588,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -730,7 +730,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -870,11 +870,11 @@ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -925,9 +925,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ "bytes", "futures-channel", @@ -964,9 +964,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", "http", @@ -1151,7 +1151,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -1385,7 +1385,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -1424,9 +1424,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.168" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libgit2-sys" @@ -1497,9 +1497,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" dependencies = [ "adler2", ] @@ -1552,9 +1552,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] @@ -1588,7 +1588,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -1659,7 +1659,7 @@ dependencies = [ "lazy_static", "once_cell", "opentelemetry", - "ordered-float 4.5.0", + "ordered-float 4.6.0", "percent-encoding", "rand", "thiserror 1.0.69", @@ -1678,9 +1678,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "4.5.0" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c65ee1f9701bf938026630b455d5315f490640234259037edb259798b3bcf85e" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" dependencies = [ "num-traits", ] @@ -1743,7 +1743,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 2.0.6", + "thiserror 2.0.9", "ucd-trie", ] @@ -1767,7 +1767,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -1798,7 +1798,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -1870,9 +1870,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -2007,7 +2007,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.90", + "syn 2.0.92", "unicode-ident", ] @@ -2063,7 +2063,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.0.1", + "security-framework 3.1.0", ] [[package]] @@ -2077,9 +2077,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" [[package]] name = "rustls-webpki" @@ -2094,9 +2094,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" @@ -2135,7 +2135,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -2168,9 +2168,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.0.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" +checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" dependencies = [ "bitflags 2.6.0", "core-foundation 0.10.0", @@ -2181,9 +2181,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" dependencies = [ "core-foundation-sys", "libc", @@ -2222,7 +2222,7 @@ checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -2233,14 +2233,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] name = "serde_json" -version = "1.0.133" +version = "1.0.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" dependencies = [ "itoa", "memchr", @@ -2361,7 +2361,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -2389,7 +2389,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stackable-operator" version = "0.83.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#a7ae846f88c2cc0e4f0f41f2664f6c807f702b4c" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#97bde943055a4ea1a57bfaa1a36d6bba4f79b852" dependencies = [ "chrono", "clap", @@ -2427,18 +2427,18 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#a7ae846f88c2cc0e4f0f41f2664f6c807f702b4c" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#97bde943055a4ea1a57bfaa1a36d6bba4f79b852" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] name = "stackable-shared" version = "0.0.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#a7ae846f88c2cc0e4f0f41f2664f6c807f702b4c" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#97bde943055a4ea1a57bfaa1a36d6bba4f79b852" dependencies = [ "kube", "semver", @@ -2511,7 +2511,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -2533,9 +2533,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.90" +version = "2.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +checksum = "70ae51629bf965c5c098cc9e87908a3df5301051a9e087d6f9bef5c9771ed126" dependencies = [ "proc-macro2", "quote", @@ -2556,7 +2556,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -2570,11 +2570,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.6" +version = "2.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47" +checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" dependencies = [ - "thiserror-impl 2.0.6", + "thiserror-impl 2.0.9", ] [[package]] @@ -2585,18 +2585,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] name = "thiserror-impl" -version = "2.0.6" +version = "2.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312" +checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -2698,7 +2698,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -2832,7 +2832,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -3031,7 +3031,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", "wasm-bindgen-shared", ] @@ -3053,7 +3053,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3234,7 +3234,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", "synstructure", ] @@ -3256,7 +3256,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] [[package]] @@ -3276,7 +3276,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", "synstructure", ] @@ -3305,5 +3305,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.92", ] diff --git a/rust/operator-binary/src/config/jvm.rs b/rust/operator-binary/src/config/jvm.rs index bbf90b50..257f2419 100644 --- a/rust/operator-binary/src/config/jvm.rs +++ b/rust/operator-binary/src/config/jvm.rs @@ -1,12 +1,10 @@ -use std::collections::BTreeMap; - // As of 2024-07-05 we support multiple Trino versions. Some using Java 17, some Java 21 and the latest (455) uses Java 22. // This requires a different JVM config use snafu::{OptionExt, ResultExt, Snafu}; use stackable_operator::{ config::merge::Merge, memory::{BinaryMultiple, MemoryQuantity}, - role_utils::{JavaCommonConfig, JvmArgument}, + role_utils::{JavaCommonConfig, JvmArgumentOverrides}, }; use stackable_trino_crd::{ TrinoConfig, JVM_HEAP_FACTOR, JVM_SECURITY_PROPERTIES, METRICS_PORT, RW_CONFIG_DIR_NAME, @@ -39,7 +37,8 @@ pub enum Error { pub fn jvm_config( product_version: &str, merged_config: &TrinoConfig, - java_common_config: &JavaCommonConfig, + role_java_common_config: &JavaCommonConfig, + role_group_java_common_config: &JavaCommonConfig, ) -> Result { let memory_unit = BinaryMultiple::Mebi; let heap_size = MemoryQuantity::try_from( @@ -62,179 +61,80 @@ pub fn jvm_config( }, )?; - let mut jvm_args = BTreeMap::from([ - ("-server".to_owned(), JvmArgument::Flag {}), - // Heap settings - (format!("-Xms{heap}"), JvmArgument::Flag {}), - (format!("-Xmx{heap}"), JvmArgument::Flag {}), - // Truststore settings - ( - "-Djavax.net.ssl.trustStore".to_owned(), - JvmArgument::Argument(format!("{STACKABLE_CLIENT_TLS_DIR}/truststore.p12")), - ), - ( - "-Djavax.net.ssl.trustStorePassword".to_owned(), - JvmArgument::Argument(STACKABLE_TLS_STORE_PASSWORD.to_owned()), - ), - ( - "-Djavax.net.ssl.trustStoreType".to_owned(), - JvmArgument::Argument("pkcs12".to_owned()), - ), - // security.properties - ( - "-Djava.security.properties".to_owned(), - JvmArgument::Argument(format!("{RW_CONFIG_DIR_NAME}/{JVM_SECURITY_PROPERTIES}")), - ), - // Prometheus metrics exporter - ( - "-javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar".to_owned(), - JvmArgument::Argument(format!("{METRICS_PORT}:/stackable/jmx/config.yaml")), - ), - ]); + let mut jvm_args = vec![ + "-server".to_owned(), + "# Heap settings".to_owned(), + format!("-Xms{heap}"), + format!("-Xmx{heap}"), + "# Specify security.properties".to_owned(), + format!("-Djava.security.properties={RW_CONFIG_DIR_NAME}/{JVM_SECURITY_PROPERTIES}"), + "# Prometheus metrics exporter".to_owned(), + format!("-javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar={METRICS_PORT}:/stackable/jmx/config.yaml"), + "# Truststore settings".to_owned(), + format!("-Djavax.net.ssl.trustStore={STACKABLE_CLIENT_TLS_DIR}/truststore.p12"), + "-Djavax.net.ssl.trustStoreType=pkcs12".to_owned(), + format!("-Djavax.net.ssl.trustStorePassword={STACKABLE_TLS_STORE_PASSWORD}"), + ]; + + jvm_args.push("# Recommended JVM arguments from Trino".to_owned()); jvm_args.extend(recommended_trino_jvm_args(product_version)?); - let mut merged_java_config = java_common_config.clone(); - merged_java_config.merge(&JavaCommonConfig::new(jvm_args)); + jvm_args.push("# Arguments from jvmArgumentOverrides".to_owned()); + + let operator_generated = JavaCommonConfig { + jvm_argument_overrides: JvmArgumentOverrides::new_with_only_additions(jvm_args), + }; - Ok(merged_java_config - .effective_jvm_config() - .into_iter() - .map(|(key, value)| match value { - Some(argument) => { - format!("{key}={argument}") - } - None => key, - }) - .collect::>() + // Please note that the merge order is different than we normally do! + // This is not trivial, as the merge operation is not purely additive (as it is with e.g. `PodTemplateSpec). + let mut role = role_java_common_config.clone(); + role.merge(&operator_generated); + let mut role_group = role_group_java_common_config.clone(); + role_group.merge(&role); + + Ok(role_group + .jvm_argument_overrides + .effective_jvm_config_after_merging() .join("\n")) } -fn recommended_trino_jvm_args( - product_version: &str, -) -> Result, Error> { +fn recommended_trino_jvm_args(product_version: &str) -> Result, Error> { match product_version { // Copied from https://trino.io/docs/451/installation/deployment.html - "451" => Ok(BTreeMap::from([ - ( - "-XX:InitialRAMPercentage".to_owned(), - JvmArgument::Argument("80".to_owned()), - ), - ( - "-XX:MaxRAMPercentage".to_owned(), - JvmArgument::Argument("80".to_owned()), - ), - ( - "-XX:G1HeapRegionSize".to_owned(), - JvmArgument::Argument("32M".to_owned()), - ), - ( - "-XX:+ExitOnOutOfMemoryError".to_owned(), - JvmArgument::Flag {}, - ), - ( - "-XX:+HeapDumpOnOutOfMemoryError".to_owned(), - JvmArgument::Flag {}, - ), - ( - "-XX:-OmitStackTraceInFastThrow".to_owned(), - JvmArgument::Flag {}, - ), - ( - "-XX:ReservedCodeCacheSize".to_owned(), - JvmArgument::Argument("512M".to_owned()), - ), - ( - "-XX:PerMethodRecompilationCutoff".to_owned(), - JvmArgument::Argument("10000".to_owned()), - ), - ( - "-XX:PerBytecodeRecompilationCutoff".to_owned(), - JvmArgument::Argument("10000".to_owned()), - ), - ( - "-Djdk.attach.allowAttachSelf".to_owned(), - JvmArgument::Argument("true".to_owned()), - ), - ( - "-Djdk.nio.maxCachedBufferSize".to_owned(), - JvmArgument::Argument("2000000".to_owned()), - ), - ( - "-Dfile.encoding".to_owned(), - JvmArgument::Argument("UTF-8".to_owned()), - ), - ( - "-XX:+EnableDynamicAgentLoading".to_owned(), - JvmArgument::Flag {}, - ), - ( - "-XX:+UnlockDiagnosticVMOptions".to_owned(), - JvmArgument::Flag {}, - ), - ( - "-XX:G1NumCollectionsKeepPinned".to_owned(), - JvmArgument::Argument("10000000".to_owned()), - ), - ])), + "451" => Ok(vec![ + "-XX:InitialRAMPercentage=80".to_owned(), + "-XX:MaxRAMPercentage=80".to_owned(), + "-XX:G1HeapRegionSize=32M".to_owned(), + "-XX:+ExitOnOutOfMemoryError".to_owned(), + "-XX:+HeapDumpOnOutOfMemoryError".to_owned(), + "-XX:-OmitStackTraceInFastThrow".to_owned(), + "-XX:ReservedCodeCacheSize=512M".to_owned(), + "-XX:PerMethodRecompilationCutoff=10000".to_owned(), + "-XX:PerBytecodeRecompilationCutoff=10000".to_owned(), + "-Djdk.attach.allowAttachSelf=true".to_owned(), + "-Djdk.nio.maxCachedBufferSize=2000000".to_owned(), + "-Dfile.encoding=UTF-8".to_owned(), + "-XX:+EnableDynamicAgentLoading".to_owned(), + "-XX:+UnlockDiagnosticVMOptions".to_owned(), + "-XX:G1NumCollectionsKeepPinned=10000000".to_owned(), + ]), // Copied from https://trino.io/docs/455/installation/deployment.html#jvm-config - "455" => Ok(BTreeMap::from([ - ( - "-XX:InitialRAMPercentage".to_owned(), - JvmArgument::Argument("80".to_owned()), - ), - ( - "-XX:MaxRAMPercentage".to_owned(), - JvmArgument::Argument("80".to_owned()), - ), - ( - "-XX:G1HeapRegionSize".to_owned(), - JvmArgument::Argument("32M".to_owned()), - ), - ( - "-XX:+ExplicitGCInvokesConcurrent".to_owned(), - JvmArgument::Flag {}, - ), - ( - "-XX:+ExitOnOutOfMemoryError".to_owned(), - JvmArgument::Flag {}, - ), - ( - "-XX:+HeapDumpOnOutOfMemoryError".to_owned(), - JvmArgument::Flag {}, - ), - ( - "-XX:-OmitStackTraceInFastThrow".to_owned(), - JvmArgument::Flag {}, - ), - ( - "-XX:ReservedCodeCacheSize".to_owned(), - JvmArgument::Argument("512M".to_owned()), - ), - ( - "-XX:PerMethodRecompilationCutoff".to_owned(), - JvmArgument::Argument("10000".to_owned()), - ), - ( - "-XX:PerBytecodeRecompilationCutoff".to_owned(), - JvmArgument::Argument("10000".to_owned()), - ), - ( - "-Djdk.attach.allowAttachSelf".to_owned(), - JvmArgument::Argument("true".to_owned()), - ), - ( - "-Djdk.nio.maxCachedBufferSize".to_owned(), - JvmArgument::Argument("2000000".to_owned()), - ), - ( - "-Dfile.encoding".to_owned(), - JvmArgument::Argument("UTF-8".to_owned()), - ), - ( - "-XX:+EnableDynamicAgentLoading".to_owned(), - JvmArgument::Flag {}, - ), - ])), + "455" => Ok(vec![ + "-XX:InitialRAMPercentage=80".to_owned(), + "-XX:MaxRAMPercentage=80".to_owned(), + "-XX:G1HeapRegionSize=32M".to_owned(), + "-XX:+ExplicitGCInvokesConcurrent".to_owned(), + "-XX:+ExitOnOutOfMemoryError".to_owned(), + "-XX:+HeapDumpOnOutOfMemoryError".to_owned(), + "-XX:-OmitStackTraceInFastThrow".to_owned(), + "-XX:ReservedCodeCacheSize=512M".to_owned(), + "-XX:PerMethodRecompilationCutoff=10000".to_owned(), + "-XX:PerBytecodeRecompilationCutoff=10000".to_owned(), + "-Djdk.attach.allowAttachSelf=true".to_owned(), + "-Djdk.nio.maxCachedBufferSize=2000000".to_owned(), + "-Dfile.encoding=UTF-8".to_owned(), + "-XX:+EnableDynamicAgentLoading".to_owned(), + ]), _ => TrinoVersionNotSupportedSnafu { version: product_version, } @@ -275,28 +175,34 @@ mod tests { assert_eq!( jvm_config, indoc! {" - -Dfile.encoding=UTF-8 - -Djava.security.properties=/stackable/rwconfig/security.properties - -Djavax.net.ssl.trustStore=/stackable/client_tls/truststore.p12 - -Djavax.net.ssl.trustStorePassword=changeit - -Djavax.net.ssl.trustStoreType=pkcs12 - -Djdk.attach.allowAttachSelf=true - -Djdk.nio.maxCachedBufferSize=2000000 - -XX:+EnableDynamicAgentLoading - -XX:+ExitOnOutOfMemoryError - -XX:+ExplicitGCInvokesConcurrent - -XX:+HeapDumpOnOutOfMemoryError - -XX:-OmitStackTraceInFastThrow - -XX:G1HeapRegionSize=32M - -XX:InitialRAMPercentage=80 - -XX:MaxRAMPercentage=80 - -XX:PerBytecodeRecompilationCutoff=10000 - -XX:PerMethodRecompilationCutoff=10000 - -XX:ReservedCodeCacheSize=512M - -Xms34406m - -Xmx34406m - -javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar=8081:/stackable/jmx/config.yaml - -server"} + -server + # Heap settings + -Xms34406m + -Xmx34406m + # Specify security.properties + -Djava.security.properties=/stackable/rwconfig/security.properties + # Prometheus metrics exporter + -javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar=8081:/stackable/jmx/config.yaml + # Truststore settings + -Djavax.net.ssl.trustStore=/stackable/client_tls/truststore.p12 + -Djavax.net.ssl.trustStoreType=pkcs12 + -Djavax.net.ssl.trustStorePassword=changeit + # Recommended JVM arguments from Trino + -XX:InitialRAMPercentage=80 + -XX:MaxRAMPercentage=80 + -XX:G1HeapRegionSize=32M + -XX:+ExplicitGCInvokesConcurrent + -XX:+ExitOnOutOfMemoryError + -XX:+HeapDumpOnOutOfMemoryError + -XX:-OmitStackTraceInFastThrow + -XX:ReservedCodeCacheSize=512M + -XX:PerMethodRecompilationCutoff=10000 + -XX:PerBytecodeRecompilationCutoff=10000 + -Djdk.attach.allowAttachSelf=true + -Djdk.nio.maxCachedBufferSize=2000000 + -Dfile.encoding=UTF-8 + -XX:+EnableDynamicAgentLoading + # Arguments from jvmArgumentOverrides"} ); } @@ -318,56 +224,59 @@ mod tests { memory: limit: 42Gi jvmArgumentOverrides: - -XX:+UseG1GC: - remove: {} - -Dhttps.proxyHost: - argument: proxy.my.corp - -Dhttps.proxyPort: - argument: "8080" - -Djava.net.preferIPv4Stack: - argument: "true" + remove: + - -XX:+HeapDumpOnOutOfMemoryError + add: + - -Dhttps.proxyHost=proxy.my.corp + - -Dhttps.proxyPort=8080 + - -Djava.net.preferIPv4Stack=true roleGroups: default: replicas: 1 jvmArgumentOverrides: # We need more memory! - -Xmx34406m: - remove: {} - -Xmx40000m: - flag: {} - -Dhttps.proxyPort: - argument: "1234" + removeRegex: + - -Xmx.* + - -Dhttps.proxyPort=.* + add: + - -Xmx40000m + - -Dhttps.proxyPort=1234 "#; let jvm_config = construct_jvm_config(input); assert_eq!( jvm_config, indoc! {" - -Dfile.encoding=UTF-8 - -Dhttps.proxyHost=proxy.my.corp - -Dhttps.proxyPort=1234 - -Djava.net.preferIPv4Stack=true - -Djava.security.properties=/stackable/rwconfig/security.properties - -Djavax.net.ssl.trustStore=/stackable/client_tls/truststore.p12 - -Djavax.net.ssl.trustStorePassword=changeit - -Djavax.net.ssl.trustStoreType=pkcs12 - -Djdk.attach.allowAttachSelf=true - -Djdk.nio.maxCachedBufferSize=2000000 - -XX:+EnableDynamicAgentLoading - -XX:+ExitOnOutOfMemoryError - -XX:+ExplicitGCInvokesConcurrent - -XX:+HeapDumpOnOutOfMemoryError - -XX:-OmitStackTraceInFastThrow - -XX:G1HeapRegionSize=32M - -XX:InitialRAMPercentage=80 - -XX:MaxRAMPercentage=80 - -XX:PerBytecodeRecompilationCutoff=10000 - -XX:PerMethodRecompilationCutoff=10000 - -XX:ReservedCodeCacheSize=512M - -Xms34406m - -Xmx40000m - -javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar=8081:/stackable/jmx/config.yaml - -server"} + -server + # Heap settings + -Xms34406m + # Specify security.properties + -Djava.security.properties=/stackable/rwconfig/security.properties + # Prometheus metrics exporter + -javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar=8081:/stackable/jmx/config.yaml + # Truststore settings + -Djavax.net.ssl.trustStore=/stackable/client_tls/truststore.p12 + -Djavax.net.ssl.trustStoreType=pkcs12 + -Djavax.net.ssl.trustStorePassword=changeit + # Recommended JVM arguments from Trino + -XX:InitialRAMPercentage=80 + -XX:MaxRAMPercentage=80 + -XX:G1HeapRegionSize=32M + -XX:+ExplicitGCInvokesConcurrent + -XX:+ExitOnOutOfMemoryError + -XX:-OmitStackTraceInFastThrow + -XX:ReservedCodeCacheSize=512M + -XX:PerMethodRecompilationCutoff=10000 + -XX:PerBytecodeRecompilationCutoff=10000 + -Djdk.attach.allowAttachSelf=true + -Djdk.nio.maxCachedBufferSize=2000000 + -Dfile.encoding=UTF-8 + -XX:+EnableDynamicAgentLoading + # Arguments from jvmArgumentOverrides + -Dhttps.proxyHost=proxy.my.corp + -Djava.net.preferIPv4Stack=true + -Xmx40000m + -Dhttps.proxyPort=1234"} ); } @@ -377,17 +286,16 @@ mod tests { let role = TrinoRole::Coordinator; let rolegroup_ref = role.rolegroup_ref(&trino, "default"); let merged_config = trino.merged_config(&role, &rolegroup_ref, &[]).unwrap(); - let java_common_config = trino - .spec - .coordinators - .unwrap() - .merged_product_specific_common_config("default") + let coordinators = trino.spec.coordinators.unwrap(); + let (role_java_common_config, role_group_java_common_config) = coordinators + .merged_product_specific_common_configs("default") .unwrap(); jvm_config( trino.spec.image.product_version(), &merged_config, - &java_common_config, + role_java_common_config, + role_group_java_common_config, ) .unwrap() } diff --git a/rust/operator-binary/src/controller.rs b/rust/operator-binary/src/controller.rs index 80106581..dfdd267c 100644 --- a/rust/operator-binary/src/controller.rs +++ b/rust/operator-binary/src/controller.rs @@ -477,8 +477,8 @@ pub async fn reconcile_trino( for (role_group, config) in role_config { let rolegroup = trino_role.rolegroup_ref(trino, &role_group); - let java_common_config = role - .merged_product_specific_common_config(&role_group) + let (role_java_common_config, role_group_java_common_config) = role + .merged_product_specific_common_configs(&role_group) .context(GetMergedJvmArgumentOverridesSnafu)?; let merged_config = trino .merged_config(&trino_role, &rolegroup, &catalog_definitions) @@ -492,7 +492,8 @@ pub async fn reconcile_trino( &rolegroup, &config, &merged_config, - &java_common_config, + role_java_common_config, + role_group_java_common_config, &trino_authentication_config, &trino_opa_config, vector_aggregator_address.as_deref(), @@ -628,7 +629,8 @@ fn build_rolegroup_config_map( rolegroup_ref: &RoleGroupRef, config: &HashMap>, merged_config: &TrinoConfig, - java_common_config: &JavaCommonConfig, + role_java_common_config: &JavaCommonConfig, + role_group_java_common_config: &JavaCommonConfig, trino_authentication_config: &TrinoAuthenticationConfig, trino_opa_config: &Option, vector_aggregator_address: Option<&str>, @@ -639,7 +641,8 @@ fn build_rolegroup_config_map( let jvm_config = config::jvm::jvm_config( &resolved_product_image.product_version, merged_config, - java_common_config, + role_java_common_config, + role_group_java_common_config, ) .context(FailedToCreateJvmConfigSnafu)?; @@ -1751,6 +1754,7 @@ mod tests { .unwrap(), &merged_config, &Default::default(), + &Default::default(), &trino_authentication_config, &None, None, From 0ba9d3861b2b9698f7ca4fe252c03c401aeb0060 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Fri, 27 Dec 2024 10:41:15 +0100 Subject: [PATCH 05/14] charts --- deploy/helm/trino-operator/crds/crds.yaml | 148 ++++++++++++---------- 1 file changed, 80 insertions(+), 68 deletions(-) diff --git a/deploy/helm/trino-operator/crds/crds.yaml b/deploy/helm/trino-operator/crds/crds.yaml index 69e00cd3..859d836e 100644 --- a/deploy/helm/trino-operator/crds/crds.yaml +++ b/deploy/helm/trino-operator/crds/crds.yaml @@ -401,24 +401,27 @@ spec: 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 jvmArgumentOverrides: - additionalProperties: - oneOf: - - required: - - argument - - required: - - flag - - required: - - remove - properties: - argument: - type: string - flag: - type: object - remove: - type: object - type: object - default: {} + default: + add: [] + remove: [] + removeRegex: [] description: Allows overriding JVM arguments. + properties: + add: + default: [] + items: + type: string + type: array + remove: + default: [] + items: + type: string + type: array + removeRegex: + default: [] + items: + type: string + type: array type: object podOverrides: default: {} @@ -694,24 +697,27 @@ spec: 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 jvmArgumentOverrides: - additionalProperties: - oneOf: - - required: - - argument - - required: - - flag - - required: - - remove - properties: - argument: - type: string - flag: - type: object - remove: - type: object - type: object - default: {} + default: + add: [] + remove: [] + removeRegex: [] description: Allows overriding JVM arguments. + properties: + add: + default: [] + items: + type: string + type: array + remove: + default: [] + items: + type: string + type: array + removeRegex: + default: [] + items: + type: string + type: array type: object podOverrides: default: {} @@ -1016,24 +1022,27 @@ spec: 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 jvmArgumentOverrides: - additionalProperties: - oneOf: - - required: - - argument - - required: - - flag - - required: - - remove - properties: - argument: - type: string - flag: - type: object - remove: - type: object - type: object - default: {} + default: + add: [] + remove: [] + removeRegex: [] description: Allows overriding JVM arguments. + properties: + add: + default: [] + items: + type: string + type: array + remove: + default: [] + items: + type: string + type: array + removeRegex: + default: [] + items: + type: string + type: array type: object podOverrides: default: {} @@ -1309,24 +1318,27 @@ spec: 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 jvmArgumentOverrides: - additionalProperties: - oneOf: - - required: - - argument - - required: - - flag - - required: - - remove - properties: - argument: - type: string - flag: - type: object - remove: - type: object - type: object - default: {} + default: + add: [] + remove: [] + removeRegex: [] description: Allows overriding JVM arguments. + properties: + add: + default: [] + items: + type: string + type: array + remove: + default: [] + items: + type: string + type: array + removeRegex: + default: [] + items: + type: string + type: array type: object podOverrides: default: {} From 219e0d3254a45867b6571b66ebd534ed05ad1203 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 2 Jan 2025 11:04:16 +0100 Subject: [PATCH 06/14] update op-rs --- Cargo.lock | 92 +++++++++++------------ deploy/helm/trino-operator/crds/crds.yaml | 8 +- rust/operator-binary/src/config/jvm.rs | 2 +- rust/operator-binary/src/controller.rs | 2 +- 4 files changed, 52 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 36459df9..7990b6df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -146,7 +146,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -157,7 +157,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -329,7 +329,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -454,7 +454,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -465,7 +465,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -476,7 +476,7 @@ checksum = "bc2323e10c92e1cf4d86e11538512e6dc03ceb586842970b6332af3d4046a046" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -506,7 +506,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -544,7 +544,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -588,7 +588,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -730,7 +730,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -812,9 +812,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "hashbrown" @@ -1151,7 +1151,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -1385,7 +1385,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -1588,7 +1588,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -1767,7 +1767,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -1798,7 +1798,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -2007,7 +2007,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.92", + "syn 2.0.94", "unicode-ident", ] @@ -2135,7 +2135,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -2197,9 +2197,9 @@ checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" [[package]] name = "serde" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] @@ -2216,13 +2216,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -2233,7 +2233,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -2361,7 +2361,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -2389,7 +2389,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stackable-operator" version = "0.83.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#97bde943055a4ea1a57bfaa1a36d6bba4f79b852" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#9a9a99c243b65ef548d72f94796f9677123d6947" dependencies = [ "chrono", "clap", @@ -2427,18 +2427,18 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#97bde943055a4ea1a57bfaa1a36d6bba4f79b852" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#9a9a99c243b65ef548d72f94796f9677123d6947" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] name = "stackable-shared" version = "0.0.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#97bde943055a4ea1a57bfaa1a36d6bba4f79b852" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#9a9a99c243b65ef548d72f94796f9677123d6947" dependencies = [ "kube", "semver", @@ -2511,7 +2511,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -2533,9 +2533,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.92" +version = "2.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ae51629bf965c5c098cc9e87908a3df5301051a9e087d6f9bef5c9771ed126" +checksum = "987bc0be1cdea8b10216bd06e2ca407d40b9543468fafd3ddfb02f36e77f71f3" dependencies = [ "proc-macro2", "quote", @@ -2556,7 +2556,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -2585,7 +2585,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -2596,7 +2596,7 @@ checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -2698,7 +2698,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -2832,7 +2832,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -3031,7 +3031,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", "wasm-bindgen-shared", ] @@ -3053,7 +3053,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3189,9 +3189,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "e6f5bb5257f2407a5425c6e749bfd9692192a73e70a6060516ac04f889087d68" dependencies = [ "memchr", ] @@ -3234,7 +3234,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", "synstructure", ] @@ -3256,7 +3256,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -3276,7 +3276,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", "synstructure", ] @@ -3305,5 +3305,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] diff --git a/deploy/helm/trino-operator/crds/crds.yaml b/deploy/helm/trino-operator/crds/crds.yaml index 859d836e..78fdbfea 100644 --- a/deploy/helm/trino-operator/crds/crds.yaml +++ b/deploy/helm/trino-operator/crds/crds.yaml @@ -405,7 +405,7 @@ spec: add: [] remove: [] removeRegex: [] - description: Allows overriding JVM arguments. + description: Allows overriding JVM arguments. Please read on the [JVM argument overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#jvm-argument-overrides) for details on the usage. properties: add: default: [] @@ -701,7 +701,7 @@ spec: add: [] remove: [] removeRegex: [] - description: Allows overriding JVM arguments. + description: Allows overriding JVM arguments. Please read on the [JVM argument overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#jvm-argument-overrides) for details on the usage. properties: add: default: [] @@ -1026,7 +1026,7 @@ spec: add: [] remove: [] removeRegex: [] - description: Allows overriding JVM arguments. + description: Allows overriding JVM arguments. Please read on the [JVM argument overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#jvm-argument-overrides) for details on the usage. properties: add: default: [] @@ -1322,7 +1322,7 @@ spec: add: [] remove: [] removeRegex: [] - description: Allows overriding JVM arguments. + description: Allows overriding JVM arguments. Please read on the [JVM argument overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#jvm-argument-overrides) for details on the usage. properties: add: default: [] diff --git a/rust/operator-binary/src/config/jvm.rs b/rust/operator-binary/src/config/jvm.rs index 257f2419..d4e5c990 100644 --- a/rust/operator-binary/src/config/jvm.rs +++ b/rust/operator-binary/src/config/jvm.rs @@ -288,7 +288,7 @@ mod tests { let merged_config = trino.merged_config(&role, &rolegroup_ref, &[]).unwrap(); let coordinators = trino.spec.coordinators.unwrap(); let (role_java_common_config, role_group_java_common_config) = coordinators - .merged_product_specific_common_configs("default") + .get_product_specific_common_configs("default") .unwrap(); jvm_config( diff --git a/rust/operator-binary/src/controller.rs b/rust/operator-binary/src/controller.rs index 6b651142..3a189511 100644 --- a/rust/operator-binary/src/controller.rs +++ b/rust/operator-binary/src/controller.rs @@ -478,7 +478,7 @@ pub async fn reconcile_trino( let rolegroup = trino_role.rolegroup_ref(trino, &role_group); let (role_java_common_config, role_group_java_common_config) = role - .merged_product_specific_common_configs(&role_group) + .get_product_specific_common_configs(&role_group) .context(GetMergedJvmArgumentOverridesSnafu)?; let merged_config = trino .merged_config(&trino_role, &rolegroup, &catalog_definitions) From 6991ad0eec541c6c0e93d70e2e1038130921b1a5 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Tue, 14 Jan 2025 11:49:42 +0100 Subject: [PATCH 07/14] Update to new op-rs --- Cargo.lock | 335 +++++++++--------- Cargo.toml | 1 + .../helm/trino-operator/templates/roles.yaml | 1 + rust/operator-binary/Cargo.toml | 1 + rust/operator-binary/src/config/jvm.rs | 38 +- rust/operator-binary/src/controller.rs | 58 +-- rust/operator-binary/src/main.rs | 43 ++- 7 files changed, 254 insertions(+), 223 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7990b6df..9f3259f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -101,11 +101,12 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.6" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", + "once_cell", "windows-sys 0.59.0", ] @@ -146,18 +147,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -221,15 +222,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" [[package]] name = "block-buffer" @@ -270,9 +265,9 @@ checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cc" -version = "1.2.6" +version = "1.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" +checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" dependencies = [ "jobserver", "libc", @@ -300,9 +295,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.23" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" +checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" dependencies = [ "clap_builder", "clap_derive", @@ -310,9 +305,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.23" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" +checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" dependencies = [ "anstream", "anstyle", @@ -322,14 +317,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.18" +version = "4.5.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -454,7 +449,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -465,18 +460,18 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] name = "delegate" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc2323e10c92e1cf4d86e11538512e6dc03ceb586842970b6332af3d4046a046" +checksum = "297806318ef30ad066b15792a8372858020ae3ca2e414ee6c2133b1eb9e9e945" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -506,7 +501,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -517,9 +512,9 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] name = "dockerfile-parser" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75799314f5fa405629a365a1f97d80f81edd17f22a0fc9c8ddb3ad191ad8dc08" +checksum = "aa53f9cb1532d7d7c19e269848ede84d7c80d59264c658469f0051a1d88c2780" dependencies = [ "enquote", "lazy_static", @@ -544,7 +539,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -588,7 +583,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -599,9 +594,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "event-listener" -version = "5.3.1" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", @@ -629,21 +624,18 @@ dependencies = [ "regex-syntax 0.8.5", ] -[[package]] -name = "fluent-uri" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "foreign-types" version = "0.3.2" @@ -730,7 +722,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -803,7 +795,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags 2.6.0", + "bitflags", "libc", "libgit2-sys", "log", @@ -818,20 +810,15 @@ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ - "ahash", "allocator-api2", + "equivalent", + "foldhash", ] -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - [[package]] name = "headers" version = "0.4.0" @@ -877,6 +864,17 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "hostname" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" +dependencies = [ + "cfg-if", + "libc", + "windows", +] + [[package]] name = "http" version = "1.2.0" @@ -1151,7 +1149,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -1188,7 +1186,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown", ] [[package]] @@ -1246,9 +1244,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ "once_cell", "wasm-bindgen", @@ -1256,9 +1254,9 @@ dependencies = [ [[package]] name = "json-patch" -version = "2.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" dependencies = [ "jsonptr", "serde", @@ -1268,35 +1266,32 @@ dependencies = [ [[package]] name = "jsonpath-rust" -version = "0.5.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d8fe85bd70ff715f31ce8c739194b423d79811a19602115d611a3ec85d6200" +checksum = "0c00ae348f9f8fd2d09f82a98ca381c60df9e0820d8d79fce43e649b4dc3128b" dependencies = [ - "lazy_static", - "once_cell", "pest", "pest_derive", "regex", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] name = "jsonptr" -version = "0.4.7" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" dependencies = [ - "fluent-uri", "serde", "serde_json", ] [[package]] name = "k8s-openapi" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8847402328d8301354c94d605481f25a6bdc1ed65471fd96af8eca71141b13" +checksum = "2c75b990324f09bef15e791606b7b7a296d02fc88a344f6eba9390970a870ad5" dependencies = [ "base64 0.22.1", "chrono", @@ -1308,9 +1303,9 @@ dependencies = [ [[package]] name = "kube" -version = "0.96.0" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efffeb3df0bd4ef3e5d65044573499c0e4889b988070b08c50b25b1329289a1f" +checksum = "32053dc495efad4d188c7b33cc7c02ef4a6e43038115348348876efd39a53cba" dependencies = [ "k8s-openapi", "kube-client", @@ -1321,9 +1316,9 @@ dependencies = [ [[package]] name = "kube-client" -version = "0.96.0" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf471ece8ff8d24735ce78dac4d091e9fcb8d74811aeb6b75de4d1c3f5de0f1" +checksum = "9d34ad38cdfbd1fa87195d42569f57bb1dda6ba5f260ee32fef9570b7937a0c9" dependencies = [ "base64 0.22.1", "bytes", @@ -1349,7 +1344,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tokio-util", "tower", @@ -1359,9 +1354,9 @@ dependencies = [ [[package]] name = "kube-core" -version = "0.96.0" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f42346d30bb34d1d7adc5c549b691bce7aa3a1e60254e68fab7e2d7b26fe3d77" +checksum = "97aa830b288a178a90e784d1b0f1539f2d200d2188c7b4a3146d9dc983d596f3" dependencies = [ "chrono", "form_urlencoded", @@ -1372,27 +1367,27 @@ dependencies = [ "serde", "serde-value", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] name = "kube-derive" -version = "0.96.0" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9364e04cc5e0482136c6ee8b7fb7551812da25802249f35b3def7aaa31e82ad" +checksum = "37745d8a4076b77e0b1952e94e358726866c8e14ec94baaca677d47dcdb98658" dependencies = [ "darling", "proc-macro2", "quote", "serde_json", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] name = "kube-runtime" -version = "0.96.0" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fbf1f6ffa98e65f1d2a9a69338bb60605d46be7edf00237784b89e62c9bd44" +checksum = "7a41af186a0fe80c71a13a13994abdc3ebff80859ca6a4b8a6079948328c135b" dependencies = [ "ahash", "async-broadcast", @@ -1401,7 +1396,8 @@ dependencies = [ "backoff", "educe", "futures 0.3.31", - "hashbrown 0.14.5", + "hashbrown", + "hostname", "json-patch", "jsonptr", "k8s-openapi", @@ -1410,7 +1406,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tokio-util", "tracing", @@ -1442,9 +1438,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.20" +version = "1.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" dependencies = [ "cc", "libc", @@ -1497,9 +1493,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] @@ -1571,7 +1567,7 @@ version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -1588,7 +1584,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -1743,7 +1739,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 2.0.9", + "thiserror 2.0.11", "ucd-trie", ] @@ -1767,7 +1763,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -1783,29 +1779,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -1845,9 +1841,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -1913,7 +1909,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags", ] [[package]] @@ -2007,7 +2003,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.94", + "syn 2.0.96", "unicode-ident", ] @@ -2028,9 +2024,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.20" +version = "0.23.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" +checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" dependencies = [ "log", "once_cell", @@ -2063,7 +2059,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.1.0", + "security-framework 3.2.0", ] [[package]] @@ -2135,7 +2131,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -2159,7 +2155,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -2168,11 +2164,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -2181,9 +2177,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -2222,7 +2218,7 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -2233,14 +2229,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] name = "serde_json" -version = "1.0.134" +version = "1.0.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" dependencies = [ "itoa", "memchr", @@ -2361,7 +2357,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -2389,7 +2385,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stackable-operator" version = "0.83.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#9a9a99c243b65ef548d72f94796f9677123d6947" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#66d4ec9f7965869c1546453f31dfd4a3e53d2241" dependencies = [ "chrono", "clap", @@ -2427,18 +2423,18 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#9a9a99c243b65ef548d72f94796f9677123d6947" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#66d4ec9f7965869c1546453f31dfd4a3e53d2241" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] name = "stackable-shared" version = "0.0.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#9a9a99c243b65ef548d72f94796f9677123d6947" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#66d4ec9f7965869c1546453f31dfd4a3e53d2241" dependencies = [ "kube", "semver", @@ -2470,6 +2466,7 @@ dependencies = [ "async-trait", "built", "clap", + "const_format", "futures 0.3.31", "indoc", "openssl", @@ -2511,7 +2508,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -2533,9 +2530,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.94" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "987bc0be1cdea8b10216bd06e2ca407d40b9543468fafd3ddfb02f36e77f71f3" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -2556,7 +2553,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -2570,11 +2567,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.9" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ - "thiserror-impl 2.0.9", + "thiserror-impl 2.0.11", ] [[package]] @@ -2585,18 +2582,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] name = "thiserror-impl" -version = "2.0.9" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -2674,9 +2671,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.42.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", @@ -2692,13 +2689,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -2777,7 +2774,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ "base64 0.22.1", - "bitflags 2.6.0", + "bitflags", "bytes", "http", "http-body", @@ -2832,7 +2829,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -3012,34 +3009,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3047,22 +3045,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "web-time" @@ -3096,6 +3097,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets", +] + [[package]] name = "windows-core" version = "0.52.0" @@ -3189,9 +3200,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.21" +version = "0.6.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6f5bb5257f2407a5425c6e749bfd9692192a73e70a6060516ac04f889087d68" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" dependencies = [ "memchr", ] @@ -3210,9 +3221,9 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "xml-rs" -version = "0.8.24" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea8b391c9a790b496184c29f7f93b9ed5b16abb306c05415b68bcc16e4d06432" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" [[package]] name = "yoke" @@ -3234,7 +3245,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", "synstructure", ] @@ -3256,7 +3267,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] [[package]] @@ -3276,7 +3287,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", "synstructure", ] @@ -3305,5 +3316,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.94", + "syn 2.0.96", ] diff --git a/Cargo.toml b/Cargo.toml index f83068c9..c47e1879 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,7 @@ anyhow = "1.0" async-trait = "0.1" built = { version = "0.7", features = ["chrono", "git2"] } clap = "4.5" +const_format = "0.2" futures = { version = "0.3", features = ["compat"] } indoc = "2.0" openssl = "0.10" diff --git a/deploy/helm/trino-operator/templates/roles.yaml b/deploy/helm/trino-operator/templates/roles.yaml index dda4e7a8..7586c26e 100644 --- a/deploy/helm/trino-operator/templates/roles.yaml +++ b/deploy/helm/trino-operator/templates/roles.yaml @@ -108,6 +108,7 @@ rules: - events verbs: - create + - patch - apiGroups: - {{ include "operator.name" . }}.stackable.tech resources: diff --git a/rust/operator-binary/Cargo.toml b/rust/operator-binary/Cargo.toml index 5b53e0b4..11110f7a 100644 --- a/rust/operator-binary/Cargo.toml +++ b/rust/operator-binary/Cargo.toml @@ -15,6 +15,7 @@ stackable-trino-crd = { path = "../crd" } anyhow.workspace = true async-trait.workspace = true clap.workspace = true +const_format.workspace = true futures.workspace = true indoc.workspace = true openssl.workspace = true diff --git a/rust/operator-binary/src/config/jvm.rs b/rust/operator-binary/src/config/jvm.rs index d4e5c990..a89f6e12 100644 --- a/rust/operator-binary/src/config/jvm.rs +++ b/rust/operator-binary/src/config/jvm.rs @@ -2,13 +2,12 @@ // This requires a different JVM config use snafu::{OptionExt, ResultExt, Snafu}; use stackable_operator::{ - config::merge::Merge, memory::{BinaryMultiple, MemoryQuantity}, - role_utils::{JavaCommonConfig, JvmArgumentOverrides}, + role_utils::{self, GenericRoleConfig, JavaCommonConfig, JvmArgumentOverrides, Role}, }; use stackable_trino_crd::{ - TrinoConfig, JVM_HEAP_FACTOR, JVM_SECURITY_PROPERTIES, METRICS_PORT, RW_CONFIG_DIR_NAME, - STACKABLE_CLIENT_TLS_DIR, STACKABLE_TLS_STORE_PASSWORD, + TrinoConfig, TrinoConfigFragment, JVM_HEAP_FACTOR, JVM_SECURITY_PROPERTIES, METRICS_PORT, + RW_CONFIG_DIR_NAME, STACKABLE_CLIENT_TLS_DIR, STACKABLE_TLS_STORE_PASSWORD, }; #[derive(Snafu, Debug)] @@ -30,6 +29,9 @@ pub enum Error { #[snafu(display("the Trino version {version} is not supported, as we don't know the needed JVm configuration"))] TrinoVersionNotSupported { version: String }, + + #[snafu(display("failed to merge jvm argument overrides"))] + MergeJvmArgumentOverrides { source: role_utils::Error }, } // Currently works for all supported versions (451 and 455 as of 2024-09-04) but maybe be changed @@ -37,8 +39,8 @@ pub enum Error { pub fn jvm_config( product_version: &str, merged_config: &TrinoConfig, - role_java_common_config: &JavaCommonConfig, - role_group_java_common_config: &JavaCommonConfig, + role: &Role, + role_group: &str, ) -> Result { let memory_unit = BinaryMultiple::Mebi; let heap_size = MemoryQuantity::try_from( @@ -81,19 +83,12 @@ pub fn jvm_config( jvm_args.push("# Arguments from jvmArgumentOverrides".to_owned()); - let operator_generated = JavaCommonConfig { - jvm_argument_overrides: JvmArgumentOverrides::new_with_only_additions(jvm_args), - }; - - // Please note that the merge order is different than we normally do! - // This is not trivial, as the merge operation is not purely additive (as it is with e.g. `PodTemplateSpec). - let mut role = role_java_common_config.clone(); - role.merge(&operator_generated); - let mut role_group = role_group_java_common_config.clone(); - role_group.merge(&role); + let operator_generated = JvmArgumentOverrides::new_with_only_additions(jvm_args); + let merged_jvm_argument_overrides = role + .get_merged_jvm_argument_overrides(role_group, &operator_generated) + .context(MergeJvmArgumentOverridesSnafu)?; - Ok(role_group - .jvm_argument_overrides + Ok(merged_jvm_argument_overrides .effective_jvm_config_after_merging() .join("\n")) } @@ -287,15 +282,12 @@ mod tests { let rolegroup_ref = role.rolegroup_ref(&trino, "default"); let merged_config = trino.merged_config(&role, &rolegroup_ref, &[]).unwrap(); let coordinators = trino.spec.coordinators.unwrap(); - let (role_java_common_config, role_group_java_common_config) = coordinators - .get_product_specific_common_configs("default") - .unwrap(); jvm_config( trino.spec.image.product_version(), &merged_config, - role_java_common_config, - role_group_java_common_config, + &coordinators, + "default", ) .unwrap() } diff --git a/rust/operator-binary/src/controller.rs b/rust/operator-binary/src/controller.rs index 3a189511..da1cfdf1 100644 --- a/rust/operator-binary/src/controller.rs +++ b/rust/operator-binary/src/controller.rs @@ -7,6 +7,7 @@ use std::{ sync::Arc, }; +use const_format::concatcp; use product_config::{ self, types::PropertyNameKind, @@ -62,7 +63,7 @@ use stackable_operator::{ CustomContainerLogConfig, }, }, - role_utils::{GenericRoleConfig, JavaCommonConfig, RoleGroupRef}, + role_utils::{GenericRoleConfig, JavaCommonConfig, Role, RoleGroupRef}, status::condition::{ compute_conditions, operations::ClusterOperationsConditionBuilder, statefulset::StatefulSetConditionBuilder, @@ -74,13 +75,13 @@ use stackable_trino_crd::{ authentication::resolve_authentication_classes, catalog::TrinoCatalog, discovery::{TrinoDiscovery, TrinoDiscoveryProtocol, TrinoPodRef}, - Container, TrinoCluster, TrinoClusterStatus, TrinoConfig, TrinoRole, ACCESS_CONTROL_PROPERTIES, - APP_NAME, CONFIG_DIR_NAME, CONFIG_PROPERTIES, DATA_DIR_NAME, DISCOVERY_URI, - ENV_INTERNAL_SECRET, HTTPS_PORT, HTTPS_PORT_NAME, HTTP_PORT, HTTP_PORT_NAME, JVM_CONFIG, - JVM_SECURITY_PROPERTIES, LOG_COMPRESSION, LOG_FORMAT, LOG_MAX_SIZE, LOG_MAX_TOTAL_SIZE, - LOG_PATH, LOG_PROPERTIES, METRICS_PORT, METRICS_PORT_NAME, NODE_PROPERTIES, RW_CONFIG_DIR_NAME, - STACKABLE_CLIENT_TLS_DIR, STACKABLE_INTERNAL_TLS_DIR, STACKABLE_MOUNT_INTERNAL_TLS_DIR, - STACKABLE_MOUNT_SERVER_TLS_DIR, STACKABLE_SERVER_TLS_DIR, + Container, TrinoCluster, TrinoClusterStatus, TrinoConfig, TrinoConfigFragment, TrinoRole, + ACCESS_CONTROL_PROPERTIES, APP_NAME, CONFIG_DIR_NAME, CONFIG_PROPERTIES, DATA_DIR_NAME, + DISCOVERY_URI, ENV_INTERNAL_SECRET, HTTPS_PORT, HTTPS_PORT_NAME, HTTP_PORT, HTTP_PORT_NAME, + JVM_CONFIG, JVM_SECURITY_PROPERTIES, LOG_COMPRESSION, LOG_FORMAT, LOG_MAX_SIZE, + LOG_MAX_TOTAL_SIZE, LOG_PATH, LOG_PROPERTIES, METRICS_PORT, METRICS_PORT_NAME, NODE_PROPERTIES, + RW_CONFIG_DIR_NAME, STACKABLE_CLIENT_TLS_DIR, STACKABLE_INTERNAL_TLS_DIR, + STACKABLE_MOUNT_INTERNAL_TLS_DIR, STACKABLE_MOUNT_SERVER_TLS_DIR, STACKABLE_SERVER_TLS_DIR, }; use strum::{EnumDiscriminants, IntoStaticStr}; @@ -102,6 +103,7 @@ pub struct Ctx { pub const OPERATOR_NAME: &str = "trino.stackable.tech"; pub const CONTROLLER_NAME: &str = "trinocluster"; +pub const FULL_CONTROLLER_NAME: &str = concatcp!(CONTROLLER_NAME, '.', OPERATOR_NAME); pub const TRINO_UID: i64 = 1000; pub const STACKABLE_LOG_DIR: &str = "/stackable/log"; @@ -473,13 +475,14 @@ pub async fn reconcile_trino( for (trino_role_str, role_config) in validated_config { let trino_role = TrinoRole::from_str(&trino_role_str).context(FailedToParseRoleSnafu)?; - let role = trino.role(&trino_role).context(ReadRoleConfigSnafu)?; + let role: &stackable_operator::role_utils::Role< + stackable_trino_crd::TrinoConfigFragment, + GenericRoleConfig, + JavaCommonConfig, + > = trino.role(&trino_role).context(ReadRoleConfigSnafu)?; for (role_group, config) in role_config { let rolegroup = trino_role.rolegroup_ref(trino, &role_group); - let (role_java_common_config, role_group_java_common_config) = role - .get_product_specific_common_configs(&role_group) - .context(GetMergedJvmArgumentOverridesSnafu)?; let merged_config = trino .merged_config(&trino_role, &rolegroup, &catalog_definitions) .context(FailedToResolveConfigSnafu)?; @@ -488,12 +491,11 @@ pub async fn reconcile_trino( let rg_configmap = build_rolegroup_config_map( trino, &resolved_product_image, + &role, &trino_role, &rolegroup, &config, &merged_config, - role_java_common_config, - role_group_java_common_config, &trino_authentication_config, &trino_opa_config, vector_aggregator_address.as_deref(), @@ -625,12 +627,11 @@ pub fn build_coordinator_role_service( fn build_rolegroup_config_map( trino: &TrinoCluster, resolved_product_image: &ResolvedProductImage, - role: &TrinoRole, + role: &Role, + trino_role: &TrinoRole, rolegroup_ref: &RoleGroupRef, config: &HashMap>, merged_config: &TrinoConfig, - role_java_common_config: &JavaCommonConfig, - role_group_java_common_config: &JavaCommonConfig, trino_authentication_config: &TrinoAuthenticationConfig, trino_opa_config: &Option, vector_aggregator_address: Option<&str>, @@ -641,8 +642,8 @@ fn build_rolegroup_config_map( let jvm_config = config::jvm::jvm_config( &resolved_product_image.product_version, merged_config, - role_java_common_config, - role_group_java_common_config, + role, + &rolegroup_ref.role_group, ) .context(FailedToCreateJvmConfigSnafu)?; @@ -654,7 +655,7 @@ fn build_rolegroup_config_map( .context(MissingCoordinatorPodsSnafu)?; // Add additional config files fore authentication - cm_conf_data.extend(trino_authentication_config.config_files(role)); + cm_conf_data.extend(trino_authentication_config.config_files(trino_role)); for (property_name_kind, config) in config { // We used this temporary map to add all dynamically resolved (e.g. discovery config maps) @@ -672,7 +673,7 @@ fn build_rolegroup_config_map( // Add authentication properties (only required for the Coordinator) dynamic_resolved_config.extend( trino_authentication_config - .config_properties(role) + .config_properties(trino_role) .into_iter() .map(|(k, v)| (k, Some(v))) .collect::>>(), @@ -690,7 +691,8 @@ fn build_rolegroup_config_map( Some(discovery.discovery_uri(cluster_info)), ); - dynamic_resolved_config.extend(graceful_shutdown_config_properties(trino, role)); + dynamic_resolved_config + .extend(graceful_shutdown_config_properties(trino, trino_role)); // The log format used by Trino dynamic_resolved_config.insert(LOG_FORMAT.to_string(), Some("json".to_string())); @@ -1738,10 +1740,11 @@ mod tests { ) .unwrap(); - let role = TrinoRole::Coordinator; + let trino_role = TrinoRole::Coordinator; + let role = trino.role(&trino_role).unwrap(); let rolegroup_ref = RoleGroupRef { cluster: ObjectRef::from_obj(&trino), - role: role.to_string(), + role: trino_role.to_string(), role_group: "default".to_string(), }; let trino_authentication_config = TrinoAuthenticationConfig::new( @@ -1749,12 +1752,15 @@ mod tests { TrinoAuthenticationTypes::try_from(Vec::new()).unwrap(), ) .unwrap(); - let merged_config = trino.merged_config(&role, &rolegroup_ref, &[]).unwrap(); + let merged_config = trino + .merged_config(&trino_role, &rolegroup_ref, &[]) + .unwrap(); build_rolegroup_config_map( &trino, &resolved_product_image, &role, + &trino_role, &rolegroup_ref, validated_config .get("coordinator") @@ -1762,8 +1768,6 @@ mod tests { .get("default") .unwrap(), &merged_config, - &Default::default(), - &Default::default(), &trino_authentication_config, &None, None, diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index 92a60a92..3245ac5b 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -7,7 +7,7 @@ mod controller; mod operations; mod product_logging; -use crate::controller::{CONTROLLER_NAME, OPERATOR_NAME}; +use std::sync::Arc; use clap::{crate_description, crate_version, Parser}; use futures::stream::StreamExt; @@ -20,14 +20,19 @@ use stackable_operator::{ }, kube::{ core::DeserializeGuard, - runtime::{reflector::ObjectRef, watcher, Controller}, + runtime::{ + events::{Recorder, Reporter}, + reflector::ObjectRef, + watcher, Controller, + }, ResourceExt, }, logging::controller::report_controller_reconciled, CustomResourceExt, }; use stackable_trino_crd::{catalog::TrinoCatalog, TrinoCluster, APP_NAME}; -use std::sync::Arc; + +use crate::controller::{FULL_CONTROLLER_NAME, OPERATOR_NAME}; mod built_info { include!(concat!(env!("OUT_DIR"), "/built.rs")); @@ -77,6 +82,13 @@ async fn main() -> anyhow::Result<()> { &cluster_info_opts, ) .await?; + let event_recorder = Arc::new(Recorder::new( + client.as_kube_client(), + Reporter { + controller: FULL_CONTROLLER_NAME.to_string(), + instance: None, + }, + )); let cluster_controller = Controller::new( watch_namespace.get_api::>(&client), @@ -133,14 +145,23 @@ async fn main() -> anyhow::Result<()> { product_config, }), ) - .map(|res| { - report_controller_reconciled( - &client, - &format!("{CONTROLLER_NAME}.{OPERATOR_NAME}"), - &res, - ) - }) - .collect::<()>() + // We can let the reporting happen in the background + .for_each_concurrent( + 16, // concurrency limit + |result| { + // The event_recorder needs to be shared across all invocations, so that + // events are correctly aggregated + let event_recorder = event_recorder.clone(); + async move { + report_controller_reconciled( + &event_recorder, + FULL_CONTROLLER_NAME, + &result, + ) + .await; + } + }, + ) .await; } } From b950bd7ccfff1b071cd9db8a604570c22df08b71 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Tue, 14 Jan 2025 11:53:02 +0100 Subject: [PATCH 08/14] refactor --- deploy/helm/trino-operator/crds/crds.yaml | 12 ++++++++++++ rust/operator-binary/src/controller.rs | 11 ++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/deploy/helm/trino-operator/crds/crds.yaml b/deploy/helm/trino-operator/crds/crds.yaml index 78fdbfea..347b466d 100644 --- a/deploy/helm/trino-operator/crds/crds.yaml +++ b/deploy/helm/trino-operator/crds/crds.yaml @@ -409,16 +409,19 @@ spec: properties: add: default: [] + description: JVM arguments to be added items: type: string type: array remove: default: [] + description: JVM arguments to be removed by exact match items: type: string type: array removeRegex: default: [] + description: JVM arguments matching any of this regexes will be removed items: type: string type: array @@ -705,16 +708,19 @@ spec: properties: add: default: [] + description: JVM arguments to be added items: type: string type: array remove: default: [] + description: JVM arguments to be removed by exact match items: type: string type: array removeRegex: default: [] + description: JVM arguments matching any of this regexes will be removed items: type: string type: array @@ -1030,16 +1036,19 @@ spec: properties: add: default: [] + description: JVM arguments to be added items: type: string type: array remove: default: [] + description: JVM arguments to be removed by exact match items: type: string type: array removeRegex: default: [] + description: JVM arguments matching any of this regexes will be removed items: type: string type: array @@ -1326,16 +1335,19 @@ spec: properties: add: default: [] + description: JVM arguments to be added items: type: string type: array remove: default: [] + description: JVM arguments to be removed by exact match items: type: string type: array removeRegex: default: [] + description: JVM arguments matching any of this regexes will be removed items: type: string type: array diff --git a/rust/operator-binary/src/controller.rs b/rust/operator-binary/src/controller.rs index da1cfdf1..08111b73 100644 --- a/rust/operator-binary/src/controller.rs +++ b/rust/operator-binary/src/controller.rs @@ -342,8 +342,8 @@ pub enum Error { source: error_boundary::InvalidObject, }, - #[snafu(display("failed to read role config"))] - ReadRoleConfig { source: stackable_trino_crd::Error }, + #[snafu(display("failed to read role"))] + ReadRole { source: stackable_trino_crd::Error }, #[snafu(display("failed to get merged jvmArgumentOverrides"))] GetMergedJvmArgumentOverrides { @@ -475,11 +475,8 @@ pub async fn reconcile_trino( for (trino_role_str, role_config) in validated_config { let trino_role = TrinoRole::from_str(&trino_role_str).context(FailedToParseRoleSnafu)?; - let role: &stackable_operator::role_utils::Role< - stackable_trino_crd::TrinoConfigFragment, - GenericRoleConfig, - JavaCommonConfig, - > = trino.role(&trino_role).context(ReadRoleConfigSnafu)?; + let role: &Role = + trino.role(&trino_role).context(ReadRoleSnafu)?; for (role_group, config) in role_config { let rolegroup = trino_role.rolegroup_ref(trino, &role_group); From 16fad65c1509d6b1881207d2a780ed749c92371c Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Tue, 14 Jan 2025 11:53:55 +0100 Subject: [PATCH 09/14] clippy --- rust/operator-binary/src/controller.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/operator-binary/src/controller.rs b/rust/operator-binary/src/controller.rs index 08111b73..ee32c4df 100644 --- a/rust/operator-binary/src/controller.rs +++ b/rust/operator-binary/src/controller.rs @@ -488,7 +488,7 @@ pub async fn reconcile_trino( let rg_configmap = build_rolegroup_config_map( trino, &resolved_product_image, - &role, + role, &trino_role, &rolegroup, &config, @@ -1756,7 +1756,7 @@ mod tests { build_rolegroup_config_map( &trino, &resolved_product_image, - &role, + role, &trino_role, &rolegroup_ref, validated_config From 4a699b162514df29b375a8d7139fedabd8d361b9 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Wed, 15 Jan 2025 09:39:10 +0100 Subject: [PATCH 10/14] cargo update --- Cargo.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9f3259f2..c0b4e3c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -222,9 +222,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitflags" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "block-buffer" @@ -1466,9 +1466,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "matchers" @@ -2385,7 +2385,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stackable-operator" version = "0.83.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#66d4ec9f7965869c1546453f31dfd4a3e53d2241" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#5769f5c3b64e450b6cacec0478a7c4e94bf8347c" dependencies = [ "chrono", "clap", @@ -2423,7 +2423,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#66d4ec9f7965869c1546453f31dfd4a3e53d2241" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#5769f5c3b64e450b6cacec0478a7c4e94bf8347c" dependencies = [ "darling", "proc-macro2", @@ -2434,7 +2434,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#66d4ec9f7965869c1546453f31dfd4a3e53d2241" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#5769f5c3b64e450b6cacec0478a7c4e94bf8347c" dependencies = [ "kube", "semver", From f2df7d10266da07ca3150068a4f03055c8bed635 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 16 Jan 2025 11:17:48 +0100 Subject: [PATCH 11/14] Use op-rs 0.74.0 --- Cargo.lock | 8 ++++---- Cargo.toml | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c0b4e3c6..c712273e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2384,8 +2384,8 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stackable-operator" -version = "0.83.0" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#5769f5c3b64e450b6cacec0478a7c4e94bf8347c" +version = "0.84.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.0#af0d1f19d8770d346096a38c6dc82ba70e371039" dependencies = [ "chrono", "clap", @@ -2423,7 +2423,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#5769f5c3b64e450b6cacec0478a7c4e94bf8347c" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.0#af0d1f19d8770d346096a38c6dc82ba70e371039" dependencies = [ "darling", "proc-macro2", @@ -2434,7 +2434,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=feat/jvm-arguments#5769f5c3b64e450b6cacec0478a7c4e94bf8347c" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.0#af0d1f19d8770d346096a38c6dc82ba70e371039" dependencies = [ "kube", "semver", diff --git a/Cargo.toml b/Cargo.toml index c47e1879..ffaac93b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,12 +25,12 @@ serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde_yaml = "0.9" snafu = "0.8" -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.83.0" } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.84.0" } product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.7.0" } strum = { version = "0.26", features = ["derive"] } tokio = { version = "1.40", features = ["full"] } tracing = "0.1" -[patch."https://github.com/stackabletech/operator-rs.git"] -stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "feat/jvm-arguments" } +# [patch."https://github.com/stackabletech/operator-rs.git"] +# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } From 4ec491a4bd5ff40dc92826e12547580d7abcf2de Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 16 Jan 2025 12:26:35 +0100 Subject: [PATCH 12/14] test: For tests, recommended_trino_jvm_args now always returns a single JVM arg --- rust/operator-binary/src/config/jvm.rs | 39 ++++++++------------------ 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/rust/operator-binary/src/config/jvm.rs b/rust/operator-binary/src/config/jvm.rs index a89f6e12..79b15152 100644 --- a/rust/operator-binary/src/config/jvm.rs +++ b/rust/operator-binary/src/config/jvm.rs @@ -93,6 +93,16 @@ pub fn jvm_config( .join("\n")) } +/// For tests we don't actually look at the Trino version, and return a single "representative" +/// JVM argument instead. +/// This enables us to write version-independent tests, which don't need updating for every new +/// Trino version. +#[cfg(test)] +fn recommended_trino_jvm_args(_product_version: &str) -> Result, Error> { + Ok(vec!["-RecommendedTrinoFlag".to_owned()]) +} + +#[cfg(not(test))] fn recommended_trino_jvm_args(product_version: &str) -> Result, Error> { match product_version { // Copied from https://trino.io/docs/451/installation/deployment.html @@ -183,20 +193,7 @@ mod tests { -Djavax.net.ssl.trustStoreType=pkcs12 -Djavax.net.ssl.trustStorePassword=changeit # Recommended JVM arguments from Trino - -XX:InitialRAMPercentage=80 - -XX:MaxRAMPercentage=80 - -XX:G1HeapRegionSize=32M - -XX:+ExplicitGCInvokesConcurrent - -XX:+ExitOnOutOfMemoryError - -XX:+HeapDumpOnOutOfMemoryError - -XX:-OmitStackTraceInFastThrow - -XX:ReservedCodeCacheSize=512M - -XX:PerMethodRecompilationCutoff=10000 - -XX:PerBytecodeRecompilationCutoff=10000 - -Djdk.attach.allowAttachSelf=true - -Djdk.nio.maxCachedBufferSize=2000000 - -Dfile.encoding=UTF-8 - -XX:+EnableDynamicAgentLoading + -RecommendedTrinoFlag # Arguments from jvmArgumentOverrides"} ); } @@ -254,19 +251,7 @@ mod tests { -Djavax.net.ssl.trustStoreType=pkcs12 -Djavax.net.ssl.trustStorePassword=changeit # Recommended JVM arguments from Trino - -XX:InitialRAMPercentage=80 - -XX:MaxRAMPercentage=80 - -XX:G1HeapRegionSize=32M - -XX:+ExplicitGCInvokesConcurrent - -XX:+ExitOnOutOfMemoryError - -XX:-OmitStackTraceInFastThrow - -XX:ReservedCodeCacheSize=512M - -XX:PerMethodRecompilationCutoff=10000 - -XX:PerBytecodeRecompilationCutoff=10000 - -Djdk.attach.allowAttachSelf=true - -Djdk.nio.maxCachedBufferSize=2000000 - -Dfile.encoding=UTF-8 - -XX:+EnableDynamicAgentLoading + -RecommendedTrinoFlag # Arguments from jvmArgumentOverrides -Dhttps.proxyHost=proxy.my.corp -Djava.net.preferIPv4Stack=true From 655e49a4fabb2094023094ad1ce1828918d9ec3a Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Fri, 24 Jan 2025 11:40:40 +0100 Subject: [PATCH 13/14] Bump to operator-rs 0.84.1 --- CHANGELOG.md | 3 + Cargo.lock | 54 +- Cargo.nix | 1344 ++++++++++++++++++++++++++++++++++----------- Cargo.toml | 4 +- crate-hashes.json | 6 +- 5 files changed, 1052 insertions(+), 359 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dbdf22a..2cd9466a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ All notable changes to this project will be documented in this file. - The lifetime of auto generated TLS certificates is now configurable with the role and roleGroup config property `requestedSecretLifetime`. This helps reduce frequent Pod restarts ([#676]). - Run a `containerdebug` process in the background of each Trino container to collect debugging information ([#687]). +- Support configuring JVM arguments ([#677]). +- Aggregate emitted Kubernetes events on the CustomResources ([#677]). ### Fixed @@ -20,6 +22,7 @@ All notable changes to this project will be documented in this file. [#672]: https://github.com/stackabletech/trino-operator/pull/672 [#673]: https://github.com/stackabletech/trino-operator/pull/673 [#676]: https://github.com/stackabletech/trino-operator/pull/676 +[#677]: https://github.com/stackabletech/trino-operator/pull/677 [#687]: https://github.com/stackabletech/trino-operator/pull/687 ## [24.11.0] - 2024-11-18 diff --git a/Cargo.lock b/Cargo.lock index c712273e..f2254cec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -265,9 +265,9 @@ checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cc" -version = "1.2.9" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" dependencies = [ "jobserver", "libc", @@ -295,9 +295,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.26" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" dependencies = [ "clap_builder", "clap_derive", @@ -305,9 +305,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.26" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -1181,9 +1181,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown", @@ -1589,9 +1589,9 @@ dependencies = [ [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" @@ -1979,21 +1979,21 @@ dependencies = [ [[package]] name = "rstest" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2c585be59b6b5dd66a9d2084aa1d8bd52fbdb806eafdeffb52791147862035" +checksum = "03e905296805ab93e13c1ec3a03f4b6c4f35e9498a3d5fa96dc626d22c03cd89" dependencies = [ - "futures 0.3.31", "futures-timer", + "futures-util", "rstest_macros", "rustc_version", ] [[package]] name = "rstest_macros" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "825ea780781b15345a146be27eaefb05085e337e869bff01b4306a4fd4a9ad5a" +checksum = "ef0053bbffce09062bee4bcc499b0fbe7a57b879f1efe088d6d8d4c7adcdef9b" dependencies = [ "cfg-if", "glob", @@ -2187,9 +2187,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "serde" @@ -2234,9 +2234,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.135" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" dependencies = [ "itoa", "memchr", @@ -2384,8 +2384,8 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stackable-operator" -version = "0.84.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.0#af0d1f19d8770d346096a38c6dc82ba70e371039" +version = "0.84.1" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.1#b8fe43f7368249bf95b06d6cba3fd0135f7523ac" dependencies = [ "chrono", "clap", @@ -2423,7 +2423,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.0#af0d1f19d8770d346096a38c6dc82ba70e371039" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.1#b8fe43f7368249bf95b06d6cba3fd0135f7523ac" dependencies = [ "darling", "proc-macro2", @@ -2434,7 +2434,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.0#af0d1f19d8770d346096a38c6dc82ba70e371039" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.1#b8fe43f7368249bf95b06d6cba3fd0135f7523ac" dependencies = [ "kube", "semver", @@ -2922,9 +2922,9 @@ checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" [[package]] name = "unicode-xid" @@ -2976,9 +2976,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" diff --git a/Cargo.nix b/Cargo.nix index 10595b9a..a17c1866 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -339,15 +339,20 @@ rec { }; "anstyle-wincon" = rec { crateName = "anstyle-wincon"; - version = "3.0.6"; + version = "3.0.7"; edition = "2021"; - sha256 = "099ir0w3lbpsp1nxdzbf4anq98ww8ykyc9pd1g03xgkj1v7dn291"; + sha256 = "0kmf0fq4c8yribdpdpylzz1zccpy84hizmcsac3wrac1f7kk8dfa"; libName = "anstyle_wincon"; dependencies = [ { name = "anstyle"; packageId = "anstyle"; } + { + name = "once_cell"; + packageId = "once_cell"; + target = { target, features }: (target."windows" or false); + } { name = "windows-sys"; packageId = "windows-sys 0.59.0"; @@ -359,9 +364,9 @@ rec { }; "anyhow" = rec { crateName = "anyhow"; - version = "1.0.94"; + version = "1.0.95"; edition = "2018"; - sha256 = "1xqz3j4h3dxiqi37k8dwl5cc2sb3rlzy7rywfqiblf7g52h07zf1"; + sha256 = "010vd1ki8w84dzgx6c81sc8qm9n02fxic1gkpv52zp4nwrn0kb1l"; authors = [ "David Tolnay " ]; @@ -373,9 +378,9 @@ rec { }; "async-broadcast" = rec { crateName = "async-broadcast"; - version = "0.7.1"; - edition = "2018"; - sha256 = "0zia7z1y31awmxma9c89zmvkbj7mdkf7highkmz5z3pa4lp0xk90"; + version = "0.7.2"; + edition = "2021"; + sha256 = "0ckmqcwyqwbl2cijk1y4r0vy60i89gqc86ijrxzz5f2m4yjqfnj3"; libName = "async_broadcast"; authors = [ "Stjepan Glavina " @@ -448,7 +453,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" "visit-mut" ]; } ]; @@ -456,9 +461,9 @@ rec { }; "async-trait" = rec { crateName = "async-trait"; - version = "0.1.83"; + version = "0.1.85"; edition = "2021"; - sha256 = "1p8q8gm4fv2fdka8hwy2w3f8df7p5inixqi7rlmbnky3wmysw73j"; + sha256 = "0mm0gwad44zs7mna4a0m1z4dhzpmydfj73w4wm23c8xpnhrli4rz"; procMacro = true; libName = "async_trait"; authors = [ @@ -475,9 +480,9 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; usesDefaultFeatures = false; - features = [ "full" "parsing" "printing" "proc-macro" "visit-mut" ]; + features = [ "clone-impls" "full" "parsing" "printing" "proc-macro" "visit-mut" ]; } ]; @@ -650,26 +655,11 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "bitflags 1.3.2" = rec { + "bitflags" = rec { crateName = "bitflags"; - version = "1.3.2"; - edition = "2018"; - sha256 = "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy"; - authors = [ - "The Rust Project Developers" - ]; - features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "core" = [ "dep:core" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; - }; - resolvedDefaultFeatures = [ "default" ]; - }; - "bitflags 2.6.0" = rec { - crateName = "bitflags"; - version = "2.6.0"; + version = "2.8.0"; edition = "2021"; - sha256 = "1pkidwzn3hnxlsl8zizh0bncgbjnw7c41cx7bby26ncbzmiznj5h"; + sha256 = "0dixc6168i98652jxf0z9nbyn0zcis3g6hi6qdr7z5dbhcygas4g"; authors = [ "The Rust Project Developers" ]; @@ -775,9 +765,9 @@ rec { }; "cc" = rec { crateName = "cc"; - version = "1.2.3"; + version = "1.2.10"; edition = "2018"; - sha256 = "0bcga5xf5fgvddfamsjhg89hlydzbdk1fwvcym5kkxfggdj5gxi7"; + sha256 = "0aaj2ivamhfzhgb9maasnfkh03s2mzhzpzwrkghgzbkfnv5qy80k"; authors = [ "Alex Crichton " ]; @@ -883,10 +873,10 @@ rec { }; "clap" = rec { crateName = "clap"; - version = "4.5.23"; + version = "4.5.27"; edition = "2021"; crateBin = []; - sha256 = "110cf0i9fmkfqzqhi1h8za9y0vnr5rwhy3wmv1p0rcgp5vnffd9i"; + sha256 = "15j720q1z953h1qxm2q5nwkmyhhl2vb45v017rqlhjrbk12h36vn"; dependencies = [ { name = "clap_builder"; @@ -924,9 +914,9 @@ rec { }; "clap_builder" = rec { crateName = "clap_builder"; - version = "4.5.23"; + version = "4.5.27"; edition = "2021"; - sha256 = "0f28rgc09kdgfq1hgg1bb1ydaw243w6dwyw74syz439k6b32yn1h"; + sha256 = "1mys7v60lys8zkwpk49wif9qnja9zamm4dnrsbj40wdmni78h9hv"; dependencies = [ { name = "anstream"; @@ -963,9 +953,9 @@ rec { }; "clap_derive" = rec { crateName = "clap_derive"; - version = "4.5.18"; + version = "4.5.24"; edition = "2021"; - sha256 = "1ardb26bvcpg72q9myr7yir3a8c83gx7vxk1cccabsd9n73s1ija"; + sha256 = "131ih3dm76srkbpfx7zfspp9b556zgzj31wqhl0ji2b39lcmbdsl"; procMacro = true; dependencies = [ { @@ -982,7 +972,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" ]; } ]; @@ -1206,9 +1196,9 @@ rec { }; "crossbeam-channel" = rec { crateName = "crossbeam-channel"; - version = "0.5.13"; + version = "0.5.14"; edition = "2021"; - sha256 = "1wkx45r34v7g3wyi3lg2wz536lrrrab4h4hh741shfhr8rlhsj1k"; + sha256 = "0wa41qybq5w8s70anb472myh4fid4aw6v65vws6wn528w9l6vfh6"; libName = "crossbeam_channel"; dependencies = [ { @@ -1225,9 +1215,9 @@ rec { }; "crossbeam-utils" = rec { crateName = "crossbeam-utils"; - version = "0.8.20"; + version = "0.8.21"; edition = "2021"; - sha256 = "100fksq5mm1n7zj242cclkw6yf7a4a8ix3lvpfkhxvdhbda9kv12"; + sha256 = "0a3aa2bmc8q35fb67432w16wvi54sfmb69rk9h5bhd18vw0c99fh"; libName = "crossbeam_utils"; features = { "default" = [ "std" ]; @@ -1318,7 +1308,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" "extra-traits" ]; } ]; @@ -1348,16 +1338,16 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; } ]; }; "delegate" = rec { crateName = "delegate"; - version = "0.13.1"; + version = "0.13.2"; edition = "2018"; - sha256 = "0im08r03vbrjcc5rfhk8b3mkrh3d5r8kh5g1hr6wzqcj1khj68xw"; + sha256 = "0ig9x6wiwfqkqbk4wh9frbihl0jq50vsi4jpn5kd02pkiqqhcy19"; procMacro = true; authors = [ "Godfrey Chan " @@ -1374,7 +1364,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" "visit-mut" ]; } ]; @@ -1461,7 +1451,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; } ]; features = { @@ -1482,9 +1472,9 @@ rec { }; "dockerfile-parser" = rec { crateName = "dockerfile-parser"; - version = "0.8.0"; + version = "0.9.0"; edition = "2018"; - sha256 = "026wv0d1kbdkvp4cj3ray8bxs7pqh1yzk8b5lclmch7syla96ybm"; + sha256 = "1017ikca2l80kx35iik4jbaq0z2dx3nli616kv0xgmrj2p5zjlxa"; libName = "dockerfile_parser"; authors = [ "Tim Buckley " @@ -1554,13 +1544,13 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; } ]; devDependencies = [ { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" ]; } ]; @@ -1662,7 +1652,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; } ]; features = { @@ -1677,9 +1667,9 @@ rec { }; "event-listener" = rec { crateName = "event-listener"; - version = "5.3.1"; + version = "5.4.0"; edition = "2021"; - sha256 = "1fkm6q4hjn61wl52xyqyyxai0x9w0ngrzi0wf1qsf8vhsadvwck0"; + sha256 = "1bii2gn3vaa33s0gr2zph7cagiq0ppcfxcxabs24ri9z9kgar4il"; libName = "event_listener"; authors = [ "Stjepan Glavina " @@ -1703,6 +1693,7 @@ rec { } ]; features = { + "critical-section" = [ "dep:critical-section" ]; "default" = [ "std" ]; "loom" = [ "concurrent-queue/loom" "parking?/loom" "dep:loom" ]; "parking" = [ "dep:parking" ]; @@ -1776,26 +1767,6 @@ rec { }; resolvedDefaultFeatures = [ "default" "perf" "std" "unicode" ]; }; - "fluent-uri" = rec { - crateName = "fluent-uri"; - version = "0.1.4"; - edition = "2021"; - sha256 = "03ah2qajw5l1zbc81kh1n8g7n24mfxbg6vqyv9ixipg1vglh9iqp"; - libName = "fluent_uri"; - authors = [ - "Scallop Ye " - ]; - dependencies = [ - { - name = "bitflags"; - packageId = "bitflags 1.3.2"; - } - ]; - features = { - "default" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; "fnv" = rec { crateName = "fnv"; version = "1.0.7"; @@ -1810,6 +1781,18 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "foldhash" = rec { + crateName = "foldhash"; + version = "0.1.4"; + edition = "2021"; + sha256 = "0vsxw2iwpgs7yy6l7pndm7b8nllaq5vdxwnmjn1qpm5kyzhzvlm0"; + authors = [ + "Orson Peters " + ]; + features = { + "default" = [ "std" ]; + }; + }; "foreign-types" = rec { crateName = "foreign-types"; version = "0.3.2"; @@ -2035,7 +2018,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" ]; } ]; @@ -2170,7 +2153,7 @@ rec { "unstable" = [ "futures-core/unstable" "futures-task/unstable" ]; "write-all-vectored" = [ "io" ]; }; - resolvedDefaultFeatures = [ "alloc" "async-await" "async-await-macro" "channel" "compat" "futures-channel" "futures-io" "futures-macro" "futures-sink" "futures_01" "io" "memchr" "sink" "slab" "std" ]; + resolvedDefaultFeatures = [ "alloc" "async-await" "async-await-macro" "channel" "compat" "default" "futures-channel" "futures-io" "futures-macro" "futures-sink" "futures_01" "io" "memchr" "sink" "slab" "std" ]; }; "generic-array" = rec { crateName = "generic-array"; @@ -2265,7 +2248,7 @@ rec { dependencies = [ { name = "bitflags"; - packageId = "bitflags 2.6.0"; + packageId = "bitflags"; } { name = "libc"; @@ -2298,60 +2281,42 @@ rec { }; "glob" = rec { crateName = "glob"; - version = "0.3.1"; + version = "0.3.2"; edition = "2015"; - sha256 = "16zca52nglanv23q5qrwd5jinw3d3as5ylya6y1pbx47vkxvrynj"; + sha256 = "1cm2w34b5w45fxr522h5b0fv1bxchfswcj560m3pnjbia7asvld8"; authors = [ "The Rust Project Developers" ]; }; - "hashbrown 0.14.5" = rec { + "hashbrown" = rec { crateName = "hashbrown"; - version = "0.14.5"; + version = "0.15.2"; edition = "2021"; - sha256 = "1wa1vy1xs3mp11bn3z9dv0jricgr6a2j0zkf1g19yz3vw4il89z5"; + sha256 = "12dj0yfn59p3kh3679ac0w1fagvzf4z2zp87a13gbbqbzw0185dz"; authors = [ "Amanieu d'Antras " ]; dependencies = [ { - name = "ahash"; - packageId = "ahash"; + name = "allocator-api2"; + packageId = "allocator-api2"; optional = true; usesDefaultFeatures = false; + features = [ "alloc" ]; } { - name = "allocator-api2"; - packageId = "allocator-api2"; + name = "equivalent"; + packageId = "equivalent"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "foldhash"; + packageId = "foldhash"; optional = true; usesDefaultFeatures = false; - features = [ "alloc" ]; } - ]; - features = { - "ahash" = [ "dep:ahash" ]; - "alloc" = [ "dep:alloc" ]; - "allocator-api2" = [ "dep:allocator-api2" ]; - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "core" = [ "dep:core" ]; - "default" = [ "ahash" "inline-more" "allocator-api2" ]; - "equivalent" = [ "dep:equivalent" ]; - "nightly" = [ "allocator-api2?/nightly" "bumpalo/allocator_api" ]; - "rayon" = [ "dep:rayon" ]; - "rkyv" = [ "dep:rkyv" ]; - "rustc-dep-of-std" = [ "nightly" "core" "compiler_builtins" "alloc" "rustc-internal-api" ]; - "serde" = [ "dep:serde" ]; - }; - resolvedDefaultFeatures = [ "ahash" "allocator-api2" "default" "inline-more" ]; - }; - "hashbrown 0.15.2" = rec { - crateName = "hashbrown"; - version = "0.15.2"; - edition = "2021"; - sha256 = "12dj0yfn59p3kh3679ac0w1fagvzf4z2zp87a13gbbqbzw0185dz"; - authors = [ - "Amanieu d'Antras " ]; features = { "alloc" = [ "dep:alloc" ]; @@ -2366,6 +2331,7 @@ rec { "rustc-dep-of-std" = [ "nightly" "core" "compiler_builtins" "alloc" "rustc-internal-api" "raw-entry" ]; "serde" = [ "dep:serde" ]; }; + resolvedDefaultFeatures = [ "allocator-api2" "default" "default-hasher" "equivalent" "inline-more" "raw-entry" ]; }; "headers" = rec { crateName = "headers"; @@ -2451,22 +2417,52 @@ rec { }; "home" = rec { crateName = "home"; - version = "0.5.9"; + version = "0.5.11"; edition = "2021"; - sha256 = "19grxyg35rqfd802pcc9ys1q3lafzlcjcv2pl2s5q8xpyr5kblg3"; + sha256 = "1kxb4k87a9sayr8jipr7nq9wpgmjk4hk4047hmf9kc24692k75aq"; authors = [ "Brian Anderson " ]; dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.52.0"; + packageId = "windows-sys 0.59.0"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_UI_Shell" "Win32_System_Com" ]; } ]; }; + "hostname" = rec { + crateName = "hostname"; + version = "0.4.0"; + edition = "2021"; + sha256 = "1fpjr3vgi64ly1ci8phdqjbha4k22c65c94a9drriiqnmk4cgizr"; + authors = [ + "fengcen " + "svartalf " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "libc"; + packageId = "libc"; + target = { target, features }: ((target."unix" or false) || ("redox" == target."os" or null)); + } + { + name = "windows"; + packageId = "windows"; + target = { target, features }: ("windows" == target."os" or null); + features = [ "Win32_Foundation" "Win32_System_SystemInformation" ]; + } + ]; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; "http" = rec { crateName = "http"; version = "1.2.0"; @@ -2580,9 +2576,9 @@ rec { }; "hyper" = rec { crateName = "hyper"; - version = "1.5.1"; + version = "1.5.2"; edition = "2021"; - sha256 = "07s87id0566m2p5dc5q6nqmxz5r8drqd81b7w4q44djgxwkqi0cp"; + sha256 = "1q7akfb443yrjzkmnnbp2vs8zi15hgbk466rr4y144v4ppabhvr5"; authors = [ "Sean McArthur " ]; @@ -2654,6 +2650,10 @@ rec { usesDefaultFeatures = false; features = [ "alloc" "sink" ]; } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + } { name = "tokio"; packageId = "tokio"; @@ -2771,9 +2771,9 @@ rec { }; "hyper-rustls" = rec { crateName = "hyper-rustls"; - version = "0.27.3"; + version = "0.27.5"; edition = "2021"; - sha256 = "0cxkph8hsmbz693a8ih2ciy7h0xbac844rpm981y6c0iqfsxpbq8"; + sha256 = "1cjr3yf3x5mr3194llsfibacl6j7n2dknii2dwjha4ysyf1ia69d"; libName = "hyper_rustls"; dependencies = [ { @@ -3478,7 +3478,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; } ]; @@ -3548,9 +3548,9 @@ rec { }; "indexmap" = rec { crateName = "indexmap"; - version = "2.7.0"; + version = "2.7.1"; edition = "2021"; - sha256 = "07s7jmdymvd0rm4yswp0j3napx57hkjm9gs9n55lvs2g78vj5y32"; + sha256 = "0lmnm1zbr5gq3wic3d8a76gpvampridzwckfl97ckd5m08mrk74c"; dependencies = [ { name = "equivalent"; @@ -3559,7 +3559,7 @@ rec { } { name = "hashbrown"; - packageId = "hashbrown 0.15.2"; + packageId = "hashbrown"; usesDefaultFeatures = false; } ]; @@ -3689,9 +3689,9 @@ rec { }; "js-sys" = rec { crateName = "js-sys"; - version = "0.3.76"; + version = "0.3.77"; edition = "2021"; - sha256 = "1dz7v777h2j38wkf8k5iwkfxskn6nff2cdv2jsslyxkpn2svc5v7"; + sha256 = "13x2qcky5l22z4xgivi59xhjjx4kxir1zg7gcj0f1ijzd4yg7yhw"; libName = "js_sys"; authors = [ "The wasm-bindgen Developers" @@ -3716,9 +3716,9 @@ rec { }; "json-patch" = rec { crateName = "json-patch"; - version = "2.0.0"; + version = "3.0.1"; edition = "2021"; - sha256 = "1z1h6dyy4lx4z74yby2hvgl4jbm8mh5ymjp6fwcdkyi3923bh7sv"; + sha256 = "023gm1q5xhhnhz7jqk009yb5wpjl4gckawgzxs82bg5nmzbjcdw6"; libName = "json_patch"; authors = [ "Ivan Dubrov " @@ -3757,22 +3757,14 @@ rec { }; "jsonpath-rust" = rec { crateName = "jsonpath-rust"; - version = "0.5.1"; - edition = "2018"; - sha256 = "0032bp43w6k1bl8h55m126cdf8xljj8p736f65gp3zvhpn2zxn0r"; + version = "0.7.5"; + edition = "2021"; + sha256 = "12qjqd6rnr1ywky7k38dhbhgj3f6h6iqrac2kz8d53wziwsaw00c"; libName = "jsonpath_rust"; authors = [ "BorisZhguchev " ]; dependencies = [ - { - name = "lazy_static"; - packageId = "lazy_static"; - } - { - name = "once_cell"; - packageId = "once_cell"; - } { name = "pest"; packageId = "pest"; @@ -3791,54 +3783,51 @@ rec { } { name = "thiserror"; - packageId = "thiserror 1.0.69"; + packageId = "thiserror 2.0.11"; } ]; }; "jsonptr" = rec { crateName = "jsonptr"; - version = "0.4.7"; + version = "0.6.3"; edition = "2021"; - sha256 = "09s6bqjlkd1m5z9hi9iwjimiri7wx3fd6d88hara0p27968m4vhw"; + sha256 = "0w6xkr6ns46nm3136x7www1dczz45y2bl9bsxmb2b6r3vlkjpsjx"; authors = [ "chance dinkins" + "André Sá de Mello " ]; dependencies = [ - { - name = "fluent-uri"; - packageId = "fluent-uri"; - optional = true; - usesDefaultFeatures = false; - } { name = "serde"; packageId = "serde"; - usesDefaultFeatures = false; + optional = true; features = [ "alloc" ]; } { name = "serde_json"; packageId = "serde_json"; - usesDefaultFeatures = false; + optional = true; features = [ "alloc" ]; } ]; features = { - "default" = [ "std" ]; - "fluent-uri" = [ "dep:fluent-uri" ]; - "std" = [ "serde/std" "serde_json/std" "fluent-uri?/std" ]; - "uniresid" = [ "dep:uniresid" ]; - "url" = [ "dep:url" ]; + "default" = [ "std" "serde" "json" "resolve" "assign" "delete" ]; + "delete" = [ "resolve" ]; + "json" = [ "dep:serde_json" "serde" ]; + "serde" = [ "dep:serde" ]; + "std" = [ "serde/std" "serde_json?/std" ]; + "syn" = [ "dep:syn" ]; + "toml" = [ "dep:toml" "serde" "std" ]; }; - resolvedDefaultFeatures = [ "default" "std" ]; + resolvedDefaultFeatures = [ "assign" "default" "delete" "json" "resolve" "serde" "std" ]; }; "k8s-openapi" = rec { crateName = "k8s-openapi"; - version = "0.23.0"; + version = "0.24.0"; edition = "2021"; - links = "k8s-openapi-0.23.0"; - sha256 = "04qv2iqwm3mgjvyp2m6n3vf6nnpjh5a60kf9ah9k1n184d04g24w"; + links = "k8s-openapi-0.24.0"; + sha256 = "1m8ahw59g44kp9p4yd4ar0px15m2nyvhc5krbvqvw2ag6a8bjx9c"; libName = "k8s_openapi"; authors = [ "Arnav Singh " @@ -3880,17 +3869,17 @@ rec { } ]; features = { - "earliest" = [ "v1_26" ]; - "latest" = [ "v1_31" ]; + "earliest" = [ "v1_28" ]; + "latest" = [ "v1_32" ]; "schemars" = [ "dep:schemars" ]; }; - resolvedDefaultFeatures = [ "schemars" "v1_31" ]; + resolvedDefaultFeatures = [ "schemars" "v1_32" ]; }; "kube" = rec { crateName = "kube"; - version = "0.96.0"; + version = "0.98.0"; edition = "2021"; - sha256 = "07ws50li6nxja26b0w40k2dqir60k4s5fi2hsvjz6kmxy0yypzzg"; + sha256 = "1fiwllwzsvl7921k85c10d1nwjpg09ycqcvvihc4vbggjp23s19j"; authors = [ "clux " "Natalie Klestrup Röijezon " @@ -3960,9 +3949,9 @@ rec { }; "kube-client" = rec { crateName = "kube-client"; - version = "0.96.0"; + version = "0.98.0"; edition = "2021"; - sha256 = "1wg0blziqkfyfmmyn6l1fj6wp7qy156sr3g7birj93gzx3n73x4b"; + sha256 = "1jd06xwhnmzrzqrfwq7jlmmxl7dvaygmchjx363zmlgvrlwasd4x"; libName = "kube_client"; authors = [ "clux " @@ -4097,7 +4086,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 1.0.69"; + packageId = "thiserror 2.0.11"; } { name = "tokio"; @@ -4137,6 +4126,11 @@ rec { usesDefaultFeatures = false; features = [ "async-await" ]; } + { + name = "hyper"; + packageId = "hyper"; + features = [ "server" ]; + } { name = "k8s-openapi"; packageId = "k8s-openapi"; @@ -4202,9 +4196,9 @@ rec { }; "kube-core" = rec { crateName = "kube-core"; - version = "0.96.0"; + version = "0.98.0"; edition = "2021"; - sha256 = "0xrxzqk7nbbymf7ycm02wshs6ynf3dlrnm2wvix1skdk1g9lc8zl"; + sha256 = "1wwnsn1wk7bd2jiv9iw8446j0bczagqv1lc4wy88l5wa505q7alp"; libName = "kube_core"; authors = [ "clux " @@ -4256,7 +4250,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 1.0.69"; + packageId = "thiserror 2.0.11"; } ]; devDependencies = [ @@ -4279,9 +4273,9 @@ rec { }; "kube-derive" = rec { crateName = "kube-derive"; - version = "0.96.0"; + version = "0.98.0"; edition = "2021"; - sha256 = "1bc23sismxyyncsry902b2i2v0aifpxvgs3fdh9q412yrh24wdpr"; + sha256 = "0n46p76pvm3plsnbm57c2j76r1i6hwslxsaj345pxdvn8255sx1p"; procMacro = true; libName = "kube_derive"; authors = [ @@ -4308,7 +4302,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "extra-traits" ]; } ]; @@ -4316,9 +4310,9 @@ rec { }; "kube-runtime" = rec { crateName = "kube-runtime"; - version = "0.96.0"; + version = "0.98.0"; edition = "2021"; - sha256 = "0i5xr5i9xf44fwih1pvypr35sq30pcw979m9sbqnb3m9zzvg3yyk"; + sha256 = "0nqkihr4i687lswa99lwhn0gzsy3pm59j4rsl5qhrs0gd8cayhbs"; libName = "kube_runtime"; authors = [ "clux " @@ -4360,7 +4354,11 @@ rec { } { name = "hashbrown"; - packageId = "hashbrown 0.14.5"; + packageId = "hashbrown"; + } + { + name = "hostname"; + packageId = "hostname"; } { name = "json-patch"; @@ -4399,7 +4397,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 1.0.69"; + packageId = "thiserror 2.0.11"; } { name = "tokio"; @@ -4452,9 +4450,9 @@ rec { }; "libc" = rec { crateName = "libc"; - version = "0.2.168"; + version = "0.2.169"; edition = "2021"; - sha256 = "0vab4inpw0dz78nii02hsxp1skqn06xzh64psw8wl1h63scb5bjs"; + sha256 = "02m253hs8gw0m1n8iyrsc4n15yzbqwhddi7w1l0ds7i92kdsiaxm"; authors = [ "The Rust Project Developers" ]; @@ -4512,10 +4510,10 @@ rec { }; "libz-sys" = rec { crateName = "libz-sys"; - version = "1.1.20"; + version = "1.1.21"; edition = "2018"; links = "z"; - sha256 = "0wp4i6zl385ilmcqafv61jwsk1mpk6yb8gpws9nwza00x19n9lfj"; + sha256 = "1ajfpf413j9m7kmf4fwvvgv5jxxm5s438f2pfbv2c2vf1vjni6yz"; libName = "libz_sys"; authors = [ "Alex Crichton " @@ -4600,9 +4598,9 @@ rec { }; "log" = rec { crateName = "log"; - version = "0.4.22"; + version = "0.4.25"; edition = "2021"; - sha256 = "093vs0wkm1rgyykk7fjbqp2lwizbixac1w52gv109p5r4jh0p9x7"; + sha256 = "17ydv5zhfv1zzygy458bmg3f3jx1vfziv9d74817w76yhfqgbjq4"; authors = [ "The Rust Project Developers" ]; @@ -4669,12 +4667,13 @@ rec { }; "miniz_oxide" = rec { crateName = "miniz_oxide"; - version = "0.8.0"; + version = "0.8.3"; edition = "2021"; - sha256 = "1wadxkg6a6z4lr7kskapj5d8pxlx7cp1ifw4daqnkzqjxych5n72"; + sha256 = "093r1kd1r9dyf05cbvsibgmh96pxp3qhzfvpd6f15bpggamjqh5q"; authors = [ "Frommi " "oyvindln " + "Rich Geldreich richgel99@gmail.com" ]; dependencies = [ { @@ -4823,9 +4822,9 @@ rec { }; "object" = rec { crateName = "object"; - version = "0.36.5"; + version = "0.36.7"; edition = "2018"; - sha256 = "0gk8lhbs229c68lapq6w6qmnm4jkj48hrcw5ilfyswy514nhmpxf"; + sha256 = "11vv97djn9nc5n6w1gc6bd96d2qk2c8cg1kw5km9bsi3v4a8x532"; dependencies = [ { name = "memchr"; @@ -4885,7 +4884,7 @@ rec { dependencies = [ { name = "bitflags"; - packageId = "bitflags 2.6.0"; + packageId = "bitflags"; } { name = "cfg-if"; @@ -4938,7 +4937,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" ]; } ]; @@ -4946,9 +4945,9 @@ rec { }; "openssl-probe" = rec { crateName = "openssl-probe"; - version = "0.1.5"; - edition = "2015"; - sha256 = "1kq18qm48rvkwgcggfkqq6pm948190czqc94d6bm2sir5hq1l0gz"; + version = "0.1.6"; + edition = "2021"; + sha256 = "0bl52x55laalqb707k009h8kfawliwp992rlsvkzy49n47p2fpnh"; libName = "openssl_probe"; authors = [ "Alex Crichton " @@ -5183,7 +5182,7 @@ rec { } { name = "ordered-float"; - packageId = "ordered-float 4.5.0"; + packageId = "ordered-float 4.6.0"; } { name = "percent-encoding"; @@ -5271,11 +5270,11 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; - "ordered-float 4.5.0" = rec { + "ordered-float 4.6.0" = rec { crateName = "ordered-float"; - version = "4.5.0"; + version = "4.6.0"; edition = "2021"; - sha256 = "0ppqpjrri5r5vdz06na24d00cjaz67ambd1hcq13iy8vf3wy2pn6"; + sha256 = "0ldrcgilsiijd141vw51fbkziqmh5fpllil3ydhirjm67wdixdvv"; libName = "ordered_float"; authors = [ "Jonathan Reem " @@ -5294,6 +5293,7 @@ rec { "bytemuck" = [ "dep:bytemuck" ]; "default" = [ "std" ]; "derive-visitor" = [ "dep:derive-visitor" ]; + "libm" = [ "num-traits/libm" ]; "num-cmp" = [ "dep:num-cmp" ]; "proptest" = [ "dep:proptest" ]; "rand" = [ "dep:rand" ]; @@ -5460,7 +5460,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.6"; + packageId = "thiserror 2.0.11"; optional = true; } { @@ -5535,7 +5535,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; } ]; features = { @@ -5578,9 +5578,9 @@ rec { }; "pin-project" = rec { crateName = "pin-project"; - version = "1.1.7"; + version = "1.1.8"; edition = "2021"; - sha256 = "15cvflrzsgp1zbl5gv37al2r62nl8lc37xkfwf70ql3fji7gcmxy"; + sha256 = "05jr3xfy1spgmz3q19l4mmvv46vgvkvsgphamifx7x45swxcabhy"; libName = "pin_project"; dependencies = [ { @@ -5592,9 +5592,9 @@ rec { }; "pin-project-internal" = rec { crateName = "pin-project-internal"; - version = "1.1.7"; + version = "1.1.8"; edition = "2021"; - sha256 = "133mxf5vmvnvw4idw2y2lb5bxsza2xlyfl6psjy7mz3l12nmy3rw"; + sha256 = "1yzfhf6l27nhzv7r5hfrwj2g0x7xmfhgil19fj9am4srqp06csnm"; procMacro = true; libName = "pin_project_internal"; dependencies = [ @@ -5608,7 +5608,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; usesDefaultFeatures = false; features = [ "parsing" "printing" "clone-impls" "proc-macro" "full" "visit-mut" ]; } @@ -5617,9 +5617,9 @@ rec { }; "pin-project-lite" = rec { crateName = "pin-project-lite"; - version = "0.2.15"; + version = "0.2.16"; edition = "2018"; - sha256 = "1zz4xif3iknfrpmvqmh0pcc9mx4cxm28jywqydir3pimcla1wnli"; + sha256 = "16wzc7z7dfkf9bmjin22f5282783f6mdksnr0nv0j5ym5f9gyg1v"; libName = "pin_project_lite"; }; @@ -5699,9 +5699,9 @@ rec { }; "proc-macro2" = rec { crateName = "proc-macro2"; - version = "1.0.92"; + version = "1.0.93"; edition = "2021"; - sha256 = "1c1vjy5wg8iy7kxsxda564qf4ljp0asysmbn2i7caj177x5m9lrp"; + sha256 = "169dw9wch753if1mgyi2nfl1il77gslvh6y2q46qplprwml6m530"; libName = "proc_macro2"; authors = [ "David Tolnay " @@ -5775,9 +5775,9 @@ rec { }; "quote" = rec { crateName = "quote"; - version = "1.0.37"; + version = "1.0.38"; edition = "2018"; - sha256 = "1brklraw2g34bxy9y4q1nbrccn7bv36ylihv12c9vlcii55x7fdm"; + sha256 = "1k0s75w61k6ch0rs263r4j69b7vj1wadqgb9dia4ylc9mymcqk8f"; authors = [ "David Tolnay " ]; @@ -5894,9 +5894,9 @@ rec { }; "redox_syscall" = rec { crateName = "redox_syscall"; - version = "0.5.7"; + version = "0.5.8"; edition = "2021"; - sha256 = "07vpgfr6a04k0x19zqr1xdlqm6fncik3zydbdi3f5g3l5k7zwvcv"; + sha256 = "0d48ylyd6gsamynyp257p6n2zl4dw2fhnn5z9y3nhgpri6rn5a03"; libName = "syscall"; authors = [ "Jeremy Soller " @@ -5904,7 +5904,7 @@ rec { dependencies = [ { name = "bitflags"; - packageId = "bitflags 2.6.0"; + packageId = "bitflags"; } ]; features = { @@ -6171,21 +6171,21 @@ rec { }; "rstest" = rec { crateName = "rstest"; - version = "0.23.0"; + version = "0.24.0"; edition = "2021"; - sha256 = "0d90hr3i2yajzgpzvsh6p2yjzmcb3nm8884xdbb5sswvwmdmhb0a"; + sha256 = "12fd0cnd49n6dnlmygca97lkakvc9czs1hqy7khr7aq5d0lhbs83"; authors = [ "Michele d'Amico " ]; dependencies = [ { - name = "futures"; - packageId = "futures 0.3.31"; + name = "futures-timer"; + packageId = "futures-timer"; optional = true; } { - name = "futures-timer"; - packageId = "futures-timer"; + name = "futures-util"; + packageId = "futures-util"; optional = true; } { @@ -6201,7 +6201,7 @@ rec { } ]; features = { - "async-timeout" = [ "dep:futures" "dep:futures-timer" "rstest_macros/async-timeout" ]; + "async-timeout" = [ "dep:futures-timer" "dep:futures-util" "rstest_macros/async-timeout" ]; "crate-name" = [ "rstest_macros/crate-name" ]; "default" = [ "async-timeout" "crate-name" ]; }; @@ -6209,9 +6209,9 @@ rec { }; "rstest_macros" = rec { crateName = "rstest_macros"; - version = "0.23.0"; + version = "0.24.0"; edition = "2021"; - sha256 = "0nmdm7a4ysihnh0zz6w6gqrmw205zfp7xqkb2id3858vg20afpl2"; + sha256 = "16zgrnnwgm6qss4f1vzig6w5fymy1ydlkk2bxqmhc2ffzyxm607g"; procMacro = true; authors = [ "Michele d'Amico " @@ -6248,7 +6248,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" "parsing" "extra-traits" "visit" "visit-mut" ]; } { @@ -6298,9 +6298,9 @@ rec { }; "rustls" = rec { crateName = "rustls"; - version = "0.23.19"; + version = "0.23.21"; edition = "2021"; - sha256 = "1lgqjf1vh09kghyj34a4svn1max18pmhka6bwbxb61mv61240jwk"; + sha256 = "1f75gicypi40bdq20h1rglwaapr3ifnchgf697clkxibc0j7ja4g"; dependencies = [ { name = "log"; @@ -6423,7 +6423,7 @@ rec { } { name = "security-framework"; - packageId = "security-framework 3.0.1"; + packageId = "security-framework 3.2.0"; target = { target, features }: ("macos" == target."os" or null); } ]; @@ -6450,9 +6450,9 @@ rec { }; "rustls-pki-types" = rec { crateName = "rustls-pki-types"; - version = "1.10.0"; + version = "1.10.1"; edition = "2021"; - sha256 = "0jv78c32pgf1i0bn7rzf4xdr9qh5wsvigp6akc1yhzls7hdj1w8n"; + sha256 = "0dqb3d0cbld1yrp084wyzgw6yk3qzzic8l5pbs1b6bcjzzk4ggyj"; libName = "rustls_pki_types"; features = { "default" = [ "alloc" ]; @@ -6497,9 +6497,9 @@ rec { }; "rustversion" = rec { crateName = "rustversion"; - version = "1.0.18"; + version = "1.0.19"; edition = "2018"; - sha256 = "0j2207vmgrcxwwwvknfn3lwv4i8djhjnxlvwdnz8bwijqqmrz08f"; + sha256 = "1m39qd65jcd1xgqzdm3017ppimiggh2446xngwp1ngr8hjbmpi7p"; procMacro = true; build = "build/build.rs"; authors = [ @@ -6634,7 +6634,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "extra-traits" ]; } ]; @@ -6685,7 +6685,7 @@ rec { dependencies = [ { name = "bitflags"; - packageId = "bitflags 2.6.0"; + packageId = "bitflags"; } { name = "core-foundation"; @@ -6719,11 +6719,11 @@ rec { }; resolvedDefaultFeatures = [ "OSX_10_10" "OSX_10_11" "OSX_10_12" "OSX_10_9" "default" ]; }; - "security-framework 3.0.1" = rec { + "security-framework 3.2.0" = rec { crateName = "security-framework"; - version = "3.0.1"; + version = "3.2.0"; edition = "2021"; - sha256 = "1j1rpyiwq698dyyq2lnnws8hzknw8r32dy9cx9jc7gljgrh5lhg1"; + sha256 = "05mkrddi9i18h9p098d0iimqv1xxz0wd8mbgpbvh9jj67x0205r7"; libName = "security_framework"; authors = [ "Steven Fackler " @@ -6732,7 +6732,7 @@ rec { dependencies = [ { name = "bitflags"; - packageId = "bitflags 2.6.0"; + packageId = "bitflags"; } { name = "core-foundation"; @@ -6759,14 +6759,15 @@ rec { "OSX_10_15" = [ "OSX_10_14" "security-framework-sys/OSX_10_15" ]; "default" = [ "OSX_10_12" ]; "log" = [ "dep:log" ]; + "sync-keychain" = [ "OSX_10_13" ]; }; resolvedDefaultFeatures = [ "OSX_10_12" "default" ]; }; "security-framework-sys" = rec { crateName = "security-framework-sys"; - version = "2.12.1"; + version = "2.14.0"; edition = "2021"; - sha256 = "18pafp0bn41bcbm66qrhb3pg4c8dddvc28jdr51mb2y57lqcffgs"; + sha256 = "0chwn01qrnvs59i5220bymd38iddy4krbnmfnhf4k451aqfj7ns9"; libName = "security_framework_sys"; authors = [ "Steven Fackler " @@ -6795,9 +6796,9 @@ rec { }; "semver" = rec { crateName = "semver"; - version = "1.0.23"; + version = "1.0.25"; edition = "2018"; - sha256 = "12wqpxfflclbq4dv8sa6gchdh92ahhwn4ci1ls22wlby3h57wsb1"; + sha256 = "00sy306qpi7vfand7dxm2vc76nlc8fkh1rrhdy0qh12v50nzx7gp"; authors = [ "David Tolnay " ]; @@ -6809,9 +6810,9 @@ rec { }; "serde" = rec { crateName = "serde"; - version = "1.0.216"; + version = "1.0.217"; edition = "2018"; - sha256 = "13ikqs0cvd220530x4rj1m9ab5wcflrwkw7cpvl9fnlkdq0q35qb"; + sha256 = "0w2ck1p1ajmrv1cf51qf7igjn2nc51r0izzc00fzmmhkvxjl5z02"; authors = [ "Erick Tryzelaar " "David Tolnay " @@ -6864,9 +6865,9 @@ rec { }; "serde_derive" = rec { crateName = "serde_derive"; - version = "1.0.216"; + version = "1.0.217"; edition = "2015"; - sha256 = "0pm5bm4354n40ir12bbs829arlqwjrw0wmzd4xk5r1kkpzdmky26"; + sha256 = "180r3rj5gi5s1m23q66cr5wlfgc5jrs6n1mdmql2njnhk37zg6ss"; procMacro = true; authors = [ "Erick Tryzelaar " @@ -6887,7 +6888,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; usesDefaultFeatures = false; features = [ "clone-impls" "derive" "parsing" "printing" "proc-macro" ]; } @@ -6919,7 +6920,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; usesDefaultFeatures = false; features = [ "clone-impls" "derive" "parsing" "printing" ]; } @@ -6928,9 +6929,9 @@ rec { }; "serde_json" = rec { crateName = "serde_json"; - version = "1.0.133"; + version = "1.0.137"; edition = "2021"; - sha256 = "0xz3bswa527wln3fy0qb7y081nx3cp5yy1ggjhi6n5mrfcjfpz67"; + sha256 = "0sql0gndrw2miw440sl0m2lrk6bsxyxrmlnpma52k6dzd9pgn34k"; authors = [ "Erick Tryzelaar " "David Tolnay " @@ -7291,7 +7292,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" ]; } ]; @@ -7366,13 +7367,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.83.0"; + version = "0.84.1"; edition = "2021"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "3ce7bcbdb58097cde0c0f19488a104c96f69dbc3"; - sha256 = "1443vhsanfl2vxp6x6zpylfln682g0y8bxbk4sknycsg009mbkwm"; + rev = "b8fe43f7368249bf95b06d6cba3fd0135f7523ac"; + sha256 = "0vwq3dzxj56y4vrnw4ry7wajm12f32jipvc6f3izdrixy2pazq3i"; }; libName = "stackable_operator"; authors = [ @@ -7427,7 +7428,7 @@ rec { name = "k8s-openapi"; packageId = "k8s-openapi"; usesDefaultFeatures = false; - features = [ "schemars" "v1_31" ]; + features = [ "schemars" "v1_32" ]; } { name = "kube"; @@ -7531,8 +7532,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "3ce7bcbdb58097cde0c0f19488a104c96f69dbc3"; - sha256 = "1443vhsanfl2vxp6x6zpylfln682g0y8bxbk4sknycsg009mbkwm"; + rev = "b8fe43f7368249bf95b06d6cba3fd0135f7523ac"; + sha256 = "0vwq3dzxj56y4vrnw4ry7wajm12f32jipvc6f3izdrixy2pazq3i"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -7554,7 +7555,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; } ]; @@ -7566,8 +7567,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "3ce7bcbdb58097cde0c0f19488a104c96f69dbc3"; - sha256 = "1443vhsanfl2vxp6x6zpylfln682g0y8bxbk4sknycsg009mbkwm"; + rev = "b8fe43f7368249bf95b06d6cba3fd0135f7523ac"; + sha256 = "0vwq3dzxj56y4vrnw4ry7wajm12f32jipvc6f3izdrixy2pazq3i"; }; libName = "stackable_shared"; authors = [ @@ -7681,6 +7682,10 @@ rec { name = "clap"; packageId = "clap"; } + { + name = "const_format"; + packageId = "const_format"; + } { name = "futures"; packageId = "futures 0.3.31"; @@ -7820,7 +7825,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "parsing" "extra-traits" ]; } ]; @@ -7873,11 +7878,11 @@ rec { }; resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "full" "parsing" "printing" "proc-macro" "quote" ]; }; - "syn 2.0.90" = rec { + "syn 2.0.96" = rec { crateName = "syn"; - version = "2.0.90"; + version = "2.0.96"; edition = "2021"; - sha256 = "0cfg5dsr1x0hl6b9hz08jp1197mx0rq3xydqmqaws36xlms3p7ci"; + sha256 = "102wk3cgawimi3i0q3r3xw3i858zkyingg6y7gsxfy733amsvl6m"; authors = [ "David Tolnay " ]; @@ -7908,9 +7913,9 @@ rec { }; "sync_wrapper" = rec { crateName = "sync_wrapper"; - version = "0.1.2"; - edition = "2018"; - sha256 = "0q01lyj0gr9a93n10nxsn8lwbzq97jqd6b768x17c8f7v7gccir0"; + version = "1.0.2"; + edition = "2021"; + sha256 = "0qvjyasd6w18mjg5xlaq5jgy84jsjfsvmnn12c13gypxbv75dwhb"; authors = [ "Actyx AG " ]; @@ -7940,7 +7945,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; usesDefaultFeatures = false; features = [ "derive" "parsing" "printing" "clone-impls" "visit" "extra-traits" ]; } @@ -7967,18 +7972,18 @@ rec { ]; }; - "thiserror 2.0.6" = rec { + "thiserror 2.0.11" = rec { crateName = "thiserror"; - version = "2.0.6"; + version = "2.0.11"; edition = "2021"; - sha256 = "0izahgy0lzcmcg2i72h9jk9lqd5zpq3z0k8cp7i7gl7b40c2mv4g"; + sha256 = "1z0649rpa8c2smzx129bz4qvxmdihj30r2km6vfpcv9yny2g4lnl"; authors = [ "David Tolnay " ]; dependencies = [ { name = "thiserror-impl"; - packageId = "thiserror-impl 2.0.6"; + packageId = "thiserror-impl 2.0.11"; } ]; features = { @@ -8007,16 +8012,16 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; } ]; }; - "thiserror-impl 2.0.6" = rec { + "thiserror-impl 2.0.11" = rec { crateName = "thiserror-impl"; - version = "2.0.6"; + version = "2.0.11"; edition = "2021"; - sha256 = "04k3dz901mymm06j3x6f65hpbsqlk6g51fmiky9g2kqgnk550myn"; + sha256 = "1hkkn7p2y4cxbffcrprybkj0qy1rl1r6waxmxqvr764axaxc3br6"; procMacro = true; libName = "thiserror_impl"; authors = [ @@ -8033,7 +8038,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; } ]; @@ -8265,9 +8270,9 @@ rec { }; "tokio" = rec { crateName = "tokio"; - version = "1.42.0"; + version = "1.43.0"; edition = "2021"; - sha256 = "0lbmf21h16iibdy7m63ck66grkwa7b1x8yy9gwvp60j5n0hrpv2w"; + sha256 = "17pdm49ihlhfw3rpxix3kdh2ppl1yv7nwp1kxazi5r1xz97zlq9x"; authors = [ "Tokio Contributors " ]; @@ -8369,9 +8374,9 @@ rec { }; "tokio-macros" = rec { crateName = "tokio-macros"; - version = "2.4.0"; + version = "2.5.0"; edition = "2021"; - sha256 = "0lnpg14h1v3fh2jvnc8cz7cjf0m7z1xgkwfpcyy632g829imjgb9"; + sha256 = "1f6az2xbvqp7am417b78d1za8axbvjvxnmkakz9vr8s52czx81kf"; procMacro = true; libName = "tokio_macros"; authors = [ @@ -8388,7 +8393,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" ]; } ]; @@ -8581,9 +8586,9 @@ rec { }; "tower" = rec { crateName = "tower"; - version = "0.5.1"; + version = "0.5.2"; edition = "2018"; - sha256 = "0kvbp97bhb4sk24vhihcz74ngn0i4ygxqikmxndgng3w926r6wr8"; + sha256 = "1ybmd59nm4abl9bsvy6rx31m4zvzp5rja2slzpn712y9b68ssffh"; authors = [ "Tower Maintainers " ]; @@ -8705,7 +8710,7 @@ rec { } { name = "bitflags"; - packageId = "bitflags 2.6.0"; + packageId = "bitflags"; } { name = "bytes"; @@ -8923,7 +8928,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; usesDefaultFeatures = false; features = [ "full" "parsing" "printing" "visit-mut" "clone-impls" "extra-traits" "proc-macro" ]; } @@ -9288,9 +9293,9 @@ rec { }; "unicode-ident" = rec { crateName = "unicode-ident"; - version = "1.0.14"; + version = "1.0.15"; edition = "2018"; - sha256 = "10ywa1pg0glgkr4l3dppjxizr9r2b7im0ycbfa0137l69z5fdfdd"; + sha256 = "0hr2b72jf9zb5avd2k6p7rbwkjjgl21vdhd90114kihp5ghqik8i"; libName = "unicode_ident"; authors = [ "David Tolnay " @@ -9417,9 +9422,9 @@ rec { }; "valuable" = rec { crateName = "valuable"; - version = "0.1.0"; - edition = "2018"; - sha256 = "0v9gp3nkjbl30z0fd56d8mx7w1csk86wwjhfjhr400wh9mfpw2w3"; + version = "0.1.1"; + edition = "2021"; + sha256 = "0r9srp55v7g27s5bg7a2m095fzckrcdca5maih6dy9bay6fflwxs"; features = { "default" = [ "std" ]; "derive" = [ "valuable-derive" ]; @@ -9483,9 +9488,9 @@ rec { }; "wasm-bindgen" = rec { crateName = "wasm-bindgen"; - version = "0.2.99"; + version = "0.2.100"; edition = "2021"; - sha256 = "15k3rzb3kjrxyqnh0916gq99mrpwhwy62smawxxc2w0x3llgcx54"; + sha256 = "1x8ymcm6yi3i1rwj78myl1agqv2m86i648myy3lc97s9swlqkp0y"; libName = "wasm_bindgen"; authors = [ "The wasm-bindgen Developers" @@ -9500,30 +9505,40 @@ rec { packageId = "once_cell"; usesDefaultFeatures = false; } + { + name = "rustversion"; + packageId = "rustversion"; + optional = true; + } { name = "wasm-bindgen-macro"; packageId = "wasm-bindgen-macro"; - usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "once_cell"; + packageId = "once_cell"; } ]; features = { - "default" = [ "spans" "std" ]; + "default" = [ "std" "msrv" ]; "enable-interning" = [ "std" ]; + "msrv" = [ "rustversion" ]; + "rustversion" = [ "dep:rustversion" ]; "serde" = [ "dep:serde" ]; "serde-serialize" = [ "serde" "serde_json" "std" ]; "serde_json" = [ "dep:serde_json" ]; - "spans" = [ "wasm-bindgen-macro/spans" ]; - "std" = [ "wasm-bindgen-macro/std" "once_cell/std" ]; "strict-macro" = [ "wasm-bindgen-macro/strict-macro" ]; "xxx_debug_only_print_generated_code" = [ "wasm-bindgen-macro/xxx_debug_only_print_generated_code" ]; }; - resolvedDefaultFeatures = [ "default" "spans" "std" ]; + resolvedDefaultFeatures = [ "default" "msrv" "rustversion" "std" ]; }; "wasm-bindgen-backend" = rec { crateName = "wasm-bindgen-backend"; - version = "0.2.99"; + version = "0.2.100"; edition = "2021"; - sha256 = "0ycwa4c68j34687k513djgyy2asn3fw3yp4g9rkq2kvbchwbp2az"; + sha256 = "1ihbf1hq3y81c4md9lyh6lcwbx6a5j0fw4fygd423g62lm8hc2ig"; libName = "wasm_bindgen_backend"; authors = [ "The wasm-bindgen Developers" @@ -9547,7 +9562,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "full" ]; } { @@ -9556,16 +9571,14 @@ rec { } ]; features = { - "default" = [ "std" ]; "extra-traits" = [ "syn/extra-traits" ]; }; - resolvedDefaultFeatures = [ "spans" "std" ]; }; "wasm-bindgen-macro" = rec { crateName = "wasm-bindgen-macro"; - version = "0.2.99"; + version = "0.2.100"; edition = "2021"; - sha256 = "1znlcrk5bvisr3vscwlqkdby959n3sb367zgdzpjwjd7v4giiiic"; + sha256 = "01xls2dvzh38yj17jgrbiib1d3nyad7k2yw9s0mpklwys333zrkz"; procMacro = true; libName = "wasm_bindgen_macro"; authors = [ @@ -9579,22 +9592,17 @@ rec { { name = "wasm-bindgen-macro-support"; packageId = "wasm-bindgen-macro-support"; - usesDefaultFeatures = false; } ]; features = { - "default" = [ "std" ]; - "spans" = [ "wasm-bindgen-macro-support/spans" ]; - "std" = [ "wasm-bindgen-macro-support/std" ]; "strict-macro" = [ "wasm-bindgen-macro-support/strict-macro" ]; }; - resolvedDefaultFeatures = [ "spans" "std" ]; }; "wasm-bindgen-macro-support" = rec { crateName = "wasm-bindgen-macro-support"; - version = "0.2.99"; + version = "0.2.100"; edition = "2021"; - sha256 = "1hihsgyg0kf46kjhgfv8x5g9x0q1d0aizj6n7s84ag1xfrdskmrh"; + sha256 = "1plm8dh20jg2id0320pbmrlsv6cazfv6b6907z19ys4z1jj7xs4a"; libName = "wasm_bindgen_macro_support"; authors = [ "The wasm-bindgen Developers" @@ -9610,13 +9618,12 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "visit" "visit-mut" "full" ]; } { name = "wasm-bindgen-backend"; packageId = "wasm-bindgen-backend"; - usesDefaultFeatures = false; } { name = "wasm-bindgen-shared"; @@ -9624,23 +9631,25 @@ rec { } ]; features = { - "default" = [ "std" ]; "extra-traits" = [ "syn/extra-traits" ]; - "spans" = [ "wasm-bindgen-backend/spans" ]; - "std" = [ "wasm-bindgen-backend/std" ]; }; - resolvedDefaultFeatures = [ "spans" "std" ]; }; "wasm-bindgen-shared" = rec { crateName = "wasm-bindgen-shared"; - version = "0.2.99"; + version = "0.2.100"; edition = "2021"; links = "wasm_bindgen"; - sha256 = "19h61snrhh1qhb5gz6zyb89l7fbj1fhmxcvi09p9l0mav8zsnfll"; + sha256 = "0gffxvqgbh9r9xl36gprkfnh3w9gl8wgia6xrin7v11sjcxxf18s"; libName = "wasm_bindgen_shared"; authors = [ "The wasm-bindgen Developers" ]; + dependencies = [ + { + name = "unicode-ident"; + packageId = "unicode-ident"; + } + ]; }; "web-time" = rec { @@ -9713,6 +9722,687 @@ rec { ]; }; + "windows" = rec { + crateName = "windows"; + version = "0.52.0"; + edition = "2021"; + sha256 = "1gnh210qjlprpd1szaq04rjm1zqgdm9j7l9absg0kawi2rwm72p4"; + authors = [ + "Microsoft" + ]; + dependencies = [ + { + name = "windows-core"; + packageId = "windows-core"; + } + { + name = "windows-targets"; + packageId = "windows-targets"; + } + ]; + features = { + "AI_MachineLearning" = [ "AI" ]; + "ApplicationModel_Activation" = [ "ApplicationModel" ]; + "ApplicationModel_AppExtensions" = [ "ApplicationModel" ]; + "ApplicationModel_AppService" = [ "ApplicationModel" ]; + "ApplicationModel_Appointments" = [ "ApplicationModel" ]; + "ApplicationModel_Appointments_AppointmentsProvider" = [ "ApplicationModel_Appointments" ]; + "ApplicationModel_Appointments_DataProvider" = [ "ApplicationModel_Appointments" ]; + "ApplicationModel_Background" = [ "ApplicationModel" ]; + "ApplicationModel_Calls" = [ "ApplicationModel" ]; + "ApplicationModel_Calls_Background" = [ "ApplicationModel_Calls" ]; + "ApplicationModel_Calls_Provider" = [ "ApplicationModel_Calls" ]; + "ApplicationModel_Chat" = [ "ApplicationModel" ]; + "ApplicationModel_CommunicationBlocking" = [ "ApplicationModel" ]; + "ApplicationModel_Contacts" = [ "ApplicationModel" ]; + "ApplicationModel_Contacts_DataProvider" = [ "ApplicationModel_Contacts" ]; + "ApplicationModel_Contacts_Provider" = [ "ApplicationModel_Contacts" ]; + "ApplicationModel_ConversationalAgent" = [ "ApplicationModel" ]; + "ApplicationModel_Core" = [ "ApplicationModel" ]; + "ApplicationModel_DataTransfer" = [ "ApplicationModel" ]; + "ApplicationModel_DataTransfer_DragDrop" = [ "ApplicationModel_DataTransfer" ]; + "ApplicationModel_DataTransfer_DragDrop_Core" = [ "ApplicationModel_DataTransfer_DragDrop" ]; + "ApplicationModel_DataTransfer_ShareTarget" = [ "ApplicationModel_DataTransfer" ]; + "ApplicationModel_Email" = [ "ApplicationModel" ]; + "ApplicationModel_Email_DataProvider" = [ "ApplicationModel_Email" ]; + "ApplicationModel_ExtendedExecution" = [ "ApplicationModel" ]; + "ApplicationModel_ExtendedExecution_Foreground" = [ "ApplicationModel_ExtendedExecution" ]; + "ApplicationModel_Holographic" = [ "ApplicationModel" ]; + "ApplicationModel_LockScreen" = [ "ApplicationModel" ]; + "ApplicationModel_Payments" = [ "ApplicationModel" ]; + "ApplicationModel_Payments_Provider" = [ "ApplicationModel_Payments" ]; + "ApplicationModel_Preview" = [ "ApplicationModel" ]; + "ApplicationModel_Preview_Holographic" = [ "ApplicationModel_Preview" ]; + "ApplicationModel_Preview_InkWorkspace" = [ "ApplicationModel_Preview" ]; + "ApplicationModel_Preview_Notes" = [ "ApplicationModel_Preview" ]; + "ApplicationModel_Resources" = [ "ApplicationModel" ]; + "ApplicationModel_Resources_Core" = [ "ApplicationModel_Resources" ]; + "ApplicationModel_Resources_Management" = [ "ApplicationModel_Resources" ]; + "ApplicationModel_Search" = [ "ApplicationModel" ]; + "ApplicationModel_Search_Core" = [ "ApplicationModel_Search" ]; + "ApplicationModel_Store" = [ "ApplicationModel" ]; + "ApplicationModel_Store_LicenseManagement" = [ "ApplicationModel_Store" ]; + "ApplicationModel_Store_Preview" = [ "ApplicationModel_Store" ]; + "ApplicationModel_Store_Preview_InstallControl" = [ "ApplicationModel_Store_Preview" ]; + "ApplicationModel_UserActivities" = [ "ApplicationModel" ]; + "ApplicationModel_UserActivities_Core" = [ "ApplicationModel_UserActivities" ]; + "ApplicationModel_UserDataAccounts" = [ "ApplicationModel" ]; + "ApplicationModel_UserDataAccounts_Provider" = [ "ApplicationModel_UserDataAccounts" ]; + "ApplicationModel_UserDataAccounts_SystemAccess" = [ "ApplicationModel_UserDataAccounts" ]; + "ApplicationModel_UserDataTasks" = [ "ApplicationModel" ]; + "ApplicationModel_UserDataTasks_DataProvider" = [ "ApplicationModel_UserDataTasks" ]; + "ApplicationModel_VoiceCommands" = [ "ApplicationModel" ]; + "ApplicationModel_Wallet" = [ "ApplicationModel" ]; + "ApplicationModel_Wallet_System" = [ "ApplicationModel_Wallet" ]; + "Data_Html" = [ "Data" ]; + "Data_Json" = [ "Data" ]; + "Data_Pdf" = [ "Data" ]; + "Data_Text" = [ "Data" ]; + "Data_Xml" = [ "Data" ]; + "Data_Xml_Dom" = [ "Data_Xml" ]; + "Data_Xml_Xsl" = [ "Data_Xml" ]; + "Devices_Adc" = [ "Devices" ]; + "Devices_Adc_Provider" = [ "Devices_Adc" ]; + "Devices_Background" = [ "Devices" ]; + "Devices_Bluetooth" = [ "Devices" ]; + "Devices_Bluetooth_Advertisement" = [ "Devices_Bluetooth" ]; + "Devices_Bluetooth_Background" = [ "Devices_Bluetooth" ]; + "Devices_Bluetooth_GenericAttributeProfile" = [ "Devices_Bluetooth" ]; + "Devices_Bluetooth_Rfcomm" = [ "Devices_Bluetooth" ]; + "Devices_Custom" = [ "Devices" ]; + "Devices_Display" = [ "Devices" ]; + "Devices_Display_Core" = [ "Devices_Display" ]; + "Devices_Enumeration" = [ "Devices" ]; + "Devices_Enumeration_Pnp" = [ "Devices_Enumeration" ]; + "Devices_Geolocation" = [ "Devices" ]; + "Devices_Geolocation_Geofencing" = [ "Devices_Geolocation" ]; + "Devices_Geolocation_Provider" = [ "Devices_Geolocation" ]; + "Devices_Gpio" = [ "Devices" ]; + "Devices_Gpio_Provider" = [ "Devices_Gpio" ]; + "Devices_Haptics" = [ "Devices" ]; + "Devices_HumanInterfaceDevice" = [ "Devices" ]; + "Devices_I2c" = [ "Devices" ]; + "Devices_I2c_Provider" = [ "Devices_I2c" ]; + "Devices_Input" = [ "Devices" ]; + "Devices_Input_Preview" = [ "Devices_Input" ]; + "Devices_Lights" = [ "Devices" ]; + "Devices_Lights_Effects" = [ "Devices_Lights" ]; + "Devices_Midi" = [ "Devices" ]; + "Devices_PointOfService" = [ "Devices" ]; + "Devices_PointOfService_Provider" = [ "Devices_PointOfService" ]; + "Devices_Portable" = [ "Devices" ]; + "Devices_Power" = [ "Devices" ]; + "Devices_Printers" = [ "Devices" ]; + "Devices_Printers_Extensions" = [ "Devices_Printers" ]; + "Devices_Pwm" = [ "Devices" ]; + "Devices_Pwm_Provider" = [ "Devices_Pwm" ]; + "Devices_Radios" = [ "Devices" ]; + "Devices_Scanners" = [ "Devices" ]; + "Devices_Sensors" = [ "Devices" ]; + "Devices_Sensors_Custom" = [ "Devices_Sensors" ]; + "Devices_SerialCommunication" = [ "Devices" ]; + "Devices_SmartCards" = [ "Devices" ]; + "Devices_Sms" = [ "Devices" ]; + "Devices_Spi" = [ "Devices" ]; + "Devices_Spi_Provider" = [ "Devices_Spi" ]; + "Devices_Usb" = [ "Devices" ]; + "Devices_WiFi" = [ "Devices" ]; + "Devices_WiFiDirect" = [ "Devices" ]; + "Devices_WiFiDirect_Services" = [ "Devices_WiFiDirect" ]; + "Embedded_DeviceLockdown" = [ "Embedded" ]; + "Foundation_Collections" = [ "Foundation" ]; + "Foundation_Diagnostics" = [ "Foundation" ]; + "Foundation_Metadata" = [ "Foundation" ]; + "Foundation_Numerics" = [ "Foundation" ]; + "Gaming_Input" = [ "Gaming" ]; + "Gaming_Input_Custom" = [ "Gaming_Input" ]; + "Gaming_Input_ForceFeedback" = [ "Gaming_Input" ]; + "Gaming_Input_Preview" = [ "Gaming_Input" ]; + "Gaming_Preview" = [ "Gaming" ]; + "Gaming_Preview_GamesEnumeration" = [ "Gaming_Preview" ]; + "Gaming_UI" = [ "Gaming" ]; + "Gaming_XboxLive" = [ "Gaming" ]; + "Gaming_XboxLive_Storage" = [ "Gaming_XboxLive" ]; + "Globalization_Collation" = [ "Globalization" ]; + "Globalization_DateTimeFormatting" = [ "Globalization" ]; + "Globalization_Fonts" = [ "Globalization" ]; + "Globalization_NumberFormatting" = [ "Globalization" ]; + "Globalization_PhoneNumberFormatting" = [ "Globalization" ]; + "Graphics_Capture" = [ "Graphics" ]; + "Graphics_DirectX" = [ "Graphics" ]; + "Graphics_DirectX_Direct3D11" = [ "Graphics_DirectX" ]; + "Graphics_Display" = [ "Graphics" ]; + "Graphics_Display_Core" = [ "Graphics_Display" ]; + "Graphics_Effects" = [ "Graphics" ]; + "Graphics_Holographic" = [ "Graphics" ]; + "Graphics_Imaging" = [ "Graphics" ]; + "Graphics_Printing" = [ "Graphics" ]; + "Graphics_Printing3D" = [ "Graphics" ]; + "Graphics_Printing_OptionDetails" = [ "Graphics_Printing" ]; + "Graphics_Printing_PrintSupport" = [ "Graphics_Printing" ]; + "Graphics_Printing_PrintTicket" = [ "Graphics_Printing" ]; + "Graphics_Printing_Workflow" = [ "Graphics_Printing" ]; + "Management_Core" = [ "Management" ]; + "Management_Deployment" = [ "Management" ]; + "Management_Deployment_Preview" = [ "Management_Deployment" ]; + "Management_Policies" = [ "Management" ]; + "Management_Update" = [ "Management" ]; + "Management_Workplace" = [ "Management" ]; + "Media_AppBroadcasting" = [ "Media" ]; + "Media_AppRecording" = [ "Media" ]; + "Media_Audio" = [ "Media" ]; + "Media_Capture" = [ "Media" ]; + "Media_Capture_Core" = [ "Media_Capture" ]; + "Media_Capture_Frames" = [ "Media_Capture" ]; + "Media_Casting" = [ "Media" ]; + "Media_ClosedCaptioning" = [ "Media" ]; + "Media_ContentRestrictions" = [ "Media" ]; + "Media_Control" = [ "Media" ]; + "Media_Core" = [ "Media" ]; + "Media_Core_Preview" = [ "Media_Core" ]; + "Media_Devices" = [ "Media" ]; + "Media_Devices_Core" = [ "Media_Devices" ]; + "Media_DialProtocol" = [ "Media" ]; + "Media_Editing" = [ "Media" ]; + "Media_Effects" = [ "Media" ]; + "Media_FaceAnalysis" = [ "Media" ]; + "Media_Import" = [ "Media" ]; + "Media_MediaProperties" = [ "Media" ]; + "Media_Miracast" = [ "Media" ]; + "Media_Ocr" = [ "Media" ]; + "Media_PlayTo" = [ "Media" ]; + "Media_Playback" = [ "Media" ]; + "Media_Playlists" = [ "Media" ]; + "Media_Protection" = [ "Media" ]; + "Media_Protection_PlayReady" = [ "Media_Protection" ]; + "Media_Render" = [ "Media" ]; + "Media_SpeechRecognition" = [ "Media" ]; + "Media_SpeechSynthesis" = [ "Media" ]; + "Media_Streaming" = [ "Media" ]; + "Media_Streaming_Adaptive" = [ "Media_Streaming" ]; + "Media_Transcoding" = [ "Media" ]; + "Networking_BackgroundTransfer" = [ "Networking" ]; + "Networking_Connectivity" = [ "Networking" ]; + "Networking_NetworkOperators" = [ "Networking" ]; + "Networking_Proximity" = [ "Networking" ]; + "Networking_PushNotifications" = [ "Networking" ]; + "Networking_ServiceDiscovery" = [ "Networking" ]; + "Networking_ServiceDiscovery_Dnssd" = [ "Networking_ServiceDiscovery" ]; + "Networking_Sockets" = [ "Networking" ]; + "Networking_Vpn" = [ "Networking" ]; + "Networking_XboxLive" = [ "Networking" ]; + "Perception_Automation" = [ "Perception" ]; + "Perception_Automation_Core" = [ "Perception_Automation" ]; + "Perception_People" = [ "Perception" ]; + "Perception_Spatial" = [ "Perception" ]; + "Perception_Spatial_Preview" = [ "Perception_Spatial" ]; + "Perception_Spatial_Surfaces" = [ "Perception_Spatial" ]; + "Phone_ApplicationModel" = [ "Phone" ]; + "Phone_Devices" = [ "Phone" ]; + "Phone_Devices_Notification" = [ "Phone_Devices" ]; + "Phone_Devices_Power" = [ "Phone_Devices" ]; + "Phone_Management" = [ "Phone" ]; + "Phone_Management_Deployment" = [ "Phone_Management" ]; + "Phone_Media" = [ "Phone" ]; + "Phone_Media_Devices" = [ "Phone_Media" ]; + "Phone_Notification" = [ "Phone" ]; + "Phone_Notification_Management" = [ "Phone_Notification" ]; + "Phone_PersonalInformation" = [ "Phone" ]; + "Phone_PersonalInformation_Provisioning" = [ "Phone_PersonalInformation" ]; + "Phone_Speech" = [ "Phone" ]; + "Phone_Speech_Recognition" = [ "Phone_Speech" ]; + "Phone_StartScreen" = [ "Phone" ]; + "Phone_System" = [ "Phone" ]; + "Phone_System_Power" = [ "Phone_System" ]; + "Phone_System_Profile" = [ "Phone_System" ]; + "Phone_System_UserProfile" = [ "Phone_System" ]; + "Phone_System_UserProfile_GameServices" = [ "Phone_System_UserProfile" ]; + "Phone_System_UserProfile_GameServices_Core" = [ "Phone_System_UserProfile_GameServices" ]; + "Phone_UI" = [ "Phone" ]; + "Phone_UI_Input" = [ "Phone_UI" ]; + "Security_Authentication" = [ "Security" ]; + "Security_Authentication_Identity" = [ "Security_Authentication" ]; + "Security_Authentication_Identity_Core" = [ "Security_Authentication_Identity" ]; + "Security_Authentication_OnlineId" = [ "Security_Authentication" ]; + "Security_Authentication_Web" = [ "Security_Authentication" ]; + "Security_Authentication_Web_Core" = [ "Security_Authentication_Web" ]; + "Security_Authentication_Web_Provider" = [ "Security_Authentication_Web" ]; + "Security_Authorization" = [ "Security" ]; + "Security_Authorization_AppCapabilityAccess" = [ "Security_Authorization" ]; + "Security_Credentials" = [ "Security" ]; + "Security_Credentials_UI" = [ "Security_Credentials" ]; + "Security_Cryptography" = [ "Security" ]; + "Security_Cryptography_Certificates" = [ "Security_Cryptography" ]; + "Security_Cryptography_Core" = [ "Security_Cryptography" ]; + "Security_Cryptography_DataProtection" = [ "Security_Cryptography" ]; + "Security_DataProtection" = [ "Security" ]; + "Security_EnterpriseData" = [ "Security" ]; + "Security_ExchangeActiveSyncProvisioning" = [ "Security" ]; + "Security_Isolation" = [ "Security" ]; + "Services_Maps" = [ "Services" ]; + "Services_Maps_Guidance" = [ "Services_Maps" ]; + "Services_Maps_LocalSearch" = [ "Services_Maps" ]; + "Services_Maps_OfflineMaps" = [ "Services_Maps" ]; + "Services_Store" = [ "Services" ]; + "Services_TargetedContent" = [ "Services" ]; + "Storage_AccessCache" = [ "Storage" ]; + "Storage_BulkAccess" = [ "Storage" ]; + "Storage_Compression" = [ "Storage" ]; + "Storage_FileProperties" = [ "Storage" ]; + "Storage_Pickers" = [ "Storage" ]; + "Storage_Pickers_Provider" = [ "Storage_Pickers" ]; + "Storage_Provider" = [ "Storage" ]; + "Storage_Search" = [ "Storage" ]; + "Storage_Streams" = [ "Storage" ]; + "System_Diagnostics" = [ "System" ]; + "System_Diagnostics_DevicePortal" = [ "System_Diagnostics" ]; + "System_Diagnostics_Telemetry" = [ "System_Diagnostics" ]; + "System_Diagnostics_TraceReporting" = [ "System_Diagnostics" ]; + "System_Display" = [ "System" ]; + "System_Implementation" = [ "System" ]; + "System_Implementation_FileExplorer" = [ "System_Implementation" ]; + "System_Inventory" = [ "System" ]; + "System_Power" = [ "System" ]; + "System_Profile" = [ "System" ]; + "System_Profile_SystemManufacturers" = [ "System_Profile" ]; + "System_RemoteDesktop" = [ "System" ]; + "System_RemoteDesktop_Input" = [ "System_RemoteDesktop" ]; + "System_RemoteSystems" = [ "System" ]; + "System_Threading" = [ "System" ]; + "System_Threading_Core" = [ "System_Threading" ]; + "System_Update" = [ "System" ]; + "System_UserProfile" = [ "System" ]; + "UI_Accessibility" = [ "UI" ]; + "UI_ApplicationSettings" = [ "UI" ]; + "UI_Composition" = [ "UI" ]; + "UI_Composition_Core" = [ "UI_Composition" ]; + "UI_Composition_Desktop" = [ "UI_Composition" ]; + "UI_Composition_Diagnostics" = [ "UI_Composition" ]; + "UI_Composition_Effects" = [ "UI_Composition" ]; + "UI_Composition_Interactions" = [ "UI_Composition" ]; + "UI_Composition_Scenes" = [ "UI_Composition" ]; + "UI_Core" = [ "UI" ]; + "UI_Core_AnimationMetrics" = [ "UI_Core" ]; + "UI_Core_Preview" = [ "UI_Core" ]; + "UI_Input" = [ "UI" ]; + "UI_Input_Core" = [ "UI_Input" ]; + "UI_Input_Inking" = [ "UI_Input" ]; + "UI_Input_Inking_Analysis" = [ "UI_Input_Inking" ]; + "UI_Input_Inking_Core" = [ "UI_Input_Inking" ]; + "UI_Input_Inking_Preview" = [ "UI_Input_Inking" ]; + "UI_Input_Preview" = [ "UI_Input" ]; + "UI_Input_Preview_Injection" = [ "UI_Input_Preview" ]; + "UI_Input_Spatial" = [ "UI_Input" ]; + "UI_Notifications" = [ "UI" ]; + "UI_Notifications_Management" = [ "UI_Notifications" ]; + "UI_Popups" = [ "UI" ]; + "UI_Shell" = [ "UI" ]; + "UI_StartScreen" = [ "UI" ]; + "UI_Text" = [ "UI" ]; + "UI_Text_Core" = [ "UI_Text" ]; + "UI_UIAutomation" = [ "UI" ]; + "UI_UIAutomation_Core" = [ "UI_UIAutomation" ]; + "UI_ViewManagement" = [ "UI" ]; + "UI_ViewManagement_Core" = [ "UI_ViewManagement" ]; + "UI_WebUI" = [ "UI" ]; + "UI_WebUI_Core" = [ "UI_WebUI" ]; + "UI_WindowManagement" = [ "UI" ]; + "UI_WindowManagement_Preview" = [ "UI_WindowManagement" ]; + "Wdk_Foundation" = [ "Wdk" ]; + "Wdk_Graphics" = [ "Wdk" ]; + "Wdk_Graphics_Direct3D" = [ "Wdk_Graphics" ]; + "Wdk_Storage" = [ "Wdk" ]; + "Wdk_Storage_FileSystem" = [ "Wdk_Storage" ]; + "Wdk_Storage_FileSystem_Minifilters" = [ "Wdk_Storage_FileSystem" ]; + "Wdk_System" = [ "Wdk" ]; + "Wdk_System_IO" = [ "Wdk_System" ]; + "Wdk_System_OfflineRegistry" = [ "Wdk_System" ]; + "Wdk_System_Registry" = [ "Wdk_System" ]; + "Wdk_System_SystemInformation" = [ "Wdk_System" ]; + "Wdk_System_SystemServices" = [ "Wdk_System" ]; + "Wdk_System_Threading" = [ "Wdk_System" ]; + "Web_AtomPub" = [ "Web" ]; + "Web_Http" = [ "Web" ]; + "Web_Http_Diagnostics" = [ "Web_Http" ]; + "Web_Http_Filters" = [ "Web_Http" ]; + "Web_Http_Headers" = [ "Web_Http" ]; + "Web_Syndication" = [ "Web" ]; + "Web_UI" = [ "Web" ]; + "Web_UI_Interop" = [ "Web_UI" ]; + "Win32_AI" = [ "Win32" ]; + "Win32_AI_MachineLearning" = [ "Win32_AI" ]; + "Win32_AI_MachineLearning_DirectML" = [ "Win32_AI_MachineLearning" ]; + "Win32_AI_MachineLearning_WinML" = [ "Win32_AI_MachineLearning" ]; + "Win32_Data" = [ "Win32" ]; + "Win32_Data_HtmlHelp" = [ "Win32_Data" ]; + "Win32_Data_RightsManagement" = [ "Win32_Data" ]; + "Win32_Data_Xml" = [ "Win32_Data" ]; + "Win32_Data_Xml_MsXml" = [ "Win32_Data_Xml" ]; + "Win32_Data_Xml_XmlLite" = [ "Win32_Data_Xml" ]; + "Win32_Devices" = [ "Win32" ]; + "Win32_Devices_AllJoyn" = [ "Win32_Devices" ]; + "Win32_Devices_BiometricFramework" = [ "Win32_Devices" ]; + "Win32_Devices_Bluetooth" = [ "Win32_Devices" ]; + "Win32_Devices_Communication" = [ "Win32_Devices" ]; + "Win32_Devices_DeviceAccess" = [ "Win32_Devices" ]; + "Win32_Devices_DeviceAndDriverInstallation" = [ "Win32_Devices" ]; + "Win32_Devices_DeviceQuery" = [ "Win32_Devices" ]; + "Win32_Devices_Display" = [ "Win32_Devices" ]; + "Win32_Devices_Enumeration" = [ "Win32_Devices" ]; + "Win32_Devices_Enumeration_Pnp" = [ "Win32_Devices_Enumeration" ]; + "Win32_Devices_Fax" = [ "Win32_Devices" ]; + "Win32_Devices_FunctionDiscovery" = [ "Win32_Devices" ]; + "Win32_Devices_Geolocation" = [ "Win32_Devices" ]; + "Win32_Devices_HumanInterfaceDevice" = [ "Win32_Devices" ]; + "Win32_Devices_ImageAcquisition" = [ "Win32_Devices" ]; + "Win32_Devices_PortableDevices" = [ "Win32_Devices" ]; + "Win32_Devices_Properties" = [ "Win32_Devices" ]; + "Win32_Devices_Pwm" = [ "Win32_Devices" ]; + "Win32_Devices_Sensors" = [ "Win32_Devices" ]; + "Win32_Devices_SerialCommunication" = [ "Win32_Devices" ]; + "Win32_Devices_Tapi" = [ "Win32_Devices" ]; + "Win32_Devices_Usb" = [ "Win32_Devices" ]; + "Win32_Devices_WebServicesOnDevices" = [ "Win32_Devices" ]; + "Win32_Foundation" = [ "Win32" ]; + "Win32_Gaming" = [ "Win32" ]; + "Win32_Globalization" = [ "Win32" ]; + "Win32_Graphics" = [ "Win32" ]; + "Win32_Graphics_CompositionSwapchain" = [ "Win32_Graphics" ]; + "Win32_Graphics_DXCore" = [ "Win32_Graphics" ]; + "Win32_Graphics_Direct2D" = [ "Win32_Graphics" ]; + "Win32_Graphics_Direct2D_Common" = [ "Win32_Graphics_Direct2D" ]; + "Win32_Graphics_Direct3D" = [ "Win32_Graphics" ]; + "Win32_Graphics_Direct3D10" = [ "Win32_Graphics" ]; + "Win32_Graphics_Direct3D11" = [ "Win32_Graphics" ]; + "Win32_Graphics_Direct3D11on12" = [ "Win32_Graphics" ]; + "Win32_Graphics_Direct3D12" = [ "Win32_Graphics" ]; + "Win32_Graphics_Direct3D9" = [ "Win32_Graphics" ]; + "Win32_Graphics_Direct3D9on12" = [ "Win32_Graphics" ]; + "Win32_Graphics_Direct3D_Dxc" = [ "Win32_Graphics_Direct3D" ]; + "Win32_Graphics_Direct3D_Fxc" = [ "Win32_Graphics_Direct3D" ]; + "Win32_Graphics_DirectComposition" = [ "Win32_Graphics" ]; + "Win32_Graphics_DirectDraw" = [ "Win32_Graphics" ]; + "Win32_Graphics_DirectManipulation" = [ "Win32_Graphics" ]; + "Win32_Graphics_DirectWrite" = [ "Win32_Graphics" ]; + "Win32_Graphics_Dwm" = [ "Win32_Graphics" ]; + "Win32_Graphics_Dxgi" = [ "Win32_Graphics" ]; + "Win32_Graphics_Dxgi_Common" = [ "Win32_Graphics_Dxgi" ]; + "Win32_Graphics_Gdi" = [ "Win32_Graphics" ]; + "Win32_Graphics_GdiPlus" = [ "Win32_Graphics" ]; + "Win32_Graphics_Hlsl" = [ "Win32_Graphics" ]; + "Win32_Graphics_Imaging" = [ "Win32_Graphics" ]; + "Win32_Graphics_Imaging_D2D" = [ "Win32_Graphics_Imaging" ]; + "Win32_Graphics_OpenGL" = [ "Win32_Graphics" ]; + "Win32_Graphics_Printing" = [ "Win32_Graphics" ]; + "Win32_Graphics_Printing_PrintTicket" = [ "Win32_Graphics_Printing" ]; + "Win32_Management" = [ "Win32" ]; + "Win32_Management_MobileDeviceManagementRegistration" = [ "Win32_Management" ]; + "Win32_Media" = [ "Win32" ]; + "Win32_Media_Audio" = [ "Win32_Media" ]; + "Win32_Media_Audio_Apo" = [ "Win32_Media_Audio" ]; + "Win32_Media_Audio_DirectMusic" = [ "Win32_Media_Audio" ]; + "Win32_Media_Audio_DirectSound" = [ "Win32_Media_Audio" ]; + "Win32_Media_Audio_Endpoints" = [ "Win32_Media_Audio" ]; + "Win32_Media_Audio_XAudio2" = [ "Win32_Media_Audio" ]; + "Win32_Media_DeviceManager" = [ "Win32_Media" ]; + "Win32_Media_DirectShow" = [ "Win32_Media" ]; + "Win32_Media_DirectShow_Tv" = [ "Win32_Media_DirectShow" ]; + "Win32_Media_DirectShow_Xml" = [ "Win32_Media_DirectShow" ]; + "Win32_Media_DxMediaObjects" = [ "Win32_Media" ]; + "Win32_Media_KernelStreaming" = [ "Win32_Media" ]; + "Win32_Media_LibrarySharingServices" = [ "Win32_Media" ]; + "Win32_Media_MediaFoundation" = [ "Win32_Media" ]; + "Win32_Media_MediaPlayer" = [ "Win32_Media" ]; + "Win32_Media_Multimedia" = [ "Win32_Media" ]; + "Win32_Media_PictureAcquisition" = [ "Win32_Media" ]; + "Win32_Media_Speech" = [ "Win32_Media" ]; + "Win32_Media_Streaming" = [ "Win32_Media" ]; + "Win32_Media_WindowsMediaFormat" = [ "Win32_Media" ]; + "Win32_NetworkManagement" = [ "Win32" ]; + "Win32_NetworkManagement_Dhcp" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Dns" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_InternetConnectionWizard" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_IpHelper" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_MobileBroadband" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Multicast" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Ndis" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetBios" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetManagement" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetShell" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetworkDiagnosticsFramework" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetworkPolicyServer" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_P2P" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_QoS" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Rras" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Snmp" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WNet" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WebDav" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WiFi" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsConnectNow" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsConnectionManager" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsFilteringPlatform" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsFirewall" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsNetworkVirtualization" = [ "Win32_NetworkManagement" ]; + "Win32_Networking" = [ "Win32" ]; + "Win32_Networking_ActiveDirectory" = [ "Win32_Networking" ]; + "Win32_Networking_BackgroundIntelligentTransferService" = [ "Win32_Networking" ]; + "Win32_Networking_Clustering" = [ "Win32_Networking" ]; + "Win32_Networking_HttpServer" = [ "Win32_Networking" ]; + "Win32_Networking_Ldap" = [ "Win32_Networking" ]; + "Win32_Networking_NetworkListManager" = [ "Win32_Networking" ]; + "Win32_Networking_RemoteDifferentialCompression" = [ "Win32_Networking" ]; + "Win32_Networking_WebSocket" = [ "Win32_Networking" ]; + "Win32_Networking_WinHttp" = [ "Win32_Networking" ]; + "Win32_Networking_WinInet" = [ "Win32_Networking" ]; + "Win32_Networking_WinSock" = [ "Win32_Networking" ]; + "Win32_Networking_WindowsWebServices" = [ "Win32_Networking" ]; + "Win32_Security" = [ "Win32" ]; + "Win32_Security_AppLocker" = [ "Win32_Security" ]; + "Win32_Security_Authentication" = [ "Win32_Security" ]; + "Win32_Security_Authentication_Identity" = [ "Win32_Security_Authentication" ]; + "Win32_Security_Authentication_Identity_Provider" = [ "Win32_Security_Authentication_Identity" ]; + "Win32_Security_Authorization" = [ "Win32_Security" ]; + "Win32_Security_Authorization_UI" = [ "Win32_Security_Authorization" ]; + "Win32_Security_ConfigurationSnapin" = [ "Win32_Security" ]; + "Win32_Security_Credentials" = [ "Win32_Security" ]; + "Win32_Security_Cryptography" = [ "Win32_Security" ]; + "Win32_Security_Cryptography_Catalog" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_Cryptography_Certificates" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_Cryptography_Sip" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_Cryptography_UI" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_DiagnosticDataQuery" = [ "Win32_Security" ]; + "Win32_Security_DirectoryServices" = [ "Win32_Security" ]; + "Win32_Security_EnterpriseData" = [ "Win32_Security" ]; + "Win32_Security_ExtensibleAuthenticationProtocol" = [ "Win32_Security" ]; + "Win32_Security_Isolation" = [ "Win32_Security" ]; + "Win32_Security_LicenseProtection" = [ "Win32_Security" ]; + "Win32_Security_NetworkAccessProtection" = [ "Win32_Security" ]; + "Win32_Security_Tpm" = [ "Win32_Security" ]; + "Win32_Security_WinTrust" = [ "Win32_Security" ]; + "Win32_Security_WinWlx" = [ "Win32_Security" ]; + "Win32_Storage" = [ "Win32" ]; + "Win32_Storage_Cabinets" = [ "Win32_Storage" ]; + "Win32_Storage_CloudFilters" = [ "Win32_Storage" ]; + "Win32_Storage_Compression" = [ "Win32_Storage" ]; + "Win32_Storage_DataDeduplication" = [ "Win32_Storage" ]; + "Win32_Storage_DistributedFileSystem" = [ "Win32_Storage" ]; + "Win32_Storage_EnhancedStorage" = [ "Win32_Storage" ]; + "Win32_Storage_FileHistory" = [ "Win32_Storage" ]; + "Win32_Storage_FileServerResourceManager" = [ "Win32_Storage" ]; + "Win32_Storage_FileSystem" = [ "Win32_Storage" ]; + "Win32_Storage_Imapi" = [ "Win32_Storage" ]; + "Win32_Storage_IndexServer" = [ "Win32_Storage" ]; + "Win32_Storage_InstallableFileSystems" = [ "Win32_Storage" ]; + "Win32_Storage_IscsiDisc" = [ "Win32_Storage" ]; + "Win32_Storage_Jet" = [ "Win32_Storage" ]; + "Win32_Storage_Nvme" = [ "Win32_Storage" ]; + "Win32_Storage_OfflineFiles" = [ "Win32_Storage" ]; + "Win32_Storage_OperationRecorder" = [ "Win32_Storage" ]; + "Win32_Storage_Packaging" = [ "Win32_Storage" ]; + "Win32_Storage_Packaging_Appx" = [ "Win32_Storage_Packaging" ]; + "Win32_Storage_Packaging_Opc" = [ "Win32_Storage_Packaging" ]; + "Win32_Storage_ProjectedFileSystem" = [ "Win32_Storage" ]; + "Win32_Storage_StructuredStorage" = [ "Win32_Storage" ]; + "Win32_Storage_Vhd" = [ "Win32_Storage" ]; + "Win32_Storage_VirtualDiskService" = [ "Win32_Storage" ]; + "Win32_Storage_Vss" = [ "Win32_Storage" ]; + "Win32_Storage_Xps" = [ "Win32_Storage" ]; + "Win32_Storage_Xps_Printing" = [ "Win32_Storage_Xps" ]; + "Win32_System" = [ "Win32" ]; + "Win32_System_AddressBook" = [ "Win32_System" ]; + "Win32_System_Antimalware" = [ "Win32_System" ]; + "Win32_System_ApplicationInstallationAndServicing" = [ "Win32_System" ]; + "Win32_System_ApplicationVerifier" = [ "Win32_System" ]; + "Win32_System_AssessmentTool" = [ "Win32_System" ]; + "Win32_System_ClrHosting" = [ "Win32_System" ]; + "Win32_System_Com" = [ "Win32_System" ]; + "Win32_System_Com_CallObj" = [ "Win32_System_Com" ]; + "Win32_System_Com_ChannelCredentials" = [ "Win32_System_Com" ]; + "Win32_System_Com_Events" = [ "Win32_System_Com" ]; + "Win32_System_Com_Marshal" = [ "Win32_System_Com" ]; + "Win32_System_Com_StructuredStorage" = [ "Win32_System_Com" ]; + "Win32_System_Com_UI" = [ "Win32_System_Com" ]; + "Win32_System_Com_Urlmon" = [ "Win32_System_Com" ]; + "Win32_System_ComponentServices" = [ "Win32_System" ]; + "Win32_System_Console" = [ "Win32_System" ]; + "Win32_System_Contacts" = [ "Win32_System" ]; + "Win32_System_CorrelationVector" = [ "Win32_System" ]; + "Win32_System_DataExchange" = [ "Win32_System" ]; + "Win32_System_DeploymentServices" = [ "Win32_System" ]; + "Win32_System_DesktopSharing" = [ "Win32_System" ]; + "Win32_System_DeveloperLicensing" = [ "Win32_System" ]; + "Win32_System_Diagnostics" = [ "Win32_System" ]; + "Win32_System_Diagnostics_Ceip" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_ClrProfiling" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_Debug" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_Debug_ActiveScript" = [ "Win32_System_Diagnostics_Debug" ]; + "Win32_System_Diagnostics_Debug_Extensions" = [ "Win32_System_Diagnostics_Debug" ]; + "Win32_System_Diagnostics_Etw" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_ProcessSnapshotting" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_ToolHelp" = [ "Win32_System_Diagnostics" ]; + "Win32_System_DistributedTransactionCoordinator" = [ "Win32_System" ]; + "Win32_System_Environment" = [ "Win32_System" ]; + "Win32_System_ErrorReporting" = [ "Win32_System" ]; + "Win32_System_EventCollector" = [ "Win32_System" ]; + "Win32_System_EventLog" = [ "Win32_System" ]; + "Win32_System_EventNotificationService" = [ "Win32_System" ]; + "Win32_System_GroupPolicy" = [ "Win32_System" ]; + "Win32_System_HostCompute" = [ "Win32_System" ]; + "Win32_System_HostComputeNetwork" = [ "Win32_System" ]; + "Win32_System_HostComputeSystem" = [ "Win32_System" ]; + "Win32_System_Hypervisor" = [ "Win32_System" ]; + "Win32_System_IO" = [ "Win32_System" ]; + "Win32_System_Iis" = [ "Win32_System" ]; + "Win32_System_Ioctl" = [ "Win32_System" ]; + "Win32_System_JobObjects" = [ "Win32_System" ]; + "Win32_System_Js" = [ "Win32_System" ]; + "Win32_System_Kernel" = [ "Win32_System" ]; + "Win32_System_LibraryLoader" = [ "Win32_System" ]; + "Win32_System_Mailslots" = [ "Win32_System" ]; + "Win32_System_Mapi" = [ "Win32_System" ]; + "Win32_System_Memory" = [ "Win32_System" ]; + "Win32_System_Memory_NonVolatile" = [ "Win32_System_Memory" ]; + "Win32_System_MessageQueuing" = [ "Win32_System" ]; + "Win32_System_MixedReality" = [ "Win32_System" ]; + "Win32_System_Mmc" = [ "Win32_System" ]; + "Win32_System_Ole" = [ "Win32_System" ]; + "Win32_System_ParentalControls" = [ "Win32_System" ]; + "Win32_System_PasswordManagement" = [ "Win32_System" ]; + "Win32_System_Performance" = [ "Win32_System" ]; + "Win32_System_Performance_HardwareCounterProfiling" = [ "Win32_System_Performance" ]; + "Win32_System_Pipes" = [ "Win32_System" ]; + "Win32_System_Power" = [ "Win32_System" ]; + "Win32_System_ProcessStatus" = [ "Win32_System" ]; + "Win32_System_RealTimeCommunications" = [ "Win32_System" ]; + "Win32_System_Recovery" = [ "Win32_System" ]; + "Win32_System_Registry" = [ "Win32_System" ]; + "Win32_System_RemoteAssistance" = [ "Win32_System" ]; + "Win32_System_RemoteDesktop" = [ "Win32_System" ]; + "Win32_System_RemoteManagement" = [ "Win32_System" ]; + "Win32_System_RestartManager" = [ "Win32_System" ]; + "Win32_System_Restore" = [ "Win32_System" ]; + "Win32_System_Rpc" = [ "Win32_System" ]; + "Win32_System_Search" = [ "Win32_System" ]; + "Win32_System_Search_Common" = [ "Win32_System_Search" ]; + "Win32_System_SecurityCenter" = [ "Win32_System" ]; + "Win32_System_ServerBackup" = [ "Win32_System" ]; + "Win32_System_Services" = [ "Win32_System" ]; + "Win32_System_SettingsManagementInfrastructure" = [ "Win32_System" ]; + "Win32_System_SetupAndMigration" = [ "Win32_System" ]; + "Win32_System_Shutdown" = [ "Win32_System" ]; + "Win32_System_SideShow" = [ "Win32_System" ]; + "Win32_System_StationsAndDesktops" = [ "Win32_System" ]; + "Win32_System_SubsystemForLinux" = [ "Win32_System" ]; + "Win32_System_SystemInformation" = [ "Win32_System" ]; + "Win32_System_SystemServices" = [ "Win32_System" ]; + "Win32_System_TaskScheduler" = [ "Win32_System" ]; + "Win32_System_Threading" = [ "Win32_System" ]; + "Win32_System_Time" = [ "Win32_System" ]; + "Win32_System_TpmBaseServices" = [ "Win32_System" ]; + "Win32_System_TransactionServer" = [ "Win32_System" ]; + "Win32_System_UpdateAgent" = [ "Win32_System" ]; + "Win32_System_UpdateAssessment" = [ "Win32_System" ]; + "Win32_System_UserAccessLogging" = [ "Win32_System" ]; + "Win32_System_Variant" = [ "Win32_System" ]; + "Win32_System_VirtualDosMachines" = [ "Win32_System" ]; + "Win32_System_WinRT" = [ "Win32_System" ]; + "Win32_System_WinRT_AllJoyn" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Composition" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_CoreInputView" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Direct3D11" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Display" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Graphics" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Graphics_Capture" = [ "Win32_System_WinRT_Graphics" ]; + "Win32_System_WinRT_Graphics_Direct2D" = [ "Win32_System_WinRT_Graphics" ]; + "Win32_System_WinRT_Graphics_Imaging" = [ "Win32_System_WinRT_Graphics" ]; + "Win32_System_WinRT_Holographic" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Isolation" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_ML" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Media" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Metadata" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Pdf" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Printing" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Shell" = [ "Win32_System_WinRT" ]; + "Win32_System_WinRT_Storage" = [ "Win32_System_WinRT" ]; + "Win32_System_WindowsProgramming" = [ "Win32_System" ]; + "Win32_System_WindowsSync" = [ "Win32_System" ]; + "Win32_System_Wmi" = [ "Win32_System" ]; + "Win32_UI" = [ "Win32" ]; + "Win32_UI_Accessibility" = [ "Win32_UI" ]; + "Win32_UI_Animation" = [ "Win32_UI" ]; + "Win32_UI_ColorSystem" = [ "Win32_UI" ]; + "Win32_UI_Controls" = [ "Win32_UI" ]; + "Win32_UI_Controls_Dialogs" = [ "Win32_UI_Controls" ]; + "Win32_UI_Controls_RichEdit" = [ "Win32_UI_Controls" ]; + "Win32_UI_HiDpi" = [ "Win32_UI" ]; + "Win32_UI_Input" = [ "Win32_UI" ]; + "Win32_UI_Input_Ime" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_Ink" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_KeyboardAndMouse" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_Pointer" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_Radial" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_Touch" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_XboxController" = [ "Win32_UI_Input" ]; + "Win32_UI_InteractionContext" = [ "Win32_UI" ]; + "Win32_UI_LegacyWindowsEnvironmentFeatures" = [ "Win32_UI" ]; + "Win32_UI_Magnification" = [ "Win32_UI" ]; + "Win32_UI_Notifications" = [ "Win32_UI" ]; + "Win32_UI_Ribbon" = [ "Win32_UI" ]; + "Win32_UI_Shell" = [ "Win32_UI" ]; + "Win32_UI_Shell_Common" = [ "Win32_UI_Shell" ]; + "Win32_UI_Shell_PropertiesSystem" = [ "Win32_UI_Shell" ]; + "Win32_UI_TabletPC" = [ "Win32_UI" ]; + "Win32_UI_TextServices" = [ "Win32_UI" ]; + "Win32_UI_WindowsAndMessaging" = [ "Win32_UI" ]; + "Win32_UI_Wpf" = [ "Win32_UI" ]; + "Win32_Web" = [ "Win32" ]; + "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; + "implement" = [ "windows-implement" "windows-interface" "windows-core/implement" ]; + "windows-implement" = [ "dep:windows-implement" ]; + "windows-interface" = [ "dep:windows-interface" ]; + }; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_SystemInformation" "default" ]; + }; "windows-core" = rec { crateName = "windows-core"; version = "0.52.0"; @@ -9978,7 +10668,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Com" "Win32_System_Console" "Win32_System_IO" "Win32_System_Pipes" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "Win32_UI" "Win32_UI_Shell" "default" ]; + resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_IO" "Win32_System_Pipes" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; }; "windows-sys 0.59.0" = rec { crateName = "windows-sys"; @@ -10237,7 +10927,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_System" "Win32_System_Console" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_SystemInformation" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_System" "Win32_System_Com" "Win32_System_Console" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_SystemInformation" "Win32_UI" "Win32_UI_Shell" "default" ]; }; "windows-targets" = rec { crateName = "windows-targets"; @@ -10374,9 +11064,9 @@ rec { }; "winnow" = rec { crateName = "winnow"; - version = "0.6.20"; + version = "0.6.24"; edition = "2021"; - sha256 = "16y4i8z9vh8hazjxg5mvmq0c5i35wlk8rxi5gkq6cn5vlb0zxh9n"; + sha256 = "0fm0z1gk9wb47s1jhh889isz657kavd1yb3fhzbjmi657icimmy8"; dependencies = [ { name = "memchr"; @@ -10419,10 +11109,10 @@ rec { }; "xml-rs" = rec { crateName = "xml-rs"; - version = "0.8.24"; + version = "0.8.25"; edition = "2021"; crateBin = []; - sha256 = "0ck4s3j1dk4bnqam9h06nfmicnzdp69pz7y2hihlj2vrk8f3k2za"; + sha256 = "1i73ajf6scni5bi1a51r19xykgrambdx5fkks0fyg5jqqbml1ff5"; libName = "xml"; authors = [ "Vladimir Matveev " @@ -10499,7 +11189,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "fold" ]; } { @@ -10572,7 +11262,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; } ]; @@ -10620,7 +11310,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "fold" ]; } { @@ -10704,7 +11394,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.90"; + packageId = "syn 2.0.96"; features = [ "extra-traits" ]; } ]; diff --git a/Cargo.toml b/Cargo.toml index ffaac93b..ce541c0b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,13 +19,13 @@ futures = { version = "0.3", features = ["compat"] } indoc = "2.0" openssl = "0.10" pin-project = "1.1" -rstest = "0.23" +rstest = "0.24" semver = "1.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde_yaml = "0.9" snafu = "0.8" -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.84.0" } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.84.1" } product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.7.0" } strum = { version = "0.26", features = ["derive"] } tokio = { version = "1.40", features = ["full"] } diff --git a/crate-hashes.json b/crate-hashes.json index e00798ae..a0346ddb 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,6 +1,6 @@ { - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.83.0#stackable-operator-derive@0.3.1": "1443vhsanfl2vxp6x6zpylfln682g0y8bxbk4sknycsg009mbkwm", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.83.0#stackable-operator@0.83.0": "1443vhsanfl2vxp6x6zpylfln682g0y8bxbk4sknycsg009mbkwm", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.83.0#stackable-shared@0.0.1": "1443vhsanfl2vxp6x6zpylfln682g0y8bxbk4sknycsg009mbkwm", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.1#stackable-operator-derive@0.3.1": "0vwq3dzxj56y4vrnw4ry7wajm12f32jipvc6f3izdrixy2pazq3i", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.1#stackable-operator@0.84.1": "0vwq3dzxj56y4vrnw4ry7wajm12f32jipvc6f3izdrixy2pazq3i", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.84.1#stackable-shared@0.0.1": "0vwq3dzxj56y4vrnw4ry7wajm12f32jipvc6f3izdrixy2pazq3i", "git+https://github.com/stackabletech/product-config.git?tag=0.7.0#product-config@0.7.0": "0gjsm80g6r75pm3824dcyiz4ysq1ka4c1if6k1mjm9cnd5ym0gny" } \ No newline at end of file From 4806dd0e0678ffbebf278a820d9c011f46d871c9 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Mon, 27 Jan 2025 15:48:04 +0100 Subject: [PATCH 14/14] Add docs --- docs/modules/trino/pages/usage-guide/overrides.adoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/modules/trino/pages/usage-guide/overrides.adoc b/docs/modules/trino/pages/usage-guide/overrides.adoc index 90521d17..d808878d 100644 --- a/docs/modules/trino/pages/usage-guide/overrides.adoc +++ b/docs/modules/trino/pages/usage-guide/overrides.adoc @@ -61,3 +61,8 @@ Environment variables can be (over)written by adding the `envOverrides` property Pod overrides allow you to specify a PodTemplateSpec. Consult the xref:concepts:overrides.adoc#pod-overrides[Pod overrides concept documentation] for more information. + +== JVM argument overrides + +Stackable operators automatically determine the set of needed JVM arguments, such as memory settings or trust- and keystores. +Using JVM argument overrides you can configure the JVM arguments xref:concepts:overrides.adoc#jvm-argument-overrides[according to the concepts page].