From aa4125243eba9ef1a730f8abdce5e8c0e904e09a Mon Sep 17 00:00:00 2001 From: Nicolas Belouin Date: Thu, 9 Mar 2023 10:18:51 +0100 Subject: [PATCH 1/5] Update kube-rs and k8s-openapi to latest Signed-off-by: Nicolas Belouin --- Cargo.lock | 991 +++++++++---------- agent/Cargo.toml | 6 +- controller/Cargo.toml | 6 +- shared/Cargo.toml | 6 +- shared/src/akri/configuration.rs | 1 - shared/src/akri/instance.rs | 1 - webhooks/validating/configuration/Cargo.toml | 6 +- 7 files changed, 502 insertions(+), 515 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e12588ef0..9e780ea03 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,7 +11,7 @@ dependencies = [ "actix-rt 2.7.0", "actix_derive", "bitflags", - "bytes 1.2.1", + "bytes 1.4.0", "crossbeam-channel", "futures-core", "futures-sink", @@ -22,7 +22,7 @@ dependencies = [ "parking_lot 0.11.2", "pin-project-lite 0.2.9", "smallvec", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-util 0.6.10", ] @@ -58,7 +58,7 @@ dependencies = [ "http", "log", "openssl", - "tokio-openssl", + "tokio-openssl 0.4.0", "trust-dns-proto", "trust-dns-resolver", ] @@ -117,8 +117,8 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ca8ce00b267af8ccebbd647de0d61e0674b6e61185cc7a592ff88772bed655" dependencies = [ - "quote 1.0.21", - "syn 1.0.103", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -127,8 +127,8 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6" dependencies = [ - "quote 1.0.21", - "syn 1.0.103", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -167,7 +167,7 @@ checksum = "7ea16c295198e958ef31930a6ef37d0fb64e9ca3b6116e6b93a8bdae96ee1000" dependencies = [ "actix-macros 0.2.3", "futures-core", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -240,7 +240,7 @@ dependencies = [ "actix-utils", "futures-util", "openssl", - "tokio-openssl", + "tokio-openssl 0.4.0", ] [[package]] @@ -309,9 +309,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad26f77093333e0e7c6ffe54ebe3582d908a104e448723eec6d43d08b07143fb" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -320,9 +320,9 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d44b8fee1ced9671ba043476deddef739dd0959bf77030b26b738cc591737a7" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -370,7 +370,7 @@ dependencies = [ "serde_json", "serde_yaml", "tempfile", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", "tonic-build", @@ -381,10 +381,11 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ + "cfg-if 1.0.0", "getrandom 0.2.8", "once_cell", "version_check", @@ -414,7 +415,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", ] @@ -434,7 +435,7 @@ dependencies = [ "serde_derive", "serde_yaml", "tempfile", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", "tonic-build", @@ -449,7 +450,7 @@ dependencies = [ "akri-shared", "anyhow", "async-trait", - "bytes 1.2.1", + "bytes 1.4.0", "env_logger", "futures-util", "hyper", @@ -461,7 +462,7 @@ dependencies = [ "serde_yaml", "sxd-document", "sxd-xpath", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", "uuid", @@ -487,7 +488,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", "url 2.3.1", @@ -516,7 +517,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "tokio 1.21.2", + "tokio 1.26.0", "tonic", "tower", "warp", @@ -541,7 +542,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", "udev", @@ -632,7 +633,7 @@ dependencies = [ "parking", "polling", "slab", - "socket2 0.4.7", + "socket2 0.4.9", "waker-fn", "winapi 0.3.9", ] @@ -689,9 +690,9 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -702,13 +703,13 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.58" +version = "0.1.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" +checksum = "b84f9ebcc6c1f5b8cb160f6990096a5c127f423fcb6e1ccc46c370cbdfb75dfc" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -723,7 +724,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi 0.3.9", ] @@ -788,6 +789,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5" + [[package]] name = "bitflags" version = "1.3.2" @@ -870,9 +877,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" [[package]] name = "byteorder" @@ -888,9 +895,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.2.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "bytestring" @@ -898,7 +905,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b6a75fd3048808ef06af5cd79712be8111960adaf89d90250974b38fc3928a" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", ] [[package]] @@ -909,9 +916,9 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" [[package]] name = "cc" -version = "1.0.73" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" [[package]] name = "cfg-if" @@ -927,16 +934,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" dependencies = [ "iana-time-zone", "js-sys", "num-integer", "num-traits", "serde", - "time 0.1.44", + "time 0.1.45", "wasm-bindgen", "winapi 0.3.9", ] @@ -1012,7 +1019,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -1038,16 +1045,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536" -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.3" @@ -1117,15 +1114,15 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ - "quote 1.0.21", - "syn 1.0.103", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] name = "cxx" -version = "1.0.80" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a" +checksum = "9a140f260e6f3f79013b8bfc65e7ce630c9ab4388c6a89c71e07226f49487b72" dependencies = [ "cc", "cxxbridge-flags", @@ -1135,41 +1132,41 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.80" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827" +checksum = "da6383f459341ea689374bf0a42979739dc421874f112ff26f829b8040b8e613" dependencies = [ "cc", "codespan-reporting", "once_cell", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "scratch", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "cxxbridge-flags" -version = "1.0.80" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a" +checksum = "90201c1a650e95ccff1c8c0bb5a343213bdd317c6e600a93075bca2eff54ec97" [[package]] name = "cxxbridge-macro" -version = "1.0.80" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7" +checksum = "0b75aed41bb2e6367cae39e6326ef817a851db13c13e4f3263714ca3cfb8de56" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] name = "darling" -version = "0.13.4" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8" dependencies = [ "darling_core", "darling_macro", @@ -1177,27 +1174,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.13.4" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "strsim", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "darling_macro" -version = "0.13.4" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685" dependencies = [ "darling_core", - "quote 1.0.21", - "syn 1.0.103", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -1208,7 +1205,7 @@ dependencies = [ "akri-discovery-utils", "env_logger", "log", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -1228,9 +1225,9 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -1240,10 +1237,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "rustc_version 0.4.0", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -1306,15 +1303,15 @@ checksum = "4bb454f0228b18c7f4c3b0ebbee346ed9c52e7443b0999cd543ff3571205701d" [[package]] name = "dyn-clone" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" +checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" [[package]] name = "either" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "encoding_rs" @@ -1332,9 +1329,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "570d109b813e904becc80d8d5da38376818a143348413f7149f1340fe04754d4" dependencies = [ "heck 0.4.0", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -1350,6 +1347,27 @@ dependencies = [ "termcolor", ] +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "event-listener" version = "2.5.3" @@ -1358,9 +1376,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] @@ -1453,9 +1471,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84" dependencies = [ "futures-channel", "futures-core", @@ -1468,9 +1486,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" dependencies = [ "futures-core", "futures-sink", @@ -1478,15 +1496,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" [[package]] name = "futures-executor" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" dependencies = [ "futures-core", "futures-task", @@ -1495,9 +1513,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" [[package]] name = "futures-lite" @@ -1516,32 +1534,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] name = "futures-sink" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364" [[package]] name = "futures-task" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" [[package]] name = "futures-util" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" dependencies = [ "futures-channel", "futures-core", @@ -1643,7 +1661,7 @@ name = "h2" version = "0.3.3" source = "git+https://github.com/kate-goldenring/h2?branch=v0.3.3-patch#353943d123e9cb7b29e376ee8927be5deffe5f57" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "fnv", "futures-core", "futures-sink", @@ -1651,7 +1669,7 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-util 0.6.10", "tracing", ] @@ -1670,7 +1688,7 @@ checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" dependencies = [ "base64 0.13.1", "bitflags", - "bytes 1.2.1", + "bytes 1.4.0", "headers-core", "http", "httpdate", @@ -1711,6 +1729,15 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + [[package]] name = "hex" version = "0.4.3" @@ -1730,13 +1757,13 @@ dependencies = [ [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "fnv", - "itoa 1.0.4", + "itoa 1.0.6", ] [[package]] @@ -1745,7 +1772,7 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "http", "pin-project-lite 0.2.9", ] @@ -1780,7 +1807,7 @@ version = "0.14.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436ec0091e4f20e655156a30a0df3770fe2900aa301e548e08446ec794b6953c" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "futures-channel", "futures-core", "futures-util", @@ -1791,43 +1818,48 @@ dependencies = [ "httpdate", "itoa 0.4.8", "pin-project-lite 0.2.9", - "socket2 0.4.7", - "tokio 1.21.2", + "socket2 0.4.9", + "tokio 1.26.0", "tower-service", "tracing", "want", ] [[package]] -name = "hyper-timeout" -version = "0.4.1" +name = "hyper-openssl" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b" dependencies = [ + "http", "hyper", - "pin-project-lite 0.2.9", - "tokio 1.21.2", - "tokio-io-timeout", + "linked_hash_set", + "once_cell", + "openssl", + "openssl-sys", + "parking_lot 0.12.1", + "tokio 1.26.0", + "tokio-openssl 0.6.3", + "tower-layer", ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "hyper-timeout" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "bytes 1.2.1", "hyper", - "native-tls", - "tokio 1.21.2", - "tokio-native-tls", + "pin-project-lite 0.2.9", + "tokio 1.26.0", + "tokio-io-timeout", ] [[package]] name = "iana-time-zone" -version = "0.1.51" +version = "0.1.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1887,9 +1919,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", "hashbrown", @@ -1904,6 +1936,16 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "io-lifetimes" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3" +dependencies = [ + "libc", + "windows-sys 0.45.0", +] + [[package]] name = "iovec" version = "0.1.4" @@ -1948,27 +1990,28 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" dependencies = [ "wasm-bindgen", ] [[package]] name = "json-patch" -version = "0.2.6" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" +checksum = "e712e62827c382a77b87f590532febb1f8b2fdbc3eefa1ee37fe7281687075ef" dependencies = [ "serde", "serde_json", + "thiserror", "treediff", ] @@ -1985,12 +2028,12 @@ dependencies = [ [[package]] name = "k8s-openapi" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0489fc937cc7616a9abfa61bf39c250d7e32e1325ef028c8d9278dd24ea395b3" +checksum = "3d1985030683a2bac402cbda61222195de80d3f66b4c87ab56e5fea379bd98c3" dependencies = [ - "base64 0.13.1", - "bytes 1.2.1", + "base64 0.20.0", + "bytes 1.4.0", "chrono", "schemars", "serde", @@ -2010,9 +2053,9 @@ dependencies = [ [[package]] name = "kube" -version = "0.69.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86835e9147615457c1edc2b11c723acd1d21372e9cefa80a9d2742f6d69042d0" +checksum = "414d80c69906a91e8ecf4ae16d0fb504e19aa6b099135d35d85298b4e4be3ed3" dependencies = [ "k8s-openapi", "kube-client", @@ -2022,12 +2065,12 @@ dependencies = [ [[package]] name = "kube-client" -version = "0.69.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71f8aa916ee8290fbd0af76b3a28093a8786fccb6286902095a5243484447971" +checksum = "6dc5ae0b9148b4e2ebb0dabda06a0cd65b1eed2f41d792d49787841a68050283" dependencies = [ - "base64 0.13.1", - "bytes 1.2.1", + "base64 0.20.0", + "bytes 1.4.0", "chrono", "dirs-next", "either", @@ -2035,8 +2078,8 @@ dependencies = [ "http", "http-body", "hyper", + "hyper-openssl", "hyper-timeout", - "hyper-tls", "jsonpath_lib", "k8s-openapi", "kube-core", @@ -2048,9 +2091,8 @@ dependencies = [ "serde_json", "serde_yaml", "thiserror", - "tokio 1.21.2", - "tokio-native-tls", - "tokio-util 0.6.10", + "tokio 1.26.0", + "tokio-util 0.7.7", "tower", "tower-http", "tracing", @@ -2058,9 +2100,9 @@ dependencies = [ [[package]] name = "kube-core" -version = "0.69.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da41f98f213796a68fcd4510c88b5fd36de131c1ea30d152474c3f2e1bef1a72" +checksum = "98331c6f1354893f7c50da069e43a3fd1c84e55bbedc7765d9db22ec3291d07d" dependencies = [ "chrono", "form_urlencoded", @@ -2076,38 +2118,39 @@ dependencies = [ [[package]] name = "kube-derive" -version = "0.69.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd6fdc2e1615a3aecd7e90fe4bda3ba32379e38193251d4ddaccba26579fe22" +checksum = "e4be6ff26b9a34ce831d341e8b33bc78986a33c1be88f5bf9ca84e92e98b1dfb" dependencies = [ "darling", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "serde_json", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "kube-runtime" -version = "0.69.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e8bf2258850dbc0a062b561656a1d7020fa8040d552e149f0a0361f0d6794e" +checksum = "b698eb8998b46683b0dc3c2ce72c80bc308fc8159f25afa719668c290a037a57" dependencies = [ "ahash", + "async-trait", "backoff", "derivative 2.2.0", "futures", "json-patch", "k8s-openapi", "kube-client", - "parking_lot 0.11.2", + "parking_lot 0.12.1", "pin-project 1.0.12", "serde", "serde_json", "smallvec", "thiserror", - "tokio 1.21.2", - "tokio-util 0.6.10", + "tokio 1.26.0", + "tokio-util 0.7.7", "tracing", ] @@ -2134,9 +2177,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.137" +version = "0.2.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" [[package]] name = "libudev-sys" @@ -2150,9 +2193,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" dependencies = [ "cc", ] @@ -2163,6 +2206,21 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +[[package]] +name = "linked_hash_set" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + [[package]] name = "lock_api" version = "0.4.9" @@ -2256,14 +2314,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] @@ -2320,9 +2378,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7e25b214433f669161f414959594216d8e6ba83b6679d3db96899c0b4639033" dependencies = [ "cfg-if 1.0.0", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2332,9 +2390,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dffc15b97456ecc84d2bde8c1df79145e154f45225828c4361f676e1b82acd6" dependencies = [ "cfg-if 1.0.0", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2361,24 +2419,6 @@ dependencies = [ "twoway", ] -[[package]] -name = "native-tls" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "net2" version = "0.2.38" @@ -2417,19 +2457,19 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ - "hermit-abi", + "hermit-abi 0.2.6", "libc", ] [[package]] name = "once_cell" -version = "1.15.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "onvif-discovery-handler" @@ -2439,7 +2479,7 @@ dependencies = [ "akri-onvif", "env_logger", "log", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -2457,7 +2497,7 @@ dependencies = [ "base64 0.12.3", "bitflags", "byteorder", - "bytes 1.2.1", + "bytes 1.4.0", "chrono", "derivative 1.0.4", "foreign-types", @@ -2474,8 +2514,8 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "time 0.1.44", - "tokio 1.21.2", + "time 0.1.45", + "tokio 1.26.0", "tokio-util 0.6.10", "url 1.7.2", "uuid", @@ -2489,7 +2529,7 @@ dependencies = [ "akri-opcua", "env_logger", "log", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -2506,9 +2546,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.42" +version = "0.10.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" +checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -2525,22 +2565,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - [[package]] name = "openssl-sys" -version = "0.9.77" +version = "0.9.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a" +checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7" dependencies = [ "autocfg", "cc", @@ -2588,7 +2622,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.4", + "parking_lot_core 0.9.7", ] [[package]] @@ -2607,22 +2641,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.4" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "pem" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" dependencies = [ "base64 0.13.1", ] @@ -2673,9 +2707,9 @@ checksum = "f4f9272122f5979a6511a749af9db9bfc810393f63119970d7085fed1c4ea0db" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2723,9 +2757,9 @@ version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2734,9 +2768,9 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2759,9 +2793,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "polling" @@ -2779,9 +2813,9 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" @@ -2829,9 +2863,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.47" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" dependencies = [ "unicode-ident", ] @@ -2890,7 +2924,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "prost-derive", ] @@ -2900,7 +2934,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "heck 0.3.3", "itertools", "log", @@ -2920,9 +2954,9 @@ checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba" dependencies = [ "anyhow", "itertools", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2931,7 +2965,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "prost", ] @@ -2958,11 +2992,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" dependencies = [ - "proc-macro2 1.0.47", + "proc-macro2 1.0.51", ] [[package]] @@ -3073,15 +3107,6 @@ version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "reqwest" version = "0.11.8" @@ -3089,7 +3114,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c4e0a76dc12a116108933f6301b95e83634e0c47b0afbed6abbaa0601e99258" dependencies = [ "base64 0.13.1", - "bytes 1.2.1", + "bytes 1.4.0", "encoding_rs", "futures-core", "futures-util", @@ -3107,7 +3132,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "tokio 1.21.2", + "tokio 1.26.0", "url 2.3.1", "wasm-bindgen", "wasm-bindgen-futures", @@ -3167,6 +3192,20 @@ dependencies = [ "semver 1.0.14", ] +[[package]] +name = "rustix" +version = "0.36.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.45.0", +] + [[package]] name = "rustls" version = "0.19.1" @@ -3191,9 +3230,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "safemem" @@ -3201,21 +3240,11 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" -[[package]] -name = "schannel" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" -dependencies = [ - "lazy_static", - "windows-sys 0.36.1", -] - [[package]] name = "schemars" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5fb6c61f29e723026dc8e923d94c694313212abbecbbe5f55a7748eec5b307" +checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" dependencies = [ "dyn-clone", "schemars_derive", @@ -3225,14 +3254,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f188d036977451159430f3b8dc82ec76364a42b7e289c2b18a9a18f4470058e9" +checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "serde_derive_internals", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -3249,9 +3278,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" [[package]] name = "sct" @@ -3273,29 +3302,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "security-framework" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "semver" version = "0.9.0" @@ -3319,9 +3325,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.147" +version = "1.0.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "8cdd151213925e7f1ab45a9bbfb129316bd00799784b174b7cc7bcd16961c49e" dependencies = [ "serde_derive", ] @@ -3338,13 +3344,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.147" +version = "1.0.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "4fc80d722935453bcafdc2c9a73cd6fac4dc1938f0346035d84bf99fa9e33217" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -3353,19 +3359,19 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] name = "serde_json" -version = "1.0.87" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" dependencies = [ "indexmap", - "itoa 1.0.4", + "itoa 1.0.6", "ryu", "serde", ] @@ -3377,7 +3383,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.4", + "itoa 1.0.6", "ryu", "serde", ] @@ -3446,18 +3452,18 @@ checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] @@ -3481,9 +3487,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi 0.3.9", @@ -3524,11 +3530,11 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "serde", "serde_derive", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -3538,13 +3544,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" dependencies = [ "base-x", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "serde", "serde_derive", "serde_json", "sha1 0.6.1", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -3599,34 +3605,33 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.103" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "unicode-ident", ] [[package]] name = "tempfile" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" dependencies = [ "cfg-if 1.0.0", "fastrand", - "libc", "redox_syscall", - "remove_dir_all", - "winapi 0.3.9", + "rustix", + "windows-sys 0.42.0", ] [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] @@ -3645,22 +3650,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -3674,9 +3679,9 @@ dependencies = [ [[package]] name = "time" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", @@ -3715,10 +3720,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "standback", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -3758,22 +3763,22 @@ dependencies = [ [[package]] name = "tokio" -version = "1.21.2" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" dependencies = [ "autocfg", - "bytes 1.2.1", + "bytes 1.4.0", "libc", "memchr", - "mio 0.8.5", + "mio 0.8.6", "num_cpus", "parking_lot 0.12.1", "pin-project-lite 0.2.9", "signal-hook-registry", - "socket2 0.4.7", + "socket2 0.4.9", "tokio-macros", - "winapi 0.3.9", + "windows-sys 0.45.0", ] [[package]] @@ -3783,38 +3788,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ "pin-project-lite 0.2.9", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] name = "tokio-macros" -version = "1.8.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] -name = "tokio-native-tls" -version = "0.3.0" +name = "tokio-openssl" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "3c4b08c5f4208e699ede3df2520aca2e82401b2de33f45e96696a074480be594" dependencies = [ - "native-tls", - "tokio 1.21.2", + "openssl", + "tokio 0.2.25", ] [[package]] name = "tokio-openssl" -version = "0.4.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c4b08c5f4208e699ede3df2520aca2e82401b2de33f45e96696a074480be594" +checksum = "c08f9ffb7809f1b20c1b398d92acf4cc719874b3b2b2d9ea2f09b4a80350878a" dependencies = [ + "futures-util", "openssl", - "tokio 0.2.25", + "openssl-sys", + "tokio 1.26.0", ] [[package]] @@ -3824,7 +3831,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ "rustls", - "tokio 1.21.2", + "tokio 1.26.0", "webpki", ] @@ -3836,7 +3843,7 @@ checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" dependencies = [ "futures-core", "pin-project-lite 0.2.9", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -3847,7 +3854,7 @@ checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", "log", - "tokio 1.21.2", + "tokio 1.26.0", "tungstenite", ] @@ -3871,26 +3878,27 @@ version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "futures-core", "futures-sink", "log", "pin-project-lite 0.2.9", - "slab", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] name = "tokio-util" -version = "0.7.4" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "futures-core", "futures-sink", "pin-project-lite 0.2.9", - "tokio 1.21.2", + "slab", + "tokio 1.26.0", + "tracing", ] [[package]] @@ -3902,7 +3910,7 @@ dependencies = [ "async-stream", "async-trait", "base64 0.13.1", - "bytes 1.2.1", + "bytes 1.4.0", "futures-core", "futures-util", "h2 0.3.3", @@ -3914,7 +3922,7 @@ dependencies = [ "pin-project 1.0.12", "prost", "prost-derive", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-rustls", "tokio-stream", "tokio-util 0.6.10", @@ -3931,10 +3939,10 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12b52d07035516c2b74337d2ac7746075e7dcae7643816c1b12c5ff8a7484c08" dependencies = [ - "proc-macro2 1.0.47", + "proc-macro2 1.0.51", "prost-build", - "quote 1.0.21", - "syn 1.0.103", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -3950,8 +3958,8 @@ dependencies = [ "pin-project-lite 0.2.9", "rand 0.8.5", "slab", - "tokio 1.21.2", - "tokio-util 0.7.4", + "tokio 1.26.0", + "tokio-util 0.7.7", "tower-layer", "tower-service", "tracing", @@ -3959,13 +3967,13 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.2.5" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ "base64 0.13.1", "bitflags", - "bytes 1.2.1", + "bytes 1.4.0", "futures-core", "futures-util", "http", @@ -4008,9 +4016,9 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -4034,9 +4042,9 @@ dependencies = [ [[package]] name = "treediff" -version = "3.0.2" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" +checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303" dependencies = [ "serde_json", ] @@ -4082,9 +4090,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "tungstenite" @@ -4094,7 +4102,7 @@ checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" dependencies = [ "base64 0.13.1", "byteorder", - "bytes 1.2.1", + "bytes 1.4.0", "http", "httparse", "log", @@ -4150,7 +4158,7 @@ dependencies = [ "akri-udev", "env_logger", "log", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -4164,7 +4172,7 @@ dependencies = [ "prometheus 0.12.0", "prost", "rscam", - "tokio 1.21.2", + "tokio 1.26.0", "tonic", "tonic-build", ] @@ -4186,9 +4194,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-normalization" @@ -4304,7 +4312,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed7b8be92646fc3d18b06147664ebc5f48d222686cb11a8755e561a735aacc6d" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "futures-channel", "futures-util", "headers", @@ -4321,10 +4329,10 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tokio-tungstenite", - "tokio-util 0.7.4", + "tokio-util 0.7.7", "tower-service", "tracing", ] @@ -4349,9 +4357,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -4359,16 +4367,16 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", "wasm-bindgen-shared", ] @@ -4386,32 +4394,32 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" dependencies = [ - "quote 1.0.21", + "quote 1.0.23", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" [[package]] name = "web-sys" @@ -4521,19 +4529,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - [[package]] name = "windows-sys" version = "0.42.0" @@ -4541,85 +4536,79 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", + "windows_x86_64_msvc", ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.0" +name = "windows-sys" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" +name = "windows-targets" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.42.0" +name = "windows_aarch64_gnullvm" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" [[package]] -name = "windows_i686_gnu" -version = "0.36.1" +name = "windows_aarch64_msvc" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_i686_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" - -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "winreg" @@ -4682,9 +4671,9 @@ checksum = "5c0b0a4701f203ebaecce4971a6bb8575aa07b617bdc39ddfc6ffeff3a38530d" dependencies = [ "heck 0.3.3", "log", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", "xml-rs", ] diff --git a/agent/Cargo.toml b/agent/Cargo.toml index 4d96ba847..169d93080 100644 --- a/agent/Cargo.toml +++ b/agent/Cargo.toml @@ -26,9 +26,9 @@ futures-core = "0.3" futures-util = "0.3" hyper = "0.14.2" h2 = "=0.3.3" -kube = { version = "0.69.1", features = ["derive"] } -kube-runtime = "0.69.1" -k8s-openapi = { version = "0.14.0", default-features = false, features = ["schemars", "v1_23"] } +kube = { version = "0.80.0", features = ["derive"] } +kube-runtime = "0.80.0" +k8s-openapi = { version = "0.17.0", default-features = false, features = ["schemars", "v1_23"] } lazy_static = "1.4" log = "0.4" mockall_double = "0.2.0" diff --git a/controller/Cargo.toml b/controller/Cargo.toml index 289312062..765793bc1 100644 --- a/controller/Cargo.toml +++ b/controller/Cargo.toml @@ -15,9 +15,9 @@ chrono = "0.4.10" env_logger = "0.9.0" futures = "0.3.1" anyhow = "1.0.38" -kube = { version = "0.69.1", features = ["derive"] } -kube-runtime = "0.69.1" -k8s-openapi = { version = "0.14.0", default-features = false, features = ["schemars", "v1_23"] } +kube = { version = "0.80.0", features = ["derive"] } +kube-runtime = "0.80.0" +k8s-openapi = { version = "0.17.0", default-features = false, features = ["schemars", "v1_23"] } lazy_static = "1.4" log = "0.4" prometheus = { version = "0.12.0", features = ["process"] } diff --git a/shared/Cargo.toml b/shared/Cargo.toml index 7f2b2eb8c..cfb7248ef 100644 --- a/shared/Cargo.toml +++ b/shared/Cargo.toml @@ -15,9 +15,9 @@ futures = "0.3.1" futures-util = "0.3" env_logger = "0.9.0" hyper = { version = "0.14.2", package = "hyper" } -kube = { version = "0.69.1", features = ["derive"] } -kube-runtime = "0.69.1" -k8s-openapi = { version = "0.14.0", default-features = false, features = ["schemars", "v1_23"] } +kube = { version = "0.80.0", features = ["derive"] } +kube-runtime = "0.80.0" +k8s-openapi = { version = "0.17.0", default-features = false, features = ["schemars", "v1_23"] } log = "0.4" mockall = "0.10.2" prometheus = { version = "0.11.0", features = ["process"] } diff --git a/shared/src/akri/configuration.rs b/shared/src/akri/configuration.rs index de5ae9cd9..4bd3db7ca 100644 --- a/shared/src/akri/configuration.rs +++ b/shared/src/akri/configuration.rs @@ -53,7 +53,6 @@ pub enum BrokerSpec { #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, JsonSchema)] // group = API_NAMESPACE and version = API_VERSION #[kube(group = "akri.sh", version = "v0", kind = "Configuration", namespaced)] -#[kube(apiextensions = "v1")] #[serde(rename_all = "camelCase")] pub struct ConfigurationSpec { /// This defines the `DiscoveryHandler` that should be used to diff --git a/shared/src/akri/instance.rs b/shared/src/akri/instance.rs index 0253c32c6..a436907b1 100644 --- a/shared/src/akri/instance.rs +++ b/shared/src/akri/instance.rs @@ -20,7 +20,6 @@ pub type InstanceList = ObjectList; #[serde(rename_all = "camelCase")] // group = API_NAMESPACE and version = API_VERSION #[kube(group = "akri.sh", version = "v0", kind = "Instance", namespaced)] -#[kube(apiextensions = "v1")] pub struct InstanceSpec { /// This contains the name of the corresponding Configuration pub configuration_name: String, diff --git a/webhooks/validating/configuration/Cargo.toml b/webhooks/validating/configuration/Cargo.toml index b852fcc40..a6b1b22b1 100644 --- a/webhooks/validating/configuration/Cargo.toml +++ b/webhooks/validating/configuration/Cargo.toml @@ -11,9 +11,9 @@ actix-web = { version = "3.3.2", features = ["openssl"] } actix-rt = "2.2.0" akri-shared = { path = "../../../shared" } clap = "3.2.20" -kube = { version = "0.69.1", features = ["derive"] } -kube-runtime = "0.69.1" -k8s-openapi = { version = "0.14.0", default-features = false, features = ["schemars", "v1_23"] } +kube = { version = "0.80.0", features = ["derive"] } +kube-runtime = "0.80.0" +k8s-openapi = { version = "0.17.0", default-features = false, features = ["schemars", "v1_23"] } openapi = { git = "https://github.com/DazWilkin/openapi-admission-v1", tag = "v1.1.0" } openssl = "0.10" rustls = "0.19.0" From 71f9badb5185a17b8984ca9e2dbe86992b1b6ae8 Mon Sep 17 00:00:00 2001 From: Nicolas Belouin Date: Thu, 9 Mar 2023 13:44:52 +0100 Subject: [PATCH 2/5] controller: Retry when watch errors occurs According to Kube-rs documentation, when a watch error occurs (e.g because of the kube API being currently unavailable), the `Watcher` still forwards the error, but will retry if the receiver continues to wait for a new event. This commit changes how the `Watcher` is used in order to handle those errors and let the `Watcher` retry. A backoff mechanism is also setup so we don't end up retrying forever. Signed-off-by: Nicolas Belouin --- controller/src/util/instance_action.rs | 18 +++++++++++----- controller/src/util/node_watcher.rs | 20 +++++++++++------ controller/src/util/pod_watcher.rs | 30 +++++++++++++++----------- 3 files changed, 44 insertions(+), 24 deletions(-) diff --git a/controller/src/util/instance_action.rs b/controller/src/util/instance_action.rs index b0d83d254..862cfc340 100644 --- a/controller/src/util/instance_action.rs +++ b/controller/src/util/instance_action.rs @@ -13,7 +13,8 @@ use futures::{StreamExt, TryStreamExt}; use k8s_openapi::api::batch::v1::JobSpec; use k8s_openapi::api::core::v1::{Pod, PodSpec}; use kube::api::{Api, ListParams}; -use kube_runtime::watcher::{watcher, Event}; +use kube_runtime::watcher::{default_backoff, watcher, Event}; +use kube_runtime::WatchStreamExt; use log::{error, info, trace}; use std::collections::HashMap; use std::sync::Arc; @@ -92,12 +93,19 @@ async fn internal_do_instance_watch( ) -> Result<(), Box> { trace!("internal_do_instance_watch - enter"); let resource = Api::::all(kube_interface.get_kube_client()); - let watcher = watcher(resource, ListParams::default()); + let watcher = watcher(resource, ListParams::default()).backoff(default_backoff()); let mut informer = watcher.boxed(); let mut first_event = true; - // Currently, this does not handle None except to break the - // while. - while let Some(event) = informer.try_next().await? { + // Currently, this does not handle None except to break the loop. + loop { + let event = match informer.try_next().await { + Err(e) => { + error!("Error during watch: {}", e); + continue; + } + Ok(None) => break, + Ok(Some(event)) => event, + }; // Aquire lock to ensure cleanup_instance_and_configuration_svcs and the // inner loop handle_instance call in internal_do_instance_watch // cannot execute at the same time. diff --git a/controller/src/util/node_watcher.rs b/controller/src/util/node_watcher.rs index 9da65a68a..98079dcab 100644 --- a/controller/src/util/node_watcher.rs +++ b/controller/src/util/node_watcher.rs @@ -9,8 +9,9 @@ use akri_shared::{ use futures::{StreamExt, TryStreamExt}; use k8s_openapi::api::core::v1::{Node, NodeStatus}; use kube::api::{Api, ListParams}; -use kube_runtime::watcher::{watcher, Event}; -use log::{info, trace}; +use kube_runtime::watcher::{default_backoff, watcher, Event}; +use kube_runtime::WatchStreamExt; +use log::{error, info, trace}; use std::collections::HashMap; /// Node states that NodeWatcher is interested in @@ -55,13 +56,20 @@ impl NodeWatcher { trace!("watch - enter"); let kube_interface = k8s::KubeImpl::new().await?; let resource = Api::::all(kube_interface.get_kube_client()); - let watcher = watcher(resource, ListParams::default()); + let watcher = watcher(resource, ListParams::default()).backoff(default_backoff()); let mut informer = watcher.boxed(); let mut first_event = true; - // Currently, this does not handle None except to break the - // while. - while let Some(event) = informer.try_next().await? { + // Currently, this does not handle None except to break the loop. + loop { + let event = match informer.try_next().await { + Err(e) => { + error!("Error during watch: {}", e); + continue; + } + Ok(None) => break, + Ok(Some(event)) => event, + }; self.handle_node(event, &kube_interface, &mut first_event) .await?; } diff --git a/controller/src/util/pod_watcher.rs b/controller/src/util/pod_watcher.rs index 0ef202ead..829257733 100644 --- a/controller/src/util/pod_watcher.rs +++ b/controller/src/util/pod_watcher.rs @@ -13,8 +13,9 @@ use async_std::sync::Mutex; use futures::{StreamExt, TryStreamExt}; use k8s_openapi::api::core::v1::{Pod, ServiceSpec}; use kube::api::{Api, ListParams}; -use kube_runtime::watcher::{watcher, Event}; -use log::{info, trace}; +use kube_runtime::watcher::{default_backoff, watcher, Event}; +use kube_runtime::WatchStreamExt; +use log::{error, info, trace}; use std::{collections::HashMap, sync::Arc}; type PodSlice = [Pod]; @@ -122,28 +123,31 @@ impl BrokerPodWatcher { } /// This watches for broker Pod events - pub async fn watch( - &mut self, - ) -> Result<(), Box> { + pub async fn watch(&mut self) -> anyhow::Result<()> { trace!("watch - enter"); let kube_interface = k8s::KubeImpl::new().await?; let resource = Api::::all(kube_interface.get_kube_client()); let watcher = watcher( resource, ListParams::default().labels(AKRI_CONFIGURATION_LABEL_NAME), - ); + ) + .backoff(default_backoff()); let mut informer = watcher.boxed(); let synchronization = Arc::new(Mutex::new(())); let mut first_event = true; loop { - // Currently, this does not handle None except to break the - // while. - while let Some(event) = informer.try_next().await? { - let _lock = synchronization.lock().await; - self.handle_pod(event, &kube_interface, &mut first_event) - .await?; - } + let event = match informer.try_next().await { + Err(e) => { + error!("Error during watch: {}", e); + continue; + } + Ok(None) => return Err(anyhow::anyhow!("Watch stream ended")), + Ok(Some(event)) => event, + }; + let _lock = synchronization.lock().await; + self.handle_pod(event, &kube_interface, &mut first_event) + .await?; } } From 90079c6c2665583422c365a8948f3de62795eb86 Mon Sep 17 00:00:00 2001 From: Nicolas Belouin Date: Thu, 9 Mar 2023 16:30:04 +0100 Subject: [PATCH 3/5] Make agent less likely to restart on kube API error This commit changes the way config are watched and the events handled, this change have, as main purpose, to ensure the agent won't restart if it looses the connection to the kube API. Two mechanisms are employed to do this: - Change the Watcher use to make it re-try in case of error (same change that was done in 846662eae8af82d8546d03637bcf551084cb73b4 for the controller) - Handle the `Restarted` event so that in case of de-sync with API we are still able to recover without restarting (i.e handle creation/modification and deletion of `Configuration resources that occured during the connection loss). The latter required some refactor of the `ConfigMap` to ensure we have all the required information to do delete operation without having the related event (after a `Restart` event only the current state of the resources are available, not their events). This refactor also fixed a yet undetected issue: We were unable to handle two `Configuration` resources with the same name even accross different namespaces. Signed-off-by: Nicolas Belouin --- agent/src/util/config_action.rs | 263 ++++++++++++++++++++------------ 1 file changed, 165 insertions(+), 98 deletions(-) diff --git a/agent/src/util/config_action.rs b/agent/src/util/config_action.rs index e154fc522..495e2d2da 100644 --- a/agent/src/util/config_action.rs +++ b/agent/src/util/config_action.rs @@ -15,12 +15,17 @@ use akri_shared::{ }; use futures::{StreamExt, TryStreamExt}; use kube::api::{Api, ListParams}; -use kube_runtime::watcher::{watcher, Event}; -use log::{info, trace}; -use std::{collections::HashMap, sync::Arc}; +use kube_runtime::watcher::{default_backoff, watcher, Event}; +use kube_runtime::WatchStreamExt; +use log::{error, info, trace}; +use std::{ + collections::{HashMap, HashSet}, + sync::Arc, +}; use tokio::sync::{broadcast, mpsc, RwLock}; -type ConfigMap = Arc>>; +type ConfigId = (String, String); +type ConfigMap = Arc>>; /// Information for managing a Configuration, such as all applied Instances of that Configuration /// and senders for ceasing to discover instances upon Configuration deletion. @@ -96,12 +101,18 @@ async fn watch_for_config_changes( ) -> Result<(), Box> { trace!("watch_for_config_changes - start"); let resource = Api::::all(kube_interface.get_kube_client()); - let watcher = watcher(resource, ListParams::default()); + let watcher = watcher(resource, ListParams::default()).backoff(default_backoff()); let mut informer = watcher.boxed(); - let mut first_event = true; - // Currently, this does not handle None except to break the - // while. - while let Some(event) = informer.try_next().await? { + // Currently, this does not handle None except to break the loop. + loop { + let event = match informer.try_next().await { + Err(e) => { + error!("Error during watch: {}", e); + continue; + } + Ok(None) => break, + Ok(Some(event)) => event, + }; let new_discovery_handler_sender = new_discovery_handler_sender.clone(); handle_config( kube_interface, @@ -109,7 +120,6 @@ async fn watch_for_config_changes( config_map.clone(), discovery_handler_map.clone(), new_discovery_handler_sender, - &mut first_event, ) .await? } @@ -124,7 +134,6 @@ async fn handle_config( config_map: ConfigMap, discovery_handler_map: RegisteredDiscoveryHandlerMap, new_discovery_handler_sender: broadcast::Sender, - first_event: &mut bool, ) -> anyhow::Result<()> { trace!("handle_config - something happened to a configuration"); match event { @@ -133,59 +142,93 @@ async fn handle_config( "handle_config - added or modified Configuration {:?}", config.metadata.name.as_ref().unwrap(), ); - // Applied events can either be newly added Configurations or modified Configurations. - // If modified delete all associated instances and device plugins and then recreate them to reflect updated config - // TODO: more gracefully handle modified Configurations by determining what changed rather than delete/re-add - if config_map - .read() - .await - .contains_key(config.metadata.name.as_ref().unwrap()) - { - let do_recreate = should_recreate_config(&config, config_map.clone()).await?; - if !do_recreate { - trace!( - "handle_config - config {:?} has not changed. ignoring config modified event.", - config.metadata.name, - ); - return Ok(()); - } - info!( - "handle_config - modified Configuration {:?}", - config.metadata.name, - ); - handle_config_delete(kube_interface, &config, config_map.clone()).await?; - } - - tokio::spawn(async move { - handle_config_add( - Arc::new(k8s::KubeImpl::new().await.unwrap()), - &config, - config_map, - discovery_handler_map, - new_discovery_handler_sender, - ) - .await - .unwrap(); - }); + handle_config_apply( + kube_interface, + config, + config_map, + discovery_handler_map, + new_discovery_handler_sender, + ) + .await?; } Event::Deleted(config) => { - info!( - "handle_config - deleted Configuration {:?}", - config.metadata.name, + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), ); - handle_config_delete(kube_interface, &config, config_map).await?; + info!("handle_config - deleted Configuration {:?}", config_id,); + handle_config_delete(kube_interface, config_id, config_map).await?; } - Event::Restarted(_configs) => { - if *first_event { - info!("handle_config - watcher started"); - } else { - return Err(anyhow::anyhow!( - "Configuration watcher restarted - throwing error to restart agent" - )); + Event::Restarted(configs) => { + let new_configs: HashSet = configs + .iter() + .map(|config| { + ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ) + }) + .collect(); + let old_configs: HashSet = config_map.read().await.keys().cloned().collect(); + for config_id in old_configs.difference(&new_configs) { + handle_config_delete(kube_interface, config_id.clone(), config_map.clone()).await?; } + for config in configs { + handle_config_apply( + kube_interface, + config, + config_map.clone(), + discovery_handler_map.clone(), + new_discovery_handler_sender.clone(), + ) + .await?; + } + } + } + Ok(()) +} + +async fn handle_config_apply( + kube_interface: &impl KubeInterface, + config: Configuration, + config_map: ConfigMap, + discovery_handler_map: RegisteredDiscoveryHandlerMap, + new_discovery_handler_sender: broadcast::Sender, +) -> anyhow::Result<()> { + // Applied events can either be newly added Configurations or modified Configurations. + // If modified delete all associated instances and device plugins and then recreate them to reflect updated config + // TODO: more gracefully handle modified Configurations by determining what changed rather than delete/re-add + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); + if config_map.read().await.contains_key(&config_id) { + let do_recreate = should_recreate_config(&config, config_map.clone()).await?; + if !do_recreate { + trace!( + "handle_config - config {:?} has not changed. ignoring config modified event.", + config.metadata.name, + ); + return Ok(()); } + info!( + "handle_config - modified Configuration {:?}", + config.metadata.name, + ); + handle_config_delete(kube_interface, config_id, config_map.clone()).await?; } - *first_event = false; + + tokio::spawn(async move { + handle_config_add( + Arc::new(k8s::KubeImpl::new().await.unwrap()), + &config, + config_map, + discovery_handler_map, + new_discovery_handler_sender, + ) + .await + .unwrap(); + }); Ok(()) } @@ -198,7 +241,10 @@ async fn handle_config_add( discovery_handler_map: RegisteredDiscoveryHandlerMap, new_discovery_handler_sender: broadcast::Sender, ) -> Result<(), Box> { - let config_name = config.metadata.name.clone(); + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); // Create a new instance map for this config and add it to the config map let instance_map: InstanceMap = Arc::new(RwLock::new(HashMap::new())); let (stop_discovery_sender, _): (broadcast::Sender<()>, broadcast::Receiver<()>) = @@ -211,10 +257,7 @@ async fn handle_config_add( finished_discovery_receiver, last_generation: config.metadata.generation, }; - config_map - .write() - .await - .insert(config_name.clone().unwrap(), config_info); + config_map.write().await.insert(config_id, config_info); let config = config.clone(); // Keep discovering instances until the config is deleted, signaled by a message from handle_config_delete @@ -240,19 +283,18 @@ async fn handle_config_add( /// and deletes the Instance CRD. async fn handle_config_delete( kube_interface: &impl KubeInterface, - config: &Configuration, + config_id: ConfigId, config_map: ConfigMap, ) -> anyhow::Result<()> { - let name = config.metadata.name.clone().unwrap(); trace!( - "handle_config_delete - for config {} telling do_periodic_discovery to end", - name + "handle_config_delete - for config {:?} telling do_periodic_discovery to end", + config_id ); // Send message to stop observing instances' availability and waits until response is received if config_map .read() .await - .get(&name) + .get(&config_id) .unwrap() .stop_discovery_sender .clone() @@ -262,20 +304,20 @@ async fn handle_config_delete( config_map .write() .await - .get_mut(&name) + .get_mut(&config_id) .unwrap() .finished_discovery_receiver .recv() .await .unwrap(); trace!( - "handle_config_delete - for config {} received message that do_periodic_discovery ended", - name + "handle_config_delete - for config {:?} received message that do_periodic_discovery ended", + config_id ); } else { trace!( - "handle_config_delete - for config {} do_periodic_discovery receiver has been dropped", - name + "handle_config_delete - for config {:?} do_periodic_discovery receiver has been dropped", + config_id ); } @@ -283,10 +325,14 @@ async fn handle_config_delete( let instance_map: InstanceMap; { let mut config_map_locked = config_map.write().await; - instance_map = config_map_locked.get(&name).unwrap().instance_map.clone(); - config_map_locked.remove(&name); + instance_map = config_map_locked + .get(&config_id) + .unwrap() + .instance_map + .clone(); + config_map_locked.remove(&config_id); } - delete_all_instances_in_map(kube_interface, instance_map, config).await?; + delete_all_instances_in_map(kube_interface, instance_map, config_id).await?; Ok(()) } @@ -297,12 +343,15 @@ async fn should_recreate_config( config: &Configuration, config_map: ConfigMap, ) -> Result { - let name = config.metadata.name.as_ref().unwrap(); + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); let last_generation = config_map .read() .await - .get(name) - .ok_or_else(|| anyhow::anyhow!("Configuration {} not found in ConfigMap", &name))? + .get(&config_id) + .ok_or_else(|| anyhow::anyhow!("Configuration {:?} not found in ConfigMap", &config_id))? .last_generation; if config.metadata.generation <= last_generation { @@ -316,23 +365,22 @@ async fn should_recreate_config( pub async fn delete_all_instances_in_map( kube_interface: &impl k8s::KubeInterface, instance_map: InstanceMap, - config: &Configuration, + (namespace, name): ConfigId, ) -> anyhow::Result<()> { let mut instance_map_locked = instance_map.write().await; let instances_to_delete_map = instance_map_locked.clone(); - let namespace = config.metadata.namespace.as_ref().unwrap(); for (instance_name, instance_info) in instances_to_delete_map { trace!( "handle_config_delete - found Instance {} associated with deleted config {:?} ... sending message to end list_and_watch", instance_name, - config.metadata.name + (namespace.clone(), name.clone()), ); instance_info .list_and_watch_message_sender .send(device_plugin_service::ListAndWatchMessageKind::End) .unwrap(); instance_map_locked.remove(&instance_name); - try_delete_instance(kube_interface, &instance_name, namespace).await?; + try_delete_instance(kube_interface, &instance_name, namespace.as_str()).await?; } Ok(()) } @@ -346,38 +394,51 @@ mod config_action_tests { }; use super::*; use akri_shared::{akri::configuration::Configuration, k8s::MockKubeInterface}; - use std::{collections::HashMap, fs, sync::Arc}; + use std::{collections::HashMap, fs, sync::Arc, vec}; use tokio::sync::{broadcast, RwLock}; - // Test that watcher errors on restarts unless it is the first restart (aka initial startup) + // Test that watcher restarts correctly add/remove Configurations #[tokio::test] async fn test_handle_watcher_restart() { let _ = env_logger::builder().is_test(true).try_init(); + + let path_to_config = "../test/yaml/config-a.yaml"; + let config_yaml = fs::read_to_string(path_to_config).expect("Unable to read file"); + let config: Configuration = serde_yaml::from_str(&config_yaml).unwrap(); + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); + let config_map = Arc::new(RwLock::new(HashMap::new())); let dh_map = Arc::new(std::sync::Mutex::new(HashMap::new())); let (tx, mut _rx1) = broadcast::channel(1); - let mut first_event = true; assert!(handle_config( &MockKubeInterface::new(), - Event::Restarted(Vec::new()), + Event::Restarted(vec![config]), config_map.clone(), dh_map.clone(), tx.clone(), - &mut first_event ) .await .is_ok()); - first_event = false; + + // Wait for `handle_config_add` to effectively add the config to the map + // FIXME: This looks a lot like a race window + tokio::time::sleep(tokio::time::Duration::from_micros(100)).await; + assert!(config_map.read().await.contains_key(&config_id)); + assert!(handle_config( &MockKubeInterface::new(), Event::Restarted(Vec::new()), - config_map, + config_map.clone(), dh_map, tx, - &mut first_event ) .await - .is_err()); + .is_ok()); + + assert!(!config_map.read().await.contains_key(&config_id)); } #[tokio::test] @@ -386,7 +447,10 @@ mod config_action_tests { let path_to_config = "../test/yaml/config-a.yaml"; let config_yaml = fs::read_to_string(path_to_config).expect("Unable to read file"); let config: Configuration = serde_yaml::from_str(&config_yaml).unwrap(); - let config_name = config.metadata.name.clone().unwrap(); + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); let mut list_and_watch_message_receivers = Vec::new(); let mut visible_discovery_results = Vec::new(); let mut mock = MockKubeInterface::new(); @@ -399,9 +463,9 @@ mod config_action_tests { .await; let (stop_discovery_sender, mut stop_discovery_receiver) = broadcast::channel(2); let (finished_discovery_sender, finished_discovery_receiver) = mpsc::channel(2); - let mut map: HashMap = HashMap::new(); + let mut map: HashMap = HashMap::new(); map.insert( - config_name.clone(), + config_id.clone(), ConfigInfo { stop_discovery_sender, instance_map: instance_map.clone(), @@ -415,11 +479,11 @@ mod config_action_tests { .times(2) .returning(move |_, _| Ok(())); tokio::spawn(async move { - handle_config_delete(&mock, &config, config_map.clone()) + handle_config_delete(&mock, config_id.clone(), config_map.clone()) .await .unwrap(); // Assert that config is removed from map after it has been deleted - assert!(!config_map.read().await.contains_key(&config_name)); + assert!(!config_map.read().await.contains_key(&config_id)); }); // Assert that handle_config_delete tells start_discovery to end @@ -502,9 +566,12 @@ mod config_action_tests { finished_discovery_receiver, last_generation: Some(1), }; - let config_name = config.metadata.name.clone().unwrap(); + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); let config_map: ConfigMap = Arc::new(RwLock::new(HashMap::new())); - config_map.write().await.insert(config_name, config_info); + config_map.write().await.insert(config_id, config_info); (config, config_map) } } From 740264622114abbde687d0129ecaf9a87a5c2ae4 Mon Sep 17 00:00:00 2001 From: Nicolas Belouin Date: Wed, 5 Apr 2023 11:17:38 +0200 Subject: [PATCH 4/5] agent: Fix use of "wrong" kube api client All calls to `handle_config_add` used a newly created `KubeImpl` object this led to tests using the real Kube client rather than the mocked one. In order to fix this, use `Arc` (as required by `handle_config_add`) at creation time and propagate the `Arc` where needed. Also goes from `impl` to `dyn` wherever needed. Signed-off-by: Nicolas Belouin --- agent/src/util/config_action.rs | 39 +++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/agent/src/util/config_action.rs b/agent/src/util/config_action.rs index 495e2d2da..482b8a6af 100644 --- a/agent/src/util/config_action.rs +++ b/agent/src/util/config_action.rs @@ -53,7 +53,7 @@ pub async fn do_config_watch( ) -> Result<(), Box> { info!("do_config_watch - enter"); let config_map: ConfigMap = Arc::new(RwLock::new(HashMap::new())); - let kube_interface = k8s::KubeImpl::new().await?; + let kube_interface = Arc::new(k8s::KubeImpl::new().await?); let mut tasks = Vec::new(); // Handle pre-existing configs @@ -62,9 +62,10 @@ pub async fn do_config_watch( let config_map = config_map.clone(); let discovery_handler_map = discovery_handler_map.clone(); let new_discovery_handler_sender = new_discovery_handler_sender.clone(); + let new_kube_interface = kube_interface.clone(); tasks.push(tokio::spawn(async move { handle_config_add( - Arc::new(k8s::KubeImpl::new().await.unwrap()), + new_kube_interface, &config, config_map, discovery_handler_map, @@ -78,7 +79,7 @@ pub async fn do_config_watch( // Watch for new configs and changes tasks.push(tokio::spawn(async move { watch_for_config_changes( - &kube_interface, + kube_interface, config_map, discovery_handler_map, new_discovery_handler_sender, @@ -94,7 +95,7 @@ pub async fn do_config_watch( /// This watches for Configuration events async fn watch_for_config_changes( - kube_interface: &impl KubeInterface, + kube_interface: Arc, config_map: ConfigMap, discovery_handler_map: RegisteredDiscoveryHandlerMap, new_discovery_handler_sender: broadcast::Sender, @@ -115,7 +116,7 @@ async fn watch_for_config_changes( }; let new_discovery_handler_sender = new_discovery_handler_sender.clone(); handle_config( - kube_interface, + kube_interface.clone(), event, config_map.clone(), discovery_handler_map.clone(), @@ -129,7 +130,7 @@ async fn watch_for_config_changes( /// This takes an event off the Configuration stream and delegates it to the /// correct function based on the event type. async fn handle_config( - kube_interface: &impl KubeInterface, + kube_interface: Arc, event: Event, config_map: ConfigMap, discovery_handler_map: RegisteredDiscoveryHandlerMap, @@ -157,7 +158,7 @@ async fn handle_config( config.metadata.name.clone().unwrap(), ); info!("handle_config - deleted Configuration {:?}", config_id,); - handle_config_delete(kube_interface, config_id, config_map).await?; + handle_config_delete(kube_interface.as_ref(), config_id, config_map).await?; } Event::Restarted(configs) => { let new_configs: HashSet = configs @@ -171,11 +172,16 @@ async fn handle_config( .collect(); let old_configs: HashSet = config_map.read().await.keys().cloned().collect(); for config_id in old_configs.difference(&new_configs) { - handle_config_delete(kube_interface, config_id.clone(), config_map.clone()).await?; + handle_config_delete( + kube_interface.as_ref(), + config_id.clone(), + config_map.clone(), + ) + .await?; } for config in configs { handle_config_apply( - kube_interface, + kube_interface.clone(), config, config_map.clone(), discovery_handler_map.clone(), @@ -189,7 +195,7 @@ async fn handle_config( } async fn handle_config_apply( - kube_interface: &impl KubeInterface, + kube_interface: Arc, config: Configuration, config_map: ConfigMap, discovery_handler_map: RegisteredDiscoveryHandlerMap, @@ -215,12 +221,12 @@ async fn handle_config_apply( "handle_config - modified Configuration {:?}", config.metadata.name, ); - handle_config_delete(kube_interface, config_id, config_map.clone()).await?; + handle_config_delete(kube_interface.as_ref(), config_id, config_map.clone()).await?; } tokio::spawn(async move { handle_config_add( - Arc::new(k8s::KubeImpl::new().await.unwrap()), + kube_interface, &config, config_map, discovery_handler_map, @@ -282,7 +288,7 @@ async fn handle_config_add( /// Then, for each of the Configuration's Instances, it signals the DevicePluginService to shutdown, /// and deletes the Instance CRD. async fn handle_config_delete( - kube_interface: &impl KubeInterface, + kube_interface: &dyn KubeInterface, config_id: ConfigId, config_map: ConfigMap, ) -> anyhow::Result<()> { @@ -363,7 +369,7 @@ async fn should_recreate_config( /// This shuts down all a Configuration's Instances and terminates the associated Device Plugins pub async fn delete_all_instances_in_map( - kube_interface: &impl k8s::KubeInterface, + kube_interface: &dyn k8s::KubeInterface, instance_map: InstanceMap, (namespace, name): ConfigId, ) -> anyhow::Result<()> { @@ -409,12 +415,13 @@ mod config_action_tests { config.metadata.namespace.clone().unwrap(), config.metadata.name.clone().unwrap(), ); + let kube_interface = Arc::new(MockKubeInterface::new()); let config_map = Arc::new(RwLock::new(HashMap::new())); let dh_map = Arc::new(std::sync::Mutex::new(HashMap::new())); let (tx, mut _rx1) = broadcast::channel(1); assert!(handle_config( - &MockKubeInterface::new(), + kube_interface.clone(), Event::Restarted(vec![config]), config_map.clone(), dh_map.clone(), @@ -429,7 +436,7 @@ mod config_action_tests { assert!(config_map.read().await.contains_key(&config_id)); assert!(handle_config( - &MockKubeInterface::new(), + kube_interface, Event::Restarted(Vec::new()), config_map.clone(), dh_map, From e491948387598792f1ad4a109d354f94ac24d7da Mon Sep 17 00:00:00 2001 From: Nicolas Belouin Date: Wed, 5 Apr 2023 08:44:48 +0200 Subject: [PATCH 5/5] Update version Signed-off-by: Nicolas Belouin --- Cargo.lock | 28 +++++++++---------- agent/Cargo.toml | 2 +- controller/Cargo.toml | 2 +- deployment/helm/Chart.yaml | 4 +-- .../debug-echo-discovery-handler/Cargo.toml | 2 +- .../onvif-discovery-handler/Cargo.toml | 2 +- .../opcua-discovery-handler/Cargo.toml | 2 +- .../udev-discovery-handler/Cargo.toml | 2 +- discovery-handlers/debug-echo/Cargo.toml | 2 +- discovery-handlers/onvif/Cargo.toml | 2 +- discovery-handlers/opcua/Cargo.toml | 2 +- discovery-handlers/udev/Cargo.toml | 2 +- discovery-utils/Cargo.toml | 2 +- samples/brokers/udev-video-broker/Cargo.toml | 2 +- shared/Cargo.toml | 2 +- version.txt | 2 +- webhooks/validating/configuration/Cargo.toml | 2 +- 17 files changed, 31 insertions(+), 31 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9e780ea03..8c23f6fb7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -333,7 +333,7 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "agent" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-debug-echo", "akri-discovery-utils", @@ -402,7 +402,7 @@ dependencies = [ [[package]] name = "akri-debug-echo" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-shared", @@ -422,7 +422,7 @@ dependencies = [ [[package]] name = "akri-discovery-utils" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-shared", "anyhow", @@ -444,7 +444,7 @@ dependencies = [ [[package]] name = "akri-onvif" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-shared", @@ -472,7 +472,7 @@ dependencies = [ [[package]] name = "akri-opcua" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-shared", @@ -496,7 +496,7 @@ dependencies = [ [[package]] name = "akri-shared" -version = "0.9.4" +version = "0.9.5" dependencies = [ "anyhow", "async-trait", @@ -525,7 +525,7 @@ dependencies = [ [[package]] name = "akri-udev" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "anyhow", @@ -999,7 +999,7 @@ checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" [[package]] name = "controller" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-shared", "anyhow", @@ -1199,7 +1199,7 @@ dependencies = [ [[package]] name = "debug-echo-discovery-handler" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-debug-echo", "akri-discovery-utils", @@ -2473,7 +2473,7 @@ checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "onvif-discovery-handler" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-onvif", @@ -2523,7 +2523,7 @@ dependencies = [ [[package]] name = "opcua-discovery-handler" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-opcua", @@ -4152,7 +4152,7 @@ dependencies = [ [[package]] name = "udev-discovery-handler" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-udev", @@ -4163,7 +4163,7 @@ dependencies = [ [[package]] name = "udev-video-broker" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-shared", "env_logger", @@ -4433,7 +4433,7 @@ dependencies = [ [[package]] name = "webhook-configuration" -version = "0.9.4" +version = "0.9.5" dependencies = [ "actix", "actix-rt 2.7.0", diff --git a/agent/Cargo.toml b/agent/Cargo.toml index 169d93080..d17c7e7d6 100644 --- a/agent/Cargo.toml +++ b/agent/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "agent" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring ", ""] edition = "2018" rust-version = "1.63.0" diff --git a/controller/Cargo.toml b/controller/Cargo.toml index 765793bc1..62a9f79a0 100644 --- a/controller/Cargo.toml +++ b/controller/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "controller" -version = "0.9.4" +version = "0.9.5" authors = ["", ""] edition = "2018" rust-version = "1.63.0" diff --git a/deployment/helm/Chart.yaml b/deployment/helm/Chart.yaml index fff9dc290..cdbef896a 100644 --- a/deployment/helm/Chart.yaml +++ b/deployment/helm/Chart.yaml @@ -15,9 +15,9 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.9.4 +version: 0.9.5 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. -appVersion: 0.9.4 +appVersion: 0.9.5 diff --git a/discovery-handler-modules/debug-echo-discovery-handler/Cargo.toml b/discovery-handler-modules/debug-echo-discovery-handler/Cargo.toml index 798e95f36..d279698a5 100644 --- a/discovery-handler-modules/debug-echo-discovery-handler/Cargo.toml +++ b/discovery-handler-modules/debug-echo-discovery-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "debug-echo-discovery-handler" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handler-modules/onvif-discovery-handler/Cargo.toml b/discovery-handler-modules/onvif-discovery-handler/Cargo.toml index 80f2bcbef..814eda212 100644 --- a/discovery-handler-modules/onvif-discovery-handler/Cargo.toml +++ b/discovery-handler-modules/onvif-discovery-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "onvif-discovery-handler" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handler-modules/opcua-discovery-handler/Cargo.toml b/discovery-handler-modules/opcua-discovery-handler/Cargo.toml index c080259b5..93ec5b90e 100644 --- a/discovery-handler-modules/opcua-discovery-handler/Cargo.toml +++ b/discovery-handler-modules/opcua-discovery-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "opcua-discovery-handler" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handler-modules/udev-discovery-handler/Cargo.toml b/discovery-handler-modules/udev-discovery-handler/Cargo.toml index 4910e6cda..1fa5af2cc 100644 --- a/discovery-handler-modules/udev-discovery-handler/Cargo.toml +++ b/discovery-handler-modules/udev-discovery-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "udev-discovery-handler" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handlers/debug-echo/Cargo.toml b/discovery-handlers/debug-echo/Cargo.toml index 556c63463..ae23498c3 100644 --- a/discovery-handlers/debug-echo/Cargo.toml +++ b/discovery-handlers/debug-echo/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-debug-echo" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handlers/onvif/Cargo.toml b/discovery-handlers/onvif/Cargo.toml index 2b712f9b2..75a8073cd 100644 --- a/discovery-handlers/onvif/Cargo.toml +++ b/discovery-handlers/onvif/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-onvif" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handlers/opcua/Cargo.toml b/discovery-handlers/opcua/Cargo.toml index 3eb6b6d00..cf15301b6 100644 --- a/discovery-handlers/opcua/Cargo.toml +++ b/discovery-handlers/opcua/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-opcua" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handlers/udev/Cargo.toml b/discovery-handlers/udev/Cargo.toml index 56a4afc70..59ed95b24 100644 --- a/discovery-handlers/udev/Cargo.toml +++ b/discovery-handlers/udev/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-udev" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-utils/Cargo.toml b/discovery-utils/Cargo.toml index 6a4d81059..904f19971 100644 --- a/discovery-utils/Cargo.toml +++ b/discovery-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-discovery-utils" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/samples/brokers/udev-video-broker/Cargo.toml b/samples/brokers/udev-video-broker/Cargo.toml index 819ff5715..b484c382e 100644 --- a/samples/brokers/udev-video-broker/Cargo.toml +++ b/samples/brokers/udev-video-broker/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "udev-video-broker" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring ", ""] edition = "2018" rust-version = "1.63.0" diff --git a/shared/Cargo.toml b/shared/Cargo.toml index cfb7248ef..149ef6490 100644 --- a/shared/Cargo.toml +++ b/shared/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-shared" -version = "0.9.4" +version = "0.9.5" authors = [""] edition = "2018" rust-version = "1.63.0" diff --git a/version.txt b/version.txt index a602fc9e2..b0bb87854 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.9.4 +0.9.5 diff --git a/webhooks/validating/configuration/Cargo.toml b/webhooks/validating/configuration/Cargo.toml index a6b1b22b1..ce834b2d0 100644 --- a/webhooks/validating/configuration/Cargo.toml +++ b/webhooks/validating/configuration/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "webhook-configuration" -version = "0.9.4" +version = "0.9.5" authors = ["DazWilkin "] edition = "2018" rust-version = "1.63.0"