diff --git a/Cargo.lock b/Cargo.lock index ef66bdb47..6400b7b2b 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 = 3 +version = 4 [[package]] name = "actix-codec" @@ -21,9 +21,9 @@ dependencies = [ [[package]] name = "actix-http" -version = "3.4.0" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92ef85799cba03f76e4f7c10f533e66d87c9a7e7055f3391f09000ad8351bc9" +checksum = "d48f96fc3003717aeb9856ca3d02a8c7de502667ad76eeacd830b48d2e91fac4" dependencies = [ "actix-codec", "actix-rt", @@ -31,7 +31,7 @@ dependencies = [ "actix-tls", "actix-utils", "ahash", - "base64 0.21.5", + "base64 0.22.1", "bitflags 2.4.0", "brotli", "bytes", @@ -40,8 +40,8 @@ dependencies = [ "encoding_rs", "flate2", "futures-core", - "h2", - "http", + "h2 0.3.26", + "http 0.2.9", "httparse", "httpdate", "itoa", @@ -66,18 +66,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] name = "actix-router" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799" +checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8" dependencies = [ "bytestring", - "http", + "cfg-if", + "http 0.2.9", "regex", + "regex-lite", "serde", "tracing", ] @@ -103,7 +105,7 @@ dependencies = [ "actix-utils", "futures-core", "futures-util", - "mio", + "mio 0.8.11", "num_cpus", "socket2 0.4.10", "tokio", @@ -123,9 +125,9 @@ dependencies = [ [[package]] name = "actix-tls" -version = "3.1.1" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72616e7fbec0aa99c6f3164677fa48ff5a60036d0799c98cab894a44f3e0efc3" +checksum = "ac453898d866cdbecdbc2334fe1738c747b4eba14a677261f2b768ba05329389" dependencies = [ "actix-rt", "actix-service", @@ -133,10 +135,8 @@ dependencies = [ "futures-core", "impl-more", "pin-project-lite", - "rustls", - "rustls-webpki", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tokio-util", "tracing", "webpki-roots", @@ -154,9 +154,9 @@ dependencies = [ [[package]] name = "actix-web" -version = "4.4.0" +version = "4.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4a5b5e29603ca8c94a77c65cf874718ceb60292c5a5c3e5f4ace041af462b9" +checksum = "9180d76e5cc7ccbc4d60a506f2c727730b154010262df5b910eb17dbe4b8cb38" dependencies = [ "actix-codec", "actix-http", @@ -177,6 +177,7 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", + "impl-more", "itoa", "language-tags", "log", @@ -184,6 +185,7 @@ dependencies = [ "once_cell", "pin-project-lite", "regex", + "regex-lite", "serde", "serde_json", "serde_urlencoded", @@ -195,14 +197,14 @@ dependencies = [ [[package]] name = "actix-web-codegen" -version = "4.2.0" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2262160a7ae29e3415554a3f1fc04c764b1540c116aa524683208078b7a75bc9" +checksum = "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8" dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] @@ -228,14 +230,15 @@ checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if", "getrandom", "once_cell", "version_check", + "zerocopy", ] [[package]] @@ -285,23 +288,24 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.4" +version = "0.6.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.1" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" @@ -323,41 +327,52 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" + +[[package]] +name = "async-broadcast" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] [[package]] name = "async-nats" -version = "0.32.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e45b67ea596bb94741ef15ba1d90b72c92bdc07553d8033734cb620a2b39f1c" +checksum = "fd3bdd6ea595b2ea504500a3566071beb81125fc15d40a6f6bffa43575f64152" dependencies = [ - "base64 0.21.5", + "base64 0.22.1", "bytes", "futures", - "http", "memchr", "nkeys", "nuid", "once_cell", + "portable-atomic", "rand", "regex", - "ring 0.16.20", - "rustls", - "rustls-native-certs", - "rustls-pemfile", - "rustls-webpki", + "ring 0.17.3", + "rustls-native-certs 0.7.3", + "rustls-pemfile 2.2.0", + "rustls-webpki 0.102.8", "serde", "serde_json", "serde_nanos", @@ -365,9 +380,10 @@ dependencies = [ "thiserror", "time", "tokio", - "tokio-retry", - "tokio-rustls", + "tokio-rustls 0.26.0", + "tokio-util", "tracing", + "tryhard", "url", ] @@ -390,20 +406,26 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.1.0" @@ -412,18 +434,17 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.6.20" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" dependencies = [ "async-trait", "axum-core", - "bitflags 1.3.2", "bytes", "futures-util", - "http", - "http-body", - "hyper", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", "itoa", "matchit", "memchr", @@ -432,25 +453,28 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper", - "tower", + "sync_wrapper 1.0.1", + "tower 0.5.1", "tower-layer", "tower-service", ] [[package]] name = "axum-core" -version = "0.3.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", "mime", + "pin-project-lite", "rustversion", + "sync_wrapper 1.0.1", "tower-layer", "tower-service", ] @@ -522,9 +546,9 @@ dependencies = [ [[package]] name = "brotli" -version = "3.3.4" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -533,9 +557,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "2.3.4" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744" +checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -555,9 +579,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.5.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" dependencies = [ "serde", ] @@ -586,8 +610,8 @@ dependencies = [ "heck", "humantime", "jsonpath_lib", - "k8s-openapi", - "kube", + "k8s-openapi 0.20.0", + "kube 0.87.2", "mime", "once_cell", "openapi", @@ -613,12 +637,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "67b9470d453346108f93a59222a9a1a5724db32d0a4727b7ab7ace4b4d822dc9" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -629,9 +654,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", @@ -639,14 +664,14 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] name = "clap" -version = "4.4.6" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" +checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" dependencies = [ "clap_builder", "clap_derive", @@ -654,33 +679,33 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.6" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" +checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.10.0", + "strsim", ] [[package]] name = "clap_derive" -version = "4.4.2" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] name = "clap_lex" -version = "0.5.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "colorchoice" @@ -688,11 +713,20 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "console-logger" version = "0.1.0" dependencies = [ - "nu-ansi-term 0.49.0", + "nu-ansi-term 0.50.1", ] [[package]] @@ -715,6 +749,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "cookie" version = "0.16.2" @@ -760,24 +803,11 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" -dependencies = [ - "cfg-if", -] +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crypto-common" @@ -812,16 +842,15 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", "cpufeatures", "curve25519-dalek-derive", "digest", "fiat-crypto", - "platforms", "rustc_version", "subtle", ] @@ -834,7 +863,7 @@ checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -857,8 +886,8 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim 0.11.1", - "syn 2.0.38", + "strsim", + "syn 2.0.87", ] [[package]] @@ -869,7 +898,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -891,10 +920,11 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.7" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ + "powerfmt", "serde", ] @@ -915,7 +945,7 @@ version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ - "convert_case", + "convert_case 0.4.0", "proc-macro2", "quote", "rustc_version", @@ -954,16 +984,21 @@ dependencies = [ ] [[package]] -name = "doc-comment" -version = "0.3.3" +name = "displaydoc" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dyn-clonable" @@ -1042,41 +1077,51 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ - "cc", "libc", + "windows-sys 0.52.0", ] [[package]] name = "etcd-client" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d982a3b3088a5f95d19882d298b352a2e0be20703e3080c1e6767731d5dec79" +checksum = "39bde3ce50a626efeb1caa9ab1083972d178bebb55ca627639c8ded507dfcbde" dependencies = [ - "http", + "http 1.1.0", "prost", "tokio", "tokio-stream", - "tonic 0.10.2", + "tonic", "tonic-build", - "tower", + "tower 0.4.13", "tower-service", ] +[[package]] +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +dependencies = [ + "event-listener", + "pin-project-lite", +] + [[package]] name = "event-publisher" version = "0.1.0" @@ -1104,7 +1149,7 @@ dependencies = [ "serde_json", "snafu", "tokio", - "tonic 0.10.2", + "tonic", "tonic-build", "tracing", "uuid", @@ -1112,9 +1157,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fiat-crypto" @@ -1142,14 +1187,23 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", "miniz_oxide 0.8.0", ] +[[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" @@ -1173,18 +1227,18 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] [[package]] name = "futures" -version = "0.3.28" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -1197,9 +1251,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -1207,15 +1261,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -1224,38 +1278,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -1304,7 +1358,7 @@ version = "0.3.5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -1324,8 +1378,27 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", - "indexmap 2.0.0", + "http 0.2.9", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -1348,17 +1421,47 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashbrown" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" + +[[package]] +name = "headers" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" +dependencies = [ + "base64 0.21.5", + "bytes", + "headers-core", + "http 1.1.0", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" +dependencies = [ + "http 1.1.0", +] + [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -1386,6 +1489,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.5" @@ -1393,7 +1507,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", - "http", + "http 0.2.9", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -1431,9 +1568,8 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "http 0.2.9", + "http-body 0.4.5", "httparse", "httpdate", "itoa", @@ -1445,6 +1581,56 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-body" +version = "0.1.0" +dependencies = [ + "http-body-util", + "hyper 1.5.0", + "tower 0.5.1", +] + +[[package]] +name = "hyper-http-proxy" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d06dbdfbacf34d996c6fb540a71a684a7aae9056c71951163af8a8a4c07b9a4" +dependencies = [ + "bytes", + "futures-util", + "headers", + "http 1.1.0", + "hyper 1.5.0", + "hyper-rustls 0.27.3", + "hyper-util", + "pin-project-lite", + "rustls-native-certs 0.7.3", + "tokio", + "tokio-rustls 0.26.0", + "tower-service", +] + [[package]] name = "hyper-rustls" version = "0.24.1" @@ -1452,13 +1638,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" dependencies = [ "futures-util", - "http", - "hyper", + "http 0.2.9", + "hyper 0.14.27", + "log", + "rustls 0.21.12", + "rustls-native-certs 0.6.2", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.5.0", + "hyper-util", "log", - "rustls", - "rustls-native-certs", + "rustls 0.23.16", + "rustls-native-certs 0.8.0", + "rustls-pki-types", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.0", + "tower-service", ] [[package]] @@ -1467,23 +1672,58 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper", + "hyper 0.14.27", "pin-project-lite", "tokio", "tokio-io-timeout", ] +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper 1.5.0", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", - "hyper", + "http-body-util", + "hyper 1.5.0", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.5.0", + "pin-project-lite", + "socket2 0.5.5", + "tokio", + "tower-service", + "tracing", ] [[package]] @@ -1510,26 +1750,155 @@ dependencies = [ ] [[package]] -name = "ident_case" -version = "1.0.1" +name = "icu_collections" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] [[package]] -name = "idna" -version = "0.4.0" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", ] [[package]] -name = "impl-more" -version = "0.1.6" +name = "icu_locid_transform" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206ca75c9c03ba3d4ace2460e57b189f39f43de612c2f85836e65c929701bb2d" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "impl-more" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206ca75c9c03ba3d4ace2460e57b189f39f43de612c2f85836e65c929701bb2d" [[package]] name = "indexmap" @@ -1543,12 +1912,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.0", + "hashbrown 0.15.0", ] [[package]] @@ -1563,12 +1932,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "integer-encoding" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" - [[package]] name = "ipnet" version = "2.8.0" @@ -1587,19 +1950,16 @@ dependencies = [ ] [[package]] -name = "itertools" -version = "0.10.5" +name = "is_terminal_polyfill" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] @@ -1612,9 +1972,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] @@ -1640,6 +2000,18 @@ dependencies = [ "treediff", ] +[[package]] +name = "json-patch" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "jsonpath-rust" version = "0.3.5" @@ -1653,6 +2025,21 @@ dependencies = [ "thiserror", ] +[[package]] +name = "jsonpath-rust" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d8fe85bd70ff715f31ce8c739194b423d79811a19602115d611a3ec85d6200" +dependencies = [ + "lazy_static", + "once_cell", + "pest", + "pest_derive", + "regex", + "serde_json", + "thiserror", +] + [[package]] name = "jsonpath_lib" version = "0.3.0" @@ -1664,6 +2051,17 @@ dependencies = [ "serde_json", ] +[[package]] +name = "jsonptr" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627" +dependencies = [ + "fluent-uri", + "serde", + "serde_json", +] + [[package]] name = "k8s-openapi" version = "0.20.0" @@ -1678,12 +2076,25 @@ dependencies = [ "serde_json", ] +[[package]] +name = "k8s-openapi" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19501afb943ae5806548bc3ebd7f3374153ca057a38f480ef30adfde5ef09755" +dependencies = [ + "base64 0.22.1", + "chrono", + "serde", + "serde-value", + "serde_json", +] + [[package]] name = "k8s-operators" version = "1.0.0" dependencies = [ - "k8s-openapi", - "kube", + "k8s-openapi 0.22.0", + "kube 0.94.2", "schemars", "serde", "serde_json", @@ -1695,11 +2106,24 @@ version = "0.87.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3499c8d60c763246c7a213f51caac1e9033f46026904cb89bc8951ae8601f26e" dependencies = [ - "k8s-openapi", - "kube-client", - "kube-core", - "kube-derive", - "kube-runtime", + "k8s-openapi 0.20.0", + "kube-client 0.87.2", + "kube-core 0.87.2", + "kube-derive 0.87.2", + "kube-runtime 0.87.2", +] + +[[package]] +name = "kube" +version = "0.94.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ace78a62b361077505f2950bd48aa3e46596fb15350c9c993de15ddfa3cac5" +dependencies = [ + "k8s-openapi 0.22.0", + "kube-client 0.94.2", + "kube-core 0.94.2", + "kube-derive 0.94.2", + "kube-runtime 0.94.2", ] [[package]] @@ -1714,19 +2138,57 @@ dependencies = [ "either", "futures", "home", - "http", - "http-body", - "hyper", - "hyper-rustls", - "hyper-timeout", - "jsonpath-rust", - "k8s-openapi", - "kube-core", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.27", + "hyper-rustls 0.24.1", + "hyper-timeout 0.4.1", + "jsonpath-rust 0.3.5", + "k8s-openapi 0.20.0", + "kube-core 0.87.2", "pem", "pin-project", + "rustls 0.21.12", + "rustls-pemfile 1.0.3", + "secrecy", + "serde", + "serde_json", + "serde_yaml", + "thiserror", + "tokio", + "tokio-util", + "tower 0.4.13", + "tower-http 0.4.4", + "tracing", +] + +[[package]] +name = "kube-client" +version = "0.94.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18ec0fcafd3add30b413b096a61d69b0a37f94d3f95b6f505a57ea3d27cec2a7" +dependencies = [ + "base64 0.22.1", + "bytes", + "chrono", + "either", + "futures", + "home", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.0", + "hyper-http-proxy", + "hyper-rustls 0.27.3", + "hyper-timeout 0.5.2", + "hyper-util", + "jsonpath-rust 0.5.1", + "k8s-openapi 0.22.0", + "kube-core 0.94.2", + "pem", "rand", - "rustls", - "rustls-pemfile", + "rustls 0.23.16", + "rustls-pemfile 2.2.0", "secrecy", "serde", "serde_json", @@ -1735,8 +2197,8 @@ dependencies = [ "tokio", "tokio-tungstenite", "tokio-util", - "tower", - "tower-http", + "tower 0.4.13", + "tower-http 0.5.2", "tracing", ] @@ -1748,9 +2210,9 @@ checksum = "b5bba93d054786eba7994d03ce522f368ef7d48c88a1826faa28478d85fb63ae" dependencies = [ "chrono", "form_urlencoded", - "http", - "json-patch", - "k8s-openapi", + "http 0.2.9", + "json-patch 1.2.0", + "k8s-openapi 0.20.0", "once_cell", "schemars", "serde", @@ -1758,6 +2220,24 @@ dependencies = [ "thiserror", ] +[[package]] +name = "kube-core" +version = "0.94.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a50c095f051dada37740d883b6d47ad0430e95082140718073b773c8a70f231c" +dependencies = [ + "chrono", + "form_urlencoded", + "http 1.1.0", + "json-patch 2.0.0", + "k8s-openapi 0.22.0", + "schemars", + "serde", + "serde-value", + "serde_json", + "thiserror", +] + [[package]] name = "kube-derive" version = "0.87.2" @@ -1768,7 +2248,20 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.38", + "syn 2.0.87", +] + +[[package]] +name = "kube-derive" +version = "0.94.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7871f02c3c848b63fee3d2f2645bb4a3c0b68ee147badcddf1b0cf8fb5db87ad" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.87", ] [[package]] @@ -1777,13 +2270,16 @@ version = "0.1.0" dependencies = [ "anyhow", "futures", - "hyper", - "k8s-openapi", - "kube", + "hyper 1.5.0", + "hyper-body", + "k8s-openapi 0.22.0", + "kube 0.94.2", "serde_json", "shutdown", "tokio", "tokio-stream", + "tower 0.5.1", + "tower-http 0.6.1", "tracing", ] @@ -1792,10 +2288,14 @@ name = "kube-proxy" version = "1.0.0" dependencies = [ "anyhow", - "kube", + "hyper 1.5.0", + "hyper-body", + "hyper-util", + "kube 0.94.2", "kube-forward", "openapi", - "tower", + "tonic", + "tower 0.5.1", "utils", ] @@ -1811,10 +2311,10 @@ dependencies = [ "derivative", "futures", "hashbrown 0.14.0", - "json-patch", - "k8s-openapi", - "kube-client", - "parking_lot 0.12.1", + "json-patch 1.2.0", + "k8s-openapi 0.20.0", + "kube-client 0.87.2", + "parking_lot 0.12.3", "pin-project", "serde", "serde_json", @@ -1825,6 +2325,34 @@ dependencies = [ "tracing", ] +[[package]] +name = "kube-runtime" +version = "0.94.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12d844a274127dfe8fad766db5bc53aa783fb3f9dd48b20f955ec65d454ec9b1" +dependencies = [ + "ahash", + "async-broadcast", + "async-stream", + "async-trait", + "backoff", + "derivative", + "futures", + "hashbrown 0.14.0", + "json-patch 2.0.0", + "jsonptr", + "k8s-openapi 0.22.0", + "kube-client 0.94.2", + "parking_lot 0.12.3", + "pin-project", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "kubectl-plugin" version = "1.0.0" @@ -1837,7 +2365,6 @@ dependencies = [ "humantime", "kube-proxy", "openapi", - "opentelemetry 0.20.0", "rest-plugin", "shutdown", "supportability", @@ -1854,15 +2381,15 @@ checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.149" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "linked-hash-map" @@ -1872,9 +2399,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" [[package]] name = "local-channel" @@ -1954,7 +2487,7 @@ dependencies = [ "strum", "strum_macros", "tokio", - "tonic 0.10.2", + "tonic", "tracing", "utils", ] @@ -1965,16 +2498,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "mime_guess" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" -dependencies = [ - "mime", - "unicase", -] - [[package]] name = "miniz_oxide" version = "0.7.1" @@ -2005,6 +2528,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "mio" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +dependencies = [ + "hermit-abi", + "libc", + "wasi", + "windows-sys 0.52.0", +] + [[package]] name = "multimap" version = "0.8.3" @@ -2031,11 +2566,10 @@ dependencies = [ [[package]] name = "nkeys" -version = "0.3.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aad178aad32087b19042ee36dfd450b73f5f934fbfb058b59b198684dfec4c47" +checksum = "9f49e787f4c61cbd0f9320b31cc26e58719f6aa5068e34697dd3aea361412fe3" dependencies = [ - "byteorder", "data-encoding", "ed25519", "ed25519-dalek", @@ -2057,11 +2591,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.49.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2073,6 +2607,12 @@ dependencies = [ "rand", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-traits" version = "0.2.16" @@ -2103,9 +2643,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "openapi" @@ -2114,24 +2654,30 @@ dependencies = [ "async-trait", "dyn-clonable", "futures", - "http-body", - "hyper", - "hyper-rustls", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.0", + "hyper-body", + "hyper-rustls 0.27.3", "hyper-tls", - "opentelemetry 0.22.0", + "hyper-util", + "k8s-openapi 0.22.0", + "kube 0.94.2", + "opentelemetry", "opentelemetry-http", - "opentelemetry-jaeger", + "opentelemetry-otlp", + "opentelemetry_sdk", "pin-project", - "rustls", - "rustls-pemfile", + "rustls 0.23.16", + "rustls-pemfile 2.2.0", "serde", "serde_derive", "serde_json", "serde_urlencoded", "tokio", "tokio-native-tls", - "tower", - "tower-http", + "tower 0.5.1", + "tower-http 0.6.1", "tracing", "tracing-opentelemetry", "tracing-subscriber", @@ -2163,7 +2709,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -2186,19 +2732,9 @@ dependencies = [ [[package]] name = "opentelemetry" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54" -dependencies = [ - "opentelemetry_api", - "opentelemetry_sdk 0.20.0", -] - -[[package]] -name = "opentelemetry" -version = "0.22.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900d57987be3f2aeb70d385fff9b27fb74c5723cc9a52d904d4f9c807a0667bf" +checksum = "570074cc999d1a58184080966e5bd3bf3a9a4af650c3b05047c2621e7405cd17" dependencies = [ "futures-core", "futures-sink", @@ -2206,128 +2742,72 @@ dependencies = [ "once_cell", "pin-project-lite", "thiserror", - "urlencoding", ] [[package]] name = "opentelemetry-http" -version = "0.11.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7690dc77bf776713848c4faa6501157469017eaf332baccd4eb1cea928743d94" +checksum = "6351496aeaa49d7c267fb480678d85d1cd30c5edb20b497c48c56f62a8c14b99" dependencies = [ "async-trait", "bytes", - "http", - "opentelemetry 0.22.0", -] - -[[package]] -name = "opentelemetry-jaeger" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb7f5ef13427696ae8382c6f3bb7dcdadb5994223d6b983c7c50a46df7d19277" -dependencies = [ - "async-trait", - "futures-core", - "futures-util", - "opentelemetry 0.22.0", - "opentelemetry-semantic-conventions", - "opentelemetry_sdk 0.22.1", - "thrift", - "tokio", + "http 1.1.0", + "opentelemetry", ] [[package]] name = "opentelemetry-otlp" -version = "0.15.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb" +checksum = "29e1f9c8b032d4f635c730c0efcf731d5e2530ea13fa8bef7939ddc8420696bd" dependencies = [ "async-trait", "futures-core", - "http", - "opentelemetry 0.22.0", + "http 1.1.0", + "opentelemetry", "opentelemetry-proto", - "opentelemetry-semantic-conventions", - "opentelemetry_sdk 0.22.1", + "opentelemetry_sdk", "prost", "thiserror", "tokio", - "tonic 0.11.0", + "tonic", ] [[package]] name = "opentelemetry-proto" -version = "0.5.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8fddc9b68f5b80dae9d6f510b88e02396f006ad48cac349411fbecc80caae4" +checksum = "c9d3968ce3aefdcca5c27e3c4ea4391b37547726a70893aab52d3de95d5f8b34" dependencies = [ - "opentelemetry 0.22.0", - "opentelemetry_sdk 0.22.1", + "opentelemetry", + "opentelemetry_sdk", "prost", - "tonic 0.11.0", + "tonic", ] [[package]] name = "opentelemetry-semantic-conventions" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9ab5bd6c42fb9349dcf28af2ba9a0667f697f9bdcca045d39f2cec5543e2910" - -[[package]] -name = "opentelemetry_api" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b" -dependencies = [ - "futures-channel", - "futures-util", - "indexmap 1.9.3", - "js-sys", - "once_cell", - "pin-project-lite", - "thiserror", - "urlencoding", -] - -[[package]] -name = "opentelemetry_sdk" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026" -dependencies = [ - "async-trait", - "crossbeam-channel", - "futures-channel", - "futures-executor", - "futures-util", - "once_cell", - "opentelemetry_api", - "ordered-float 3.9.2", - "percent-encoding", - "rand", - "thiserror", - "tokio", - "tokio-stream", -] +checksum = "db945c1eaea8ac6a9677185357480d215bb6999faa9f691d0c4d4d641eab7a09" [[package]] name = "opentelemetry_sdk" -version = "0.22.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e90c7113be649e31e9a0f8b5ee24ed7a16923b322c3c5ab6367469c049d6b7e" +checksum = "d2c627d9f4c9cdc1f21a29ee4bfbd6028fcb8bcf2a857b43f3abdf72c9c862f3" dependencies = [ "async-trait", - "crossbeam-channel", "futures-channel", "futures-executor", "futures-util", "glob", "once_cell", - "opentelemetry 0.22.0", - "ordered-float 4.2.0", + "opentelemetry", "percent-encoding", "rand", + "serde_json", "thiserror", "tokio", "tokio-stream", @@ -2342,30 +2822,18 @@ dependencies = [ "num-traits", ] -[[package]] -name = "ordered-float" -version = "3.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" -dependencies = [ - "num-traits", -] - -[[package]] -name = "ordered-float" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e" -dependencies = [ - "num-traits", -] - [[package]] name = "overload" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + [[package]] name = "parking_lot" version = "0.11.2" @@ -2379,9 +2847,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core 0.9.8", @@ -2441,9 +2909,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" @@ -2476,7 +2944,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -2502,22 +2970,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -2552,17 +3020,23 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" name = "platform" version = "0.1.0" dependencies = [ - "k8s-openapi", - "kube", + "k8s-openapi 0.22.0", + "kube 0.94.2", "tokio", "tracing", ] [[package]] -name = "platforms" -version = "3.1.2" +name = "portable-atomic" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" + +[[package]] +name = "powerfmt" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" @@ -2577,7 +3051,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" dependencies = [ "proc-macro2", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -2596,45 +3070,45 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ "cfg-if", "fnv", "lazy_static", "memchr", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "protobuf", "thiserror", ] [[package]] name = "prometheus-parse" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2aa5feb83bf4b2c8919eaf563f51dbab41183de73ba2353c0e03cd7b6bd892" +checksum = "811031bea65e5a401fb2e1f37d802cca6601e204ac463809a3189352d13b78a5" dependencies = [ "chrono", - "itertools 0.10.5", + "itertools", "once_cell", "regex", ] [[package]] name = "prost" -version = "0.12.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d" +checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" dependencies = [ "bytes", "prost-derive", @@ -2642,13 +3116,13 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.12.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bdf592881d821b83d471f8af290226c8d51402259e9bb5be7f9f8bdebbb11ac" +checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ "bytes", "heck", - "itertools 0.11.0", + "itertools", "log", "multimap", "once_cell", @@ -2657,22 +3131,21 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.38", + "syn 2.0.87", "tempfile", - "which", ] [[package]] name = "prost-derive" -version = "0.12.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" +checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" dependencies = [ "anyhow", - "itertools 0.11.0", + "itertools", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -2687,9 +3160,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.12.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e081b29f63d83a4bc75cfc9f3fe424f9156cf92d8a4f0c9407cce9a1b67327cf" +checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" dependencies = [ "prost", ] @@ -2707,7 +3180,7 @@ dependencies = [ "async-trait", "dyn-clonable", "etcd-client", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "platform", "rand", "serde", @@ -2716,7 +3189,7 @@ dependencies = [ "strum", "strum_macros", "tokio", - "tonic 0.10.2", + "tonic", "tracing", "url", "utils", @@ -2725,9 +3198,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -2793,14 +3266,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.1", - "regex-syntax 0.8.0", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -2814,15 +3287,21 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.1" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465c6fc0621e4abc4187a2bda0937bfd4f722c2730b29562e19689ea796c9a4b" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.0", + "regex-syntax 0.8.5", ] +[[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + [[package]] name = "regex-syntax" version = "0.6.29" @@ -2831,38 +3310,42 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.0" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3cbb081b9784b07cceb8824c8583f86db4814d172ab043f3c23f7dc600bf83d" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.11.22" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ - "base64 0.21.5", + "base64 0.22.1", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2", - "http", - "http-body", - "hyper", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.0", + "hyper-rustls 0.27.3", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", "mime", - "mime_guess", "native-tls", "once_cell", "percent-encoding", "pin-project-lite", + "rustls-pemfile 2.2.0", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper 1.0.1", "system-configuration", "tokio", "tokio-native-tls", @@ -2871,42 +3354,40 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "windows-registry", ] [[package]] name = "reqwest-middleware" -version = "0.2.3" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff44108c7925d082f2861e683a88618b68235ad9cdc60d64d9d1188efc951cdb" +checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", - "http", + "http 1.1.0", "reqwest", "serde", - "task-local-extensions", "thiserror", + "tower-service", ] [[package]] name = "reqwest-retry" -version = "0.3.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9af20b65c2ee9746cc575acb6bd28a05ffc0d15e25c992a8f4462d8686aacb4f" +checksum = "a83df1aaec00176d0fabb65dea13f832d2a446ca99107afc17c5d2d4981221d0" dependencies = [ "anyhow", "async-trait", - "chrono", "futures", "getrandom", - "http", - "hyper", + "http 1.1.0", + "hyper 1.5.0", "parking_lot 0.11.2", "reqwest", "reqwest-middleware", "retry-policies", - "task-local-extensions", "tokio", "tracing", "wasm-timer", @@ -2932,17 +3413,16 @@ dependencies = [ "strum", "strum_macros", "tokio", + "tracing", "utils", ] [[package]] name = "retry-policies" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a715dc4d0e8aea3085a9a94d76e79c79c7df7c9f6be609da841a6d2489ca3687" +checksum = "5875471e6cab2871bc150ecb8c727db5113c9338cc3354dc5ee3425b6aa40a1c" dependencies = [ - "anyhow", - "chrono", "rand", ] @@ -2989,7 +3469,7 @@ dependencies = [ "serde_json", "strum", "strum_macros", - "tonic 0.10.2", + "tonic", "tonic-build", ] @@ -3010,15 +3490,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ "bitflags 2.4.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3029,10 +3509,25 @@ checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring 0.17.3", - "rustls-webpki", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.23.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +dependencies = [ + "log", + "once_cell", + "ring 0.17.3", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + [[package]] name = "rustls-native-certs" version = "0.6.2" @@ -3040,7 +3535,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.3", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.2.0", + "rustls-pki-types", "schannel", "security-framework", ] @@ -3054,6 +3575,21 @@ dependencies = [ "base64 0.21.5", ] +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -3064,6 +3600,17 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring 0.17.3", + "rustls-pki-types", + "untrusted 0.9.0", +] + [[package]] name = "rustversion" version = "1.0.14" @@ -3087,9 +3634,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.15" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" dependencies = [ "dyn-clone", "schemars_derive", @@ -3099,14 +3646,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.15" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] @@ -3160,18 +3707,18 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.190" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] @@ -3182,40 +3729,41 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" dependencies = [ - "ordered-float 2.10.0", + "ordered-float", "serde", ] [[package]] name = "serde_derive" -version = "1.0.190" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] name = "serde_derive_internals" -version = "0.26.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] name = "serde_json" -version = "1.0.107" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.6.0", "itoa", + "memchr", "ryu", "serde", ] @@ -3237,7 +3785,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -3254,11 +3802,11 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.25" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.6.0", "itoa", "ryu", "serde", @@ -3289,9 +3837,9 @@ dependencies = [ [[package]] name = "sha256" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7895c8ae88588ccead14ff438b939b0c569cd619116f14b4d13fdff7b8333386" +checksum = "18278f6a914fa3070aa316493f7d2ddfb9ac86ebc06fa3b83bffda487e9065b0" dependencies = [ "async-trait", "bytes", @@ -3309,6 +3857,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "shutdown" version = "0.1.0" @@ -3360,30 +3914,29 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "snafu" -version = "0.7.5" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +checksum = "223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019" dependencies = [ - "doc-comment", "snafu-derive", ] [[package]] name = "snafu-derive" -version = "0.7.5" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" dependencies = [ "heck", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] @@ -3429,10 +3982,10 @@ dependencies = [ ] [[package]] -name = "strsim" -version = "0.10.0" +name = "stable_deref_trait" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "strsim" @@ -3442,21 +3995,21 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.25.0" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" [[package]] name = "strum_macros" -version = "0.25.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ "heck", "proc-macro2", "quote", "rustversion", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -3477,12 +4030,15 @@ dependencies = [ "downcast-rs", "flate2", "futures", - "http", + "http 1.1.0", + "http-body-util", "humantime", - "hyper", - "k8s-openapi", + "hyper 1.5.0", + "hyper-body", + "hyper-util", + "k8s-openapi 0.22.0", "k8s-operators", - "kube", + "kube 0.94.2", "kube-proxy", "lazy_static", "once_cell", @@ -3496,7 +4052,7 @@ dependencies = [ "serde_yaml", "tar", "tokio", - "tower", + "tower 0.5.1", "urlencoding", "utils", "uuid", @@ -3516,9 +4072,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.38" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -3531,22 +4087,42 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "system-configuration" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", "core-foundation", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" dependencies = [ "core-foundation-sys", "libc", @@ -3563,26 +4139,17 @@ dependencies = [ "xattr", ] -[[package]] -name = "task-local-extensions" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba323866e5d033818e3240feeb9f7db2c4296674e4d9e16b97b7bf8f490434e8" -dependencies = [ - "pin-utils", -] - [[package]] name = "tempfile" -version = "3.8.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand", - "redox_syscall 0.3.5", + "once_cell", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -3613,7 +4180,7 @@ checksum = "268026685b2be38d7103e9e507c938a1fcb3d7e6eb15e87870b617bf37b6d581" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -3626,36 +4193,16 @@ dependencies = [ "once_cell", ] -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "thrift" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e54bc85fc7faa8bc175c4bab5b92ba8d9a3ce893d0e9f42cc455c8ab16a9e09" -dependencies = [ - "byteorder", - "integer-encoding", - "log", - "ordered-float 2.10.0", - "threadpool", -] - [[package]] name = "time" -version = "0.3.25" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", + "num-conv", + "powerfmt", "serde", "time-core", "time-macros", @@ -3663,51 +4210,46 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.11" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ + "num-conv", "time-core", ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "tinystr" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ - "tinyvec_macros", + "displaydoc", + "zerovec", ] -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - [[package]] name = "tokio" -version = "1.33.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ "backtrace", "bytes", "libc", - "mio", - "num_cpus", - "parking_lot 0.12.1", + "mio 1.0.2", + "parking_lot 0.12.3", "pin-project-lite", "signal-hook-registry", "socket2 0.5.5", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3722,13 +4264,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -3756,17 +4298,28 @@ dependencies = [ name = "tokio-rustls" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls", + "rustls 0.23.16", + "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -3775,9 +4328,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.20.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" dependencies = [ "futures-util", "log", @@ -3802,53 +4355,29 @@ dependencies = [ [[package]] name = "tonic" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.21.5", - "bytes", - "h2", - "http", - "http-body", - "hyper", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost", - "tokio", - "tokio-stream", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tonic" -version = "0.11.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ "async-stream", "async-trait", "axum", - "base64 0.21.5", + "base64 0.22.1", "bytes", - "h2", - "http", - "http-body", - "hyper", - "hyper-timeout", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.0", + "hyper-timeout 0.5.2", + "hyper-util", "percent-encoding", "pin-project", "prost", + "socket2 0.5.5", "tokio", "tokio-stream", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -3856,15 +4385,16 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.10.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" dependencies = [ "prettyplease", "proc-macro2", "prost-build", + "prost-types", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -3887,6 +4417,23 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower-http" version = "0.4.4" @@ -3898,8 +4445,8 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "http", - "http-body", + "http 0.2.9", + "http-body 0.4.5", "http-range-header", "mime", "pin-project-lite", @@ -3908,17 +4455,54 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower-http" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" +dependencies = [ + "base64 0.21.5", + "bitflags 2.4.0", + "bytes", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8437150ab6bbc8c5f0f519e3d5ed4aa883a83dd4cdd3d1b21f9482936046cb97" +dependencies = [ + "base64 0.22.1", + "bitflags 2.4.0", + "bytes", + "http 1.1.0", + "http-body 1.0.1", + "mime", + "pin-project-lite", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -3940,7 +4524,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", ] [[package]] @@ -3973,14 +4557,14 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.23.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284" +checksum = "dc58af5d3f6c5811462cabb3289aec0093f7338e367e5a33d28c0433b3c7360b" dependencies = [ "js-sys", "once_cell", - "opentelemetry 0.22.0", - "opentelemetry_sdk 0.22.1", + "opentelemetry", + "opentelemetry_sdk", "smallvec", "tracing", "tracing-core", @@ -4035,22 +4619,32 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +[[package]] +name = "tryhard" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9f0a709784e86923586cff0d872dba54cd2d2e116b3bc57587d15737cfce9d" +dependencies = [ + "futures", + "pin-project-lite", + "tokio", +] + [[package]] name = "tungstenite" -version = "0.20.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" dependencies = [ "byteorder", "bytes", "data-encoding", - "http", + "http 1.1.0", "httparse", "log", "rand", "sha1", "thiserror", - "url", "utf-8", ] @@ -4066,35 +4660,17 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] -name = "unicode-normalization" -version = "0.1.22" +name = "unicode-segmentation" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" @@ -4104,9 +4680,9 @@ checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "unsafe-libyaml" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "untrusted" @@ -4126,17 +4702,17 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", - "base64 0.21.5", + "base64 0.22.1", "clap", "console-logger", "constants", - "convert_case", + "convert_case 0.6.0", "flate2", - "http", + "http 1.1.0", "humantime", - "hyper", - "k8s-openapi", - "kube", + "hyper 1.5.0", + "k8s-openapi 0.20.0", + "kube 0.87.2", "kube-proxy", "maplit", "openapi", @@ -4148,7 +4724,7 @@ dependencies = [ "snafu", "tempfile", "tokio", - "tower", + "tower 0.5.1", "tracing", "url", "utils", @@ -4156,9 +4732,9 @@ dependencies = [ [[package]] name = "url" -version = "2.4.1" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna", @@ -4178,6 +4754,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.1" @@ -4191,10 +4779,10 @@ dependencies = [ "event-publisher", "git-version-macro", "heck", - "opentelemetry 0.22.0", + "opentelemetry", "opentelemetry-otlp", "opentelemetry-semantic-conventions", - "opentelemetry_sdk 0.22.1", + "opentelemetry_sdk", "strum", "strum_macros", "tracing", @@ -4207,9 +4795,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.4.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom", "serde", @@ -4258,26 +4846,27 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", "wasm-bindgen-shared", ] @@ -4295,9 +4884,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4305,22 +4894,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-timer" @@ -4373,17 +4962,6 @@ version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" -[[package]] -name = "which" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" -dependencies = [ - "either", - "libc", - "once_cell", -] - [[package]] name = "winapi" version = "0.3.9" @@ -4415,6 +4993,36 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -4433,6 +5041,24 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -4463,6 +5089,22 @@ dependencies = [ "windows_x86_64_msvc 0.48.5", ] +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -4475,6 +5117,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -4487,6 +5135,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -4499,6 +5153,18 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -4511,6 +5177,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -4523,6 +5195,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -4535,6 +5213,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -4548,14 +5232,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] -name = "winreg" -version = "0.50.0" +name = "windows_x86_64_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "xattr" @@ -4575,38 +5267,123 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure", +] + [[package]] name = "zeroize" -version = "1.6.0" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] [[package]] name = "zstd" -version = "0.12.4" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "6.0.6" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" dependencies = [ - "libc", "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.8+zstd.1.5.5" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", - "libc", "pkg-config", ] diff --git a/Cargo.toml b/Cargo.toml index 6d6a966bc..618ffddb3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,10 +4,9 @@ members = [ "console-logger", "metrics-exporter", "k8s/plugin", - "k8s/proxy", "k8s/supportability", "k8s/upgrade", ] -exclude = [ "./dependencies/control-plane" ] +exclude = ["./dependencies/control-plane"] resolver = "1" diff --git a/call-home/Cargo.toml b/call-home/Cargo.toml index c18544cb4..9c1eaa985 100644 --- a/call-home/Cargo.toml +++ b/call-home/Cargo.toml @@ -22,37 +22,37 @@ constants = { path = "../constants" } openapi = { path = "../dependencies/control-plane/openapi" } kube = { version = "0.87.0", features = ["runtime", "derive"] } k8s-openapi = { version = "0.20.0", features = ["v1_22"] } -futures = "0.3.28" -tokio = { version = "1.33.0", features = ["full"] } -clap = { version = "4.4.6", features = ["cargo", "derive", "string"] } -serde_json = "1.0.107" -serde_yaml = "0.9.25" -serde = { version = "1.0.188", features = ["derive"] } -sha256 = "1.4.0" +futures = "0.3.31" +tokio = { version = "1.41.0", features = ["full"] } +clap = { version = "4.5.20", features = ["cargo", "derive", "string"] } +serde_json = "1.0.132" +serde_yaml = "0.9.34" +serde = { version = "1.0.214", features = ["derive"] } +sha256 = "1.5.0" jsonpath_lib = "0.3.0" -url = "2.4.1" -snafu = "0.7.5" -anyhow = "1.0.75" -tracing = "0.1.37" -tracing-subscriber = { version = "0.3.17", features = ["env-filter", "std"] } -reqwest = "0.11.22" -reqwest-middleware = "0.2.3" -reqwest-retry = "0.3.0" -chrono = "0.4.31" +url = "2.5.2" +snafu = "0.8.5" +anyhow = "1.0.92" +tracing = "0.1.40" +tracing-subscriber = { version = "0.3.18", features = ["env-filter", "std"] } +reqwest = "0.12.9" +reqwest-middleware = "0.3.3" +reqwest-retry = "0.6.1" +chrono = "0.4.38" rand = "0.8.5" -tempfile = "3.8.0" +tempfile = "3.13.0" humantime = "2.1.0" -once_cell = "1.18.0" -bytes = "1.5.0" +once_cell = "1.20.2" +bytes = "1.8.0" utils = { path = "../dependencies/control-plane/utils/utils-lib" } events-api = { path = "../dependencies/control-plane/utils/dependencies/apis/events" } tokio-retry = "0.3" # exporter -actix-web = { version = "4.4.0", features = ["rustls-0_21"] } -prometheus = "0.13.3" +actix-web = { version = "4.9.0", features = ["rustls-0_21"] } +prometheus = "0.13.4" mime = "0.3.17" # parse prometheus output -prometheus-parse = "0.2.4" -heck = "0.4.1" +prometheus-parse = "0.2.5" +heck = "0.5.0" diff --git a/call-home/src/bin/callhome/collector/report_models.rs b/call-home/src/bin/callhome/collector/report_models.rs index 64d20cd4c..92925569a 100644 --- a/call-home/src/bin/callhome/collector/report_models.rs +++ b/call-home/src/bin/callhome/collector/report_models.rs @@ -34,9 +34,8 @@ pub(crate) struct Volumes { volume_state_counts: VolumeStateCounts, } impl Volumes { - /// Receives a openapi::models::Volumes object and returns a new report_models::volume object by - /// using the data provided. - + /// Receives an openapi::models::Volumes object and returns a new report_models::volume object + /// by using the data provided. pub(crate) fn new(volumes: Vec, event_data: EventData) -> Self { let volumes_size_vector = get_volumes_size_vector(volumes.as_slice()); Self { @@ -64,8 +63,8 @@ struct VolumeReplicaCounts { } impl VolumeReplicaCounts { - // Receives a openapi::models::Volumes object and returns number of volumes with specific number - // of replicas. + // Receives an openapi::models::Volumes object and returns number of volumes with specific + // number of replicas. fn new(volumes: &[Volume]) -> Self { Self { one_replica: volumes @@ -103,7 +102,7 @@ struct VolumeStateCounts { } impl VolumeStateCounts { - // Receives a openapi::models::Volumes object and returns number of volumes with specific state + // Receives an openapi::models::Volumes object and returns number of volumes with specific state // of the volume. fn new(volumes: &[Volume]) -> Self { Self { @@ -172,7 +171,7 @@ pub(crate) struct Replicas { count_per_volume_percentiles: Percentiles, } impl Replicas { - /// Receives a Option and replica_count and returns a new + /// Receives an Option and replica_count and returns a new /// report_models::replica object by using the data provided. pub(crate) fn new(replica_count: usize, volumes: Option>) -> Self { let mut replicas = Self::default(); @@ -359,7 +358,7 @@ impl MayastorManagedDisks { for pool_state in pools.into_iter().filter_map(|pool| pool.state) { // Retrieve the disks associated with the current pool's node. if let Some(disks) = node_disks.get(&pool_state.node) { - if let Some(pool_disk) = &pool_state.disks.get(0) { + if let Some(pool_disk) = &pool_state.disks.first() { // Retrieve the block device associated with the pool disk. match get_bdev(disks, pool_disk) { Some(bdev) => { @@ -560,12 +559,11 @@ fn get_replicas_size_vector(volumes: Vec) -> Vec { } /// Gets a vector containing pool sizes from Vec. -fn get_pools_size_vector(pools: &Vec) -> Vec { +fn get_pools_size_vector(pools: &[openapi::models::Pool]) -> Vec { let mut pools_size_vector = Vec::with_capacity(pools.len()); for pool in pools.iter() { - match &pool.state { - Some(pool_state) => pools_size_vector.push(pool_state.capacity), - None => {} + if let Some(pool_state) = &pool.state { + pools_size_vector.push(pool_state.capacity) }; } pools_size_vector diff --git a/call-home/src/bin/stats/exporter/events_collector.rs b/call-home/src/bin/stats/exporter/events_collector.rs index 3755764f3..c4b8beeed 100644 --- a/call-home/src/bin/stats/exporter/events_collector.rs +++ b/call-home/src/bin/stats/exporter/events_collector.rs @@ -7,7 +7,10 @@ use prometheus::{ CounterVec, Opts, }; use serde::{Deserialize, Serialize}; -use std::{fmt::Debug, ops::DerefMut}; +use std::{ + fmt::{Debug, Display, Formatter}, + ops::DerefMut, +}; use tracing::error; /// StatsCollector contains the list of custom metrics that has to be exposed by exporter. @@ -33,15 +36,15 @@ pub enum Metrics { Nexus, Unknown, } - -impl ToString for Metrics { - fn to_string(&self) -> String { - match self { - Metrics::Pool => "pool".to_string(), - Metrics::Volume => "volume".to_string(), - Metrics::Nexus => "nexus".to_string(), - Metrics::Unknown => "".to_string(), - } +impl Display for Metrics { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + let metric = match self { + Metrics::Pool => "pool", + Metrics::Volume => "volume", + Metrics::Nexus => "nexus", + Metrics::Unknown => "", + }; + write!(f, "{metric}") } } diff --git a/call-home/src/common/constants.rs b/call-home/src/common/constants.rs index 91f27cc11..222501bf5 100644 --- a/call-home/src/common/constants.rs +++ b/call-home/src/common/constants.rs @@ -126,7 +126,6 @@ pub const RECEIVER_ENDPOINT: &str = ::constants::CALL_HOME_ENDPOINT; /// CALL_HOME_FREQUENCY_IN_HOURS is the frequency of call-home metrics transmission, in hours. /// The function call_home_frequency() returns the frequency as an std::time::Duration. - const CALL_HOME_FREQUENCY_IN_HOURS: i64 = 24; pub fn call_home_frequency() -> std::time::Duration { diff --git a/console-logger/Cargo.toml b/console-logger/Cargo.toml index 75877601a..414d1be1d 100644 --- a/console-logger/Cargo.toml +++ b/console-logger/Cargo.toml @@ -10,4 +10,4 @@ name = "console_logger" path = "./src/console.rs" [dependencies] -nu-ansi-term = "0.49.0" +nu-ansi-term = "0.50.1" diff --git a/constants/Cargo.toml b/constants/Cargo.toml index cec9e1a48..0cf2f552b 100644 --- a/constants/Cargo.toml +++ b/constants/Cargo.toml @@ -7,4 +7,4 @@ edition = "2021" [dependencies] utils = {path = "../dependencies/control-plane/utils/utils-lib" } -heck = "0.4.1" +heck = "0.5.0" diff --git a/dependencies/control-plane b/dependencies/control-plane index f69c13e8f..f926a3a8d 160000 --- a/dependencies/control-plane +++ b/dependencies/control-plane @@ -1 +1 @@ -Subproject commit f69c13e8fb75b89194f5f1374d4e7e6f19f1f1ec +Subproject commit f926a3a8dcfaf0258abbf0ffef386bc75f20c981 diff --git a/k8s/plugin/Cargo.toml b/k8s/plugin/Cargo.toml index 0352dfa84..e95daf15e 100644 --- a/k8s/plugin/Cargo.toml +++ b/k8s/plugin/Cargo.toml @@ -11,25 +11,23 @@ path = "src/main.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] -default = [ "rls" ] -rls = [ "openapi/tower-client-rls", "rest-plugin/rls" ] -tls = [ "openapi/tower-client-tls", "rest-plugin/tls" ] +default = ["rls"] +rls = ["openapi/tower-client-rls", "rest-plugin/rls"] +tls = ["openapi/tower-client-tls", "rest-plugin/tls"] [dependencies] -openapi = { path = "../../dependencies/control-plane/openapi", default-features = false, features = [ "tower-trace" ] } +openapi = { path = "../../dependencies/control-plane/openapi", default-features = false, features = ["tower-trace"] } utils = { path = "../../dependencies/control-plane/utils/utils-lib" } constants = { path = "../../constants" } rest-plugin = { path = "../../dependencies/control-plane/control-plane/plugin", default-features = false } console-logger = { path = "../../console-logger" } supportability = { path = "../supportability" } upgrade = { path = "../upgrade" } -kube-proxy = { path = "../proxy" } -tokio = { version = "1.33.0" } -anyhow = "1.0.75" -clap = { version = "4.4.6", features = ["color", "derive"] } +kube-proxy = { path = "../../dependencies/control-plane/k8s/proxy" } +tokio = { version = "1.41.0" } +anyhow = "1.0.92" +clap = { version = "4.5.20", features = ["color", "derive"] } humantime = "2.1.0" -async-trait = "0.1.73" -# Tracing -opentelemetry = { version = "0.20.0", features = ["rt-tokio-current-thread"] } +async-trait = "0.1.83" shutdown = { path = "../../dependencies/control-plane/utils/shutdown" } diff --git a/k8s/plugin/src/resources/mod.rs b/k8s/plugin/src/resources/mod.rs index a3eec8479..a40d95739 100644 --- a/k8s/plugin/src/resources/mod.rs +++ b/k8s/plugin/src/resources/mod.rs @@ -105,10 +105,9 @@ impl ExecuteOperation for Operations { Operations::Uncordon(resource) => resource.execute(cli_args).await?, Operations::Dump(resources) => { // todo: build and pass arguments - resources.execute(&()).await.map_err(|e| { + resources.execute(&()).await.inspect_err(|_| { // todo: check why is this here, can it be removed? println!("Partially collected dump information: "); - e })? } Operations::Upgrade(resources) => { @@ -165,7 +164,7 @@ impl From for Error { pub async fn init_rest(cli_args: &CliArgs) -> Result<(), Error> { // Use the supplied URL if there is one otherwise obtain one from the kubeconfig file. match cli_args.rest.clone() { - Some(url) => RestClient::init(url, *cli_args.timeout).map_err(Error::RestClient), + Some(url) => RestClient::init(url, false, *cli_args.timeout).map_err(Error::RestClient), None => { let config = kube_proxy::ConfigBuilder::default_api_rest() .with_kube_config(cli_args.kube_config_path.clone()) diff --git a/k8s/proxy/Cargo.toml b/k8s/proxy/Cargo.toml deleted file mode 100644 index 28bef7bd6..000000000 --- a/k8s/proxy/Cargo.toml +++ /dev/null @@ -1,20 +0,0 @@ -[package] -name = "kube-proxy" -version = "1.0.0" -edition = "2021" -description = "Kubernetes OpenApi Client via k8s-proxy" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[features] -default = ["rls"] -rls = ["openapi/tower-client-rls"] -tls = ["openapi/tower-client-tls"] - -[dependencies] -openapi = { path = "../../dependencies/control-plane/openapi", default-features = false, features = ["tower-trace"] } -utils = { path = "../../dependencies/control-plane/utils/utils-lib" } -kube = { version = "0.87.0", features = ["derive"] } -anyhow = "1.0.75" -kube-forward = { path = "../../dependencies/control-plane/k8s/forward" } -tower = { version = "0.4.13", features = ["timeout", "util"] } diff --git a/k8s/proxy/src/lib.rs b/k8s/proxy/src/lib.rs deleted file mode 100644 index 7cf1114cb..000000000 --- a/k8s/proxy/src/lib.rs +++ /dev/null @@ -1,53 +0,0 @@ -#![deny(missing_docs)] -//! A utility library to facilitate connections to a kubernetes cluster via -//! the k8s-proxy library. - -use std::{ - env, - path::{Path, PathBuf}, -}; - -mod proxy; - -/// OpenApi client helpers. -pub use proxy::{ConfigBuilder, ForwardingProxy, LokiClient, Scheme}; - -/// Get the `kube::Config` from the given kubeconfig file, or the default. -pub async fn config_from_kubeconfig( - kube_config_path: Option, -) -> anyhow::Result { - let file = match kube_config_path { - Some(config_path) => config_path, - None => { - let file_path = match env::var("KUBECONFIG") { - Ok(value) => Some(value), - Err(_) => { - // Look for kubeconfig file in default location. - #[cfg(any(target_os = "linux", target_os = "macos"))] - let default_path = format!("{}/.kube/config", env::var("HOME")?); - #[cfg(target_os = "windows")] - let default_path = format!("{}/.kube/config", env::var("USERPROFILE")?); - match Path::new(&default_path).exists() { - true => Some(default_path), - false => None, - } - } - }; - if file_path.is_none() { - return Err(anyhow::anyhow!( - "kubeconfig file not found in default location" - )); - } - let mut path = PathBuf::new(); - path.push(file_path.unwrap_or_default()); - path - } - }; - - // NOTE: Kubeconfig file may hold multiple contexts to communicate - // with different kubernetes clusters. We have to pick master - // address of current-context config only - let kube_config = kube::config::Kubeconfig::read_from(&file)?; - let config = kube::Config::from_custom_kubeconfig(kube_config, &Default::default()).await?; - Ok(config) -} diff --git a/k8s/proxy/src/proxy.rs b/k8s/proxy/src/proxy.rs deleted file mode 100644 index 319c3e227..000000000 --- a/k8s/proxy/src/proxy.rs +++ /dev/null @@ -1,326 +0,0 @@ -use anyhow::anyhow; -use openapi::{ - apis::Url, - clients::tower::{Configuration, Uri}, - tower::client::hyper, -}; -use std::{convert::TryFrom, path::PathBuf}; -use tower::util::BoxService; - -/// A builder type for the openapi `Configuration`. -/// The configuration is tailored for a kubernetes proxy using the `kube_forward::HttpProxy`. -/// # Example: -/// ```ignore -/// let config = kube_proxy::ConfigBuilder::default_api_rest() -/// .with_kube_config(kube_config_path.clone()) -/// .with_timeout(timeout) -/// .with_target_mod(|t| t.with_namespace(&args.namespace)) -/// .with_forwarding(ForwardingProxy::HTTP) -/// .build() -/// .await?; -/// ``` -pub struct ConfigBuilder { - kube_config: Option, - target: kube_forward::Target, - timeout: Option, - jwt: Option, - method: ForwardingProxy, - scheme: Scheme, - builder_target: std::marker::PhantomData, -} - -/// Internal for type-state. -pub struct ApiRest {} -/// Internal for type-state. -pub struct Etcd {} -/// Internal for type-state. -pub struct Loki {} - -/// The scheme component of the URI. -pub enum Scheme { - /// HTTP. - HTTP, - /// HTTPS with/without Certificate. - /// todo: What should the certificate format be here? - HTTPS(Option), -} -impl Scheme { - fn parts(&self) -> (String, Option<&[u8]>) { - match self { - Self::HTTP => ("http".to_string(), None), - Self::HTTPS(certificate) => ( - "https".to_string(), - certificate.as_ref().map(|i| i.as_bytes()), - ), - } - } -} -impl From for hyper::http::uri::Scheme { - fn from(value: Scheme) -> Self { - match value { - Scheme::HTTP => hyper::http::uri::Scheme::HTTP, - Scheme::HTTPS(_) => hyper::http::uri::Scheme::HTTPS, - } - } -} - -/// Type of forwarding proxy to use. -pub enum ForwardingProxy { - /// HTTP via the kube-api proxy. - HTTP, - /// TCP via the kube-api port forwarding. - TCP, -} - -impl Default for ConfigBuilder { - fn default() -> Self { - Self { - kube_config: None, - target: kube_forward::Target::new( - kube_forward::TargetSelector::ServiceLabel(utils::API_REST_LABEL.to_string()), - utils::API_REST_HTTP_PORT, - utils::DEFAULT_NAMESPACE, - ), - timeout: Some(std::time::Duration::from_secs(5)), - jwt: None, - method: ForwardingProxy::HTTP, - scheme: Scheme::HTTP, - builder_target: Default::default(), - } - } -} -impl Default for ConfigBuilder { - fn default() -> Self { - Self { - kube_config: None, - target: kube_forward::Target::new( - kube_forward::TargetSelector::PodLabel(utils::ETCD_LABEL.to_string()), - utils::ETCD_PORT, - utils::DEFAULT_NAMESPACE, - ), - timeout: Some(std::time::Duration::from_secs(5)), - jwt: None, - method: ForwardingProxy::TCP, - scheme: Scheme::HTTP, - builder_target: Default::default(), - } - } -} -impl Default for ConfigBuilder { - fn default() -> Self { - Self { - kube_config: None, - target: kube_forward::Target::new( - kube_forward::TargetSelector::ServiceLabel(utils::LOKI_LABEL.to_string()), - utils::LOKI_PORT, - utils::DEFAULT_NAMESPACE, - ), - timeout: Some(std::time::Duration::from_secs(5)), - jwt: None, - method: ForwardingProxy::HTTP, - scheme: Scheme::HTTP, - builder_target: Default::default(), - } - } -} - -impl ConfigBuilder { - /// Returns a `Self` with sane defaults for the api-rest. - pub fn default_api_rest() -> ConfigBuilder { - ConfigBuilder::::default() - } -} -impl ConfigBuilder { - /// Returns a `Self` with sane defaults for the etcd. - pub fn default_etcd() -> ConfigBuilder { - ConfigBuilder::::default() - } -} -impl ConfigBuilder { - /// Returns a `Self` with sane defaults for the Loki. - pub fn default_loki() -> ConfigBuilder { - ConfigBuilder::::default() - } -} - -impl ConfigBuilder { - /// Move self with the following kube_config_path. - pub fn with_kube_config(mut self, kube_config_path: Option) -> Self { - self.kube_config = kube_config_path; - self - } - /// Move self with the following target. - pub fn with_target(mut self, target: kube_forward::Target) -> Self { - self.target = target; - self - } - /// Move self with the following target closure. - pub fn with_target_mod( - mut self, - modify: impl FnOnce(kube_forward::Target) -> kube_forward::Target, - ) -> Self { - self.target = modify(self.target); - self - } -} - -impl ConfigBuilder { - /// Move self with the following timeout. - pub fn with_timeout>>(mut self, timeout: TO) -> Self { - self.timeout = timeout.into(); - self - } - /// Move self with the following forwarding method. - pub fn with_forwarding(mut self, method: ForwardingProxy) -> Self { - self.method = method; - self - } - /// Move self with the following connection scheme. - pub fn with_scheme(mut self, scheme: Scheme) -> Self { - self.scheme = scheme; - self - } - - /// Tries to build a `Configuration` from the current self. - pub async fn build(self) -> anyhow::Result { - match self.method { - ForwardingProxy::HTTP => self.build_http().await, - ForwardingProxy::TCP => self.build_tcp().await, - } - } - /// Tries to build an HTTP `Configuration` from the current self. - async fn build_http(self) -> anyhow::Result { - let uri = kube_forward::HttpForward::new(self.target, Some(self.scheme.into())) - .await? - .uri() - .await?; - let config = super::config_from_kubeconfig(self.kube_config).await?; - let client = kube::Client::try_from(config)?; - let proxy = kube_forward::HttpProxy::new(client); - - let config = Configuration::builder() - .with_timeout(self.timeout) - .with_bearer_token(self.jwt) - .with_tracing(true) - .build_with_svc(uri, proxy) - .map_err(|e| anyhow!("Failed to Create OpenApi config: {:?}", e))?; - Ok(config) - } - /// Tries to build a TCP `Configuration` from the current self. - async fn build_tcp(self) -> anyhow::Result { - let pf = kube_forward::PortForward::new(self.target, None).await?; - - let (port, _handle) = pf.port_forward().await?; - - let timeout = self - .timeout - .unwrap_or_else(|| std::time::Duration::from_secs(5)); - let (scheme, certificate) = self.scheme.parts(); - let url = Url::parse(&format!("{scheme}://localhost:{port}"))?; - - let config = Configuration::builder() - .with_timeout(timeout) - .with_bearer_token(self.jwt) - .with_tracing(true); - // todo: fix client to receive option... - match certificate { - Some(certificate) => config.with_certificate(certificate), - None => config, - } - .build_url(url) - .map_err(|e| anyhow!("Failed to Create OpenApi config: {:?}", e)) - } -} - -impl ConfigBuilder { - /// Tries to build a TCP `Configuration` from the current self. - pub async fn build(self) -> anyhow::Result { - let pf = kube_forward::PortForward::new(self.target, None).await?; - - let (port, _handle) = pf.port_forward().await?; - - let (scheme, _certificate) = self.scheme.parts(); - let uri = Uri::try_from(&format!("{scheme}://localhost:{port}"))?; - Ok(uri) - } -} - -use hyper::body; - -/// A loki client which is essentially a boxed `tower::Service`. -pub type LokiClient = - BoxService, hyper::Response, tower::BoxError>; - -impl ConfigBuilder { - /// Move self with the following timeout. - pub fn with_timeout>>(mut self, timeout: TO) -> Self { - self.timeout = timeout.into(); - self - } - /// Move self with the following forwarding method. - pub fn with_forwarding(mut self, method: ForwardingProxy) -> Self { - self.method = method; - self - } - /// Move self with the following connection scheme. - pub fn with_scheme(mut self, scheme: Scheme) -> Self { - self.scheme = scheme; - self - } - - /// Tries to build a `LokiClient` from the current self. - /// This is simply a boxed `tower::Service` so can be used for any HTTP requests. - pub async fn build(self) -> anyhow::Result<(Uri, LokiClient)> { - match self.method { - ForwardingProxy::HTTP => self.build_http().await, - ForwardingProxy::TCP => self.build_tcp().await, - } - } - /// Tries to build an HTTP `Configuration` from the current self. - async fn build_http(self) -> anyhow::Result<(Uri, LokiClient)> { - let uri = kube_forward::HttpForward::new(self.target, Some(self.scheme.into())) - .await? - .uri() - .await?; - let config = super::config_from_kubeconfig(self.kube_config).await?; - let client = kube::Client::try_from(config)?; - let proxy = kube_forward::HttpProxy::new(client); - - let service = tower::ServiceBuilder::new() - .option_layer(self.timeout.map(tower::timeout::TimeoutLayer::new)) - .service(proxy); - Ok((uri, LokiClient::new(service))) - } - /// Tries to build a TCP `Configuration` from the current self. - async fn build_tcp(self) -> anyhow::Result<(Uri, LokiClient)> { - let pf = kube_forward::PortForward::new(self.target, None).await?; - - let (port, _handle) = pf.port_forward().await?; - - let keep_alive_timeout = self - .timeout - .unwrap_or_else(|| std::time::Duration::from_secs(5)); - - let (scheme, _certificate) = self.scheme.parts(); - let uri = Uri::try_from(&format!("{scheme}://localhost:{port}"))?; - - let service = match self.scheme { - Scheme::HTTP => { - let mut connector = hyper::client::HttpConnector::new(); - connector.set_connect_timeout(self.timeout); - let client = hyper::Client::builder() - .http2_keep_alive_timeout(keep_alive_timeout) - .http2_keep_alive_interval(keep_alive_timeout / 2) - .build(connector); - tower::ServiceBuilder::new() - .option_layer(self.timeout.map(tower::timeout::TimeoutLayer::new)) - .service(client) - } - Scheme::HTTPS(_) => { - unimplemented!() - } - }; - - Ok((uri, BoxService::new(service))) - } -} diff --git a/k8s/supportability/Cargo.toml b/k8s/supportability/Cargo.toml index ffc1740ef..109ab40b7 100644 --- a/k8s/supportability/Cargo.toml +++ b/k8s/supportability/Cargo.toml @@ -16,35 +16,38 @@ tls = ["openapi/tower-client-tls"] [dependencies] futures = "0.3" -tokio = { version = "1.33.0", features = ["full"] } -k8s-openapi = { version = "0.20.0", features = ["v1_22"] } -kube = { version = "0.87.0", features = ["derive"] } +tokio = { version = "1.41.0", features = ["full"] } +k8s-openapi = { version = "0.22.0", features = ["v1_24"] } +kube = { version = "0.94.2", features = ["derive"] } yaml-rust = { version = "0.4" } -clap = { version = "4.4.6", features = ["color", "derive"] } -anyhow = "1.0.75" +clap = { version = "4.5.20", features = ["color", "derive"] } +anyhow = "1.0.92" humantime = "2.1.0" -async-trait = "0.1.73" -serde = "1.0.188" -serde_json = "1.0.107" -serde_yaml = "0.9.25" -lazy_static = "1.4.0" -uuid = { version = "1.4.1", features = ["serde", "v4"] } -once_cell = "1.18.0" +async-trait = "0.1.83" +serde = "1.0.214" +serde_json = "1.0.132" +serde_yaml = "0.9.34" +lazy_static = "1.5.0" +uuid = { version = "1.11.0", features = ["serde", "v4"] } +once_cell = "1.20.2" tar = "0.4" -flate2 = { version = "1.0.27" } -chrono = "0.4.31" +flate2 = { version = "1.0.34" } +chrono = "0.4.38" urlencoding = "2.1.3" -downcast-rs = "1.2.0" -schemars = "0.8.15" -http = "0.2.9" -hyper = { version = "0.14.27", features = ["client", "http1", "http2", "tcp", "stream"] } -tower = { version = "0.4.13", features = ["timeout", "util"] } +downcast-rs = "1.2.1" +schemars = "0.8.21" +http = "1.1.0" +hyper = { version = "1.5.0", features = ["client", "http1", "http2"] } +hyper-util = "0.1.10" +tower = { version = "0.5.1", features = ["timeout", "util"] } k8s-operators = { path = "../../dependencies/control-plane/k8s/operators", default-features = false } pstor = { path = "../../dependencies/control-plane/utils/pstor" } platform = { path = "../../dependencies/control-plane/utils/platform" } openapi = { path = "../../dependencies/control-plane/openapi", default-features = false, features = ["tower-client", "tower-trace"] } -kube-proxy = { path = "../proxy" } +kube-proxy = { path = "../../dependencies/control-plane/k8s/proxy" } rest-plugin = { path = "../../dependencies/control-plane/control-plane/plugin", default-features = false } utils = { path = "../../dependencies/control-plane/utils/utils-lib" } +hyper-body = { path = "../../dependencies/control-plane/utils/hyper-body" } constants = { path = "../../constants" } +http-body-util = "0.1.2" diff --git a/k8s/supportability/src/collect/common.rs b/k8s/supportability/src/collect/common.rs index 2d382baa7..7e148cf43 100644 --- a/k8s/supportability/src/collect/common.rs +++ b/k8s/supportability/src/collect/common.rs @@ -1,7 +1,6 @@ use crate::collect::{error::Error, rest_wrapper::RestClient}; use chrono::Local; -#[cfg(debug_assertions)] use crate::collect::resources::traits::Topologer; /// DumpConfig helps to create new instance of Dumper @@ -23,7 +22,6 @@ pub(crate) struct DumpConfig { pub(crate) kube_config_path: Option, /// Specifies the timeout value to interact with other systems pub(crate) timeout: humantime::Duration, - #[cfg(debug_assertions)] /// Topologer implements functionality to build topological information of system pub(crate) topologer: Option>, pub(crate) output_format: OutputFormat, diff --git a/k8s/supportability/src/collect/error.rs b/k8s/supportability/src/collect/error.rs index 3fe9793a5..2d20c69c1 100644 --- a/k8s/supportability/src/collect/error.rs +++ b/k8s/supportability/src/collect/error.rs @@ -8,6 +8,7 @@ use std::ffi::OsString; /// with services in the system #[derive(Debug)] #[allow(clippy::enum_variant_names)] +#[allow(unused)] pub(crate) enum Error { ResourceError(ResourceError), ArchiveError(std::io::Error), diff --git a/k8s/supportability/src/collect/k8s_resources/client.rs b/k8s/supportability/src/collect/k8s_resources/client.rs index 2aa002bd4..b844b8743 100644 --- a/k8s/supportability/src/collect/k8s_resources/client.rs +++ b/k8s/supportability/src/collect/k8s_resources/client.rs @@ -23,6 +23,7 @@ const SPEC: &str = "spec"; /// information of Kubernetes Objects #[allow(clippy::enum_variant_names)] #[derive(Debug)] +#[allow(unused)] pub(crate) enum K8sResourceError { ClientConfigError(kube::config::KubeconfigError), InferConfigError(kube::config::InferConfigError), diff --git a/k8s/supportability/src/collect/k8s_resources/k8s_resource_dump.rs b/k8s/supportability/src/collect/k8s_resources/k8s_resource_dump.rs index 174978388..a83dcee90 100644 --- a/k8s/supportability/src/collect/k8s_resources/k8s_resource_dump.rs +++ b/k8s/supportability/src/collect/k8s_resources/k8s_resource_dump.rs @@ -30,6 +30,7 @@ pub(crate) struct K8sResourceDumperClient { /// Errors pertaining to k8s resource dumper module #[derive(Debug)] #[allow(clippy::enum_variant_names)] +#[allow(unused)] pub(crate) enum K8sResourceDumperError { K8sResourceError(K8sResourceError), IOError(std::io::Error), diff --git a/k8s/supportability/src/collect/logs/k8s_log.rs b/k8s/supportability/src/collect/logs/k8s_log.rs index 4b457ed55..45b39b050 100644 --- a/k8s/supportability/src/collect/logs/k8s_log.rs +++ b/k8s/supportability/src/collect/logs/k8s_log.rs @@ -15,6 +15,7 @@ use std::{collections::HashMap, fs::File, io::Write, path::PathBuf}; /// Possible errors can occur while interacting with K8s for logs, and file creations #[derive(Debug)] +#[allow(unused)] pub(crate) enum K8sLoggerError { K8sResourceError(K8sResourceError), IOError(std::io::Error), diff --git a/k8s/supportability/src/collect/logs/loki.rs b/k8s/supportability/src/collect/logs/loki.rs index 6d735842a..90fae5b53 100644 --- a/k8s/supportability/src/collect/logs/loki.rs +++ b/k8s/supportability/src/collect/logs/loki.rs @@ -3,7 +3,7 @@ use chrono::Utc; use hyper::body::Buf; use serde::{Deserialize, Serialize}; use std::{io::Write, path::PathBuf}; -use tower::{util::BoxService, Service, ServiceExt}; +use tower::{Service, ServiceExt}; /// Loki endpoint to query for logs const ENDPOINT: &str = "/loki/api/v1/query_range"; @@ -12,6 +12,7 @@ const SERVICE_NAME: &str = "loki"; /// Possible errors can occur while interacting with Loki service #[derive(Debug)] +#[allow(unused)] pub(crate) enum LokiError { Request(http::Error), Response(String), @@ -86,7 +87,7 @@ impl LokiResponse { .values .last() .unwrap_or(&vec![]) - .get(0) + .first() .unwrap_or(&"0".to_string()) .parse::() .unwrap_or(0), @@ -159,16 +160,24 @@ impl LokiClient { (uri.to_string(), svc) } Some(uri) => { - let mut connector = hyper::client::HttpConnector::new(); + let mut connector = hyper_util::client::legacy::connect::HttpConnector::new(); + connector.set_connect_timeout(Some(*timeout)); - let client = hyper::Client::builder() - .http2_keep_alive_timeout(*timeout) - .http2_keep_alive_interval(*timeout / 2) - .build(connector); - let service = tower::ServiceBuilder::new() - .timeout(*timeout) - .service(client); - (uri, BoxService::new(service)) + let client = hyper_util::client::legacy::Client::builder( + hyper_util::rt::TokioExecutor::new(), + ) + .http2_keep_alive_timeout(*timeout) + .http2_keep_alive_interval(*timeout / 2) + .build(connector); + let service = tower::ServiceBuilder::new().timeout(*timeout).service( + tower::util::MapResponse::new( + client, + |r: hyper::Response| { + r.map(hyper_body::Body::wrap_body) + }, + ), + ); + (uri, kube_proxy::LokiClient::new(service)) } }; @@ -288,6 +297,8 @@ struct LokiPoll<'a> { next_start_epoch_timestamp: SinceTime, } +use http_body_util::BodyExt; + impl<'a> LokiPoll<'a> { // poll_next will extract response from Loki service and perform following actions: // 1. Get last log epoch timestamp @@ -306,16 +317,16 @@ impl<'a> LokiPoll<'a> { let request = http::Request::builder() .method("GET") .uri(&request_str) - .body(hyper::body::Body::empty())?; + .body(hyper_body::Body::empty())?; let response = self.client().ready().await?.call(request).await?; if !response.status().is_success() { - let body_bytes = hyper::body::to_bytes(response.into_body()).await?; + let body_bytes = response.into_body().collect().await?.to_bytes(); let text = String::from_utf8(body_bytes.to_vec()).unwrap_or_default(); return Err(LokiError::Response(text)); } - let body = hyper::body::aggregate(response.into_body()).await?; + let body = response.collect().await?.aggregate(); let loki_response: LokiResponse = serde_json::from_reader(body.reader())?; if loki_response.status == "success" && loki_response.data.result.is_empty() { diff --git a/k8s/supportability/src/collect/logs/mod.rs b/k8s/supportability/src/collect/logs/mod.rs index a121e7f07..7e5d0f815 100644 --- a/k8s/supportability/src/collect/logs/mod.rs +++ b/k8s/supportability/src/collect/logs/mod.rs @@ -19,6 +19,7 @@ use std::{collections::HashSet, iter::Iterator, path::PathBuf}; /// Error that can occur while interacting with logs module #[derive(Debug)] +#[allow(unused)] pub(crate) enum LogError { Loki(loki::LokiError), K8sResource(K8sResourceError), diff --git a/k8s/supportability/src/collect/persistent_store/etcd.rs b/k8s/supportability/src/collect/persistent_store/etcd.rs index 336c24c4b..7e915f3f3 100644 --- a/k8s/supportability/src/collect/persistent_store/etcd.rs +++ b/k8s/supportability/src/collect/persistent_store/etcd.rs @@ -71,7 +71,7 @@ impl EtcdStore { .etcd .get_values_paged_all(prefix, ETCD_PAGED_LIMIT) .await?; - if !first && dump.get(0).is_some() { + if !first && !dump.is_empty() { dump.remove(0); } first = false; diff --git a/k8s/supportability/src/collect/persistent_store/mod.rs b/k8s/supportability/src/collect/persistent_store/mod.rs index 98979eeaf..4f563f3f1 100644 --- a/k8s/supportability/src/collect/persistent_store/mod.rs +++ b/k8s/supportability/src/collect/persistent_store/mod.rs @@ -7,6 +7,7 @@ pub mod etcd; /// EtcdError holds the errors that can occur while trying to dump information /// from etcd database #[derive(Debug)] +#[allow(unused)] pub(crate) enum EtcdError { Etcd(StoreError), K8sResource(K8sResourceError), diff --git a/k8s/supportability/src/collect/resource_dump.rs b/k8s/supportability/src/collect/resource_dump.rs index 44b138940..9c554c0af 100644 --- a/k8s/supportability/src/collect/resource_dump.rs +++ b/k8s/supportability/src/collect/resource_dump.rs @@ -11,30 +11,24 @@ use crate::{ use std::{path::PathBuf, process}; -#[cfg(debug_assertions)] use crate::collect::{ common::Stringer, constants::MAYASTOR_SERVICE, k8s_resources::k8s_resource_dump::K8sResourceDumperClient, - logs::LogCollection, - logs::{LogResource, Logger}, + logs::{LogCollection, LogResource, Logger}, resources::traits::Topologer, utils::{flush_tool_log_file, write_to_log_file}, }; -#[cfg(debug_assertions)] use futures::future; /// Dumper interacts with various services to collect information like mayastor resource(s), /// mayastor service logs and state of mayastor artifacts and mayastor specific artifacts from /// etcd pub(crate) struct ResourceDumper { - #[cfg(debug_assertions)] topologer: Option>, archive: archive::Archive, dir_path: String, - #[cfg(debug_assertions)] logger: Box, - #[cfg(debug_assertions)] k8s_resource_dumper: K8sResourceDumperClient, etcd_dumper: Option, output_format: OutputFormat, @@ -84,7 +78,6 @@ impl ResourceDumper { } }; - #[cfg(debug_assertions)] let logger = match LogCollection::new_logger( config.kube_config_path.clone(), config.namespace.clone(), @@ -103,7 +96,6 @@ impl ResourceDumper { } }; - #[cfg(debug_assertions)] let k8s_resource_dumper = match K8sResourceDumperClient::new( config.kube_config_path.clone(), config.namespace.clone(), @@ -134,20 +126,16 @@ impl ResourceDumper { }; ResourceDumper { - #[cfg(debug_assertions)] topologer: config.topologer, archive, dir_path: new_dir, - #[cfg(debug_assertions)] logger, - #[cfg(debug_assertions)] k8s_resource_dumper, etcd_dumper, output_format: config.output_format, } } - #[cfg(debug_assertions)] /// Dumps information associated to given resource(s) pub(crate) async fn dump_info(&mut self, folder_path: String) -> Result<(), Error> { let mut errors = Vec::new(); @@ -211,7 +199,7 @@ impl ResourceDumper { log("Completed collection of Kubernetes resource specific information".to_string()); let mut path: PathBuf = std::path::PathBuf::new(); - path.push(&self.dir_path.clone()); + path.push(self.dir_path.clone()); // Collect ETCD dump specific to mayastor log("Collecting mayastor specific information from Etcd...".to_string()); @@ -255,7 +243,7 @@ impl ResourceDumper { /// Dumps information associated to given resource(s) pub(crate) async fn dump_etcd(&mut self) -> Result<(), Error> { let mut path: PathBuf = std::path::PathBuf::new(); - path.push(&self.dir_path.clone()); + path.push(self.dir_path.clone()); self.etcd_dumper .as_mut() @@ -289,7 +277,6 @@ impl ResourceDumper { Ok(()) } - #[cfg(debug_assertions)] /// Copies the temporary directory content into archive and delete temporary directory pub fn fill_archive_and_delete_tmp(&mut self) -> Result<(), Error> { // Log which is visible in archive system log file diff --git a/k8s/supportability/src/collect/resources/traits.rs b/k8s/supportability/src/collect/resources/traits.rs index c4f920573..dcea1e16f 100644 --- a/k8s/supportability/src/collect/resources/traits.rs +++ b/k8s/supportability/src/collect/resources/traits.rs @@ -73,6 +73,7 @@ impl ResourceInformation { /// Implements functionality to inspect topology information pub(crate) trait Topologer: Downcast + Debug { + #[allow(unused)] fn get_printable_topology(&self) -> Result<(String, String), ResourceError>; fn dump_topology_info(&self, dir_path: String) -> Result<(), ResourceError>; fn get_unhealthy_resource_info(&self) -> HashSet; diff --git a/k8s/supportability/src/collect/system_dump.rs b/k8s/supportability/src/collect/system_dump.rs index 6e0f08047..9dd5dc42b 100644 --- a/k8s/supportability/src/collect/system_dump.rs +++ b/k8s/supportability/src/collect/system_dump.rs @@ -258,7 +258,7 @@ impl SystemDumper { log("Completed collection of Kubernetes resource specific information".to_string()); let mut path: PathBuf = std::path::PathBuf::new(); - path.push(&self.dir_path.clone()); + path.push(self.dir_path.clone()); let _ = future::try_join_all(self.etcd_dumper.as_mut().map(|etcd_store| { log("Collecting mayastor specific information from Etcd...".to_string()); diff --git a/k8s/supportability/src/lib.rs b/k8s/supportability/src/lib.rs index c88ac49ab..70ed6491d 100644 --- a/k8s/supportability/src/lib.rs +++ b/k8s/supportability/src/lib.rs @@ -11,7 +11,6 @@ use collect::{ }; use operations::Resource; -#[cfg(debug_assertions)] use collect::resources::{pool::PoolClientWrapper, traits::Topologer, volume::VolumeClientWrapper}; use plugin::ExecuteOperation; @@ -104,7 +103,6 @@ async fn execute_resource_dump( kube_config_path: Option, resource: Resource, ) -> Result<(), Error> { - #[cfg(debug_assertions)] let topologer: Box; let mut config = DumpConfig { rest_client: rest_client.clone(), @@ -115,7 +113,6 @@ async fn execute_resource_dump( since: cli_args.since, kube_config_path, timeout: cli_args.timeout, - #[cfg(debug_assertions)] topologer: None, output_format: OutputFormat::Tar, }; @@ -154,7 +151,6 @@ async fn execute_resource_dump( errors.push(e); } } - #[cfg(debug_assertions)] Resource::Volumes => { let volume_client = VolumeClientWrapper::new(rest_client); topologer = volume_client.get_topologer(None).await?; @@ -169,7 +165,6 @@ async fn execute_resource_dump( errors.push(e); } } - #[cfg(debug_assertions)] Resource::Volume { id } => { let volume_client = VolumeClientWrapper::new(rest_client); topologer = volume_client.get_topologer(Some(id)).await?; @@ -186,7 +181,6 @@ async fn execute_resource_dump( errors.push(e); } } - #[cfg(debug_assertions)] Resource::Pools => { let pool_client = PoolClientWrapper::new(rest_client); topologer = pool_client.get_topologer(None).await?; @@ -201,7 +195,6 @@ async fn execute_resource_dump( errors.push(e); } } - #[cfg(debug_assertions)] Resource::Pool { id } => { let pool_client = PoolClientWrapper::new(rest_client); topologer = pool_client.get_topologer(Some(id.to_string())).await?; @@ -218,7 +211,6 @@ async fn execute_resource_dump( errors.push(e); } } - #[cfg(debug_assertions)] Resource::Nodes => { let node_client = NodeClientWrapper { rest_client }; topologer = node_client.get_topologer(None).await?; @@ -233,7 +225,6 @@ async fn execute_resource_dump( errors.push(e); } } - #[cfg(debug_assertions)] Resource::Node { id } => { let node_client = NodeClientWrapper { rest_client }; topologer = node_client.get_topologer(Some(id.to_string())).await?; diff --git a/k8s/supportability/src/operations.rs b/k8s/supportability/src/operations.rs index 1ef56b931..ddaf514a6 100644 --- a/k8s/supportability/src/operations.rs +++ b/k8s/supportability/src/operations.rs @@ -1,12 +1,9 @@ -#[cfg(debug_assertions)] /// Represents type of VolumeID pub(crate) type VolumeID = openapi::apis::Uuid; -#[cfg(debug_assertions)] /// Represents type of PoolID pub(crate) type PoolID = String; -#[cfg(debug_assertions)] /// Represents type of NodeID pub(crate) type NodeID = String; @@ -31,36 +28,30 @@ pub(crate) enum Resource { /// Collects entire system information System(SystemDumpArgs), - #[cfg(debug_assertions)] /// Collects information about all volumes and its descendants (replicas/pools/nodes) - #[clap(name = "volumes")] + #[clap(name = "volumes", hide = HIDE)] Volumes, - #[cfg(debug_assertions)] /// Collects information about particular volume and its descendants matching /// to given volume ID - #[clap(name = "volume")] + #[clap(name = "volume", hide = HIDE)] Volume { id: VolumeID }, - #[cfg(debug_assertions)] /// Collects information about all pools and its descendants (nodes) - #[clap(name = "pools")] + #[clap(name = "pools", hide = HIDE)] Pools, - #[cfg(debug_assertions)] /// Collects information about particular pool and its descendants matching /// to given pool ID - #[clap(name = "pool")] + #[clap(name = "pool", hide = HIDE)] Pool { id: PoolID }, - #[cfg(debug_assertions)] /// Collects information about all nodes - #[clap(name = "nodes")] + #[clap(name = "nodes", hide = HIDE)] Nodes, - #[cfg(debug_assertions)] /// Collects information about particular node matching to given node ID - #[clap(name = "node")] + #[clap(name = "node", hide = HIDE)] Node { id: NodeID }, /// Collects information from etcd @@ -71,6 +62,11 @@ pub(crate) enum Resource { }, /// Collects the Loki logs from the product's components - #[clap(hide = true)] + #[clap(hide = HIDE)] Loki, } + +#[cfg(debug_assertions)] +const HIDE: bool = true; +#[cfg(not(debug_assertions))] +const HIDE: bool = true; diff --git a/k8s/upgrade/Cargo.toml b/k8s/upgrade/Cargo.toml index 75f821add..41aabfd93 100644 --- a/k8s/upgrade/Cargo.toml +++ b/k8s/upgrade/Cargo.toml @@ -15,29 +15,29 @@ path = "src/lib.rs" openapi = { path = "../../dependencies/control-plane/openapi", default-features = false, features = ["tower-trace"] } utils = { path = "../../dependencies/control-plane/utils/utils-lib" } constants = { path = "../../constants" } -kube-proxy = { path = "../proxy" } +kube-proxy = { path = "../../dependencies/control-plane/k8s/proxy" } console-logger = { path = "../../console-logger" } -convert_case = "0.4.0" +convert_case = "0.6.0" kube = { version = "0.87.0", default-features = true, features = ["derive", "runtime"] } -anyhow = "1.0.75" -clap = { version = "4.4.6", features = ["derive", "env", "string", "color"] } +anyhow = "1.0.92" +clap = { version = "4.5.20", features = ["derive", "env", "string", "color"] } humantime = "2.1.0" maplit = "1.0.2" k8s-openapi = { version = "0.20.0", features = ["v1_22"] } -tower = { version = "0.4.13", features = ["timeout", "util"] } -hyper = { version = "0.14.27", features = ["client", "http1", "http2", "tcp", "stream"] } -http = "0.2.9" -async-trait = "0.1.73" -serde = "1.0.188" -serde_json = "1.0.107" -snafu = "0.7.5" -serde_yaml = "0.9.25" -semver = { version = "1.0.20", features = ["serde"] } -url = "2.4.1" -regex = "1.10.0" -tokio = { version = "1.33.0", features = ["full"] } -tempfile = "3.8.0" +tower = { version = "0.5.1", features = ["timeout", "util"] } +hyper = { version = "1.5.0", features = ["client", "http1", "http2"] } +http = "1.1.0" +async-trait = "0.1.83" +serde = "1.0.214" +serde_json = "1.0.132" +snafu = "0.8.5" +serde_yaml = "0.9.34" +semver = { version = "1.0.23", features = ["serde"] } +url = "2.5.2" +regex = "1.11.1" +tokio = { version = "1.41.0", features = ["full"] } +tempfile = "3.13.0" # Tracing -tracing = "0.1.37" -base64 = "0.21.5" -flate2 = "1.0.27" +tracing = "0.1.40" +base64 = "0.22.1" +flate2 = "1.0.34" diff --git a/k8s/upgrade/src/bin/upgrade-job/common/error.rs b/k8s/upgrade/src/bin/upgrade-job/common/error.rs index ab342c6b9..7d307c475 100644 --- a/k8s/upgrade/src/bin/upgrade-job/common/error.rs +++ b/k8s/upgrade/src/bin/upgrade-job/common/error.rs @@ -16,6 +16,7 @@ use url::Url; #[derive(Debug, Snafu)] #[snafu(visibility(pub(crate)))] #[snafu(context(suffix(false)))] +#[allow(unused)] pub(crate) enum Error { /// Error for when the storage REST API URL is parsed. #[snafu(display( diff --git a/k8s/upgrade/src/bin/upgrade-job/events/event_recorder.rs b/k8s/upgrade/src/bin/upgrade-job/events/event_recorder.rs index 593d8e4bf..6bf75862a 100644 --- a/k8s/upgrade/src/bin/upgrade-job/events/event_recorder.rs +++ b/k8s/upgrade/src/bin/upgrade-job/events/event_recorder.rs @@ -10,7 +10,10 @@ use k8s_openapi::{api::core::v1::ObjectReference, serde_json}; use kube::runtime::events::{Event, EventType, Recorder}; use serde::Serialize; use snafu::{ensure, ResultExt}; -use std::{fmt::Display, time::Duration}; +use std::{ + fmt::{Display, Formatter}, + time::Duration, +}; use tokio::{select, sync::mpsc, time::sleep}; use tracing::error; @@ -287,16 +290,17 @@ pub enum EventAction { Successful, } -impl ToString for EventAction { - fn to_string(&self) -> String { - match self { - Self::Failed => String::from("Failed"), - Self::ValidationFailed => String::from("Validation Failed"), - Self::UpgradingCP => String::from("Upgrading control-plane"), - Self::UpgradedCP => String::from("Upgraded control-plane"), - Self::UpgradingDP => String::from("Upgrading data-plane"), - Self::UpgradedDP => String::from("Upgraded data-plane"), - Self::Successful => String::from("Successful"), - } +impl Display for EventAction { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + let action = match self { + Self::Failed => "Failed", + Self::ValidationFailed => "Validation Failed", + Self::UpgradingCP => "Upgrading control-plane", + Self::UpgradedCP => "Upgraded control-plane", + Self::UpgradingDP => "Upgrading data-plane", + Self::UpgradedDP => "Upgraded data-plane", + Self::Successful => "Successful", + }; + write!(f, "{action}") } } diff --git a/k8s/upgrade/src/bin/upgrade-job/upgrade.rs b/k8s/upgrade/src/bin/upgrade-job/upgrade.rs index 196bb2c85..834284ba6 100644 --- a/k8s/upgrade/src/bin/upgrade-job/upgrade.rs +++ b/k8s/upgrade/src/bin/upgrade-job/upgrade.rs @@ -28,8 +28,8 @@ pub(crate) mod path; /// This function starts and sees upgrade through to the end. pub(crate) async fn upgrade(opts: &CliArgs) -> Result<()> { let mut event = EventRecorder::builder() - .with_pod_name(&opts.pod_name()) - .with_namespace(&opts.namespace()) + .with_pod_name(opts.pod_name()) + .with_namespace(opts.namespace()) .build() .await?; diff --git a/k8s/upgrade/src/plugin/upgrade.rs b/k8s/upgrade/src/plugin/upgrade.rs index b5d4d5abb..5108e1cd7 100644 --- a/k8s/upgrade/src/plugin/upgrade.rs +++ b/k8s/upgrade/src/plugin/upgrade.rs @@ -339,7 +339,7 @@ impl UpgradeEventClient { event_list.sort_by(|a, b| b.event_time.cmp(&a.event_time)); let latest_event = event_list - .get(0) + .first() .ok_or(error::UpgradeEventNotPresent.build())?; Ok(latest_event.to_owned()) } diff --git a/metrics-exporter/Cargo.toml b/metrics-exporter/Cargo.toml index fd5190df1..9659db99f 100644 --- a/metrics-exporter/Cargo.toml +++ b/metrics-exporter/Cargo.toml @@ -11,19 +11,19 @@ path = "src/bin/io_engine/main.rs" [dependencies] -actix-web = { version = "4.4.0", features = ["rustls-0_21"] } +actix-web = { version = "4.9.0", features = ["rustls-0_21"] } actix-service = "2.0.2" -tokio = { version = "1.33.0", features = ["full"] } -once_cell = "1.18.0" -clap = { version = "4.4.6", features = ["color", "derive", "string"] } -prometheus = "0.13.3" -tonic = "0.10.2" +tokio = { version = "1.41.0", features = ["full"] } +once_cell = "1.20.2" +clap = { version = "4.5.20", features = ["color", "derive", "string"] } +prometheus = "0.13.4" +tonic = "0.12.3" humantime = "2.1.0" -serde_json = "1.0.107" -serde = "1.0.188" +serde_json = "1.0.132" +serde = "1.0.214" mime = "0.3.17" rpc = { path = "../dependencies/control-plane/rpc" } utils = { path = "../dependencies/control-plane/utils/utils-lib" } -strum = "0.25.0" -strum_macros = "0.25.2" -tracing = "0.1.37" +strum = "0.26.3" +strum_macros = "0.26.4" +tracing = "0.1.40" diff --git a/metrics-exporter/src/bin/io_engine/client/grpc_client.rs b/metrics-exporter/src/bin/io_engine/client/grpc_client.rs index a030c99b4..07ea2857c 100644 --- a/metrics-exporter/src/bin/io_engine/client/grpc_client.rs +++ b/metrics-exporter/src/bin/io_engine/client/grpc_client.rs @@ -6,10 +6,9 @@ use crate::client::{ pool_stat::{PoolIoStat, PoolIoStats}, replica_stat::{ReplicaIoStat, ReplicaIoStats}, }; -use actix_web::http::Uri; use std::{net::SocketAddr, time::Duration}; use tokio::time::sleep; -use tonic::transport::Channel; +use tonic::transport::{Channel, Uri}; use tracing::error; /// Timeout for gRPC connection. @@ -110,6 +109,7 @@ pub(crate) async fn init_client() -> Result { let timeout = Timeouts::new(Duration::from_secs(1), Duration::from_secs(5)); let pod_ip = get_pod_ip()?; let _ = get_node_name()?; + let endpoint = Uri::builder() .scheme("https") .authority(SocketAddr::new(pod_ip, 10124).to_string()) diff --git a/metrics-exporter/src/bin/io_engine/error.rs b/metrics-exporter/src/bin/io_engine/error.rs index 08693ec4b..8a9b1b34c 100644 --- a/metrics-exporter/src/bin/io_engine/error.rs +++ b/metrics-exporter/src/bin/io_engine/error.rs @@ -1,4 +1,5 @@ #[derive(Debug)] +#[allow(unused)] /// Error used in exporters pub enum ExporterError { GrpcResponseError(String), diff --git a/nix/lib/rust.nix b/nix/lib/rust.nix index 329d83b9b..de64744c8 100644 --- a/nix/lib/rust.nix +++ b/nix/lib/rust.nix @@ -5,8 +5,8 @@ in rec { makeRustTarget = platform: pkgs.rust.toRustTargetSpec platform; rust_default = { override ? { } }: rec { - nightly_pkg = pkgs.rust-bin.nightly."2023-08-10"; - stable_pkg = pkgs.rust-bin.stable."1.71.1"; + nightly_pkg = pkgs.rust-bin.nightly."2024-10-30"; + stable_pkg = pkgs.rust-bin.stable."1.82.0"; nightly = nightly_pkg.default.override (override); stable = stable_pkg.default.override (override); diff --git a/nix/pkgs/extensions/cargo-project.nix b/nix/pkgs/extensions/cargo-project.nix index 7c76e54eb..ba678925b 100644 --- a/nix/pkgs/extensions/cargo-project.nix +++ b/nix/pkgs/extensions/cargo-project.nix @@ -83,11 +83,13 @@ let "dependencies/control-plane/utils/dependencies/tracing-filter" "dependencies/control-plane/utils/dependencies/version-info" "dependencies/control-plane/utils/utils-lib" + "dependencies/control-plane/utils/hyper-body" "dependencies/control-plane/utils/shutdown" "dependencies/control-plane/utils/platform" "dependencies/control-plane/utils/pstor" "dependencies/control-plane/rpc" "dependencies/control-plane/k8s/forward" + "dependencies/control-plane/k8s/proxy" "dependencies/control-plane/k8s/operators" "k8s" ]; diff --git a/nix/sources.json b/nix/sources.json index 3260b72a3..980763a0a 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -24,15 +24,15 @@ "url_template": "https://github.com///archive/.tar.gz" }, "nixpkgs": { - "branch": "release-22.11", + "branch": "release-24.05", "description": "A read-only mirror of NixOS/nixpkgs tracking the released channels. Send issues and PRs to", "homepage": "https://github.com/NixOS/nixpkgs", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", - "sha256": "1xi53rlslcprybsvrmipm69ypd3g3hr7wkxvzc73ag8296yclyll", + "rev": "b06ca0fab3185980a7501d7db273bb9f864580d4", + "sha256": "08pvwij6855wyxq6giyjwj3mdbrl118zzvbr7xdynmb7w9r9lv0l", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b.tar.gz", + "url": "https://github.com/NixOS/nixpkgs/archive/b06ca0fab3185980a7501d7db273bb9f864580d4.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "rust-overlay": { @@ -41,10 +41,10 @@ "homepage": "", "owner": "oxalica", "repo": "rust-overlay", - "rev": "48f3d76f512c7267d82d84c5d3d156ad2b9a8d12", - "sha256": "1xivbqbixnk96pacb6ihcbhsmcm0cly7xbgpq2g8kwqf4sgxk2hi", + "rev": "7509d76ce2b3d22b40bd25368b45c0a9f7f36c89", + "sha256": "12gh5a0clc11b219xrvh08f35v959wnnmm089ys1cmqfdxx9v77n", "type": "tarball", - "url": "https://github.com/oxalica/rust-overlay/archive/48f3d76f512c7267d82d84c5d3d156ad2b9a8d12.tar.gz", + "url": "https://github.com/oxalica/rust-overlay/archive/7509d76ce2b3d22b40bd25368b45c0a9f7f36c89.tar.gz", "url_template": "https://github.com///archive/.tar.gz" } }