Home and Fleet
The global screens — Home's shift report and Fleet's roll-up — plus cross-cluster search and where the Add cluster wizard actually lives.
KubeBolt has two altitudes. Home, Fleet and Security sit above any single cluster and answer “what is going on across everything I own”; they read stored state and keep working when a cluster is down. The dashboard and the resource views sit inside one cluster. The sidebar changes with the altitude: global pages show Home · Fleet · Security · Administration, cluster pages show the cluster’s own menu. This page covers Home and Fleet; Security has its own page.
After sign-in you land on Home.
Where the Add cluster wizard is
Fleet → Connect cluster, or Clusters → Add cluster. Same button, same two paths, same modals — literally the same component. Home’s Connect cluster in the greeting header takes you to Fleet.
The button is a dropdown with two options, and the choice is not a matter of taste — it is whether this backend can reach your API server:
- Import kubeconfig — KubeBolt dials the API server directly. Use it when the cluster is reachable from where KubeBolt runs.
- Install agent — an agent in the cluster dials out to KubeBolt over gRPC. Use it when the API server is not reachable (private network, NAT, or a hosted backend such as KubeBolt Cloud).
The button only renders for users who may manage clusters. The wizard’s output is covered in Connecting clusters.
Home — the shift report
Home opens with a greeting, the cluster count, and how many need attention. Below it sits “while you were away”: what actually happened since Home last rendered for you, not what is standing right now.
The report clusters events into operational bursts deterministically — the same window in always produces the same bursts out — and names the shape it found: a node rotation, node pressure, a mass rollout, or an honest “unknown burst”. It reads as a sentence, with the times, the clusters involved, the blast radius, and whether everything recovered.
Because it reports events and not state, it goes quiet when nothing happened. A shift where nothing broke says so. Dismissing it collapses the section to a ⟳ while you were away chip in the greeting’s chip row, which reopens it.
The rest of Home is a KPI strip — clusters, pods, monthly spend, critical findings — then an attention list (unreachable clusters, clusters with no agent or a silent one, critical findings), a per-cluster breakdown when more than one cluster reports, a Kobi panel with your recent conversations and an ask box, and Cost and Security panels. Only the cards that carry a state tint themselves, and only when that state is bad; inventory numbers stay neutral on purpose.
Fleet — the roll-up
/fleet is every cluster KubeBolt knows about on one screen — health,
findings, nodes, pods and spend, without connecting to any of them — in a grid or
table view (your choice is remembered), sorted worst first. The header counts them
and says how many are reporting metrics, how many are connected, and how many
need attention. Clicking a cluster switches to it.
The strip above the list rolls up the whole fleet:
| Card | What it sums |
|---|---|
| Fleet spend | Monthly run-rate across every cluster, from OpenCost. Clusters without cost data contribute nothing |
| Clusters | Total, with how many need attention |
| Nodes · Pods | Across the fleet |
| Live agents | Agent channels currently open |
Fleet spend is a sum over the org, not the active cluster — a cluster that never got cost data wired shows as zero rather than distorting the total.
Cross-cluster search
⌘K (Ctrl+K) opens the search palette anywhere. It has a scope toggle:
- This cluster — the active cluster only.
- All clusters — fans out across every cluster you can see.
The default follows the altitude of the page you are on. Inside a cluster, ⌘K
opens scoped to that cluster. On a global screen — Home, Fleet — it opens
already fanned out, because there is no “this cluster” there to mean anything.
Fleet deliberately has no second in-page search box; this is the one.
Results are grouped by kind, and fleet-scope hits are labelled with the cluster they live in. The footer reports how many clusters were searched.
The same thing over the API:
curl -H "Authorization: Bearer $TOKEN" \
"https://your-kubebolt/api/v1/search?scope=fleet&q=checkout"
{
"results": [
{ "name": "checkout-api", "namespace": "prod", "kind": "Deployment",
"resourceType": "deployments", "status": "Running", "cluster": "prod-eu" }
],
"clustersSearched": 3
}
Without scope=fleet the same endpoint searches the request’s cluster and the
cluster field is absent, so the shape stays backward-compatible.
What the fan-out does and does not do:
- It sweeps 24 resource types by name substring, per cluster.
- Each cluster gets 3 seconds and returns at most 25 hits; the merged result is capped at 50. One slow or hung cluster cannot hold up the rest — it simply contributes nothing.
- It searches the clusters you may see — the same list
GET /clustersreturns. In the open-source edition that is every registered cluster (one organization, no per-team cluster ownership); KubeBolt Cloud narrows it by organization and team. - Minimum three characters.
Related
- Multi-Cluster — the cluster registry and how switching works.
- Connecting clusters — what the wizard generates.
- Remote clusters — exec, port-forward and files over the agent tunnel.