Skip to content

Release 0.9

4 September 2026 ยท Full changelog

Kubus 0.9 is about moving through a cluster the way you think about it. Every relationship is now a link in both directions, custom resources included. Trouble finds you instead of waiting to be found, and the app remembers where you were.

Forward links have always been there: a pod's node, a referenced Secret, an owner. The details drawer now answers the other question, who depends on this:

  • Used by on ConfigMaps, Secrets, ServiceAccounts, PersistentVolumeClaims and Volumes, StorageClasses, PriorityClasses, IngressClasses, RuntimeClasses, Roles and ClusterRoles lists every workload, pod, Ingress, route or binding that references the object, and how: mounted as a volume, read into an environment variable, used as an image pull secret, granted by a binding. A Secret that says "mounted by 3 Deployments and a CronJob" before you edit it is the point.
  • Routed by on a Service lists the Ingresses and Gateway API routes that send traffic to it, with their hosts and paths. Gateways and routes also appear on the map.
  • Selected by on a Pod or Deployment lists the Services, autoscalers, PodDisruptionBudgets and NetworkPolicies whose selectors match it.
  • The namespace in the drawer header and in Metadata is a link to its overview, and annotations that hold a URL open in the browser.

Every row opens the related object in the drawer, and the back button returns you to where you started.

Custom resources join in

Custom resources get the same treatment without a single hand-written matcher. Each one shows a References section with everything it points at and a Used by section with everything that points at it. Kubus reads the CRD schemas installed in the cluster to work out which fields name which kinds, from the field names, from their descriptions and from sibling kind fields. Selectors are resolved against labels, and children an operator tags with a parent's name count as well. A reference to something that does not exist is shown as not found instead of as a link into nothing.

A network operator's node shows the links, interfaces and fabrics built on it; a parent object shows the children created for it. The first lookup of a kind reads it once and keeps a live digest of the fields that matter, so every later lookup, for any object, answers within a fraction of a second. Kinds still being read when the answer is shown say so under the list and fill in on the next refresh.

Blockers explained

The objects that quietly stop things from happening have overviews of their own:

  • NetworkPolicies explain in plain words which pods they apply to, which traffic directions they restrict and what each rule allows.
  • PodDisruptionBudgets show the rule, the pods it protects and whether evictions are currently allowed. The node drain dialog warns when a budget would block the drain.
  • ResourceQuotas show usage against every limit, and LimitRanges list their defaults and bounds per resource type. Pods and Deployments whose problems mention a quota link straight to it, and the namespace overview links to the quotas that apply.

Warnings find you

A small amber marker next to a resource's name flags any object with warning events or container restarts in the last hour; hover it for the reasons, or sort by that column to bring the noisiest objects to the top. The same signal puts a count on the drawer's Events tab and a dot on a page tab whose object turned unhealthy while you were looking elsewhere.

Kubus remembers where you were

Nothing resets behind your back:

  • Each kind remembers the filter, label selector and scroll position you left it with, and opening the kind again from the nav brings them back. Clearing the filter forgets it, and the empty state offers a Clear filters button when a filter hides everything. Saved views and deep links carry their own query and are never overridden.
  • The namespace filter is remembered per cluster. Pick team-a on the dev cluster and payments on prod, and each cluster brings its own namespaces back when you return to it. With several clusters selected the filter shows the union, and chips that apply to only some of them are drawn outlined.
  • The drawer reopens on the tab you last used for that kind, and the pod and resource lists inside the drawer accept the same smart filter as the main tables.

Smaller improvements and fixes

  • The Events tab and event counts answer from the live event cache instead of a fresh request per object.
  • Resource watches can list from the API server's watch cache in one response, which makes large custom kinds far cheaper to read.
  • Global search entries keep their labels, so selector lookups no longer need to read the objects again.
  • The guides for browsing, resource details and clusters cover the new features.