Skip to content

Releases: theZMC/kubectl-craft

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 22:36
v0.1.0
fbd6769

kubectl-craft is a kubectl plugin that presents a TUI for composing
Kubernetes Manifests from the Type Schemas defined on the cluster your
current context points to: navigate a Kind's field tree with per-field
documentation alongside, fill values with type-appropriate widgets,
Validate against the live API server, and emit the finished Manifest to
stdout. The tool never mutates the cluster.

kubectl craft composing a Gadget: pick a Kind, search a Field Path, fill values, Validate to a CEL finding, jump to it, fix it, revalidate, Emit

Highlights of v0.1.0

  • Compose from live Type Schemas — the field tree, docs,
    requiredness, enums, constraints, and defaults come from your
    cluster's OpenAPI v3 documents (CRDs included), cached on disk and
    validated against the live index every Session.
  • Server-side Validate with fix-by-jumpingv submits the Draft
    as a server-side dry-run (full schema validation, CRD CEL rules, and
    admission webhooks run for real; nothing persists); findings annotate
    the offending tree nodes and n jumps through them.
  • Version switch with carry-overV switches the open Kind's
    version, carrying values over by Field Path with a drop report for
    anything that would not survive.
  • Clean-stdout emission — the TUI renders to the terminal; stdout
    carries nothing but the final Emitted Manifest, so
    kubectl craft > x.yaml just works.
  • Sparse Manifests — the emitted YAML contains exactly the fields
    you set (plus the apiVersion/kind identity); schema defaults render
    as dimmed placeholders, never in the output.

See the README for
the full contracts: clean stdout, sparse emission, nothing persists,
and a disposable cache.

Known limitations

  • No Windows artifacts: the TUI acquires its terminal via
    /dev/tty, which does not exist on Windows, so shipped archives
    could never run
    (#15 records the
    decision). Linux and macOS (amd64 and arm64) are supported.
  • The expanded-output toggle (emitting defaults alongside set
    fields) has not landed yet; emission is sparse-only.
  • Explicitly post-v0.1: OpenAPI v2 fallback (clusters older than
    roughly 1.24 fail with a clear minimum-version error), round-trip
    editing of existing manifests + draft recovery, multi-manifest
    workspaces, Draft-scoped search, in-TUI context switching, and
    rebindable keys.

Install

Download the archive for your platform below, extract it, and put the
kubectl-craft binary anywhere on your PATH — kubectl discovers
plugins by the binary naming convention, so kubectl craft works
immediately. Checksums are in checksums.txt.


Changelog

  • 5402262 build(release): add goreleaser snapshot and tag-release pipeline
  • 34673b7 build(release): drop Windows artifacts for v0.1
  • fbd6769 build(release): stage v0.1.0 — LICENSE, release notes, demo asset, version pin
  • 8289e46 ci(actions): add lint, fast, and integration test jobs
  • 1909e66 feat(cli): deep-link positional arg for kind and Field Path
  • c254ac9 feat(data): add Session connection, capability gate, and live index fetch
  • 850335e feat(data): discover create-capable Kinds with preferred versions and short names
  • 0c01604 feat(data): dry-run=server Validate client with availability classification
  • c342fc0 feat(data): hash-validated disk cache behind the Fetcher seam
  • 5629e4b feat(schema): Draft model with set/unset, item/key mutation, and completeness
  • d34941a feat(schema): build the lazy, cycle-safe field tree from a Kind root schema
  • 5eeb461 feat(schema): compute contextual requiredness over a field tree
  • 560956b feat(schema): emit sparse Manifests pinned by golden YAML specs
  • e08d4bc feat(schema): parse OpenAPI v3 group documents and resolve Kind root schemas
  • b7233e9 feat(schema): surface node metadata for the detail pane and value entry
  • 4c7e811 feat(schema,tui): version switch with carry-over and drop report
  • 5e76dfb feat(tui): / schema-path search overlay with the landing rule
  • 02b7548 feat(tui): Kind picker with fzf-style type-to-filter
  • 5d9aa0c feat(tui): a/d mutation verbs with bracket rows and subtree confirms
  • 4ce81a4 feat(tui): add the alt-screen Session shell with the clean-stdout contract
  • 0ecbcfd feat(tui): edit mode with typed widgets, dimmed defaults, and the completeness status line
  • c4aae05 feat(tui): exit ramp — q three-way menu, Ctrl-d direct emit, Manifest to stdout
  • 034f475 feat(tui): raw-YAML escape hatch and $EDITOR pop-out for schema-blind fields
  • 2da0b3e feat(tui): read-only compose view with tree, detail pane, breadcrumb, hint bar, and help
  • eea2edc feat(tui): v Validate flow with metadata gate, findings, and jump-to-error
  • 5e9e250 feat(validate): map dry-run Status causes to Field Path findings
  • b4f644c perf(schema,tui): huge-CRD perf pass with budgeted benchmarks