Skip to content
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

Import kube-rt tree #258

Merged
merged 73 commits into from
Jul 18, 2020
Merged

Import kube-rt tree #258

merged 73 commits into from
Jul 18, 2020

Conversation

clux
Copy link
Member

@clux clux commented Jun 22, 2020

A WIP import that aims to get to point 1 of #148 (comment)

Marking down some key points:

  • imported kube-rt codebase (with git subtree add -P kube-runtime [email protected]:teozkr/kube-rt.git master
  • made it work as part of workspace with joint examples dir
  • consolidate dev-deps
    - [ ] migrate from kube-runtime to kube/src/runtime or kube/src/runtime2 - deprecate old runtime first

The latter migration requires consolidating the normal dependencies and dealing with some unpublishable things:

  • deal with pin-cell git dependency - cannot just use 0.1.1 due to:
error[E0554]: `#![feature]` may not be used on the stable release channel
 --> /home/clux/.cargo/registry/src/github.aaakk.us.kg-1ecc6299db9ec823/pin-cell-0.1.1/src/lib.rs:3:1
  |
3 | #![feature(pin, arbitrary_self_types)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  • deal with #[project] deprecated attr warning RT2: fix pin project deprecation #259

  • [ ] unify error handling (move to snafu + inside kube + color_eyre inside examples) can be done if the crates are properly united

  • migrate examples from old runtime to new runtime (might save some of these for later so we can do a migration release)

Maybe try to also get examples as a top level directory. Tried that before, but it was slightly annoying with workspaces

clux added 2 commits July 12, 2020 21:42
this allows reconcilers to not live within a giant lambda and instead
have Arc'd data (like in actix).

It does mean we have to have one extra parameter in controller, but
that's likely to get revamped a bit with a Manager.
@clux
Copy link
Member Author

clux commented Jul 17, 2020

The last of my core-goals from last week's comment are actually achieved now. Probably going to merge this on the weekend. Controller<K> have this architecture internally and is largely a builder front for Theo's controller (which I've provisionally renamed to applier).

Not sure whether to smash all the crates together into one super-crate or, I know that was the plan, but starting to think that maybe there's a benefit to having the boundaries outside the crate level for #204 . Plus, it also lets us have one kube release that's a proper migration release where people can switch over.

Regardless, will start porting over most of the examples later.

@clux clux marked this pull request as ready for review July 17, 2020 20:59
This was linked to issues Jul 17, 2020
@nightkr
Copy link
Member

nightkr commented Jul 17, 2020

👍 from me on separate crates.

@clux clux merged commit 18fb417 into master Jul 18, 2020
@clux clux deleted the kube-rt2 branch July 18, 2020 12:00
@praveenperera
Copy link
Contributor

Congrats on this huge merge guys @clux & @teozkr

Very nice work! I’m excited to try the controller out.

It’s going to make it so much easier to build what i’m building!

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create a Controller<K> runtime reflector api redesign
3 participants