diff --git a/Cargo.lock b/Cargo.lock index 853aff8..e15640f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -138,9 +138,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.27" +version = "1.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" +checksum = "c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2" dependencies = [ "shlex", ] @@ -470,6 +470,8 @@ dependencies = [ "hyper-util", "k8s-openapi", "kube", + "kube-core", + "kube-derive", "once_cell", "regex-lite", "schemars", @@ -489,7 +491,6 @@ dependencies = [ "gateway-api", "hyper-util", "k8s-openapi", - "kube", "serde_json", "tokio", "tower", @@ -828,7 +829,6 @@ dependencies = [ "k8s-openapi", "kube-client", "kube-core", - "kube-derive", ] [[package]] @@ -1287,9 +1287,9 @@ checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" [[package]] name = "rustls" -version = "0.23.28" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "log", "once_cell", @@ -1345,9 +1345,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.3" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ "ring", "rustls-pki-types", diff --git a/Cargo.toml b/Cargo.toml index 02887a8..e2006fb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,9 @@ version = "0.16.0" anyhow = "1.0.98" delegate = "0.13.4" hyper-util = "0.1.16" -kube = { version = "1.1.0" } +kube = { version = "1.1.0", default-features = false } +kube-core = { version = "1.1.0", default-features = false } +kube-derive = { version = "1.1.0" } k8s-openapi = { version = "0.25.0" } once_cell = "1.21.3" regex = { package = "regex-lite", version = "0.1.6" } diff --git a/gateway-api/Cargo.toml b/gateway-api/Cargo.toml index a36f39e..e1a9b33 100644 --- a/gateway-api/Cargo.toml +++ b/gateway-api/Cargo.toml @@ -16,7 +16,8 @@ version.workspace = true [dependencies] delegate.workspace = true k8s-openapi = { workspace = true, features = ["schemars"] } -kube = { workspace = true, features = ["derive"] } +kube-core = { workspace = true, features = ["schema"] } +kube-derive.workspace = true once_cell.workspace = true regex.workspace = true schemars.workspace = true @@ -26,7 +27,7 @@ serde_yaml.workspace = true [dev-dependencies] k8s-openapi = { workspace = true, features = ["v1_32", "schemars"] } -kube = { workspace = true, features = ["derive"] } +kube = { workspace = true, features = ["client", "rustls-tls", "ring"] } anyhow.workspace = true hyper-util.workspace = true diff --git a/gateway-api/examples/Cargo.toml b/gateway-api/examples/Cargo.toml index e28efe8..379cda4 100644 --- a/gateway-api/examples/Cargo.toml +++ b/gateway-api/examples/Cargo.toml @@ -16,7 +16,6 @@ gateway-api = { path = "../" } anyhow.workspace = true hyper-util.workspace = true k8s-openapi.workspace = true -kube.workspace = true serde_json.workspace = true tokio.workspace = true tower.workspace = true diff --git a/gateway-api/src/apis/experimental/common.rs b/gateway-api/src/apis/experimental/common.rs index 600a85b..933619c 100644 --- a/gateway-api/src/apis/experimental/common.rs +++ b/gateway-api/src/apis/experimental/common.rs @@ -3,7 +3,7 @@ #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; pub use std::collections::BTreeMap; diff --git a/gateway-api/src/apis/experimental/gatewayclasses.rs b/gateway-api/src/apis/experimental/gatewayclasses.rs index b2c3268..a2e1e1c 100644 --- a/gateway-api/src/apis/experimental/gatewayclasses.rs +++ b/gateway-api/src/apis/experimental/gatewayclasses.rs @@ -4,7 +4,7 @@ use super::common::*; #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -17,6 +17,7 @@ use self::prelude::*; kind = "GatewayClass", plural = "gatewayclasses" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(status = "GatewayClassStatus")] #[kube(derive = "Default")] #[kube(derive = "PartialEq")] diff --git a/gateway-api/src/apis/experimental/gateways.rs b/gateway-api/src/apis/experimental/gateways.rs index 10e21a0..b4cf1f9 100644 --- a/gateway-api/src/apis/experimental/gateways.rs +++ b/gateway-api/src/apis/experimental/gateways.rs @@ -4,7 +4,7 @@ use super::common::*; #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; pub use std::collections::BTreeMap; @@ -18,6 +18,7 @@ use self::prelude::*; kind = "Gateway", plural = "gateways" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(status = "GatewayStatus")] #[kube(derive = "Default")] diff --git a/gateway-api/src/apis/experimental/grpcroutes.rs b/gateway-api/src/apis/experimental/grpcroutes.rs index e47c4b8..2249490 100644 --- a/gateway-api/src/apis/experimental/grpcroutes.rs +++ b/gateway-api/src/apis/experimental/grpcroutes.rs @@ -4,7 +4,7 @@ use super::common::*; #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -17,6 +17,7 @@ use self::prelude::*; kind = "GRPCRoute", plural = "grpcroutes" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(status = "RouteStatus")] #[kube(derive = "Default")] diff --git a/gateway-api/src/apis/experimental/httproutes.rs b/gateway-api/src/apis/experimental/httproutes.rs index 8a7115b..ebd78ff 100644 --- a/gateway-api/src/apis/experimental/httproutes.rs +++ b/gateway-api/src/apis/experimental/httproutes.rs @@ -4,7 +4,7 @@ use super::common::*; #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -17,6 +17,7 @@ use self::prelude::*; kind = "HTTPRoute", plural = "httproutes" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(status = "RouteStatus")] #[kube(derive = "Default")] diff --git a/gateway-api/src/apis/experimental/referencegrants.rs b/gateway-api/src/apis/experimental/referencegrants.rs index 70f0bbc..c9e79c6 100644 --- a/gateway-api/src/apis/experimental/referencegrants.rs +++ b/gateway-api/src/apis/experimental/referencegrants.rs @@ -2,7 +2,7 @@ #[allow(unused_imports)] mod prelude { - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -15,6 +15,7 @@ use self::prelude::*; kind = "ReferenceGrant", plural = "referencegrants" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(derive = "Default")] #[kube(derive = "PartialEq")] diff --git a/gateway-api/src/apis/experimental/tcproutes.rs b/gateway-api/src/apis/experimental/tcproutes.rs index dea5e1e..49c656e 100644 --- a/gateway-api/src/apis/experimental/tcproutes.rs +++ b/gateway-api/src/apis/experimental/tcproutes.rs @@ -4,7 +4,7 @@ use super::common::*; #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -17,6 +17,7 @@ use self::prelude::*; kind = "TCPRoute", plural = "tcproutes" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(status = "RouteStatus")] #[kube(derive = "Default")] diff --git a/gateway-api/src/apis/experimental/tlsroutes.rs b/gateway-api/src/apis/experimental/tlsroutes.rs index 397fc3b..0c1dc34 100644 --- a/gateway-api/src/apis/experimental/tlsroutes.rs +++ b/gateway-api/src/apis/experimental/tlsroutes.rs @@ -4,7 +4,7 @@ use super::common::*; #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -17,6 +17,7 @@ use self::prelude::*; kind = "TLSRoute", plural = "tlsroutes" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(status = "RouteStatus")] #[kube(derive = "Default")] diff --git a/gateway-api/src/apis/experimental/udproutes.rs b/gateway-api/src/apis/experimental/udproutes.rs index 85b5d1b..8adc198 100644 --- a/gateway-api/src/apis/experimental/udproutes.rs +++ b/gateway-api/src/apis/experimental/udproutes.rs @@ -4,7 +4,7 @@ use super::common::*; #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -17,6 +17,7 @@ use self::prelude::*; kind = "UDPRoute", plural = "udproutes" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(status = "RouteStatus")] #[kube(derive = "Default")] diff --git a/gateway-api/src/apis/standard/common.rs b/gateway-api/src/apis/standard/common.rs index 024f39d..6d4a704 100644 --- a/gateway-api/src/apis/standard/common.rs +++ b/gateway-api/src/apis/standard/common.rs @@ -3,7 +3,7 @@ #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; pub use std::collections::BTreeMap; diff --git a/gateway-api/src/apis/standard/gatewayclasses.rs b/gateway-api/src/apis/standard/gatewayclasses.rs index f83a7f1..b8e318e 100644 --- a/gateway-api/src/apis/standard/gatewayclasses.rs +++ b/gateway-api/src/apis/standard/gatewayclasses.rs @@ -3,7 +3,7 @@ #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -16,6 +16,7 @@ use self::prelude::*; kind = "GatewayClass", plural = "gatewayclasses" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(status = "GatewayClassStatus")] #[kube(derive = "Default")] #[kube(derive = "PartialEq")] diff --git a/gateway-api/src/apis/standard/gateways.rs b/gateway-api/src/apis/standard/gateways.rs index 98257a8..5dde20a 100644 --- a/gateway-api/src/apis/standard/gateways.rs +++ b/gateway-api/src/apis/standard/gateways.rs @@ -4,7 +4,7 @@ use super::common::*; #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; pub use std::collections::BTreeMap; @@ -18,6 +18,7 @@ use self::prelude::*; kind = "Gateway", plural = "gateways" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(status = "GatewayStatus")] #[kube(derive = "Default")] diff --git a/gateway-api/src/apis/standard/grpcroutes.rs b/gateway-api/src/apis/standard/grpcroutes.rs index 80ffb94..7932f3d 100644 --- a/gateway-api/src/apis/standard/grpcroutes.rs +++ b/gateway-api/src/apis/standard/grpcroutes.rs @@ -4,7 +4,7 @@ use super::common::*; #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -17,6 +17,7 @@ use self::prelude::*; kind = "GRPCRoute", plural = "grpcroutes" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(status = "RouteStatus")] #[kube(derive = "Default")] diff --git a/gateway-api/src/apis/standard/httproutes.rs b/gateway-api/src/apis/standard/httproutes.rs index ef1183e..1749b1c 100644 --- a/gateway-api/src/apis/standard/httproutes.rs +++ b/gateway-api/src/apis/standard/httproutes.rs @@ -4,7 +4,7 @@ use super::common::*; #[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -17,6 +17,7 @@ use self::prelude::*; kind = "HTTPRoute", plural = "httproutes" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(status = "RouteStatus")] #[kube(derive = "Default")] diff --git a/gateway-api/src/apis/standard/referencegrants.rs b/gateway-api/src/apis/standard/referencegrants.rs index 70f0bbc..c9e79c6 100644 --- a/gateway-api/src/apis/standard/referencegrants.rs +++ b/gateway-api/src/apis/standard/referencegrants.rs @@ -2,7 +2,7 @@ #[allow(unused_imports)] mod prelude { - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; } @@ -15,6 +15,7 @@ use self::prelude::*; kind = "ReferenceGrant", plural = "referencegrants" )] +#[kube(crates(kube_core = "::kube_core"))] #[kube(namespaced)] #[kube(derive = "Default")] #[kube(derive = "PartialEq")] diff --git a/gateway-api/src/duration.rs b/gateway-api/src/duration.rs index 2ec98ed..669bbfd 100644 --- a/gateway-api/src/duration.rs +++ b/gateway-api/src/duration.rs @@ -11,7 +11,7 @@ //! digits each. See https://gateway-api.sigs.k8s.io/geps/gep-2257 for the //! complete specification. -use kube::core::Duration as k8sDuration; +use kube_core::Duration as k8sDuration; use once_cell::sync::Lazy; use regex::Regex; use std::fmt; diff --git a/type-reducer/src/lib.rs b/type-reducer/src/lib.rs index 39af624..822a97b 100644 --- a/type-reducer/src/lib.rs +++ b/type-reducer/src/lib.rs @@ -31,7 +31,7 @@ pub const COMMON_TYPES_MOD_NAME: &str = "common"; const COMMON_TYPES_FILE_PREAMBLE: &str = "#[allow(unused_imports)] mod prelude { pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition; - pub use kube::CustomResource; + pub use kube_derive::CustomResource; pub use schemars::JsonSchema; pub use serde::{Deserialize, Serialize}; pub use std::collections::BTreeMap;