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

Convert to kubebuilder #58

Closed
scothis opened this issue Aug 19, 2019 · 3 comments

Comments

@scothis
Copy link
Member

commented Aug 19, 2019

The controller currently uses knative/pkg as a foundation. The Kubernetes ecosystem is consolidating around Kubebuilder as the model for reconcilers.

Kubebuilder has a few key advantages:

  • maintains boiler plate (no copy pasta)
  • broad support in the community
  • runs with more modern k8s api versions

@scothis scothis added this to the v0.5.0 milestone Aug 19, 2019

@scothis

This comment has been minimized.

Copy link
Member Author

commented Sep 4, 2019

As is, Kubebuilder has lukewarm support for projects with multiple api groups. See https://book.kubebuilder.io/migration/multi-group.html

In light of our desire to also decompose the system into individually installable components (#59), we have a couple options:

  1. keep everything in a single project, create individual install units
    • pro: a single unified codebase
    • con: may prove tricky as kubebuilder isn't setup for multiple api groups never mind decomposed installs
  2. create a separate repo for each system component with a dedicated kubebuilder footprint
    • pro: more flexibility for dependencies and release lifecycles
    • con: the dependency tree all comes together in the CLI, and releases come together in the charts, so we're not gaining much at the cost of more moving pieces
  3. "mono"-repo, with kubebuilder footprints in directories instead of repos
    • pro: a single codebase
    • con: we'd have a lot of duplication in a single repo, it may be possible to share some things, but that may also add complexity.
@sbawaska

This comment has been minimized.

Copy link
Member

commented Sep 4, 2019

FWIW, I was playing around with the 3rd approach last week: #61

@scothis scothis referenced this issue Sep 4, 2019
@scothis

This comment has been minimized.

Copy link
Member Author

commented Sep 11, 2019

Done in #62 with follow on work in #67 #64 #65 #66

@scothis scothis closed this Sep 11, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.