diff --git a/Cargo.lock b/Cargo.lock index 4802745459..0b84478a15 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2689,9 +2689,9 @@ dependencies = [ [[package]] name = "kube" -version = "0.69.1" +version = "0.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86835e9147615457c1edc2b11c723acd1d21372e9cefa80a9d2742f6d69042d0" +checksum = "4dcc72fdf0c491160a34d4a1bfb03f96da8a5054288d61c816d514b5c2fa49ea" dependencies = [ "k8s-openapi", "kube-client", @@ -2701,9 +2701,9 @@ dependencies = [ [[package]] name = "kube-client" -version = "0.69.1" +version = "0.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71f8aa916ee8290fbd0af76b3a28093a8786fccb6286902095a5243484447971" +checksum = "94b01c722d55ffedec74cbc259b4508d8a59bf19540006ec87618f76ab156579" dependencies = [ "base64 0.13.0", "bytes", @@ -2722,14 +2722,14 @@ dependencies = [ "pem 1.0.2", "pin-project", "rustls 0.20.4", - "rustls-pemfile 0.2.1", + "rustls-pemfile 0.3.0", "secrecy", "serde", "serde_json", "serde_yaml", "thiserror", "tokio", - "tokio-util 0.6.9", + "tokio-util 0.7.0", "tower", "tower-http", "tracing", @@ -2737,9 +2737,9 @@ dependencies = [ [[package]] name = "kube-core" -version = "0.69.1" +version = "0.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da41f98f213796a68fcd4510c88b5fd36de131c1ea30d152474c3f2e1bef1a72" +checksum = "7dd9e3535777edd122cc26fe3fe6357066b33eff63d8b919862edbe7a956a679" dependencies = [ "chrono", "form_urlencoded", @@ -2755,9 +2755,9 @@ dependencies = [ [[package]] name = "kube-derive" -version = "0.69.1" +version = "0.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd6fdc2e1615a3aecd7e90fe4bda3ba32379e38193251d4ddaccba26579fe22" +checksum = "1322e25c20dd6f18ca6baecc88bb130331e99d988df9d7a9a207f15819e05bff" dependencies = [ "darling", "proc-macro2", @@ -2768,9 +2768,9 @@ dependencies = [ [[package]] name = "kube-runtime" -version = "0.69.1" +version = "0.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e8bf2258850dbc0a062b561656a1d7020fa8040d552e149f0a0361f0d6794e" +checksum = "816c8c086f8bbcf9a4db0b7a68db90b784ef6292a57de35c64cccb90d5edfbe5" dependencies = [ "ahash", "backoff 0.4.0", @@ -2779,14 +2779,14 @@ dependencies = [ "json-patch", "k8s-openapi", "kube-client", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "pin-project", "serde", "serde_json", "smallvec", "thiserror", "tokio", - "tokio-util 0.6.9", + "tokio-util 0.7.0", "tracing", ] @@ -5786,7 +5786,6 @@ dependencies = [ "futures-sink", "log", "pin-project-lite", - "slab", "tokio", ] @@ -5801,6 +5800,7 @@ dependencies = [ "futures-sink", "log", "pin-project-lite", + "slab", "tokio", ] @@ -6569,7 +6569,6 @@ dependencies = [ "tokio", "tokio-rustls 0.23.3", "tokio-stream", - "tokio-util 0.6.9", "tokio-util 0.7.0", "tower", "tracing", diff --git a/iox_gitops_adapter/Cargo.toml b/iox_gitops_adapter/Cargo.toml index 2917fd1092..e0a6d381a6 100644 --- a/iox_gitops_adapter/Cargo.toml +++ b/iox_gitops_adapter/Cargo.toml @@ -20,9 +20,9 @@ clap = { version = "3", features = ["derive", "env"] } dotenv = "0.15" futures = "0.3" k8s-openapi = { version = "0.14", features = ["v1_19", "schemars"], default-features = false } -kube = { version = "0.69", default-features = false, features = ["client", "rustls-tls", "derive"] } -kube-derive = { version = "0.69", default-features = false } # only needed to opt out of schema -kube-runtime = "0.69" +kube = { version = "0.70", default-features = false, features = ["client", "rustls-tls", "derive"] } +kube-derive = { version = "0.70", default-features = false } # only needed to opt out of schema +kube-runtime = "0.70" prost = "0.9" schemars = { version = "0.8.8", features = ["derive"] } serde = { version = "1.0", features = ["derive"] } diff --git a/iox_gitops_adapter/src/main.rs b/iox_gitops_adapter/src/main.rs index 5e1d7d5032..5976b8ef18 100644 --- a/iox_gitops_adapter/src/main.rs +++ b/iox_gitops_adapter/src/main.rs @@ -8,7 +8,7 @@ use chrono::{DateTime, Utc}; use dotenv::dotenv; use futures::StreamExt; use kube::{api::ListParams, Api, Client as K8sClient}; -use kube_runtime::controller::{Context, Controller, ReconcilerAction}; +use kube_runtime::controller::{Action, Context, Controller}; use std::process::Command as Cmd; use thiserror::Error; use tracing::*; @@ -208,7 +208,7 @@ async fn reconcile_topics( async fn reconcile( topics: Arc, ctx: Context>, -) -> Result +) -> Result where T: KafkaTopicListApi, { @@ -240,9 +240,7 @@ where Some(gen) => { if topics_status.observed_generation() == gen { info!("Nothing to reconcile; observedGeneration == generation"); - return Ok(ReconcilerAction { - requeue_after: None, - }); + return Ok(Action::await_change()); } gen } @@ -313,23 +311,19 @@ where } } - reconcile_result.map(|_| ReconcilerAction { - requeue_after: None, - }) + reconcile_result.map(|_| Action::await_change()) } /// an error handler that will be called when the reconciler fails -fn error_policy(error: &CatalogError, _ctx: Context>) -> ReconcilerAction +fn error_policy(error: &CatalogError, _ctx: Context>) -> Action where T: KafkaTopicListApi, { error!(%error, "reconciliation error"); - ReconcilerAction { - // if a sync fails we want to retry- it could simply be in the process of - // doing another redeploy. there may be a deeper problem, in which case it'll keep trying - // and we'll see errors and investigate. arbitrary duration chosen ¯\_(ツ)_/¯ - requeue_after: Some(Duration::from_secs(5)), - } + // if a sync fails we want to retry- it could simply be in the process of + // doing another redeploy. there may be a deeper problem, in which case it'll keep trying + // and we'll see errors and investigate. arbitrary duration chosen ¯\_(ツ)_/¯ + Action::requeue(Duration::from_secs(5)) } // Data we want access to in error/reconcile calls @@ -448,7 +442,7 @@ mod tests { ); let result = reconcile(Arc::new(c), Context::new(data)).await; // whole operation returns a successful result. - assert_matches!(result, Ok(ReconcilerAction { .. })); + result.unwrap(); // ensure status was updated accordingly. // alas, we don't have a success patch result either, due to the above assert_eq!( @@ -484,7 +478,7 @@ mod tests { ); let result = reconcile(Arc::new(c), Context::new(data)).await; // whole operation returns a successful result. - assert_matches!(result, Ok(ReconcilerAction { .. })); + result.unwrap(); // ensure status was updated accordingly. assert_eq!( mock_topics_api.get_calls(), diff --git a/workspace-hack/Cargo.toml b/workspace-hack/Cargo.toml index e8989e6af9..105edaa85e 100644 --- a/workspace-hack/Cargo.toml +++ b/workspace-hack/Cargo.toml @@ -57,8 +57,7 @@ sqlx-core = { version = "0.5", default-features = false, features = ["_rt-tokio" tokio = { version = "1", features = ["bytes", "fs", "io-std", "io-util", "libc", "macros", "memchr", "mio", "net", "num_cpus", "once_cell", "parking_lot", "rt", "rt-multi-thread", "signal", "signal-hook-registry", "socket2", "sync", "time", "tokio-macros"] } tokio-rustls = { version = "0.23", default-features = false, features = ["logging", "tls12"] } tokio-stream = { version = "0.1", features = ["fs", "net", "time"] } -tokio-util-3b31131e45eafb45 = { package = "tokio-util", version = "0.6", features = ["codec", "io", "slab", "time"] } -tokio-util-ca01ad9e24f5d932 = { package = "tokio-util", version = "0.7", features = ["codec", "io"] } +tokio-util = { version = "0.7", features = ["codec", "io", "slab", "time"] } tower = { version = "0.4", features = ["__common", "balance", "buffer", "discover", "filter", "futures-core", "futures-util", "indexmap", "limit", "load", "log", "make", "pin-project", "pin-project-lite", "rand", "ready-cache", "slab", "timeout", "tokio", "tokio-util", "tracing", "util"] } tracing = { version = "0.1", features = ["attributes", "log", "max_level_trace", "release_max_level_debug", "std", "tracing-attributes"] } tracing-core = { version = "0.1", features = ["lazy_static", "std"] }