kobe 0.33.0 — initial public release
Kobe is a Kubernetes operator, written in Rust, that manages fleets of ephemeral clusters. It keeps pools pre-warmed across several backends (k3s, k0s, vcluster, CAPI) so CI pipelines and developers can lease a fully configured, isolated cluster in under 5 seconds over a simple HTTP API. This is the first public release.
Why
Throwaway Kubernetes in CI is usually slow and awkward: spinning up Kind or vcluster per job costs anywhere from 30 seconds to several minutes, typically needs Docker-in-Docker hacks and fragile networking, and means distributing kubeconfigs or static secrets that somebody has to rotate. Kobe flips it around — the clusters are already running and waiting, so a job just claims one with a curl and a JWT, uses it, and releases it. On release (or TTL expiry) the cluster is destroyed and a fresh one is recycled in the background, so every lease starts clean.
What it does
- Pre-warmed pools, instant leases. A
ClusterPoolCRD defines a backend plus a cluster template (addons, resource limits); the operator keeps warm replicas ready to bind. Claim time is under 5s instead of 30–360s. - Pluggable backends. k3s, k0s, vcluster, and Cluster API — pick per pool.
- HTTP API, or a CLI.
POST /v1/leasesreturns a pending lease; poll untilBoundand you get a ready-to-use kubeconfig. Or use the CLI:kobe login→kobe lease ci-small→kobe release <id>. - No static secrets. OIDC / JWT auth, with TTL enforcement and automatic recycling — nothing long-lived to rotate, and no Docker needed in CI.
Built in Rust
Kobe is a kube-rs operator: kube 3.0 + k8s-openapi for the control loops and CRDs, axum 0.8 for the lease API, sqlx for state, plus tokio, rustls, and tracing/OpenTelemetry for observability. Rust edition 2024, MSRV 1.94.1. The CLI ships as the kobectl crate, kept separate to keep its dependency footprint small.
Install
cargo binstall kobectl (also available via mise and Homebrew). Apache-2.0. Docs and quick start: github.com/kunobi-ninja/kobe.
These notes were drafted with LLM assistance and edited by the maintainers.
What's Changed
- feat(readiness): in-cluster SA-token round-trip ReadinessGate (#164) by @jleni in #2
- ci(conformance): run the smoke gate per backend as a matrix (#164) by @jleni in #3
- docs: unify README badges by @jleni in #4
- feat(metrics): per-pool certificate-expiry horizon gauge (#169) by @jleni in #1
- fix(metrics): set pool failure_class structurally, not by parsing prose by @jleni in #5
- chore(release): bump workspace version to 0.33.0 by @emmanuelm41 in #6
New Contributors
- @jleni made their first contribution in #2
- @emmanuelm41 made their first contribution in #6
Full Changelog: https://github.com/kunobi-ninja/kobe/commits/v0.33.0