-
Notifications
You must be signed in to change notification settings - Fork 146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update key dependencies: kube-rs, tonic, and tokio #223
Comments
It looks like the Object<P,U> is still supported (https://github.com/clux/kube-rs/blob/d450509554ef3f601a0e2ba90524b9fae43c1a7b/kube/src/api/object.rs#L80), whicih is what we use for CRDs now. Maybe we can continue to use that and not be subjected to the K8s >- v1.17 requirement? |
Just leaving a comment here for some clarification (since it's not often people do such a big upgrade jump, and just spotted this):
If you have more peripheral use cases (such as |
@clux thanks for the comment! It bumped me to add needed context to this issue. I started the work to update |
Is your feature request related to a problem? Please describe.
We are currently using an outdated version of
tokio
,kube-rs
, andtonic
, and they are all interdependent because the latter two usetokio
, and there cannot be two versions oftokio
running in an application or tokio (a runtime for async apps) will error.To get everything to
tokio
1.0,kube-rs
will need to be updated to v0.47.0+ andreqwest
to v0.11.0.This task also provides an opportunity to do pruning of dependencies. Async in Rust was fairly new when Akri was first being developed, so many crates were interwoven to accomplish tasks. Now,
tokio
may be able to accomplish what we were usingstd:::futures
for in some scenarios.I took a look at some of the work that will need to be done by the lucky updater:
Some changes that will need to be made due to upgrading tokio:
tokio_core
is now a part oftokio
, so the new/equivalent functions/structs will need to be used fromtokio
. Our signal module depends on this. This module may be able to be removed/ changed. Only the udev broker depends on it and its functionality may be uneccesary.time::delay
->time::sleep
oneshot
instead ofmpsc
channels.Some changes that will need to be made due to upgrading kube-rs:
kube_derive
crate that can be utilized from kube::api::Resource::dynamic. Looks like they only support custom resources for K8s >= v1.17, so this update may limit us from supporting K8s 1.16. See thecrd
prefixed examples.Some changes that will need to be made due to upgrading tonic:
prost
(a rust protobuf implementation) will need to be updated, so the code autogenerated from our proto files (pluginapi.proto will change. Then, our device plugin service implementation will need slight modifications to match these changes.Other dependencies that will likely need to be updated:
hyper
h2
(will need rebase our patch branch)tower
futures
crates (e.g. stream is now a submodule of futures)Some dependencies will probably be able to be removed such as:
tokio_core
(now embedded in tokio)futures-old
(only need one futures crate now)The text was updated successfully, but these errors were encountered: