Giter VIP home page Giter VIP logo

Comments (8)

smarterclayton avatar smarterclayton commented on May 18, 2024 1

@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.

smarterclayton avatar smarterclayton commented on May 18, 2024 1

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.

imjasonh avatar imjasonh commented on May 18, 2024

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.

andrewrynhard avatar andrewrynhard commented on May 18, 2024

Would be happy to chat more about this, FWIW.

from kcp.

smarterclayton avatar smarterclayton commented on May 18, 2024

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.

andrewrynhard avatar andrewrynhard commented on May 18, 2024

@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.

smarterclayton avatar smarterclayton commented on May 18, 2024

Created a stub in #74 which we can iterate on over time.

from kcp.

vorburger avatar vorburger commented on May 18, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.