Barenetes is an open-source, reimplementation of the core Kubernetes control plane in Rust. The goal is to build a working, minimal container orchestrator from scratch.
Status: Early development. Core components are being scaffolded. Not production-ready.
Kubernetes is a powerful but complex system. Barenetes strips it down to its essential primitives, reimplementing them in safe, idiomatic Rust. The project is designed to be readable and approachable.
Key design principles:
- Minimal : only the core orchestration loop, no optional features
- Transparent : clear separation between components, explicit communication via gRPC
- Safe : Rust's type system and ownership model enforced throughout
Barenetes is a Cargo workspace composed of five crates, each mirroring a real Kubernetes component. All inter-component communication uses gRPC / Protocol Buffers.
| Crate | Equivalent | Role |
|---|---|---|
agent |
kubelet | Runs on each node, manages container lifecycle |
api |
kube-apiserver | Central hub : accepts requests and coordinates state |
barectl |
kubectl | CLI to interact with the API server |
scheduler/reconciliator |
kube-scheduler | Assigns workloads to nodes |
cni |
CNI plugin | Manages pod networking |
Proto definitions live in proto/<component>/v1/.
git clone https://github.com/do-2k25-28/Barenetes.git
cd BarenetesBuild the entire workspace:
cargo buildBuild a single component:
cargo build -p agent
cargo build -p api
cargo build -p barectl
cargo build -p scheduler
cargo build -p cniRun a component:
cargo run -p apiContributions are welcome. Please open an issue before submitting a pull request for non-trivial changes so we can discuss the approach first.
- Fork the repository
- Create a feature branch (
git checkout -b feat/my-feature) - Commit your changes
- Open a pull request
Please keep PRs focused : one feature or fix per PR.
Distributed under the MIT License. See LICENSE for details.