Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 22:51
· 180 commits to develop since this release
Immutable release. Only release title and notes can be modified.

Highlights

Commands that forward to kubectl now know kubectl's own flags, read from a table built from kubectl's source, where kx used to guess at them.

  • Flags in any order: Flags and an index can come in any order, so kx logs --tail=2 2 works where it used to fail.
  • Help for kubectl's flags: Each command's --help lists kubectl's flags for it under "Passthrough options", with kubectl's own descriptions.
  • Completion for them too: Pressing TAB offers kubectl's flags by name and knows their values, such as filenames for a flag that takes a file.
  • Typos caught: A mistyped flag now gets '--bogus' isn't a flag of kubectl describe as of v1.37.1, and kx --version names both your kubectl and the table's.
  • Match in output formats: A narrowed kx get pods -m api -o yaml returns a List of only the matching items, shaped as kubectl prints it.
  • Clean output for scripts: With --no-headers, kx's own lines go to stderr, so the rows stand alone on stdout.

Breaking: If your kubectl takes a flag kx's table doesn't know, put it after --, as in kx describe 1 -- --new-flag: an unknown flag is now refused instead of passed on.

Breaking changes

  • The kx wait command parses kubectl's flags from the generated table (#501).
  • The kx set image command parses kubectl's flags from the generated table (#500).
  • The kx drain command parses kubectl's flags from the generated table (#499).
  • The kx label and kx annotate commands parse kubectl's flags from the generated table (#498).
  • The kx yaml command parses kubectl's flags from the generated table (#497).
  • The kx cp command parses kubectl's flags from the generated table (#496).
  • The kx port-forward command parses kubectl's flags from the generated table (#495).
  • The kx rollout command parses kubectl's flags from the generated table (#494).
  • The kx scale command parses kubectl's flags from the generated table (#493).
  • The kx delete command parses kubectl's flags from the generated table (#492).
  • The kx debug command parses kubectl's flags from the generated table (#491).
  • The kx exec command parses kubectl's flags from the generated table (#490).
  • The kx edit command parses kubectl's flags from the generated table (#489).
  • The kx logs command parses kubectl's flags from the generated table (#488).
  • The kx describe command parses kubectl's flags from the generated table (#487).
  • The kx top command parses kubectl's flags from the generated table (#486).
  • The kx secret command parses kubectl's flags from the generated table (#485).
  • The kx get command parses kubectl's flags from the generated table (#484).

Features

  • Generate kubectl's flag table, and name both kubectls in --version (#480).

Fixes

  • A headerless empty listing still offers the way back (#538).
  • Refuse an empty --target on a Node too (#537).
  • The --no-headers flag means a program is reading stdout (#535).
  • The --no-headers flag and merged documents work on every listing path (#530).
  • A narrowed -o json or -o yaml keeps kubectl's bytes (#531).
  • Refuse an empty --target (#534).
  • The kx secret --decode and kx tree -A commands keep an empty match's shape (#533).
  • Path flags from kubectl offer files (#532).
  • Stop process-wide maps keeping every root reachable (#529).
  • Refuse an empty --image (#527).
  • Name the first flag typed when refusing another subcommand's (#526).
  • Build internal/kubectl's tests on Windows (#525).
  • The --out flag on kx top offers files (#524).
  • Parse kx cordon and uncordon's kubectl flags (#528).
  • Preserve deprecated kubectl shorthands (#520).
  • Title the kubectl flag group "Passthrough options" (#518).
  • Refuse a stray positional on delete, scale, drain and rollout (#517).
  • Values of kubectl's flags offer no filenames (#506).
  • Show an optional flag value as attached (#505).
  • Nothing after -- is read as an index (#504).
  • The --match flag narrows -o json and -o yaml by each item's name (#478).
  • The --match flag and --no-headers compose (#477).
  • A scope flag beside an index is refused, as elsewhere in kx (#476).
  • An empty --match keeps its count and explains in a row (#475).

New Contributors

Full Changelog: v0.8.0...v0.9.0