Comments (8)
@detiber and I chatted briefly but he's out on PTO for a bit so it might get delayed. I was going to create a stub investigation in docs/investigations for "minimal kube-apiserver as reusable embeddable library" and then we can do some prep with folks over next few weeks. Sound good?
from kcp.
Ok, the stub is merged. When Jason is back we'll try to tee up a community meeting / round table where we go over use cases. In the meantime, I need to accumulate some of the historical efforts at this within Kube for reference.
from kcp.
Thanks for your feedback! I haven't dug into those projects, but I'm definitely excited to learn more.
The badidea
example is even more stripped down; CRDs seemingly must be cluster-scoped, presumably because there's no such thing as a namespace 😆 -- and RBAC support seems necessary to be able to do anything useful with it with 2+ users. From the "what's missing" slide in the api-machinery presentation, it looks like badidea + what's-missing ~= kcp, so I think we're just circling roughly the same final state. That's really encouraging validation for the idea, honestly.
from kcp.
Would be happy to chat more about this, FWIW.
from kcp.
Yeah I don't think there is anything special about the types that are baked in still, other than you might actually want efficient high scale rbac / namespaces (a few other objects). Agree from a "reusable bits perspective" you want "can serve APIs" to be a bit that has some layers on top of it like "can subdivide and feel like a regular cluster". It should be possible to let the layering be natural
import (
"k8s.io/apiserver/pkg/basic"
"k8s.io/apiserver/pkg/apisets/core"
)
func main() {
// simple
api := basic.New()
api.AllowCRDs()
// less simple
// i want to get namespaces!
api.AddGroups(core.New())
// specialized
api.RegisterClusterScopedAdmission(&myImplementationOfConceptsUnderneathClusters{})
// everyone starts the same
api.Serve()
}
or whatever (massively oversimplified) to get different use cases and allow library-like composability.
from kcp.
@detiber and I chatted briefly but he's out on PTO for a bit so it might get delayed. I was going to create a stub investigation in docs/investigations for "minimal kube-apiserver as reusable embeddable library" and then we can do some prep with folks over next few weeks. Sound good?
SGTM!
from kcp.
Created a stub in #74 which we can iterate on over time.
from kcp.
I've finally been able to find a little bit of time to explore this a bit further today (only actually ran kcp
now).
main...vorburger:kcp-core-minimal is a first quick hack simply removing ~50 lines + imports re. if installClusterController {
. What's dumb (of me), of course, is that so far I've just copy/pasted everything else.. still ~60 lines for the etcd, certs et al. set-up. Where may we move that to, for avoiding that copy/paste? And then evolve that into something like a POC of the API that Clayton outlined above... Could that, for now, move e.g. to kcp/pkg/kcp
? I'm not quite sure yet how to best go about the next step.
PS: I probably can't make #96 tomorrow, but I'll try to start listening in for coming weeks, time permitting.
from kcp.
Related Issues (20)
- bug: `syncedResources` state should be Pending when APIResourceImport is missing HOT 1
- feature: clear object status when not synced anymore HOT 1
- Generation number doesn't seem correctly set on cached builtin resources.
- Unify `workload[s]` names in the tmc `controller.go` HOT 5
- bug: network policies break internal cluster communication on OpenShift
- Community Meeting April 4, 2023 HOT 3
- Create one tunneler per shard in the Syncer
- bug: unable to create APIBinding: no permission to bind to export root:my-ws:kubernetes HOT 10
- bug: 403 forbidden when kcp is enabled with OIDC HOT 2
- epic: Remove TMC from the KCP repo
- one workspace in kcp to synchronize different resources of different physical clusters HOT 5
- kcp synchronizes the resources of the physical cluster to the logical cluster HOT 2
- bug: can not sync delete namespace action HOT 2
- bug: The namespace (downstream object) in the pcluster is getting terminated after creating the APIBinding HOT 3
- bug: go install apigen does not work HOT 2
- feature: How to add all K8s core object into root:compute apiresourceschemas HOT 3
- Test issue for GitHub Projects
- Community Meeting June 20, 2023 HOT 8
- epic: Kubernetes 1.27 HOT 1
- Community Meeting July 6 2023 HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kcp.