Skip to content

feat(omnictl): show node name and locked status in cluster status#2923

Merged
talos-bot merged 1 commit into
mainfrom
fix/talosctl-show-unified-machine-identifiers
Jun 2, 2026
Merged

feat(omnictl): show node name and locked status in cluster status#2923
talos-bot merged 1 commit into
mainfrom
fix/talosctl-show-unified-machine-identifiers

Conversation

@fsgh42

@fsgh42 fsgh42 commented Jun 2, 2026

Copy link
Copy Markdown
Member

The omnictl cluster status tree listed machines by UUID only, while
the Talos/Kubernetes upgrade status messages referenced the friendly
Kubernetes node name, making it hard to correlate which machine a
status line was about. A locked machine was also only surfaced when it
additionally had a pending config update.

Render the node name (from the ClusterMachineStatusLabelNodeName label
already on the resource) in parentheses after the UUID, and show a
dedicated "Locked" indicator whenever the MachineLocked annotation is
set, e.g. Machine "0000...edb"(omni-foo-abcdef) Running Ready Locked.
Machines that have not yet joined Kubernetes show no node name rather
than empty parentheses.

Closes #1700

Signed-off-by: Fritz Schaal fritz.schaal@siderolabs.com


Note that this is AI tooling assisted code.

@CLAassistant

CLAassistant commented Jun 2, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@fsgh42

fsgh42 commented Jun 2, 2026

Copy link
Copy Markdown
Member Author

before/after:

# before
$ omnictl cluster status test
Cluster "test" RUNNING Ready (2/2) (healthy/total)
├── Kubernetes Upgrade Done
├── Control Plane "test" Running Ready (1/1)
│   ├── Load Balancer Ready
│   ├── Status Checks OK
│   └── Machine "0301bbb3-2daf-4ab4-9729-58d8566884d4" RUNNING Ready
└── Additional Workers "test-worker" Running Ready (1/1)
    └── Machine "84eba767-2f44-491a-8c5d-e7feb6707354" RUNNING Ready

# after
$ _out/omnictl-linux-amd64 cluster status test
Cluster "test" RUNNING Ready (2/2) (healthy/total)
├── Kubernetes Upgrade Done
├── Control Plane "test" Running Ready (1/1)
│   ├── Load Balancer Ready
│   ├── Status Checks OK
│   └── Machine "0301bbb3-2daf-4ab4-9729-58d8566884d4"(test-1) RUNNING Ready
└── Additional Workers "test-worker" Running Ready (1/1)
    └── Machine "84eba767-2f44-491a-8c5d-e7feb6707354"(test-2) RUNNING Ready Locked

What Changed:
└── Machine "84eba767-2f44-491a-8c5d-e7feb6707354"(test-2) RUNNING Ready Locked

  1. Human readable name: Shown as node names are by default in the cluster or omni UI, making it a lot easier to identify them
  2. Lock status is always shown, so when having dozens of nodes, we know how many are locked/unlocked at all times, not only upon pending config update (which indicates locked: true).

@fsgh42 fsgh42 force-pushed the fix/talosctl-show-unified-machine-identifiers branch from a31f948 to 39bdca9 Compare June 2, 2026 11:28
@fsgh42 fsgh42 marked this pull request as ready for review June 2, 2026 11:31
Copilot AI review requested due to automatic review settings June 2, 2026 11:31
@talos-bot talos-bot moved this from To Do to In Review in Planning Jun 2, 2026
@github-project-automation github-project-automation Bot moved this from In Review to Approved in Planning Jun 2, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds the friendly Kubernetes node name (in parentheses after the machine UUID) and a dedicated "Locked" indicator to each machine line shown by omnictl cluster status, so operators can correlate UUID-based listings with name-based status messages, and removes the redundant "(Machine Locked)" suffix from the pending-config-update string.

Changes:

  • Added clusterMachineNodeNameString helper that reads ClusterMachineStatusLabelNodeName and renders (node-name) (or empty when not yet joined).
  • Added clusterMachineLockedString helper that emits a blue Locked whenever the MachineLocked annotation is present on the ClusterMachineStatus.
  • Updated the ClusterMachineStatus rendering format to include both new pieces, and simplified the existing pending-update message to just Pending Config Update.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
client/pkg/template/operations/internal/statustree/statustree.go Extended format string and argument list to insert node name after the UUID and a Locked indicator before config status.
client/pkg/template/operations/internal/statustree/helpers.go New clusterMachineNodeNameString and clusterMachineLockedString helpers; trimmed redundant "(Machine Locked)" wording.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

The `omnictl cluster status` tree listed machines by UUID only, while
the Talos/Kubernetes upgrade status messages referenced the friendly
Kubernetes node name, making it hard to correlate which machine a
status line was about. A locked machine was also only surfaced when it
additionally had a pending config update.

Render the node name (from the ClusterMachineStatusLabelNodeName label
already on the resource) in parentheses after the UUID, and show a
dedicated "Locked" indicator whenever the MachineLocked annotation is
set, e.g. `Machine "0000...edb"(omni-foo-abcdef) Running Ready Locked`.
Machines that have not yet joined Kubernetes show no node name rather
than empty parentheses.

Closes #1700

Signed-off-by: Fritz Schaal <fritz.schaal@siderolabs.com>
@fsgh42

fsgh42 commented Jun 2, 2026

Copy link
Copy Markdown
Member Author

/m

@talos-bot talos-bot merged commit ccbc50b into main Jun 2, 2026
75 of 77 checks passed
@talos-bot talos-bot deleted the fix/talosctl-show-unified-machine-identifiers branch June 2, 2026 12:21
@github-project-automation github-project-automation Bot moved this from Approved to Done in Planning Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

[proposal] omnictl cluster status should show unified machine identifiers

5 participants