[v16] Client-tools managed updates version caching#56952
Merged
vapopov merged 4 commits intobranch/v16from Aug 7, 2025
Merged
Conversation
* Add profile integration to disable update and re-execution for specific cluster * Complete integration for the tctl and tsh * Add commands for tsh * Fix linter warnings * Add config file with version and disabling status * Move check out from helper * Fixed re-execution ignore if versions is identical * Move logic out from client * Remove helper package and profile integration * Fix argument parsing by filtering * Use same Darwin platform approach of package extraction for Linux Add client tools cleanup for V1 directories * Fix packaging unit test * Add cleanup for last recently used tools * Add migration from v1 for better support Show error log message about failed update/re-execution instead of failing command execution in case if updated binary was broken, modified or not able to validate signature * Add ignore the version check fail, add more debug information * Check update for commands `tsh ssh`, `tsh proxy ssh` Fixed creating `.tsh` subdirectory when TELEPORT_HOME is set Fix `tsh --proxy` flag parsing * Wraps client init function to check client tools managed update only when it requested for `tsh ssh` and `tsh proxy ssh` * Move filesystem lock to configuration library Configuration modification protected by lock, other process must wait until it is released * Rename command to `tsh update`, `tsh update --clear` * Add test for argument filtering * Update RFD Make max tools installed to be configurable and set to 3 by default * Replace "automatic updates" to "managed updates" * Updated comments to reflect the latest changes * Fix migration for older versions with two packages * CR changes * Prevent failing tools execution if configuration file is corrupted * Remove lock file as part of cleanup command * Added context to arguments * Use a separate Kingpin application for tctl, as is already done for tsh. Double parsing may cause issues since it is not stateless.
tigrato
approved these changes
Jul 19, 2025
gzdunek
approved these changes
Jul 21, 2025
…rectory must disable further re-execution
* Gracefully fail when cannot do client tool update * Gracefully fail when cannot check the version
Contributor
|
If this PR gets merged we should also ensure the relevant fix is backported as well: #57401 |
…57401) * Fix printing empty usage and terminate CLI for parsing global flags * Add test with check of both `--help` flag and `help` command that usage print is not empty and both identical. Add godoc clarification * Disable managed update check for version help command test
Tener
approved these changes
Aug 1, 2025
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport to branch/v16:
changelog: Fixed using relative path TELEPORT_HOME env with client tools managed update
changelog: Client tools managed updates support multi-cluster environments and track each version in the configuration file