MCPcopy
hub / github.com/kcp-dev/kcp

github.com/kcp-dev/kcp @v0.32.2 sqlite

repository ↗ · DeepWiki ↗ · release v0.32.2 ↗
22,917 symbols 341,236 edges 2,858 files 11,294 documented · 49%
README

Logo kcp

OpenSSF Best Practices Go Report Card GitHub GitHub release (latest SemVer) FOSSA Status LFX Health Score LFX Active Contributors

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.

Getting Started

For Users: Follow our Setup & Quick Start guide to download and run kcp.

For Developers: To build and run kcp from source:

# Build and run from source:
go run ./cmd/kcp start

# In another terminal:
export KUBECONFIG=.kcp/admin.kubeconfig && kubectl get workspaces

Learn More: - Concepts & Tenancy Guide - Learn about workspaces, workspace types, and APIs

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

Extension points exported contracts — how you extend this code

ClusterLister (Interface)
ClusterLister is a cluster-aware Lister API. [199 implementers]
pkg/informer/fallback_lookup.go
ClusterPatcher (Interface)
ClusterPatcher is just the cluster-aware Patch API with a generic to keep use sites type safe. [1010 implementers]
pkg/reconciler/committer/committer.go
WantsKcpInformers (Interface)
WantsKcpInformers interface should be implemented by admission plugins that want to have both local and global kcp infor [16 …
pkg/admission/initializers/interfaces.go
CowboyClusterLister (Interface)
CowboyClusterLister helps list Cowboys across all workspaces, or scope down to a CowboyLister for one workspace. All obj [199 …
test/e2e/fixtures/wildwest/client/listers/wildwest/v1alpha1/cowboy.go
Mutator (Interface)
* These interfaces are supposed to be used by the virtual workspace admission plugins. We're intentionally not using t [15 …
staging/src/github.com/kcp-dev/virtual-workspace-framework/pkg/admission/interface.go
AuthenticatorIndex (Interface)
AuthenticatorIndex implements a mapping from workspace type to authenticator.Request. [5 implementers]
pkg/authentication/index.go
Index (Interface)
Index implements a mapping from logical cluster to (shard) URL. [1 implementers]
pkg/index/index.go
Sink (Interface)
Sink collects measurements during a load test. Implementations must be safe for concurrent use, as Execute calls Drop fr [1 …
test/load/pkg/measurement/measurement.go

Core symbols most depended-on inside this repo

Errorf
called by 1456
staging/src/github.com/kcp-dev/sdk/testing/server/testing.go
Cluster
called by 1250
test/e2e/fixtures/wildwest/client/listers/wildwest/v1alpha1/cowboy.go
Logf
called by 1170
staging/src/github.com/kcp-dev/sdk/testing/server/testing.go
Context
called by 1081
staging/src/github.com/kcp-dev/sdk/testing/server/testing.go
WithResource
called by 847
staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/groupresource.go
Resource
called by 825
staging/src/github.com/kcp-dev/client-go/dynamic/interface.go
Path
called by 803
pkg/cache/client/shard/shard.go
String
called by 762
test/load/pkg/tree/tree.go

Shape

Method 12,257
Function 4,868
Struct 3,512
Interface 2,118
FuncType 87
TypeAlias 75

Languages

Go100%
Python1%
TypeScript1%

Modules by API surface

staging/src/github.com/kcp-dev/sdk/openapi/zz_generated.openapi.go186 symbols
staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing/actions.go145 symbols
staging/src/github.com/kcp-dev/client-go/kubernetes/fake/clientset.go117 symbols
staging/src/github.com/kcp-dev/client-go/kubernetes/clientset.go116 symbols
staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing/fixture.go86 symbols
staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/zz_generated.deepcopy.go84 symbols
staging/src/github.com/kcp-dev/sdk/testing/third_party/library-go/crypto/crypto.go75 symbols
staging/src/github.com/kcp-dev/apimachinery/third_party/informers/shared_informer.go75 symbols
staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/zz_generated.conversion.go72 symbols
pkg/informer/informer.go71 symbols
staging/src/github.com/kcp-dev/client-go/informers/factory.go67 symbols
staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/zz_generated.deepcopy.go62 symbols

Dependencies from manifests, versioned

cel.dev/exprv0.25.1 · 1×
cyphar.com/go-pathrsv0.2.2 · 1×
github.com/Azure/go-ansitermv0.0.0-2023012417243 · 1×
github.com/MakeNowJust/heredocv1.0.0 · 1×
github.com/NYTimes/gziphandlerv1.1.1 · 1×
github.com/abiosoft/lineprefixv0.1.4 · 1×
github.com/antlr4-go/antlr/v4v4.13.1 · 1×
github.com/aymanbagabas/go-osc52/v2v2.0.1 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/blang/semver/v4v4.0.0 · 1×
github.com/bombsimon/logrusr/v3v3.1.0 · 1×

For agents

$ claude mcp add kcp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact