Unified multi-datacenter CaaS/PaaS control plane. Manager runs centrally, clusters stay sovereign, operators connect outbound-only, and Capsule/KubeVela provide multi-tenancy and application delivery.
- API contract:
docs/openapi/openapi.yaml(/api/v1, structured errorsKN-*, optional JWT/RBAC) - Charts:
deploy/helm/{manager,operator}(versionv0.1.3) - Docs: VitePress under
docs/with architecture, operations, and quickstarts
cp env.example .env # edit DATABASE_URL, auth, telemetry
docker compose -f docker-compose.dev.yml up -d db manager
curl -s http://localhost:8080/api/v1/readyz- Auth disabled by default (
KUBENOVA_REQUIRE_AUTH=falsein env.example); setX-KN-Roles: adminfor admin routes. Enable auth +JWT_SIGNING_KEYfor anything beyond dev. - Rebuild/stop:
docker compose -f docker-compose.dev.yml build/down.
Use the API lifecycle walkthrough for curl examples covering clusters → tenants → projects → apps → workflows → usage.
docker network create --subnet 10.250.0.0/16 kind-ipv4 || true
./kind/e2e.sh # creates cluster, installs MetalLB, writes kind/config
# start manager (see quick start), then:
RUN_LIVE_E2E=1 \
KUBENOVA_E2E_BASE_URL=http://localhost:8080 \
KUBENOVA_E2E_KUBECONFIG=kind/config \
go test -tags=integration ./internal/manager -run LiveAPIE2E -count=1 -vDetails in docs/operations/kind-e2e.md.
npm install
npm run docs:dev # live preview
npm run docs:build # static site in docs/.vitepress/distenv.exampleis canonical; manager fails fast ifDATABASE_URLis missing.- Key env vars:
KUBENOVA_REQUIRE_AUTH,JWT_SIGNING_KEY,MANAGER_URL,PROXY_API_URL,OTEL_EXPORTER_OTLP_ENDPOINT, component version toggles (CERT_MANAGER_VERSION,CAPSULE_VERSION,CAPSULE_PROXY_VERSION,VELA_VERSION,VELAUX_VERSION,VELA_CLI_VERSION),BOOTSTRAP_*switches. - Compose and Helm intentionally avoid inline defaults—keep
.envup to date.
- Roadmap:
ROADMAP.mdordocs/roadmap.md(v0.1.3 baseline, live API E2E, docs refresh). - Changelog:
CHANGELOG.md(current release v0.1.3).