kcp

module
v0.24.0 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 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:

Additional references

License

FOSSA Status

Directories

Path Synopsis
cli module
cmd
kcp
sharded-test-server
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.
sharded-test-server/third_party/library-go/crypto
this is copied from https://github.com/openshift/library-go/tree/master/pkg/crypto.
this is copied from https://github.com/openshift/library-go/tree/master/pkg/crypto.
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.
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/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