diff --git a/Cargo.lock b/Cargo.lock index 0f04d6d..4a9ce39 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -45,12 +45,29 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" +[[package]] +name = "annotate-snippets" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f211a51805bc641f3ad5b7664c77d2547af685cc33b4cd8d31964027a46f13f1" +dependencies = [ + "anstyle", + "memchr", + "unicode-width", +] + [[package]] name = "anstyle" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" +[[package]] +name = "arraydeque" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" + [[package]] name = "async-broadcast" version = "0.7.2" @@ -251,6 +268,16 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "core-foundation" version = "0.10.1" @@ -501,6 +528,24 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "encoding_rs_io" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fba3fe847045ecff794b9c138293a80db914678c453ad63fbf0c6a9eb6e00b22" +dependencies = [ + "encoding_rs", +] + [[package]] name = "enum-ordinalize" version = "4.4.2" @@ -679,8 +724,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f0f7448dc566856c4e2e29511a029f1addfd1fe41fd1e397e9487b36452f547" dependencies = [ "delegate", - "k8s-openapi", - "kube", + "k8s-openapi 0.27.1", + "kube 3.1.0", "regex-lite", "schemars", "serde", @@ -718,9 +763,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi 5.3.0", "wasip2", + "wasm-bindgen", ] [[package]] @@ -749,6 +796,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "granit-parser" +version = "0.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d03f81ad4732830d85cfd417a9f62cde6dadda4354d37d078a6084a19560aa2d" +dependencies = [ + "arraydeque", + "smallvec", +] + [[package]] name = "half" version = "2.7.1" @@ -1102,6 +1159,55 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "jni" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +dependencies = [ + "cfg-if", + "combine", + "jni-macros", + "jni-sys", + "log", + "simd_cesu8", + "thiserror", + "walkdir", + "windows-link", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.119", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.119", +] + [[package]] name = "js-sys" version = "0.3.104" @@ -1161,16 +1267,40 @@ dependencies = [ "serde_json", ] +[[package]] +name = "k8s-openapi" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c6922f6afe80418dd6019818af5d0d34584c371780ff09b9752370c25b4abb" +dependencies = [ + "base64", + "jiff", + "serde", + "serde_json", +] + [[package]] name = "kube" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acc5a6a69da2975ed9925d56b5dcfc9cc739b66f37add06785b7c9f6d1e88741" dependencies = [ - "k8s-openapi", - "kube-client", - "kube-core", - "kube-derive", + "k8s-openapi 0.27.1", + "kube-client 3.1.0", + "kube-core 3.1.0", + "kube-derive 3.1.0", +] + +[[package]] +name = "kube" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "208d7fe1380066abb194812a8a8e303cb896a33bb3d7b3177b71bd03ff39bf18" +dependencies = [ + "k8s-openapi 0.28.0", + "kube-client 4.2.0", + "kube-core 4.2.0", + "kube-derive 4.2.0", "kube-runtime", ] @@ -1193,8 +1323,8 @@ dependencies = [ "hyper-util", "jiff", "jsonpath-rust", - "k8s-openapi", - "kube-core", + "k8s-openapi 0.27.1", + "kube-core 3.1.0", "pem", "rustls", "secrecy", @@ -1209,18 +1339,72 @@ dependencies = [ "tracing", ] +[[package]] +name = "kube-client" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e940a73033a7c5c7918b5ece7851d84571b58be25e937198da37fa13f116d3" +dependencies = [ + "base64", + "bytes", + "either", + "futures", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-timeout", + "hyper-util", + "jiff", + "jsonpath-rust", + "k8s-openapi 0.28.0", + "kube-core 4.2.0", + "pem", + "rustls", + "rustls-platform-verifier", + "secrecy", + "serde", + "serde-saphyr", + "serde_json", + "thiserror", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tracing", +] + [[package]] name = "kube-core" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f126d2db7a8b532ec1d839ece2a71e2485dc3bbca6cc3c3f929becaa810e719e" +dependencies = [ + "derive_more", + "form_urlencoded", + "http", + "jiff", + "k8s-openapi 0.27.1", + "schemars", + "serde", + "serde-value", + "serde_json", + "thiserror", +] + +[[package]] +name = "kube-core" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d2353c118cf3462c352ee0b5bd5b0cf17990af456dfd8662d136ff9812eeb4" dependencies = [ "derive_more", "form_urlencoded", "http", "jiff", "json-patch", - "k8s-openapi", + "k8s-openapi 0.28.0", "schemars", "serde", "serde-value", @@ -1242,11 +1426,25 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "kube-derive" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92141c19e1fa83bf91633c1234c66b03375c29aa8ca5486331ddb47e3a3da9c0" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn 2.0.119", +] + [[package]] name = "kube-runtime" -version = "3.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c072737075826ee74d3e615e80334e41e617ca3d14fb46ef7cdfda822d6f15f2" +checksum = "3eb064ef71c7bea55e934a443960da9e9ec31fbb2ba63e47e4aeca32603d5cc7" dependencies = [ "ahash", "async-broadcast", @@ -1257,8 +1455,8 @@ dependencies = [ "hashbrown 0.16.1", "hostname", "json-patch", - "k8s-openapi", - "kube-client", + "k8s-openapi 0.28.0", + "kube-client 4.2.0", "parking_lot", "pin-project", "serde", @@ -1346,6 +1544,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + [[package]] name = "nu-ansi-term" version = "0.50.3" @@ -1567,8 +1771,8 @@ dependencies = [ "gateway-api", "http", "http-body-util", - "k8s-openapi", - "kube", + "k8s-openapi 0.27.1", + "kube 4.2.0", "reqwest", "serde", "serde_json", @@ -1881,6 +2085,33 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" +dependencies = [ + "core-foundation", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" version = "0.103.14" @@ -2001,6 +2232,25 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-saphyr" +version = "0.0.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd22781911de0ca6debda95f073c8f18bec65d1a94f1fa9573f3102e514cea4" +dependencies = [ + "ahash", + "annotate-snippets", + "base64", + "encoding_rs_io", + "getrandom 0.3.4", + "granit-parser", + "nohash-hasher", + "num-traits", + "serde_core", + "smallvec", + "zmij", +] + [[package]] name = "serde-value" version = "0.7.0" @@ -2116,6 +2366,22 @@ dependencies = [ "libc", ] +[[package]] +name = "simd_cesu8" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" +dependencies = [ + "rustc_version", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "slab" version = "0.4.12" @@ -2463,6 +2729,12 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -2614,6 +2886,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "1.0.9" diff --git a/Cargo.toml b/Cargo.toml index 8a62054..033498f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ integration = [] futures = "0.3.33" gateway-api = { version = "0.21.0", features = ["experimental"] } k8s-openapi = { version = "0.27.1", features = ["v1_32"] } -kube = { version = "3.1.0", features = ["client", "derive", "runtime", "rustls-tls"] } +kube = { version = "4.2.0", features = ["client", "derive", "runtime", "rustls-tls"] } serde = { version = "1.0.229", features = ["derive"] } serde_json = "1.0.151" yaml_serde = "0.10.6" diff --git a/docs/proposals.md b/docs/proposals.md index ecf0584..7d063d2 100644 --- a/docs/proposals.md +++ b/docs/proposals.md @@ -31,23 +31,23 @@ Build consensus with community members. ### 2. Sign-off -A maintainer reviews the discussion and marks it as +A reviewer reviews the discussion and marks it as approved. This confirms the project is open to the proposed direction. -> **Note**: It's fair to directly ping maintainers +> **Note**: It's fair to directly ping reviewers > asking for review and approval consideration when > things get stuck. ### 3. Issue -Once the discussion is approved by a maintainer and +Once the discussion is approved by a reviewer and resolved, create an `EPIC` issue from the discussion. Include first a link to the originating discussion, followed by a high-level summary. This is where all implementation work will be organized (as sub-tasks). -> **Note**: Maintainers will assign epic and sub-task +> **Note**: Reviewers will assign epic and sub-task > owners. ### 4. Proposal PR @@ -71,7 +71,7 @@ the [template] for the full structure. Iterate on the proposal in subsequent PRs. Add the **How?** section with requirements and design details. -Refine until a maintainer marks the proposal as +Refine until a reviewer marks the proposal as accepted. ### 6. Experimental @@ -89,8 +89,8 @@ nothing about them is guaranteed. ### 7. Release -After a soak period determined by maintainers a -maintainer may promote the feature from experimental +After a soak period determined by reviewers a +reviewer may promote the feature from experimental to released. The proposal status is updated to `released`. diff --git a/docs/proposals/template.md b/docs/proposals/template.md deleted file mode 100644 index 7a2eb17..0000000 --- a/docs/proposals/template.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -issue: # add a link here -discussion: # add a link here -status: proposed -authors: - - # add all authors github handles here ---- - -# Title - -## What? - -Brief description of the feature or change. - -### Goals - -- Goal 1 -- Goal 2 - -## Why? - -### Motivation - -Why this change is needed. - -### User Stories - -- As a [role], I want [capability] so that [benefit]. - -## How? - -### Requirements - -- Requirement 1 -- Requirement 2 - -### Design - -Technical design and architecture details. - -> **Note:** do not include this section in the first -> PR. Submit What? and Why? first. Add How? in a -> follow-up PR after the proposal direction is -> accepted.