kcp

module
v0.28.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2025 License: Apache-2.0

README

Logo kcp

OpenSSF Best Practices Go Report Card GitHub GitHub release (latest SemVer) FOSSA Status

Overview

kcp is a Kubernetes-like control plane focusing on:

  • A control plane for many independent, isolated “clusters” known as workspaces
  • Enabling API service providers to offer APIs centrally using multi-tenant operators
  • Easy API consumption for users in their workspaces

kcp can be a building block for SaaS service providers who need a massively multi-tenant platform to offer services to a large number of fully isolated tenants using Kubernetes-native APIs. The goal is to be useful to cloud providers as well as enterprise IT departments offering APIs within their company.

NB: In May 2023, the kcp project was restructured and components related to workload scheduling (e.g. the syncer) and the transparent multi cluster (tmc) code were removed due to lack of interest/maintainers. Please refer to the main-pre-tmc-removal branch if you are interested in the related code.

Documentation

Please visit docs.kcp.io/kcp for our documentation.

Contributing

We ❤️ our contributors! If you're interested in helping us out, please check out contributing to kcp.

This community has a Code of Conduct. Please make sure to follow it.

Getting in touch

There are several ways to communicate with us:

  • On the Kubernetes Slack workspace.
    • #kcp-users for discussions and questions regarding kcp's setup and usage.
    • #kcp-dev for conversations about developing kcp itself.
  • Our mailing lists.
    • kcp-users for discussions among users and potential users.
    • kcp-dev for development discussions.
  • The bi-weekly community meetings.
    • By joining the kcp-dev mailing list, you should receive an invite to our bi-weekly community meetings.
    • The next community meeting dates are also available via our CNCF community group.
    • Check the community meeting notes document for future and past meeting agendas.
    • See recordings of past community meetings on YouTube.
  • Browse the shared Google Drive to share design docs, notes, etc.
    • Members of the kcp-dev mailing list can view this drive.

Additional references

License

FOSSA Status

Directories

Path Synopsis
cli module
cmd
cache-server command
compat command
crd-puller command
kcp command
kcp-front-proxy command
sharded-test-server command
sharded-test-server starts the kcp-front-proxy and one or more (in the future) kcp shard.
sharded-test-server starts the kcp-front-proxy and one or more (in the future) kcp shard.
test-server command
apigen module
config
docs
hack
pkg
crdpuller
crdpuller package provides a library to pull API resource definitions from existing Kubernetes clusters as Custom Resource Definitions that can then be applied to a KCP instance.
crdpuller package provides a library to pull API resource definitions from existing Kubernetes clusters as Custom Resource Definitions that can then be applied to a KCP instance.
logging
Package logging supplies common constants to ensure consistent use of structured logs.
Package logging supplies common constants to ensure consistent use of structured logs.
proxy
Package proxy provides a reverse proxy that accepts client certificates and forwards Common Name and Organizations to backend API servers in HTTP headers.
Package proxy provides a reverse proxy that accepts client certificates and forwards Common Name and Organizations to backend API servers in HTTP headers.
virtual/framework
Package framework provides a the required interfaces, structs and generic implementation that allow creating KCP virtual workspaces with a minimal amount of work.
Package framework provides a the required interfaces, structs and generic implementation that allow creating KCP virtual workspaces with a minimal amount of work.
virtual/framework/dynamic
Package dynamic provides the types and underlying implementation required to build virtual workspaces which can dynamically serve resources, based on API definitions (including an OpenAPI v3 schema), and a Rest storage provider.
Package dynamic provides the types and underlying implementation required to build virtual workspaces which can dynamically serve resources, based on API definitions (including an OpenAPI v3 schema), and a Rest storage provider.
virtual/framework/dynamic/apiserver
Package apiserver provides an APIServer that can dynamically serve resources based on an API definition (CommonAPIResourceSpec) source and a Rest storage provider.
Package apiserver provides an APIServer that can dynamically serve resources based on an API definition (CommonAPIResourceSpec) source and a Rest storage provider.
virtual/framework/fixedgvs
Package fixedgvs provides the types (and underlying implementation) required to build virtual workspaces which allow adding well-defined APIs in a limited number of group/versions, implemented as Rest storages.
Package fixedgvs provides the types (and underlying implementation) required to build virtual workspaces which allow adding well-defined APIs in a limited number of group/versions, implemented as Rest storages.
virtual/framework/forwardingregistry
Package forwardingregistry provides a CRD-like REST storage implementation that can dynamically serve resources based on a given OpenAPI schema, and forward the requests to a KCP workspace-aware delegate client.
Package forwardingregistry provides a CRD-like REST storage implementation that can dynamically serve resources based on a given OpenAPI schema, and forward the requests to a KCP workspace-aware delegate client.
virtual/framework/handler
Package handler provides a virtual workspace server that operates at the level of one http.Handler, allowing for low-level transformations of the incoming requests.
Package handler provides a virtual workspace server that operates at the level of one http.Handler, allowing for low-level transformations of the incoming requests.
virtual/initializingworkspaces
Package initializingworkspaces and its sub-packages provide the Initializing Workspace Virtual Workspace.
Package initializingworkspaces and its sub-packages provide the Initializing Workspace Virtual Workspace.
virtual/replication
Package replication and its sub-packages provide the Replication Virtual Workspace.
Package replication and its sub-packages provide the Replication Virtual Workspace.
apis module
client module
sdk module
test
e2e/fixtures/wildwest/apis/wildwest/v1alpha1
+k8s:deepcopy-gen=package,register +groupName=wildwest.dev
+k8s:deepcopy-gen=package,register +groupName=wildwest.dev
e2e/fixtures/wildwest/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
e2e/fixtures/wildwest/client/clientset/versioned/cluster/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
e2e/fixtures/wildwest/client/clientset/versioned/cluster/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
e2e/fixtures/wildwest/client/clientset/versioned/cluster/typed/wildwest/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
e2e/fixtures/wildwest/client/clientset/versioned/cluster/typed/wildwest/v1alpha1/fake
Package fake has the automatically generated cluster clients.
Package fake has the automatically generated cluster clients.
e2e/fixtures/wildwest/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
e2e/fixtures/wildwest/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
e2e/fixtures/wildwest/client/clientset/versioned/typed/wildwest/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
e2e/fixtures/wildwest/client/clientset/versioned/typed/wildwest/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL