Skip to content

Commit

Permalink
release 0.64.0
Browse files Browse the repository at this point in the history
  • Loading branch information
clux committed Nov 16, 2021
1 parent f9bfe11 commit b5c76ea
Show file tree
Hide file tree
Showing 10 changed files with 45 additions and 42 deletions.
53 changes: 28 additions & 25 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,29 @@
<!-- next-header -->
UNRELEASED
===================
* see https://github.com/kube-rs/kube-rs/compare/0.63.2...master
* see https://github.com/kube-rs/kube-rs/compare/0.64.0...master

* BREAKING: Replaced feature `kube-derive/schema` with attribute `#[kube(schema)]` - #690
0.64.0 / 2021-11-16
===================

* BREAKING: Replaced feature `kube-derive/schema` with attribute `#[kube(schema)]` - [#690](https://github.com/kube-rs/kube-rs/issues/690)
- If you currently disable default `kube-derive` default features to avoid automatic schema generation, add `#[kube(schema = "disabled")]` to your spec struct instead
* BREAKING: Moved `CustomResource` derive crate overrides into subattribute `#[kube(crates(...))]` - #690
* BREAKING: Moved `CustomResource` derive crate overrides into subattribute `#[kube(crates(...))]` - [#690](https://github.com/kube-rs/kube-rs/issues/690)
- Replace `#[kube(kube_core = .., k8s_openapi = .., schema = .., serde = .., serde_json = ..)]` with `#[kube(crates(kube_core = .., k8s_openapi = .., schema = .., serde = .., serde_json = ..))]`
* Added `openssl-tls` feature to use `openssl` for TLS on all platforms. Note that, even though `native-tls` uses a platform specific TLS, `kube` requires `openssl` on all platforms because `native-tls` only allows PKCS12 input to load certificates and private key at the moment, and creating PKCS12 requires `openssl`. - #700
* BREAKING: Changed to fail loading configurations with PEM-encoded certificates containing invalid sections instead of ignoring them. Updated `pem` to 1.0.1. - #702
* `oauth`: Updated `tame-oauth` to [0.6.0](https://github.com/EmbarkStudios/tame-oauth/blob/main/CHANGELOG.md#060---2021-08-07) which supports the same default credentials flow as the Go `oauth2` for Google OAuth. In addition to reading the service account information from JSON file specified with `GOOGLE_APPLICATION_CREDENTIALS` environment variable, [Application Default Credentials](https://cloud.google.com/sdk/gcloud/reference/auth/application-default) from `gcloud`, and obtaining OAuth tokens from local metadata server when running inside GCP are now supported. - #701
* Added `openssl-tls` feature to use `openssl` for TLS on all platforms. Note that, even though `native-tls` uses a platform specific TLS, `kube` requires `openssl` on all platforms because `native-tls` only allows PKCS12 input to load certificates and private key at the moment, and creating PKCS12 requires `openssl`. - [#700](https://github.com/kube-rs/kube-rs/issues/700)
* BREAKING: Changed to fail loading configurations with PEM-encoded certificates containing invalid sections instead of ignoring them. Updated `pem` to 1.0.1. - [#702](https://github.com/kube-rs/kube-rs/issues/702)
* `oauth`: Updated `tame-oauth` to [0.6.0](https://github.com/EmbarkStudios/tame-oauth/blob/main/CHANGELOG.md#060---2021-08-07) which supports the same default credentials flow as the Go `oauth2` for Google OAuth. In addition to reading the service account information from JSON file specified with `GOOGLE_APPLICATION_CREDENTIALS` environment variable, [Application Default Credentials](https://cloud.google.com/sdk/gcloud/reference/auth/application-default) from `gcloud`, and obtaining OAuth tokens from local metadata server when running inside GCP are now supported. - [#701](https://github.com/kube-rs/kube-rs/issues/701)

### Refining Errors

We started working on improving error ergonomics. See the tracking issue #688 for more details.
We started working on improving error ergonomics. See the tracking issue [#688](https://github.com/kube-rs/kube-rs/issues/688) for more details.

The following is the summary of changes to `kube::Error` included in this release:

* Added `Error::Auth(kube::client::AuthError)` (errors related to client auth, some of them were previously in `Error::Kubeconfig`)
* Added `Error::BuildRequest(kube::core::request::Error)` (errors building request from `kube::core`)
* Added `Error::InferConfig(kube::config::InferConfigError)` (for `Client::try_default`)
* Added `Error::OpensslTls(kube::client::OpensslTlsError)` (new `openssl-tls` feature) - #700
* Added `Error::OpensslTls(kube::client::OpensslTlsError)` (new `openssl-tls` feature) - [#700](https://github.com/kube-rs/kube-rs/issues/700)
* Added `Error::UpgradeConnection(kube::client::UpgradeConnectinError)` (`ws` feature, errors from upgrading a connection)
* Removed `Error::Connection` (was unused)
* Removed `Error::RequestBuild` (was unused)
Expand All @@ -41,29 +44,29 @@ The following is the summary of changes to `kube::Error` included in this releas

The following breaking changes were made as a part of an effort to refine errors (the list is large, but most of them are lower level, and shouldn't require much change in most cases):

* Removed `impl From<E> for kube::Error` - #686
* Removed unused error variants in `kube::Error`: `Connection`, `RequestBuild`, `RequestSend`, `RequestParse` - #689
* Removed unused error variant `kube::error::ConfigError::LoadConfigFile` - #689
* Changed `kube::Error::RequestValidation(String)` to `kube::Error::BuildRequest(kube::core::request::Error)`. Includes possible errors from building an HTTP request, and contains some errors from `kube::core` that was previously grouped under `kube::Error::SerdeError` and `kube::Error::HttpError`. `kube::core::request::Error` is described below. - #686
* Removed `kube::core::Error` and `kube::core::Result`. `kube::core::Error` was replaced by more specific errors. - #686
* Removed `impl From<E> for kube::Error` - [#686](https://github.com/kube-rs/kube-rs/issues/686)
* Removed unused error variants in `kube::Error`: `Connection`, `RequestBuild`, `RequestSend`, `RequestParse` - [#689](https://github.com/kube-rs/kube-rs/issues/689)
* Removed unused error variant `kube::error::ConfigError::LoadConfigFile` - [#689](https://github.com/kube-rs/kube-rs/issues/689)
* Changed `kube::Error::RequestValidation(String)` to `kube::Error::BuildRequest(kube::core::request::Error)`. Includes possible errors from building an HTTP request, and contains some errors from `kube::core` that was previously grouped under `kube::Error::SerdeError` and `kube::Error::HttpError`. `kube::core::request::Error` is described below. - [#686](https://github.com/kube-rs/kube-rs/issues/686)
* Removed `kube::core::Error` and `kube::core::Result`. `kube::core::Error` was replaced by more specific errors. - [#686](https://github.com/kube-rs/kube-rs/issues/686)
- Replaced `kube::core::Error::InvalidGroupVersion` with `kube::core::gvk::ParseGroupVersionError`
- Changed the error returned from `kube::core::admission::AdmissionRequest::with_patch` to `kube::core::admission::SerializePatchError` (was `kube::core::Error::SerdeError`)
- Changed the error associated with `TryInto<AdmissionRequest<T>>` to `kube::core::admission::ConvertAdmissionReviewError` (was `kube::core::Error::RequestValidation`)
- Changed the error returned from methods of `kube::core::Request` to `kube::core::request::Error` (was `kube::core::Error`). `kube::core::request::Error` represents possible errors when building an HTTP request. The removed `kube::core::Error` had `RequestValidation(String)`, `SerdeError(serde_json::Error)`, and `HttpError(http::Error)` variants. They are now `Validation(String)`, `SerializeBody(serde_json::Error)`, and `BuildRequest(http::Error)` respectively in `kube::core::request::Error`.
* Changed variants of error enums in `kube::runtime` to tuples. Replaced `snafu` with `thiserror`. - #686
* Removed `kube::error::ConfigError` and `kube::Error::Kubeconfig(ConfigError)` - #696
* Changed variants of error enums in `kube::runtime` to tuples. Replaced `snafu` with `thiserror`. - [#686](https://github.com/kube-rs/kube-rs/issues/686)
* Removed `kube::error::ConfigError` and `kube::Error::Kubeconfig(ConfigError)` - [#696](https://github.com/kube-rs/kube-rs/issues/696)
- Error variants related to client auth were moved to a new error `kube::client::AuthError` as described below
- Remaining variants were split into `kube::config::{InferConfigError, InClusterError, KubeconfigError}` as described below
* Added `kube::client::AuthError` by extracting error variants related to client auth from `kube::ConfigError` and adding more variants to preserve context - #696
* Moved `kube::error::OAuthError` to `kube::client::OAuthError` - #696
* Changed all errors in `kube::client::auth` to `kube::client::AuthError` - #696
* Added `kube::Error::Auth(kube::client::AuthError)` - #696
* Added `kube::config::InferConfigError` which is an error from `Config::infer()` and `kube::Error::InferConfig(kube::config::InferConfigError)` - #696
* Added `kube::config::InClusterError` for errors related to loading in-cluster configuration by splitting `kube::ConfigError` and adding more variants to preserve context. - #696
* Added `kube::config::KubeconfigError` for errors related to loading kubeconfig by splitting `kube::ConfigError` and adding more variants to preserve context. - #696
* Changed methods of `kube::Config` to return these erorrs instead of `kube::Error` - #696
* Removed `kube::Error::InvalidUri` which was replaced by error variants preserving context, such as `KubeconfigError::ParseProxyUrl` - #696
* Moved all errors from upgrading to a WebSocket connection into `kube::Error::UpgradeConnection(kube::client::UpgradeConnectionError)` - #696
* Added `kube::client::AuthError` by extracting error variants related to client auth from `kube::ConfigError` and adding more variants to preserve context - [#696](https://github.com/kube-rs/kube-rs/issues/696)
* Moved `kube::error::OAuthError` to `kube::client::OAuthError` - [#696](https://github.com/kube-rs/kube-rs/issues/696)
* Changed all errors in `kube::client::auth` to `kube::client::AuthError` - [#696](https://github.com/kube-rs/kube-rs/issues/696)
* Added `kube::Error::Auth(kube::client::AuthError)` - [#696](https://github.com/kube-rs/kube-rs/issues/696)
* Added `kube::config::InferConfigError` which is an error from `Config::infer()` and `kube::Error::InferConfig(kube::config::InferConfigError)` - [#696](https://github.com/kube-rs/kube-rs/issues/696)
* Added `kube::config::InClusterError` for errors related to loading in-cluster configuration by splitting `kube::ConfigError` and adding more variants to preserve context. - [#696](https://github.com/kube-rs/kube-rs/issues/696)
* Added `kube::config::KubeconfigError` for errors related to loading kubeconfig by splitting `kube::ConfigError` and adding more variants to preserve context. - [#696](https://github.com/kube-rs/kube-rs/issues/696)
* Changed methods of `kube::Config` to return these erorrs instead of `kube::Error` - [#696](https://github.com/kube-rs/kube-rs/issues/696)
* Removed `kube::Error::InvalidUri` which was replaced by error variants preserving context, such as `KubeconfigError::ParseProxyUrl` - [#696](https://github.com/kube-rs/kube-rs/issues/696)
* Moved all errors from upgrading to a WebSocket connection into `kube::Error::UpgradeConnection(kube::client::UpgradeConnectionError)` - [#696](https://github.com/kube-rs/kube-rs/issues/696)

</details>

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Select a version of `kube` along with the generated [k8s-openapi](https://github

```toml
[dependencies]
kube = { version = "0.63.2", features = ["runtime","derive"] }
kube = { version = "0.64.0", features = ["runtime","derive"] }
k8s-openapi = { version = "0.13.1", default-features = false, features = ["v1_22"] }
```

Expand Down Expand Up @@ -166,7 +166,7 @@ Kube has basic support ([with caveats](https://github.com/kube-rs/kube-rs/issues

```toml
[dependencies]
kube = { version = "0.63.2", default-features = false, features = ["client", "rustls-tls"] }
kube = { version = "0.64.0", default-features = false, features = ["client", "rustls-tls"] }
k8s-openapi = { version = "0.13.1", default-features = false, features = ["v1_22"] }
```

Expand Down
4 changes: 2 additions & 2 deletions examples/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ validator = { version = "0.14.0", features = ["derive"] }
anyhow = "1.0.44"
env_logger = "0.9.0"
futures = "0.3.17"
kube = { path = "../kube", version = "^0.63.0", default-features = false, features = ["admission"] }
kube-derive = { path = "../kube-derive", version = "^0.63.0", default-features = false } # only needed to opt out of schema
kube = { path = "../kube", version = "^0.64.0", default-features = false, features = ["admission"] }
kube-derive = { path = "../kube-derive", version = "^0.64.0", default-features = false } # only needed to opt out of schema
k8s-openapi = { version = "0.13.1", default-features = false }
log = "0.4.11"
serde = { version = "1.0.130", features = ["derive"] }
Expand Down
2 changes: 1 addition & 1 deletion integration/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ path = "dapp.rs"
anyhow = "1.0.44"
env_logger = "0.9.0"
futures = "0.3.17"
kube = { path = "../kube", version = "^0.63.0", default-features = false, features = ["client", "rustls-tls"] }
kube = { path = "../kube", version = "^0.64.0", default-features = false, features = ["client", "rustls-tls"] }
k8s-openapi = { version = "0.13.1", features = ["v1_22"], default-features = false }
log = "0.4.11"
serde_json = "1.0.68"
Expand Down
4 changes: 2 additions & 2 deletions kube-client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "kube-client"
version = "0.63.2"
version = "0.64.0"
description = "Kubernetes client"
authors = [
"clux <[email protected]>",
Expand Down Expand Up @@ -57,7 +57,7 @@ rustls-pemfile = { version = "0.2.1", optional = true }
webpki = { version = "0.21.4", optional = true }
bytes = { version = "1.1.0", optional = true }
tokio = { version = "1.12.0", features = ["time", "signal", "sync"], optional = true }
kube-core = { path = "../kube-core", version = "^0.63.0"}
kube-core = { path = "../kube-core", version = "^0.64.0"}
jsonpath_lib = { version = "0.3.0", optional = true }
tokio-util = { version = "0.6.8", optional = true, features = ["io", "codec"] }
hyper = { version = "0.14.13", optional = true, features = ["client", "http1", "stream", "tcp"] }
Expand Down
2 changes: 1 addition & 1 deletion kube-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "kube-core"
description = "Kube shared types, traits and client-less behavior"
version = "0.63.2"
version = "0.64.0"
authors = [
"clux <[email protected]>",
"kazk <[email protected]>",
Expand Down
2 changes: 1 addition & 1 deletion kube-derive/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "kube-derive"
description = "Custom derives for the kube kubernetes crates"
version = "0.63.2"
version = "0.64.0"
authors = [
"clux <[email protected]>",
"kazk <[email protected]>",
Expand Down
2 changes: 1 addition & 1 deletion kube-derive/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Add the `derive` feature to `kube`:

```toml
[dependencies]
kube = { version = "0.63.2", feature = ["derive"] }
kube = { version = "0.64.0", feature = ["derive"] }
```

## Usage
Expand Down
4 changes: 2 additions & 2 deletions kube-runtime/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "kube-runtime"
version = "0.63.2"
version = "0.64.0"
description = "Kubernetes futures controller runtime"
authors = [
"Teo Klestrup Röijezon <[email protected]>",
Expand All @@ -21,7 +21,7 @@ rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
futures = "0.3.17"
kube-client = { path = "../kube-client", version = "^0.63.0", default-features = false, features = ["jsonpatch", "client"] }
kube-client = { path = "../kube-client", version = "^0.64.0", default-features = false, features = ["jsonpatch", "client"] }
derivative = "2.1.1"
serde = "1.0.130"
smallvec = "1.7.0"
Expand Down
10 changes: 5 additions & 5 deletions kube/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "kube"
version = "0.63.2"
version = "0.64.0"
description = "Kubernetes client and async controller runtime"
authors = [
"clux <[email protected]>",
Expand Down Expand Up @@ -37,10 +37,10 @@ features = ["client", "native-tls", "rustls-tls", "openssl-tls", "derive", "ws",
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
kube-derive = { path = "../kube-derive", version = "^0.63.0", optional = true }
kube-core = { path = "../kube-core", version = "^0.63.0"}
kube-client = { path = "../kube-client", version = "^0.63.0", default-features = false, optional = true }
kube-runtime = { path = "../kube-runtime", version = "^0.63.0", optional = true}
kube-derive = { path = "../kube-derive", version = "^0.64.0", optional = true }
kube-core = { path = "../kube-core", version = "^0.64.0"}
kube-client = { path = "../kube-client", version = "^0.64.0", default-features = false, optional = true }
kube-runtime = { path = "../kube-runtime", version = "^0.64.0", optional = true}

# Not used directly, but required by resolver 2.0 to ensure that the k8s-openapi dependency
# is considered part of the "deps" graph rather than just the "dev-deps" graph
Expand Down

0 comments on commit b5c76ea

Please sign in to comment.