Skip to content

feat(cli): render the describe view - #326

Draft
rogirun wants to merge 1 commit into
feat/cli-describe-viewfrom
feat/cli-describe-renderer
Draft

feat(cli): render the describe view#326
rogirun wants to merge 1 commit into
feat/cli-describe-viewfrom
feat/cli-describe-renderer

Conversation

@rogirun

@rogirun rogirun commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Renders the view as header, tree, phase and per-component resources. --pod-limit defaults to showing every pod; when set, unhealthy pods sort first so truncation never hides a failing pod. The machine formats emit the view itself rather than the items/count envelope the list commands carry.

Part of a seven-PR stack implementing kli describe (#206). Targets feat/cli-describe-view, which must merge first.

Related issue(s)

Refs #206

Checklist

  • All commits are signed off with DCO (git commit -s)
  • New/modified files have SPDX license and copyright headers
  • Documentation updated (if applicable)
  • Tests pass (make check)
  • No proprietary or internal information included

🤖 Generated with Claude Code

@rogirun
rogirun force-pushed the feat/cli-describe-renderer branch from 8bc3d59 to 061c0fc Compare September 6, 2026 12:59
@rogirun
rogirun force-pushed the feat/cli-describe-view branch from c300c49 to 7bb0144 Compare September 6, 2026 12:59
@rogirun
rogirun force-pushed the feat/cli-describe-renderer branch from 061c0fc to 4203a4c Compare September 7, 2026 10:43
@rogirun
rogirun force-pushed the feat/cli-describe-view branch from 7bb0144 to b7ee02d Compare September 7, 2026 10:43
Render the DescribeView as the four sections the command promises: a header
naming the workload and the definition that resolved it, the component tree
with its pod rows, the normalized phase, and a resource breakdown per component
with the workload total last.

The tree and the resource table go through one tab writer each, so component
rows and pod rows share a column grid without hand-computed widths.

--pod-limit defaults to showing every pod, the way kubectl-tree renders every
descendant: a hidden pod is the one a reader most needs. When a limit is set,
unhealthy pods sort first so truncation can never hide a failing pod, and the
note says how many were hidden and how many unhealthy ones survived.

The machine formats emit the view itself rather than the items/count envelope
the list commands carry: an envelope says nothing about a single workload and
costs every consumer an items[0] hop. RenderOne carries that in the generic
renderer, so json and yaml stay one code path.

Refs #206

Signed-off-by: Roee Gil <roee.gil@run.ai>
@rogirun
rogirun force-pushed the feat/cli-describe-renderer branch from 4203a4c to bb6fd11 Compare September 7, 2026 12:20
@rogirun
rogirun force-pushed the feat/cli-describe-view branch from b7ee02d to 5dcd00c Compare September 7, 2026 12:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant