Turn an on-prem datacenter into a self-service cloud. OCD is an open, modular control plane and module set for running compute, Kubernetes clusters, and networking on your own hardware — without public-cloud lock-in.
- Sovereignty — full control over your data and infrastructure.
- Portability — move workloads across on-prem hardware and providers.
- Cost-efficiency — optimize resource usage and avoid vendor lock-in.
- Community-driven — built on open standards and collaborative development.
ℹ️ This
mainbranch is the index — it carries no code. Each layer of the stack lives on its own branch, mapped below;mainis intentionally kept as the front door + roadmap, not a place to build from.
The architecture is built around two complementary efforts:
- Open Cloud Data Center Core — combines Rancher and Harvester with an operator extension layer for adding platform capabilities. It also includes Terraform modules and can be consumed through IaC or GitOps workflows.
- Data Center API — abstracts the Core and other backend systems behind a unified control plane, accessible through the UI, CLI, and provider integrations.
The foundation everything else builds on: modules that wrap the Harvester + Rancher providers to stand up the platform (Rancher, networking, storage, identity, monitoring), onboard tenants (projects, quotas, VMs, clusters), and optionally deploy the operators and the control-plane's hosting infrastructure.
→ github.com/wso2/open-cloud-datacenter/tree/terraform
Kubernetes operators that turn Harvester capacity into managed, as-a-service resources — Database (PostgreSQL) and Key Vault today, more landing alongside. Each is a self-contained kubebuilder project that reconciles custom resources dispatched by the control plane into real VMs on Harvester.
→ github.com/wso2/open-cloud-datacenter/tree/operators
A REST API (DC-API), a CLI (dcctl), and a web console (cloud-ui) that turn the raw platform into a cloud-like experience — provision VMs and Kubernetes clusters with a single command, no Terraform knowledge required.
The same control plane, two ways — provisioning a virtual network from the CLI or the web console:
dcctl — CLI![]() |
Web console![]() |
→ github.com/wso2/open-cloud-datacenter/tree/controlplane
Found a bug or have a feature request? Use the issue templates on this repo — bug reports and feature/improvement requests are triaged separately from general questions. Issues that apply to a specific layer (e.g. a Terraform module, an operator) are still filed here; mention the relevant branch in the report.
Contributions are welcome on every branch. Start with
docs/CONTRIBUTING.md for the workflow, and the
pull request template for what a good PR looks
like here. Please read CODE_OF_CONDUCT.md before
participating.
Licensed under the terms in LICENSE. See also CODE_OF_CONDUCT.md.



