When to choose a hosted control plane
A vcluster is the cheapest and fastest tenant you can hand out; its limit is that workloads still run on the supervisor’s shared nodes. Kamaji keeps only the control plane shared and gives the tenant its own machines.
vcluster
The engine
The vcluster provider is installed from the onboarding wizard and reports through the standard component-status model:
The install call takes an
instanceName (a DNS-1123 slug of at most 30 characters), and defaults the namespace to vcluster-<instance> — so several instances coexist on one supervisor, each in its own namespace. Options cover the service type, storage size and class (defaulting to the supervisor’s default StorageClass), a resource profile (small / medium / large), an optional ServiceMonitor for the tenant control plane, and optional OIDC so end users can kubectl into the tenant with their platform identity.
High availability via embedded etcd is a licensed feature of the upstream chart and is rejected by Celum’s OSS-only install — requests with
highAvailability enabled fail validation rather than silently degrading.vclusters as CAPI clusters
POST /api/supervisors/<supervisor>/capi/vclusters creates a vcluster as a Cluster API cluster: a plain Cluster CR whose infrastructure and control-plane references both point at a single VCluster CR. That flat shape means the instance shows up in GET /api/clusters alongside every other tenant (provider vCluster), and the provider writes the standard <cluster>-kubeconfig Secret — so GET /api/clusters/<cluster>/kubeconfig and the whole day-2 surface work unchanged. Deleting it is the same canonical DELETE /api/supervisors/<supervisor>/capi/clusters/<cluster> cascade, which removes the VCluster CR along with the Cluster.
Per-instance kubeconfig
Wizard-installed instances export their tenant kubeconfig to a Secret, downloadable as YAML:404 here means the chart has not written the Secret yet — or kubeconfig export was never enabled for the instance — not that the instance is broken.
Kamaji Talos workers
The CAPI engine ships a Kamaji control-plane provider next to the Talos one (visible inGET /api/supervisors/<supervisor>/capi/status):
1
Create the Kamaji-class cluster
Via the ClusterClass flow. Celum fires the worker reconcile automatically in the background once the control plane reports Ready.
2
Re-run when scaling later
Bootstrap tokens expire. If you scale the worker pool well after creation, call the reconcile again first — only a token close to expiry triggers a re-render, so this is safe to do routinely.
This integration is marked experimental in the backend. The moving parts — token lifetimes, config rotation on existing clusters — are handled for you, but expect it to evolve.
Permissions
Celum AI reads the same state —
get_component_status (component vcluster or capi), list_clusters, and get_guest_cluster answer “is the vcluster engine healthy?” or “how is this hosted cluster built?” from the identical APIs.Related
Clusters overview
The four cluster models side by side, including when a full cluster wins.
Access & credentials
The kubeconfig paths for both hosted flavors.
Day-2 operations
The tenant views that work identically on hosted control planes.
Projects
The namespace + addressing model hosted clusters are placed into.