Skip to content

Your API

Your control plane is a real Kubernetes API server. What it serves:

You can use Not there
CustomResourceDefinitions and your custom resources Pods, Deployments, Services and other workloads
Your namespace: Secrets, ConfigMaps, ServiceAccounts, leases Nodes
Roles and RoleBindings in your namespace Creating namespaces or cluster-wide RBAC
Events; admission and conversion webhooks for your API groups

Add them in the site (API → Add CRDs: paste YAML, upload a file, or link a release asset) or with kubectl apply. A new type shows pending until the API server has established it, usually within a second or two.

Open a type by its kind to see its YAML. Edit lets you change it in place, behind a warning: a schema change can make existing objects invalid or drop their fields, and removing a version or changing the group, names or scope can make objects unreachable. Prefer applying the CRDs from your operator’s release.

Deleting a CRD deletes every resource of that type, as in any Kubernetes cluster.

The Resources section lists your objects, one table per API type, as kubectl get -A prints them: NAMESPACE (for namespaced types), NAME, the type’s printer columns, and AGE. The API server builds these tables itself, so they match kubectl exactly; the site adds AGE when a type’s own columns leave it out. Columns that kubectl only shows with -o wide are left out.

  • Open an object by its name to see its YAML, spec and status included. The lists never show specs, so credentials in them stay off the page until you open one.
  • Edit changes it in place, as kubectl edit does. The name, namespace and apiVersion can’t change there (apply a new object instead), and status belongs to your controllers. If the object changed since you opened it, the save is refused: open it again and redo it.
  • Apply resources adds objects from YAML, a file or URLs; Delete removes one.

Everything is done as you, so your control plane’s RBAC, schemas and validation apply. Namespaced resources go in your control plane’s namespace, which kubectl uses by default.

Events your controllers record are under Observability → Events, or:

Terminal window
kubectl get events # your namespace
kubectl get events -n default # about cluster-scoped objects

They expire after an hour, as in any cluster.