Warning
This Repository is under development and not ready for productive use. It is in an alpha stage. That means APIs and concepts may change on short notice including breaking changes or complete removal of apis.
Platform Mesh is an open, multi-tenant developer platform built on kcp. It provides account-based tenancy, relationship-based authorization (ReBAC via OpenFGA), and UI extensibility on top of a Kubernetes-like control plane.
This repository is the Platform Mesh monorepo: it consolidates the shared libraries, operators, services, and tooling that make up the platform. Each component is its own Go module, linked together through the repository-root go.work workspace. The Helm charts (charts/), the OCM component definitions (ocm/) and the installation guide (installation/) live here as well.
| Module | Description |
|---|---|
| apis | Shared CRD Go types, deepcopy, and scheme for the *.platform-mesh.io API groups. |
| golang-commons | Reusable Go libraries (JWT, context, error handling, logging, controllers) shared across components. |
| subroutines | Lifecycle engine for Kubernetes/kcp controllers with Result-based flow control, conditions, and observability. |
| Operator | Description |
|---|---|
| account-operator | Manages the core Account grouping resource and its owned namespace. |
| backup-operator | Orchestrates Velero, CloudNativePG, and etcd-druid to back up and restore a Platform Mesh deployment. |
| extension-manager-operator | Lifecycle management of ContentConfiguration resources for Micro Frontends. |
| kcp-migration-operator | Synchronizes custom resources from existing Kubernetes clusters into kcp workspaces. |
| resource-sharding-operator | Assigns resources to shards via labels so downstream operator replicas filter their watches by shard. |
| security-operator | Manages security-related configuration (authorization models, identity providers, tuples, stores, invites). |
| terminal-controller-manager | Manages browser-based terminal sessions (ephemeral pods) to kcp workspaces. |
| Service | Description |
|---|---|
| iam-service | GraphQL API for user and role management, driving OpenFGA and the identity provider (Keycloak). |
| virtual-workspaces | Custom kcp-based virtual workspaces that expose tailored data to UIs. |
| rebac-authz-webhook | Kubernetes authorization webhook backed by OpenFGA (ReBAC). |
| kubernetes-graphql-gateway | Exposes Kubernetes resources as a GraphQL API for UIs and tools. |
Each module can be built and tested on its own, or through the repository-root Taskfile, which fans out to every component:
task build # build all components
task test # test all components
task lint # lint all components
task verify # lint + testTarget a single component with the <target>-<component> pattern:
task build-iam-service
task test-account-operator
task images-iam-service VERSION=v0.1.0 PUSH=falseThe modules are linked through the root go.work, so cross-module changes resolve against local source during development.
For the development loop, Tilt replaces the OCM/Flux delivery pipeline: the kind installation from installation/README.md is rendered straight from charts/, and the operators and services you are working on are compiled on the host and hot-reloaded into their pods in seconds.
helm needs to be authenticated with ghcr.io to pull the charts:
helm registry login ghcr.io --username "<github-user>"Then bring up the kind cluster and tilt:
task tilt:up # brings up tilt with a webinterface
task tilt:ci # bring up tilt until all resources are green, then exits
task tilt:e2e # runs the portal sharded e2e tests against the running tilt PM instanceEverything is addressed as <name>.pm.<node-ip>.sslip.io:31000; platformmesh-ready turning green means the installation is usable. Chart changes are picked up live, service values come from the operator's kind profile.
tilt alpha tiltfile-result -f contrib/tilt/TiltfilePlatform Mesh has one version, vYY.MM.P (CalVer: v26.10.0 is the October 2026 release). Tagging it builds every component image and chart from that commit, publishes the signed OCM component graph and creates a GitHub release; patch releases are tags on release-YY.MM branches, backports are plain cherry-picks. See docs/release/process.md and RFC 015.
Building Platform Mesh requires an installation of Go. Checkout each module's go.mod for the required Go version and dependencies.
Please refer to the CONTRIBUTING.md file in this repository for instructions on how to contribute to Platform Mesh.
Please refer to our Code of Conduct for information on the expected conduct for contributing to Platform Mesh.
Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.
