{"id":13439470,"url":"https://github.com/kcp-dev/kcp","last_synced_at":"2026-03-02T09:13:26.512Z","repository":{"id":36950967,"uuid":"353364259","full_name":"kcp-dev/kcp","owner":"kcp-dev","description":"Kubernetes-like control planes for form-factors and use-cases beyond Kubernetes and container workloads.","archived":false,"fork":false,"pushed_at":"2026-02-22T09:34:12.000Z","size":50475,"stargazers_count":2720,"open_issues_count":138,"forks_count":430,"subscribers_count":33,"default_branch":"main","last_synced_at":"2026-02-22T15:28:18.068Z","etag":null,"topics":["k8s","kcp","kubernetes","multitenancy"],"latest_commit_sha":null,"homepage":"https://kcp.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kcp-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":"DCO","cla":null}},"created_at":"2021-03-31T13:20:20.000Z","updated_at":"2026-02-22T09:33:11.000Z","dependencies_parsed_at":"2023-01-17T07:47:11.932Z","dependency_job_id":"3708a86d-35f6-44f7-ad04-cda5667cb873","html_url":"https://github.com/kcp-dev/kcp","commit_stats":{"total_commits":3934,"total_committers":128,"mean_commits":30.734375,"dds":0.7203863751906456,"last_synced_commit":"4e00e7b6b42f45330126c57f9b85082dc18b52e0"},"previous_names":[],"tags_count":118,"template":false,"template_full_name":null,"purl":"pkg:github/kcp-dev/kcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kcp-dev%2Fkcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kcp-dev%2Fkcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kcp-dev%2Fkcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kcp-dev%2Fkcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kcp-dev","download_url":"https://codeload.github.com/kcp-dev/kcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kcp-dev%2Fkcp/sbom","scorecard":{"id":545812,"data":{"date":"2025-08-11","repo":{"name":"github.com/kcp-dev/kcp","commit":"62984e67bc1de37655c0ac8d83c6807307cdb7c0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.5,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 23 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/add-to-project.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/docs-gen-and-push.yaml:20","Warn: no topLevel permission defined: .github/workflows/gh-image-purge.yaml:1","Warn: no topLevel permission defined: .github/workflows/gh-issues-issue-opened.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/goreleaser.yml:13","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.28.0 not signed: https://api.github.com/repos/kcp-dev/kcp/releases/235574470","Warn: release artifact v0.27.1 not signed: https://api.github.com/repos/kcp-dev/kcp/releases/208886940","Warn: release artifact v0.27.0 not signed: https://api.github.com/repos/kcp-dev/kcp/releases/206531199","Warn: release artifact v0.26.3 not signed: https://api.github.com/repos/kcp-dev/kcp/releases/206538504","Warn: release artifact v0.27.0-rc.1 not signed: https://api.github.com/repos/kcp-dev/kcp/releases/204990408","Warn: release artifact v0.28.0 does not have provenance: https://api.github.com/repos/kcp-dev/kcp/releases/235574470","Warn: release artifact v0.27.1 does not have provenance: https://api.github.com/repos/kcp-dev/kcp/releases/208886940","Warn: release artifact v0.27.0 does not have provenance: https://api.github.com/repos/kcp-dev/kcp/releases/206531199","Warn: release artifact v0.26.3 does not have provenance: https://api.github.com/repos/kcp-dev/kcp/releases/206538504","Warn: release artifact v0.27.0-rc.1 does not have provenance: https://api.github.com/repos/kcp-dev/kcp/releases/204990408"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/goreleaser.yml:16"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":4,"reason":"dependency not pinned by hash detected -- score normalized to 4","details":["Info: Possibly incomplete results: error parsing shell code: [ must follow a name: contrib/demos-unmaintained/demo/clusters/kind/createKindClusters.sh:0","Warn: containerImage not pinned by hash: Dockerfile:18","Warn: containerImage not pinned by hash: Dockerfile:63: pin your Docker image by updating gcr.io/distroless/static:debug to gcr.io/distroless/static:debug@sha256:072204b513ba56f418d58f9d771de54ffe4fddd22fe5cf891697e6129bd8fb6e","Warn: containerImage not pinned by hash: contrib/tilt/Dockerfile.cache:3: pin your Docker image by updating alpine to alpine@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: contrib/tilt/Dockerfile.kcp:3: pin your Docker image by updating alpine to alpine@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: contrib/tilt/Dockerfile.proxy:3: pin your Docker image by updating alpine to alpine@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: goCommand not pinned by hash: contrib/crds/generate-crds.sh:37","Info:   7 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   3 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   5 containerImage dependencies pinned","Info:   1 out of   2 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2024-2631 / GHSA-c5q2-7r4c-mv6g"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T09:27:56.237Z","repository_id":36950967,"created_at":"2025-08-20T09:27:56.237Z","updated_at":"2025-08-20T09:27:56.237Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29996506,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["k8s","kcp","kubernetes","multitenancy"],"created_at":"2024-07-31T03:01:14.181Z","updated_at":"2026-03-02T09:13:26.495Z","avatar_url":"https://github.com/kcp-dev.png","language":"Go","funding_links":[],"categories":["HarmonyOS","Go","kubernetes","Workload Orchestration \u0026 Scheduling"],"sub_categories":["Windows Manager"],"readme":"# \u003cimg alt=\"Logo\" width=\"80px\" src=\"./contrib/logo/blue-green.png\" style=\"vertical-align: middle;\" /\u003e kcp\n\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8119/badge)](https://www.bestpractices.dev/projects/8119)\n[![Go Report Card](https://goreportcard.com/badge/github.com/kcp-dev/kcp)](https://goreportcard.com/report/github.com/kcp-dev/kcp)\n[![GitHub](https://img.shields.io/github/license/kcp-dev/kcp)](https://img.shields.io/github/license/kcp-dev/kcp)\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/kcp-dev/kcp?sort=semver)](https://img.shields.io/github/v/release/kcp-dev/kcp?sort=semver)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fkcp-dev%2Fkcp.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fkcp-dev%2Fkcp?ref=badge_shield)\n\n## Overview\n\nkcp is a Kubernetes-like control plane focusing on:\n\n- A **control plane** for many independent, **isolated** “clusters” known as **workspaces**\n- Enabling API service providers to **offer APIs centrally** using **multi-tenant operators**\n- Easy **API consumption** for users in their workspaces\n\nkcp can be a building block for SaaS service providers who need a **massively multi-tenant platform** to offer services\nto a large number of fully isolated tenants using Kubernetes-native APIs. The goal is to be useful to cloud\nproviders as well as enterprise IT departments offering APIs within their company.\n\n**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](https://github.com/kcp-dev/kcp/tree/main-pre-tmc-removal) if you are interested in the related code.\n\n## Documentation\n\nPlease visit [docs.kcp.io/kcp](https://docs.kcp.io/kcp/latest) for our documentation.\n\n## Contributing\n\nWe ❤️ our contributors! If you're interested in helping us out, please check out [contributing to kcp](https://docs.kcp.io/kcp/main/contributing/).\n\nThis community has a [Code of Conduct](./code-of-conduct.md). Please make sure to follow it.\n\n## Getting in touch\n\nThere are several ways to communicate with us:\n\n- The [`#kcp-dev` channel](https://app.slack.com/client/T09NY5SBT/C021U8WSAFK) in the [Kubernetes Slack workspace](https://slack.k8s.io).\n- Our mailing lists:\n    - [kcp-dev](https://groups.google.com/g/kcp-dev) for development discussions.\n    - [kcp-users](https://groups.google.com/g/kcp-users) for discussions among users and potential users.\n- By joining the kcp-dev mailing list, you should receive an invite to our bi-weekly community meetings.\n- See recordings of past community meetings on [YouTube](https://www.youtube.com/channel/UCfP_yS5uYix0ppSbm2ltS5Q).\n- The next community meeting dates are available via our [CNCF community group](https://community.cncf.io/kcp/).\n- Check the [community meeting notes document](https://docs.google.com/document/d/1PrEhbmq1WfxFv1fTikDBZzXEIJkUWVHdqDFxaY1Ply4) for future and past meeting agendas.\n- Browse the [shared Google Drive](https://drive.google.com/drive/folders/1FN7AZ_Q1CQor6eK0gpuKwdGFNwYI517M?usp=sharing) to share design docs, notes, etc.\n    - Members of the kcp-dev mailing list can view this drive.\n\n## Additional references\n\n- [Platform Engineering Day Europe 2024: Building a Platform Engineering API Layer with kcp – Marvin Beckers](https://www.youtube.com/watch?v=az5Rm8Snms4)\n- [KubeCon EU 2024: Why Kubernetes Is Inappropriate for Platforms, and How to Make It Better – Stefan Schimanski, Mangirdas Judeikis, Sebastian Scheele](https://www.youtube.com/watch?v=7op_r9R0fCo)\n- [KubeCon EU 2024: Kubernetes-style APIs for SaaS-like Control Planes with kcp – Marvin Beckers, Mangirdas Judeikis](https://www.youtube.com/watch?v=-P1kUo5zZR4)\n- [KubeCon US 2022: Kcp: Towards 1,000,000 Clusters, Name^WWorkspaced CRDs - Stefan Schimanski](https://www.youtube.com/watch?v=fGv5dpQ8X5I)\n- [Rejekts US 2022: What if namespaces provided more isolation than just names? – Stefan Schimanski](https://www.youtube.com/watch?v=WGrPUyx7qQE)\n- [Let's Learn kcp - A minimal Kubernetes API server with Saiyam Pathak - July 7, 2021](https://www.youtube.com/watch?v=M4mn_LlCyzk)\n- [TGI Kubernetes 157: Exploring kcp: apiserver without Kubernetes](https://youtu.be/FD_kY3Ey2pI)\n- [K8s SIG Architecture meeting discussing kcp - June 29, 2021](https://www.youtube.com/watch?v=YrdAYoo-UQQ)\n- [OpenShift Commons: Kubernetes as the Control Plane for the Hybrid Cloud - Clayton Coleman](https://www.youtube.com/watch?v=Y3Y11Aj_01I)\n- [KubeCon EU 2021: Kubernetes as the Hybrid Cloud Control Plane Keynote - Clayton Coleman](https://www.youtube.com/watch?v=oaPBYUfdFE8)\n\n\n## License\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fkcp-dev%2Fkcp.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fkcp-dev%2Fkcp?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkcp-dev%2Fkcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkcp-dev%2Fkcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkcp-dev%2Fkcp/lists"}