Cluster object living on a supervisor. Celum never invents either — it reads what is already there.

A supervisor's Summary tab — node, CPU, memory and storage rollups, and the tenant clusters provisioned on it.
What a supervisor is
A supervisor is, concretely, one kubeconfig plus the name Celum files it under. That name appears in the URL of every scoped page (/s/<supervisor>/...), in every API path (/api/supervisors/<supervisor>/...), and in every KRN (krn:vks:supervisor:<supervisor>).
Where kubeconfigs come from
Celum reads supervisors from three sources, and a supervisor may come from any of them:A directory of files
Every file in
KUBECONFIGS_DIR becomes a supervisor. The filename is the supervisor name — there is no name field inside the file that Celum reads.The database
Kubeconfigs uploaded through the UI are stored in PostgreSQL with a name, server URL, an optional platform label, and an optional site.
A single file
KUBECONFIG_PATH names one kubeconfig, used as a fallback.In-cluster
When Celum runs inside Kubernetes with no kubeconfig configured, it uses its own service account.
__default__. An empty supervisor name in a request resolves to it, which is why single-supervisor deployments work without naming anything.
Client caching
Kubernetes clients are built once per supervisor and cached. The cache is invalidated when a database-backed kubeconfig changes or is removed, so an uploaded credential takes effect without a restart. A kubeconfig file that changes on disk is not detected the same way — restart the backend after editing one.Labels and sites
Database-backed supervisors carry two optional descriptors:
Neither affects authorization. Both are descriptive only.
Managing supervisors
kubeconfig:Download hands out a working credential for the supervisor itself. None of the built-in policies grant it except K8sGateAdmin — keep it that way unless you have a reason not to.What a tenant cluster is
A tenant cluster is acluster.x-k8s.io/v1beta1 Cluster on a supervisor. Celum reads it directly; there is no mirror of it in Celum’s own database.
Each cluster surfaces:
A cluster still provisioning legitimately has no API server endpoint. An empty value there is not an error — it means Cluster API has not assigned one yet.
Provider detection
The provider is never configured; it is read from the infrastructure reference:
Anything else falls back to the kind name with the
Cluster suffix stripped — so an unknown CAPI provider still gets a sensible label rather than an error.
The hosts behind a supervisor
The Infrastructure tab lists the supervisor’s own nodes rather than its tenant clusters — status, role, CPU and memory pressure, disks, NIC throughput, and load.
The Infrastructure tab — the supervisor's own hosts. Each row drills into per-host hardware, network, storage, and sensors.
How the two are addressed
KRNs nest the cluster inside its supervisor, which is what lets a policy scope access to one supervisor, one cluster, or a name prefix:Related
Projects
The namespace and address-space abstraction on top of a supervisor.
Permissions model
How a request resolves to an action and a KRN.
Create a cluster
Provision a tenant cluster on a supervisor.
Architecture
Where supervisor calls sit in the request pipeline.