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

Flexible API server, API resource, and controller composition for KCP #195

Closed
karolz-ms opened this issue Oct 28, 2021 · 2 comments
Closed
Labels
kind/feature Categorizes issue or PR as related to a new feature.

Comments

@karolz-ms
Copy link

Problem statement

While experimenting with KCP as a building block for local workload orchestration on a dev machine I realized that I would like to limit KCP composition to just what I need for this scenario. That is, I want local API server with a few standard API resources and controllers. Right now I just need namespaces and custom resource definitions plus associated controllers, really--I do not need multi-cluster capability.

Unfortunately, as KCP is implemented today, it is not easy to pick what is included in the composition. Most of the code that sets up the composition is not accessible from outside of the package where it lives. That applies to 2 of the 3 API servers (API extensions server and aggregator server). For each server, the set of associated API resources and controllers cannot be changed. I tried copying a bunch of code that forms the bulk of API server chain creation, but even after pretty intense hacking I could not really figure out how to have CustomResourceDefinition API installed without bringing in the API aggregator server, which I probably don't need.

Desired solution

I would like to be able to create my own KCP executable, and as part of its startup code, express what capabilities, API resources, and controllers I would like to include. Ideally, if there are dependencies between components (e.g. Namespace API resource requires namespace controller), the dependencies should be automatically included in the composition.

We could start with something very simple (minimal, standalone KCP API server with CRD and RBAC support vs full KCP like it is today) and move towards more flexible/declarative composition. I am open to collaboration on this.

I also think/hope this request is in line with the minimal API server vision.

@imjasonh @davidfestal @smarterclayton please share your thoughts ☺️

@karolz-ms karolz-ms added the kind/feature Categorizes issue or PR as related to a new feature. label Oct 28, 2021
@karolz-ms
Copy link
Author

I guess I am asking for #48 😆

@pweil-
Copy link
Member

pweil- commented Feb 3, 2022

Since it looks like this is a dupe of #48 I'll go ahead and close this issue. Please feel free to reopen if you disagree. Thanks!

@pweil- pweil- closed this as completed Feb 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

2 participants