Skip to content

Custom columns

yuriy edited this page Oct 20, 2026 · 1 revision

Custom columns

A resource table can show your own columns next to the built-in ones: a label (team, app.kubernetes.io/version), an annotation, or a field of the object (.spec.nodeName, .status.phase, .spec.containers[0].image). Custom columns sort and search like the others, remember their width, and are saved per kind, for one cluster or for all.

Contents: Adding a column · Field paths · What a column shows · Removing a column · Saved views and export · Secrets · Limits

Adding a column

  1. Open the table of the kind (Pods, Deployments, a custom resource…).
  2. Open the Columns menu in the table header and choose Add column….
  3. Under Read from, choose Label, Annotation or Field path.
  4. Type the Key (a label or annotation key such as app.kubernetes.io/name) or the Path (see below). A key or path that is not valid is explained under the field.
  5. Optionally type a Header; without one the column is headed by its key or path.
  6. Under Show in, choose This cluster or All clusters, and press Add.

The column appears before Age. Where a column for this cluster and one for all clusters read the same thing, the one for this cluster is shown.

Field paths

A path is a list of field names joined by dots, with [n] for an item of a list and ["key"] for a key that contains dots or slashes:

Path Reads
.spec.nodeName the node a Pod runs on
.status.phase a Pod's phase
.spec.containers[0].image the image of the first container
.spec.replicas a workload's desired replicas
.metadata.labels["app.kubernetes.io/name"] a label whose key has dots (the same as a Label column)
.metadata.ownerReferences[0].name the first owner's name

This is deliberately not JSONPath: wildcards ([*]), filters (?(...)), recursive descent (..), $, {…} and functions are refused, so a value inside a list is reached only by its position. The leading dot is optional.

Some tables list only the objects' metadata (the dialog says so); there a path must start with .metadata.

What a column shows

  • Strings, numbers and true/false as they are; a list as its items joined by commas; an object (or an object inside a list) as compact JSON; long texts cut at 200 characters. A missing value leaves the cell empty.
  • Sorting works as on the other columns: numbers by value, text in natural order, empty cells last.
  • Search: a plain word in the table's search box also matches the text of the custom columns.
  • Width: drag the header edge; the width is remembered like the built-in columns'.
  • The values come from the objects the table already has: a column adds no watch and no request to the cluster.

Custom columns are offered in the main table of a kind. The small tables inside details panels and the Events page do not have them.

Removing a column

The Columns menu lists the custom columns under Custom columns, each with where it applies (This cluster, All clusters or From the saved view). The × next to a column removes it. A custom column can also be hidden, like a built-in one, without removing it.

Saved views and export

  • A saved view keeps the custom columns its table showed. Opening the view shows them, marked From the saved view, even on a computer or cluster that does not have them; the pin button next to such a column (Keep column … for this cluster) adds it to the cluster's own columns, and × takes it off the table.
  • Export… in Views and workspaces writes all your custom columns (export version 3), and each view's own columns. Files of version 1 and 2 still import, with no columns.
  • Import… lists them in the preview under Custom columns: added, changed (only the header can differ; it is replaced only with Replace entries that differ from mine), unchanged, or skipped when the column belongs to a cluster that is not on this computer.
  • When you rename a context in Sextant, its columns move with it; when you delete a context, its columns are deleted too (see Kubeconfig management).

Secrets

Secret values never appear in a column. On the Secret kind, a path that starts with data or stringData is refused with a message saying why — in the dialog, when importing a file (the column, or a view carrying it, is left out) and when reading a hand-edited settings.json. Even another path could not reach a value: Sextant's tables hold Secrets with their values already removed.

Limits

  • At most 20 custom columns per kind and scope (this cluster, or all clusters), and 1000 in all.
  • A path of at most 256 characters, a list index of at most 6 digits; a label or annotation key in Kubernetes syntax; a header of at most 64 characters without control characters.
  • Custom columns are kept in settings.json under customColumns (see Settings). They are a window feature: AI agents and extensions do not see or change them.

Next: Views and workspaces, Using Sextant.

Clone this wiki locally