Generic Control Plane is a new project under KCP umbrella and is not yet ready for production use. We are actively working on the project and welcome contributions from the community. If you are interested in contributing, please see our contributing guide.
Generic Control plane is a Kubernetes based control plane focusing on:
- A control plane for Kubernetes-native APIs that can be used without Kubernetes
- Enabling API service providers to offer APIs centrally
gcp can be a building block for SaaS service providers who need a robust API base platform out-of-the-box. The goal is to be useful to cloud providers as well as enterprise IT departments offering APIs within their company.
To get started with generic control plane:
# Clone the repository
git clone https://github.com/kcp-dev/generic-controlplane.git
# Build the project
cd generic-controlplane && make build
# Start standalone gcp
./bin/gcp start
# Access the gcp API
export KUBECONFIG=.gcp/admin.kubeconfig
# Check resources in the gcp API
kubectl api-resources
Example server contains a simple implementation of batteries that can be used to extend the gcp API.
Batteries:
leases
- a Kubernetes lease resources fromcoordination.k8s.io
authentication
- Kubernetes native authentication usingauthentication.k8s.io
authorization
- Kubernetes native authorization usingauthorization.k8s.io
admission
- Kubernetes native admission usingadmissionregistration.k8s.io
flowcontrol
- Kubernetes native flow control usingflowcontrol.apiserver.k8s.io
When starting server without any flags, in-memory storage will be used and batteries will be disabled by default.
Important: In the long run, we plan to move existing apis into batteries on its own, and make default server to be a simple server without any resources.
To start the server with batteries enabled, use the following flags:
./bin/gcp start --batteries=lease,authentication,authorization,admission,flowcontrol
We ❤️ our contributors! If you're interested in helping us out, please check out contributing to Generic Control Plane.
This community has a Code of Conduct. Please make sure to follow it.
There are several ways to communicate with us:
- The
#kcp-dev
channel in the Kubernetes Slack workspace. - Our mailing lists:
- By joining the kcp-dev mailing list, you should receive an invite to our bi-weekly community meetings.
- See recordings of past community meetings on YouTube.
- The next community meeting dates are available via our CNCF community group.
- Check the community meeting notes document for future and past meeting agendas.
- Browse the shared Google Drive to share design docs, notes, etc.
- Members of the kcp-dev mailing list can view this drive.