Fleet & Multi-Cluster
Bring clusters under management by import, registration token or a secretless ServiceAccount join. The agent dials out to the hub, and the hub keeps no standing credentials to your clusters.
Three Ways to Join a Cluster
Import cluster
Paste a kubeconfig once. The hub checks the install can succeed, applies the agent with server-side apply, then discards the kubeconfig.
Registration token
For clusters the hub cannot reach. Mint a token, run the pre-rendered Helm command on the cluster, and the agent presents it once.
Secretless join
The agent presents a short-lived, audience-bound ServiceAccount token, verified against the cluster’s OIDC issuer. Nothing to mint or paste.
Cluster Identity
Registration Tokens & Import
- Raw token shown once in the console, together with a ready-to-run Helm command
- Only a SHA-256 hash is stored
- Console TTL choices: 1 hour, 24 hours or 7 days
- Tokens can be bound to one cluster name; a bound token presented for another name is refused
- An unbound token can enroll a new name only. It cannot take over an existing cluster.
- Import mints its own single-use, 1-hour token bound to that cluster
- Revoking a token does not affect clusters that already joined with it
- Kubeconfigs that point at link-local or cloud metadata addresses are refused
Provision New Clusters
- The hub connects over SSH to bare metal or VMs and installs k3s or RKE2
- The SSH private key is referenced as a Kubernetes Secret and never passes through the API
- Join tokens and kubeconfigs are withheld from every API read
- Retry a failed build; nodes that are already Ready are skipped
- Renders a standard Cluster API object graph and applies it to your management cluster
- kubeadm or k3s control planes, on Docker infrastructure
- Preview the rendered YAML without applying anything
- Opt-in auto-import installs the agent once the control plane is initialized
Across the Fleet
Fleet inventory
Every cluster grouped by region, with node counts, CPU and memory totals, health and a Kubernetes version-skew rollup. Region, zone and labels are yours to set.
Workload placement
One policy names a bundle, a cluster selector and a spread: all matching clusters, exactly N, one per region, or a named list. Pause freezes scheduling without removing anything.
Multi-cluster Services
ServiceExport and ServiceImport (KEP-1645) propagated to every peer in the same cluster set. Port conflicts between exporters are surfaced, not hidden.
Fleet add-ons
Every Helm release the agents see, rolled up per chart with the widest version spread first. Releases not seen for an hour are flagged stale.