Skip to content

Release 0.10

29 September 2026 · Full changelog

Kubus 0.10 is about the screens you spend the most time on. The Overview and the details panel now lead with what is wrong and why, logs keep up with a rollout, every workload kind and the operators people actually run get an overview of their own, lists keep the part of a name that tells rows apart, a compare starts from the object you are looking at, and the keyboard reaches the row under the cursor.

An overview that starts with what's wrong

The Overview now opens with Needs attention: failing pods broken down by reason, unhealthy workloads by kind, the warnings of the last hour with their most common reasons, certificates about to expire and operator resources that are not ready. Each tile links to the list or section behind it, and a calm Nothing needs attention line takes their place when everything is fine.

  • The unhealthy workloads table has a Reason column with the actual cause, read from the pods and events Kubus already has: 0/1 nodes available, Insufficient cpu, registry host not found, quota gpu-quota caps requests.nvidia.com/gpu at 0, StorageClass fast-ssd does not exist. Names are links, and the header links open each kind's list narrowed to the unhealthy objects.
  • Everyday counts (nodes, namespaces, pods, deployments, volumes, CRDs) moved into one row of buttons, each opening its list. Pods reads 52 of 62 running.
  • A namespace-scoped Overview uses the same layout. Kinds with nothing in the namespace sit behind Show empty kinds.

Logs that survive a rollout

A log tab opened on a Deployment, StatefulSet, DaemonSet, ReplicaSet, Job or Service now follows that workload instead of the pods it had when you opened it. Run a rollout restart and the new pods join as their containers start, while the old ones leave with a terminated line after their last words. The tab no longer runs out of retries on pods that are gone.

  • A container that has not started yet is shown as waiting, with the reason in the pod picker, and waiting no longer counts as a failed reconnect. A workload scaled to zero opens a tab that waits for its pods.
  • After a reconnect Kubus resumes each stream where it stopped, and no line appears twice. A tab following a Job closes as complete once the Job is done.
  • A volume histogram across the top shows how many lines arrived when, stacked by level. Click a bar to jump to that moment, which is the quickest way to find where the errors started.
  • Pause now holds new lines back instead of only stopping the scroll, and a chip counts what is waiting. Resume to catch up.
  • An exclude filter hides lines you don't care about, such as health checks, and a match-case toggle applies to both filters.
  • Copy and download offer the view as shown, the raw lines, lines with timestamps, or NDJSON. JSON and logfmt lines open into a table of their fields.
  • Lines from several pods are merged in time order. Each starts with a short coloured tag, usually the pod's random suffix (bp4xq), and the pod picker shows the same colours.
  • JSON and logfmt lines show their level and message first, with the other fields dimmed after them. Raw shows the lines as written.
  • Highlighting, wrapping, timestamps, markers and clearing live in one View menu.

Problems explained, not just flagged

  • A failing pod's banner leads with a sentence: Container crash exits with code 1 about 5 s after starting, Image … cannot be pulled: registry host not found, No node can run this pod: Insufficient cpu. The next line says what Kubernetes does about it, such as the restart count and the back-off.
  • For a crashing container the banner shows the last output before exit, read from the previous container. Previous logs opens the full log and Events jumps to the events tab. The raw kubelet or scheduler message is one click away instead of repeated.
  • Nodes show one pod count everywhere, 56 / 110, and a new Allocation table with requested and used CPU, memory and pods against what the node can hold. Drain is a quick action.

Every workload gets an overview

StatefulSets and DaemonSets no longer fall back to metadata. They share the Deployment overview's parts: the summary tiles, the rollout bar, the problem banner, the container panels with logs, shell and the inline image change, and the pod list.

  • StatefulSets list their pods in ordinal order and every volume claim per pod with its status and size. They also show the governing Service (and whether it is headless), each pod's DNS name, the update strategy and the partition.
  • DaemonSets show desired, current, ready, up-to-date and misscheduled counts, and a node table that says why a node has no ready pod: the scheduler's reason, or the nodeSelector, affinity or taint that keeps the pod off it.
  • Both list the revisions that still run pods.

When a pod is stuck in Pending, the workload's banner now says why, with the scheduler's own words: 1 pod Pending: 0/1 nodes available, Insufficient cpu. The pod row repeats the short reason, and a named node or ResourceQuota is a link. StatefulSets and DaemonSets also show pods the API refused to create, which is where an exhausted quota shows up.

Smaller additions in the same drawers:

  • A probe on a named port reads http (9898).
  • Projected volumes list their Secrets, ConfigMaps, token and downward API sources.
  • The node drawer marks DaemonSet pods and can filter them apart.
  • HorizontalPodAutoscalers show current against target per metric (cpu 42% / 60%), in their list and on the workload's Selected by row.

Operators get views of their own

The custom resources that most clusters run now have overviews built for them, with their actions in the drawer's action bar:

  • Gateway API: an HTTPRoute or GRPCRoute shows its rules as matches on one side and weighted backends on the other, with each parent Gateway's verdict. A Gateway lists its listeners with the routes attached to each, and a GatewayClass its controller and Gateways.
  • Argo Rollouts: phase, strategy, the canary steps with the current one marked, and the stable and canary images side by side. Promote, Promote full, Abort and Retry behave like the Argo Rollouts kubectl plugin.
  • Argo CD Applications: sync and health, the synced revision, the sync policy flags, the last operation and every managed resource, troubled ones first. Sync honours the app's sync options, and Refresh asks Argo CD to look again.
  • External Secrets: whether the last sync worked, the store it reads, the Secret it writes and how keys map. Force refresh triggers a sync.
  • Flux: Kustomizations show the applied revision, the source and the objects they manage; HelmReleases show the chart, the release history and a link to the Helm page. Kustomizations, HelmReleases, their sources and the other Flux objects that can be suspended are reconciled, suspended and resumed from the drawer.

Actions that change something ask first, and on a protected cluster they ask you to type the name. A GitOps group appears in the nav when Argo CD or Flux is installed.

Every other custom resource benefits too. Status lists whose items carry their own conditions, such as a route's parents or a Gateway's listeners, get one block per item. Printer columns that hold a list read as a list, and escaped dots in printer column paths work. An empty list of a custom kind links to its definition. References no longer report a route's hostnames or a listener name as missing objects.

What lives in a namespace

Opening a Namespace shows what is inside it: every kind with objects in the namespace, custom resources included, each with its count and how many are failed or degraded. Click one to open that list filtered to the namespace. Below them, the problems behind those counts are listed one by one, and ResourceQuotas show their usage. The Overview page scoped to a namespace uses the same buttons.

Compare from where you are

  • Compare with… in any row's or drawer's ⋮ menu opens the Diff page with that object on the left and the same object in another cluster on the right. If there is no such object there, the page says so and opens the name picker for you.
  • Check two rows and press Compare 2.
  • The compare lives in the page address, so it survives a reload, comes back with its tab and can be shared. Each side's title links back to its object.
  • Only changes folds away everything that is the same, Spec/data only leaves out metadata and status, and Same kind on both sides keeps the two kind pickers together when you compare two namespaces or clusters.
  • Secrets are compared by a fingerprint of each value, so a different password shows as a changed line while neither value leaves the server.

The keyboard reaches the row

In any list, j and k move between rows, and single keys act on the row you are on: l logs, x shell, f port forward, s scale, r restart, e manifest and Del delete. A key only does something where the row's menu offers that action, and it goes through the same confirmations and production guard as the menu. Menus, the palette's action list and the ? help show which key does what.

In the Manifest tab, Ctrl+S opens Review & apply and Ctrl+Enter creates from the create dialogs (Cmd on macOS). The YAML view now reviews a diff with a server dry run before applying, like the tree, and it tells you when the object changed on the server while you were editing. Rebase edits replays your changes onto the new version. Changes a controller makes to status never count as a conflict.

Lists

  • The Name column is as wide as the names in the list, up to about half the table. A name that still doesn't fit loses its middle, not its end, so pod suffixes stay visible.
  • With several clusters selected, rows carry a short coloured cluster tag (kubus-a), and the cluster picker shows the same colours.
  • Checkbox, Name and the row actions stay put when you scroll a wide table sideways, and opening a row's menu no longer scrolls the table.
  • The toolbar is one row, even next to the details panel. The item count moved next to the title, label selectors are tokens inside the search field with key and value suggestions, Views holds saved views and a reset, and Create is the one filled button.
  • The metrics-server banner became an ⓘ on the CPU and Memory headers, and the warning marker moved into the Status column.
  • Page headers look the same on every page.
  • Names sort the way you read them: worker-2 comes before worker-10.
  • Built-in kinds that had no place in the nav, such as Leases, PriorityClasses, CSI drivers, RuntimeClasses and webhook configurations, appear under More built-in kinds, and the nav filter finds them.
  • Checked rows get a bar of their own under the filter with Logs, Compare 2, Scale, Restart, Copy rows and Delete. Scale sets one replica count on several Deployments or StatefulSets and skips the ones an autoscaler owns unless you say otherwise. Copy rows copies the checked rows as TSV or CSV in the order on screen.
  • Columns adds a column for any label or annotation key, and it is saved with the table.
  • ConfigMaps and Secrets have Copy all for their data, as KEY=value lines or YAML. Hidden Secret values are only copied after you confirm.
  • The smart filter understands uid:.
  • The first time you select a cluster, its namespace filter starts on the namespace set in your kubeconfig.

A palette that helps before you type

The command palette opens on your favourites, the resources you opened recently, pages with their G keys, and actions such as switching cluster or namespace and installing a chart. Results are grouped by category with icons and live status, the matching text is highlighted, and the pods of one ReplicaSet fold into a single row you can expand.

  • The nav lists the resource kinds first and the tools (Events, Topology, Metrics, Helm, Port Forwards, Security Audit, Diff) in a group of their own. Kinds with problems carry a red or amber count, collapsed groups add them up, and the groups you open stay open.
  • The top bar has a visible search field that opens the palette. The cluster and namespace pickers match, and the icons no longer move when the logs dock opens.
  • Each cluster in the picker has one menu for reconnecting, protecting and customising it.
  • Settings reopens on the tab you used last.

Events grouped by object

The Events page starts with warnings, one row per object: the latest reason and message, the object's other events folded in (Also: BackOff ×1.9k), a count, a sparkline of the last hour and when it was last seen. Switch to All or to the flat event log when you need every line. Kubus remembers your choice.

A topology you can read

The topology graph opens at a zoom where names are readable, with the whole graph on screen when it fits and a minimap when it doesn't. Cards are more compact, old ReplicaSets without pods fold into one dashed card, and a legend explains the edge colours, with edge names shown when you select a node. The issue list can be collapsed and jumps to the node you pick. Only connected and Old ReplicaSets are switches in the header.

Metrics, Helm and the rest

  • Metrics charts use round time and value ticks. CPU is blue and memory violet, so green keeps meaning healthy. Top pods and namespaces are rows with the value and the share of the cluster. Uninstalling metrics-server moved into a menu.
  • A Helm release page shows each fact once, adds a Tests tile for helm test results, folds test hooks into one row and explains why Roll back or Diff isn't available.
  • A ConfigMap's overview previews the first lines of each key, and Edit data opens the editor. Kinds without quick actions no longer show an empty action row.
  • Port Forwards has Start a forward…, a searchable list of services and pods with their ports.
  • Security Audit severity filters are toggles with counts, and each check has an Ignore button.
  • Opening logs or a shell from the palette no longer shows a toast; the tab that opens is the feedback.

Smaller improvements and fixes

  • Secret values that kubectl apply keeps in the last-applied-configuration annotation are now masked like the data itself, in lists, in the Manifest view and in new annotation columns.
  • Sizes go past gibibytes to Ti and Pi.
  • Ctrl+C in a list copies only the focused cell, even while rows are checked, and the warning marker column no longer offers a copy button.
  • The overview, logs, resource details, browsing, smart filter, command palette, events, topology, metrics, Helm, port forwarding, security audit, settings, diff, quick actions and keyboard shortcut guides cover the new features.

Patches

0.10.1

30 September 2026 · Changes

0.10 reworked a lot of screens, and a few useful things were lost on the way. This patch brings them back.

  • With several clusters selected, the Overview starts with one summary row per cluster: pods running, CPU and memory, and what needs attention. Click a row to open the full overview for that cluster, or use Expand all. Kubus remembers which ones you opened.
  • The Overview shows Node usage again for every cluster, single-node ones included. It leads with the cluster's CPU and memory in use against capacity, then lists the nodes, busiest first.
  • The Overview inventory has two rows again. Cluster counts nodes, namespaces, volumes, CRDs and TLS certificates, with the ones about to expire. Workloads counts pods and every workload kind, StatefulSets, DaemonSets, Jobs, CronJobs, HPAs, PVCs, PDBs and quotas included, with their unhealthy objects. A kind Kubus cannot read says no access, and Nothing needs attention names the kinds it could not check. Volumes and CRDs that are unavailable, unbound or not established say so again.
  • JSON and logfmt log lines show their own time and level in the message view. Numeric pino and bunyan levels are read, and FATAL or PANIC keep their name. Find and the filters match the text on screen as well as the raw line, and As shown copies what you see.
  • A node's pod list keeps failed and evicted pods, with the reason they stopped. Completed pods fold away, and ephemeral storage is back in the node's allocation.
  • The Events page opens on every event again, not only warnings, still grouped by object. Cell copy works in the grouped view too.
  • Lists can show a Warnings column again that sorts the noisiest objects to the top. It takes over the warning marker when the Status column is hidden, and custom resources get warning markers too.
  • The tool pages are back at the top of the nav, only Custom Resources and More built-in kinds start collapsed, and the Event list is back in the Cluster group.
  • The label button in a list's search field lists every label key and value with row counts, and you can tick several. A selector typed into the search, such as env!=prod, becomes a label token when you press Enter.
  • Double-clicking a card in the topology or a drawer's Map tab opens it again, instead of zooming in. Cards name their layer again, and the header counts links as well as resources.
  • Diff opened from the nav or the palette starts in your selected clusters and namespace instead of empty pickers.
  • On the network page each pod row shows what it sent and received.
  • Folded pod groups in the command palette count the status of all their pods, not just the first eight.
  • Settings has a cleaner layout: every tab uses the same rows, with the setting and its explanation on the left and the control on the right. About shows the version, links to the documentation, the release notes, GitHub and the issue tracker, what this installation runs on, and a Copy diagnostics button for bug reports.