This release brings you:
- Support for the arm64 architecture for Darwin (Mac)
- Note: Unlike for Darwin, the Linux CLI binary for arm64 is only available as part of the release to allow testing plugins built for arm64. This build is not yet meant for production and is therefore marked as “unstable”.
- UX improvements including dynamic shell completion for core CLI commands arguments and flag values
- Bug fixes and optimizations made on top of the 1.0 release
- Improvements in CLI context management including support for a new variant of kubernetes-based context which integrates with Cloud Services, one-way syncing of kubeconfig on context switch
Tanzu CLI Installation Instructions
If you are installing Tanzu CLI using the artifacts published as part of this release, please follow the instructions.
✨ Features
Dynamic Shell Completion
- Add dynamic shell completion for the commands "ceip", "version", "init", "completion", "generate-all-docs" (#519, @marckhouzam)
- Add dynamic shell completion for the commands
tanzu configcommand tree. (#520, @marckhouzam) - Add dynamic shell completion for the commands and flags under the
tanzu contextcommand tree (#501, @marckhouzam) - Add dynamic shell completion for the commands and flags under the
tanzu plugincommand tree (#513, @marckhouzam) - Shell completion now only suggests currently valid values for the
--targetflag. (#555, @marckhouzam) - Show a core command's short text in ActiveHelp when completing arguments (#561, @marckhouzam)
- Add ActiveHelp to shell completion when no completions are suggested. (#552, @marckhouzam)
Context management
- Decouples plugin target from the type of CLI Context
- Syncs active context in kubeconfig on CLI context switch
- Supports new 'tanzu' context type
Note: The "tanzu" context type is being released to provide advance support for the development
and release of new services (and CLI plugins) which extend and combine features provided by
individual tanzu components.
- Add support to create tanzu context type (#487, @prkalle)
- Adjust examples for "context create" (#517, @marckhouzam)
- Decouple the Target association with the Context commands
- Delete the kubeconfig pertained to the CLI context during "tanzu context delete" command execution. It is only applied for TAE context type deletion. (#542, @prkalle)
- Ensure the kubernetes and tanzu current contexts are mutual exclusive (#523, @prkalle)
- Support multi-file KUBECONFIG path in context creation and updated kubeconfig file path to use default kubeconfig path instead of $HOME/.kube-tanzu/config while creating context for TKG pinniped endpoint (#535, @prkalle)
- Update "tanzu context create --type" UX to align "--type" options with other commands (#539, @prkalle)
tanzu context useof a Context that references a kubeconfig will also update the current context of the kubeconfig referenced (#505, @vuil)- Tanzu context list shows additional data for tanzu contexts (#510, @vuil)
- The UX has been updated for the
tanzu context deleteandtanzu context unsetcommands to list plugins that are being deactivated. (#483, @chandrareddyp) - Delete the pinniped endpoint's kubecontext in the user's kubeconfig file during context delete command which was generated by CLI during context creation. (#568, @prkalle)
- The
tanzu contex createfunctionality updated, after context create, it performs the sync operation only for the newly created context, not for all active contexts. - The
tanzu context usefunctionality updated, after activating the given context, it performs the sync operation only for the newly activated context, do not perform sync for all active contexts. (#521, @chandrareddyp) - The
tanzu context useandtanzu context createcommands' UX have been updated to list the plugins they're going to install. (#563, @chandrareddyp) - The "tanzu" context type is being released to provide advance support for the development and release of new services (and CLI plugins) which extend and combine features provided by individual tanzu components. (#586, @marckhouzam)
- Rename --ca-certificate option to --ca-cert in "tanzu config cert add" and "tanzu config cert update" commands. The --ca-certificate option is still supported but deprecated in both the commands. (#579, @prkalle)
- Fix the tanzu login issue when the "tanzu" context is created with context create command (#590, @prkalle)
- Add URL scheme validation for TMC endpoint while creating context (#587, @prkalle)
Support ARM64 CLI on Mac
... by falling back to install AMD64 plugins when the ARM64 version is not available
- Allow fully using an ARM64 CLI on Mac (Darwin) by having the CLI install plugins for AMD64 when an ARM64 version of the plugin is not available. (#491, @marckhouzam)
- Display the machine architecture of the CLI in the output of
tanzu version(#540, @marckhouzam)
Plugin management improvements
- Allow getting/installing plugins by specifying plugin-group version as
vMAJORorvMAJOR.MINORorvMAJOR.MINOR.PATCHwithtanzu plugin install --groupandtanzu plugin group getcommands (#494, @anujc25) - Mark the
--uriflag as required fortanzu plugin source update. Cleanup and increase test coverage for thetanzu plugin sourcesub-commands. (#478, @marckhouzam) - Show log message on plugin installation based on various plugin installation states (#504, @anujc25)
- Allow a user to delete all plugins of a single target using
tanzu plugin delete all --target ...(#537, @marckhouzam) - Allow installing plugins with
vMAJORorvMAJOR.MINORorvMAJOR.MINOR.PATCHversions withtanzu plugin installandtanzu plugin synccommands (#486, @anujc25) - Automatically suggest the
--targetflag in shell completion when a plugin name is ambiguous. (#553, @marckhouzam) - Enhance the output of
tanzu plugin group get --allto show the type of plugins. (#526, @marckhouzam) - Make the
--allflag oftanzu plugin group getnot hidden. (#559, @marckhouzam) - The
tanzu plugin install --group PLUGIN-GROUP-NAMEcommand has been updated to list the plugins it's going to install. (#556, @chandrareddyp) - The
tanzu plugin synccommand user experience has been updated to list the plugins it's going to install for each active context. (#572, @chandrareddyp) - Update documentation for global plugins and legacy CLI versions. (#570, @marckhouzam)
- Use the
tanzu plugin uninstallcommand as atanzu plugin deletealternative (#549, @anujc25)
🐛 Bug Fixes
- Fix output text when deleting a context. (#531, @marckhouzam)
- Fix the Catalog corruption issue (missing installed plugins) when running CLI in parallel (#472, @anujc25)
- Fix missing target in
plugin-tooling.mkfile (#528, @marckhouzam)
🌱 Miscellaneous
- Cleanup unused code around the previous use of feature flags for the context feature and the central repo feature. (#482, @marckhouzam)
- Fix the usage section of the help text for the builder plugin. (#530, @marckhouzam)
- Fix unit tests for "tanzu plugin delete" (#498, @marckhouzam)
- Fix unit tests for plugin search (#481, @marckhouzam)
- Improve unit testing for plugin lifecycle and remove unused code around the previous use of feature flags. (#484, @marckhouzam)
- Provide a more detailed error when failing to read the central repository of plugins (#534, @marckhouzam)
- Tanzu CLI is updated to latest go v1.21 (#490, @mpanchajanya)
- A sample plugin with E2E test cases has been added to demonstrate the usage of the CLI E2E framework API. This addition is designed to help plugin developers quickly get started with the CLI E2E framework API. (#508, @chandrareddyp)
- Cleanup extra file generated by unit tests. (#551, @marckhouzam)
- Remove trailing space in example. (#522, @marckhouzam)
- Show aliases in the help of
tanzu kubernetesandtanzu tmc(#565, @marckhouzam) - Tanzu CLI developers can configure input data using the
TANZU_CLI_E2E_INPUT_CONFIG_DATA_FILE_PATHenvironment variable. (#518, @chandrareddyp) - Update EULA and CEIP prompt messages with hint on how to avoid the interactive prompt (#548, @prkalle)
- Updated telemetry metrics collection to account for tanzu context type. Also, fixed the issue to ignore hashing the plugin name as args in "tanzu plugin" subcommand (#550, @prkalle)
tanzu config setandtanzu config unsetcommands--helpmessages are updated. (#544, @chandrareddyp)- Replace a few remaining mention of
tanzu plugin deletewithtanzu plugin uninstall. (#575, @marckhouzam) - Prefer "Note:" prefixes in user output. (#584, @marckhouzam)
- Improve documentation for autocompletion and ActiveHelp. (#578, @marckhouzam)
- 'tanzu generate-all-docs' generates core commands recursively (#135, @vuil)
Dependencies
Added
Nothing has changed.
Changed
- github.com/cncf/xds/go: 32f1caf → e9ce688
- github.com/docker/docker: v23.0.5+incompatible → v24.0.7+incompatible
- github.com/envoyproxy/go-control-plane: v0.11.0 → 9239064
- github.com/envoyproxy/protoc-gen-validate: v0.10.0 → v0.10.1
- github.com/go-openapi/jsonreference: v0.20.1 → v0.20.2
- github.com/onsi/ginkgo/v2: v2.10.0 → v2.12.0
- github.com/onsi/gomega: v1.27.8 → v1.27.10
- github.com/vmware-tanzu/tanzu-plugin-runtime: v1.0.0 → v1.1.0
- golang.org/x/crypto: v0.9.0 → v0.14.0
- golang.org/x/mod: v0.10.0 → v0.12.0
- golang.org/x/net: v0.10.0 → v0.17.0
- golang.org/x/sync: v0.2.0 → v0.3.0
- golang.org/x/sys: v0.8.0 → v0.13.0
- golang.org/x/term: v0.8.0 → v0.13.0
- golang.org/x/text: v0.9.0 → v0.13.0
- golang.org/x/tools: v0.9.3 → v0.12.0
- google.golang.org/grpc: v1.55.0 → v1.56.3
- gotest.tools/v3: v3.0.3 → v3.3.0
Removed
Nothing has changed.
Full Changelog: v1.0.0...v1.1.0