platformengineering/openchoreo wso2
Core Idea
OpenChoreo is a complete, modular, open-source developer platform for Kubernetes that bundles the abstractions teams need, so nobody assembles an IDP from scratch.
- Problems it solves: the IDP challenge table (Kubernetes complexity, tool sprawl, compliance, multi-cluster ops, cognitive load, no AI path) and how OpenChoreo answers each.
- Architecture and concepts: multi-plane overview, developer and platform abstractions, ecosystem extensions, and modular design.
- AI as a first-class platform construct, an end-to-end walkthrough of how it works, and documentation links.
Introduction
OpenChoreo is a complete, modular, open-source developer platform for Kubernetes that brings together the abstractions platform and application teams actually need β development and architecture guardrails, a Backstage-powered developer portal, application CI/CD, GitOps, and observability β in a single, cohesive platform.
OpenChoreo orchestrates Kubernetes and other CNCF and open-source projects to give platform teams a strong head start. You can use it as-is, or tailor it to fit your own Internal Developer Platform (IDPs) vision.
OpenChoreo is a CNCF Sandbox project, originally developed by WSO2, as the successor and next evolution of its SaaS WSO2 Developer Platform (formerly known as WSO2 Choreo), bringing years of battle-hardened Platform Engineering experience and lessons learnt to the CNCF open-source community.
Current Version: v1.1.x (Release Notes)
Problems OpenChoreo Solves
Many organizations are investing in Internal Developer Platform (IDPs) to improve developer velocity, reduce cognitive load, enforce organization-wide standards, and lower overall operational complexity. However, designing, building and maintaining a production-grade platform is a difficult task.

Challenges teams face when building IDPs
| Challenge | Description |
|---|---|
| Kubernetes Complexity | Managing the complexity and cognitive load of the Kubernetes API and its auxiliary ecosystem to keep developer experience simple and intuitive |
| Tool Integration Sprawl | Integrating, maintaining and standardizing CI/CD, observability, security, and policy tools across the organization |
| Compliance & Governance | Meeting compliance and governance requirements across teams and environments |
| Multi-cluster Operations | Operating reliably across multiple clusters and clouds with consistent policies |
| Developer Cognitive Load | Developers are forced to understand low-level infrastructure details instead of focusing on business logic |
| No AI Integration Path | No clear path to supporting AI-assisted/driven engineering and operations through the platform |
| Access Control Complexity | Managing access controls and multi-tenancy between teams, projects, tools and runtime resources |
How OpenChoreo addresses these challenges
OpenChoreo provides an Internal Developer Platform (IDPs) that is usable from day one, including:
- A scalable, modular architecture for your Internal Developer Platform (IDPs)
- Platform APIs and abstractions as building blocks
- Programmable developer abstractions and golden paths covering the SDLC
- Integrated, intelligent observability (logs, metrics, traces, and alerts)
- Built-in agents (for site reliability engineering, cost control, and architecture)
- AI-assisted/driven development and operations via MCP servers
- Declarative platform and application state with Kubernetes as the system of record (native GitOps)
- Multi-tenancy and access controls for enterprise teams
- A module catalog to integrate external tools, or build your own
Key differentiator: Unlike many platforms that attempt to hide Kubernetes behind proprietary layers or βblack boxβ abstractions, OpenChoreo keeps Kubernetes visible and operable. It augments Kubernetes into a complete developer platform. All platform APIs and programmable developer abstractions are Kubernetes-native and are reconciled by OpenChoreoβs controllers in the control plane.
Architecture
OpenChoreo is architected as a modular, multi-plane Kubernetes-native system that integrates deeply with other open-source projects to provide a complete, extensible Internal Developer Platform (IDPs)). It uses a domain-and-abstraction-driven, API-first approach as its core design philosophy β setting it apart from platforms built from disparate tools stitched together with scripts.


Multi-Plane Architecture Overview
Each plane in OpenChoreo operates as a distinct functional unit, with its own deployment and upgrade lifecycle, scaling behavior, and security boundaries.
Experience Plane
The user-facing layer of OpenChoreo, built for platform teams, development teams and agents to interact with the Internal Developer Platform (IDPs) based on their respective roles and permissions.
| Component | Description |
|---|---|
CLI (occ) | Command-line interface for interacting with the platform |
| Internal Developer Portal | Backstage-based UI with native Backstage plugins and custom OpenChoreo plugins |
| OpenAPI-v3 APIs | RESTful APIs exposed by the control plane and observability plane |
| MCP Servers | Model Context Protocol servers for AI-assisted development and operations |
The declarative nature of OpenChoreoβs APIs allows it to be operated imperatively via the UI, CLI, and MCPs, or declaratively with Git as the source of truth (native GitOps).
Control Plane
The control plane is a Kubernetes cluster that acts as the βbrainβ of OpenChoreo. It runs a central control loop that continuously monitors the state of the platform and developer resources.
Key components:
- API Server β Exposes the OpenChoreo API, handles authentication, authorization, and request validation. Hosts the authorization engine providing fine-grained RBAC, ABAC, and hierarchical instance-level access control (powered by Apache Casbin)
- Controller Manager β A set of Kubernetes controllers that implement the core reconciliation logic. They watch for changes to CRD instances and take actions to ensure desired state is achieved across all planes
- Cluster Gateway β A hub-and-spoke communication system using Secure WebSocket (wss) with mTLS authentication. Other planes establish outbound connections to the control plane, preventing their Kubernetes API servers from being exposed to the internet
Authentication: Integrates with any OAuth2/OIDC-compatible Identity Provider. Ships with ThunderID by default.
Data Plane(s)
Data Planes represent Kubernetes clusters where application workloads run. They abstract the complexity of cluster management, providing a unified interface for deploying applications across multiple clusters.
- Provide isolated, observable runtime environments and gateway topology
- Host multiple environments and projects with automatic namespace, network policy management
- Enable strategies like geographic distribution, compliance-based placement, and disaster recovery
- Support optional modules for API management, scale-to-zero, and zero-trust networking
Workflow Plane(s)
Workflow Planes provide dedicated infrastructure for CI/CD and automation workloads, separated from runtime workloads.
- Integrate with Argo Workflows for Kubernetes-native CI/CD execution
- Handle the complete build lifecycle: source retrieval β compilation β testing β container image creation
- Security isolation of untrusted build processes from production environments
- Also run GitOps workflows and general-purpose automation (e.g., Infrastructure as Code)
Observability Plane(s)
Observability Planes provide centralized infrastructure for logs, metrics, traces, and alerts across all other planes.
- Uses a pluggable adapter-pattern: OpenSearch (logs/traces) + Prometheus (metrics) by default
- Observer API provides authenticated access for integration with external tools
- Module authors can swap backends by implementing the adapter API
- Configurable alerting rules with email/webhook notification routing
Concepts
OpenChoreoβs concepts are organized into two categories: Developer Abstractions (used by application teams) and Platform Abstractions (used by platform engineers).

Transclude of from-cell-based-architecture-to-openchoreo#core-concepts-from-cells-to-platform-objects
Developer Abstractions
Developer abstractions enable teams to build, deploy, and operate cloud-native applications without managing infrastructure complexity. They provide a declarative model for expressing application architecture, dependencies, and operational requirements.
Project
A Project represents a bounded context (Domain-Driven Design) β a cohesive collection of components that together implement a specific business capability or application domain.
- Primary organizational unit for developers
- Defines clear boundaries for code ownership, deployment coordination, and operational responsibility
- Logical boundaries: Groups related components sharing common business logic, data models, and team ownership
- Physical boundaries: Translates into isolated deployment units (Cells) with dedicated namespaces, network boundaries, and security policies
- Components within a project can communicate freely with each other (locality principle)
Component
A Component represents a deployable unit of software β the fundamental building block of applications in OpenChoreo (e.g., a microservice, a web application, or a background job).
Components connect four essential elements:
| Element | Description |
|---|---|
| ComponentType Reference | Specifies which platform-defined template governs deployment (e.g., deployment/web-service, cronjob/data-processor) |
| Parameters | Component-specific configuration values captured in release snapshots β identical across all environments |
| Traits | Composable additional capabilities (persistent storage, caching, monitoring) β instantiated multiple times with different configurations |
| Source | Reference to the source code repository and build configuration |
ComponentRelease
A ComponentRelease is an immutable snapshot of a component at a point in time, capturing the exact parameter values, trait configurations, and build artifacts. Releases are the unit of deployment promotion.
ReleaseBinding
A ReleaseBinding connects a ComponentRelease to a specific Environment. This is what actually deploys a release to a data plane β it can also carry environment-specific overrides via environmentConfigs (e.g., resource limits, storage sizes).
Platform Abstractions
Platform abstractions provide the foundational infrastructure layer that platform engineers use to build and manage the Internal Developer Platform (IDPs).
Namespace
OpenChoreo uses Kubernetes namespaces to organize and isolate groups of related resources. Platform resources are created as cluster-scoped resources by default (e.g., ClusterComponentType, ClusterTrait, ClusterWorkflow), making them visible to all namespaces. Namespace-scoped variants can be created for isolation.
Namespaces are identified via a label: openchoreo.dev/control-plane: true
Environment
An Environment represents a stage in the software delivery lifecycle (e.g., development, staging, production).
- First-class abstractions β not just labels or namespaces
- Define where applications should be deployed (which DataPlane)
- Serve as targets for deployment pipelines
DeploymentPipeline
A DeploymentPipeline defines the allowed progression paths for applications moving through environments.
- Encodes promotion rules and quality gates as declarative configuration
- Supports complex promotion topologies (parallel paths, conditional progressions)
- Integration point for automated testing and compliance checks at promotion boundaries
ComponentType & Trait
| Concept | Description |
|---|---|
| ComponentType | Platform-defined templates that govern deployment patterns (e.g., deployment/web-service). Defines available configuration schema, resource templates, and allowed workflows |
| Trait | Reusable cross-cutting concerns that can be composed into components (e.g., observability sidecar, security proxy, persistent storage) |
| Workflow | Templates for CI/CD and automation pipelines that can be referenced by ComponentTypes |
Ecosystem
The OpenChoreo Ecosystem provides community-driven extensions that seamlessly integrate with the platform to expand its capabilities. Rather than bundling every possible integration into the core, the ecosystem approach lets you choose the tools that fit your needs.
Extension Types
| Type | Description |
|---|---|
| Modules | Pluggable integrations (packaged as Helm charts) that extend platform planes β swap or supplement tools for networking, security, observability, and CI/CD |
| Curated Backstage Modules | Validated Backstage plugins bundled into the OpenChoreo portal to extend the developer experience |
| Agents | AI-powered platform agents for SRE, cost control, and architecture governance |
| Skills | Reusable capabilities that can be referenced by agents and workflows |
| Component Types | Community-defined deployment patterns and templates |
| Workflows | Reusable CI/CD and automation workflow templates |
Key Technologies Integrated
OpenChoreo orchestrates and deeply integrates with these open-source projects:
| Technology | Role in OpenChoreo |
|---|---|
| Backstage | Powers the Internal Developer Portal β extended from a static service catalog into an actionable platform |
| Argo Workflows | Powers the Workflow Plane for CI/CD automation, builds, and infrastructure provisioning |
| Envoy Gateway | API/AI gateway management, routing, authentication, and authorization within the cell-based architecture |
| Cilium | Networking and security foundation β enforces zero-trust security and network policies |
| cert-manager | TLS certificate management for mTLS between planes |
| OpenSearch | Default backend for logs and traces in the Observability Plane |
| Prometheus | Default backend for metrics in the Observability Plane |
| ThunderID | Default open-source identity server (OAuth2/OIDC) |
| Apache Casbin | Powers the built-in authorization engine (RBAC, ABAC) |
Modular Architecture
OpenChoreo is designed to be highly extensible when it comes to platform tooling. You can:
- Use default modules β OpenChoreo ships with sensible defaults for each plane
- Swap modules β Replace any default module with your preferred choice from the modules catalog
- Build your own β Create custom modules that integrate with OpenChoreoβs core APIs and concepts
This module-based architecture allows tools to be integrated without impacting the unified end-user experience.
AI as a First-Class Platform Construct
OpenChoreo was designed from the ground up to support AI-assisted/driven development and operations:
- MCP Servers β Both the control plane and observability plane expose MCP (Model Context Protocol) servers, enabling AI agents like Claude Code, Codex, etc. to interact with the platform
- Same Golden Paths β AI agents follow the same guardrails and authorization policies as human users
- Built-in platform agents β Optional agents for site reliability engineering, cost control, and architecture governance
- Future-proof β Even if your team doesnβt use AI today, the architecture provides a foundation for integrating AI tools later
How OpenChoreo Works (End-to-End)
Developer / AI Agent
β
βΌ
βββββββββββββββββββββββββββββββ
β Experience Plane β
β CLI Β· Portal Β· API Β· MCP β
ββββββββββββββ¬βββββββββββββββββ
β Declarative APIs (CRDs)
βΌ
βββββββββββββββββββββββββββββββ
β Control Plane β
β API Server Β· Controllers β
β Authorization Β· Gateway β
ββββ¬βββββββββββ¬ββββββββββββ¬ββββ
β β β
βΌ βΌ βΌ
βββββββββ ββββββββββ βββββββββββββ
β Data β βWorkflowβ βObserva- β
βPlane β β Plane β βbility β
β(s) β β (s) β βPlane(s) β
β β β β β β
β K8s β β Argo β βOpenSearch β
βClusterβ βWorkflowβ βPrometheus β
βββββββββ ββββββββββ βββββββββββββ
- Developers create
ComponentswithinProjectsvia the CLI, Portal, API, or AI agents - The Control Plane validates requests, resolves references, and triggers workflows
- The Workflow Plane builds container images from source code
- A
ComponentReleasecaptures the immutable build artifact ReleaseBindingsdeploy releases to targetEnvironmentsonData Planes- The Observability Plane collects and correlates logs, metrics, and traces
DeploymentPipelinesgovern the promotion flow (dev β staging β production)
Documentation Links
Ready to try OpenChoreo? Start here:
- Architecture β Learn more about OpenChoreoβs multi-plane architecture
- Quick Start Guide β Experience OpenChoreo locally in minutes with just Docker
- Try It Out β Run Locally (K3d) or On Your Environment
- Concepts β Learn about core concepts and abstractions
- Platform Engineer Guide β Set up in production, configure workflows, govern your platform
- Developer Guide β Build, deploy and observe your applications with self-service
- Working with AI β Use AI assistants (Claude Code, Codex, etc.) with OpenChoreo