Skip to content

[v16] Client-tools managed updates version caching#56952

Merged
vapopov merged 4 commits intobranch/v16from
vapopov/client-tools-mu-multicluster-support-v16
Aug 7, 2025
Merged

[v16] Client-tools managed updates version caching#56952
vapopov merged 4 commits intobranch/v16from
vapopov/client-tools-mu-multicluster-support-v16

Conversation

@vapopov
Copy link
Copy Markdown
Contributor

@vapopov vapopov commented Jul 18, 2025

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

* 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.
@github-actions github-actions bot added size/lg tctl tctl - Teleport admin tool tsh tsh - Teleport's command line tool for logging into nodes running Teleport. labels Jul 18, 2025
vapopov and others added 2 commits July 23, 2025 23:23
* Gracefully fail when cannot do client tool update

* Gracefully fail when cannot check the version
@Tener
Copy link
Copy Markdown
Contributor

Tener commented Aug 1, 2025

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
@vapopov vapopov added this pull request to the merge queue Aug 6, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Aug 7, 2025
@vapopov vapopov added this pull request to the merge queue Aug 7, 2025
Merged via the queue into branch/v16 with commit 7c40e36 Aug 7, 2025
41 checks passed
@vapopov vapopov deleted the vapopov/client-tools-mu-multicluster-support-v16 branch August 7, 2025 01:23
@fheinecke fheinecke mentioned this pull request Sep 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport size/lg tctl tctl - Teleport admin tool tsh tsh - Teleport's command line tool for logging into nodes running Teleport.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants