Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added RFD 0144 - Client Tools Updates #39805

Open
wants to merge 19 commits into
base: master
Choose a base branch
from
Open

Conversation

russjones
Copy link
Contributor

No description provided.

@github-actions github-actions bot added rfd Request for Discussion size/md labels Mar 25, 2024
@bernardjkim bernardjkim self-requested a review March 25, 2024 20:26
@russjones russjones added the no-changelog Indicates that a PR does not require a changelog entry label Mar 25, 2024
@gravitational gravitational deleted a comment from github-actions bot Mar 25, 2024
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
@russjones russjones requested a review from r0mant April 1, 2024 16:23
@russjones russjones requested a review from sclevine April 3, 2024 00:08
Copy link
Collaborator

@r0mant r0mant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm with one question

rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
Copy link
Contributor

@codingllama codingllama left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drive-by review. Interesting RFD!

rfd/0144-client-tools-updates.md Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Show resolved Hide resolved
rfd/0144-client-tools-updates.md Show resolved Hide resolved
@russjones
Copy link
Contributor Author

I think there is a issue with the current design.

This RFD essentially proposes forward (and backward compatibility). It outlines how to select the correct binary, but does not outline how to handle schema changes to ~/.tsh. For example, suppose we change the structure of ~/.tsh between Teleport 14 and 15. If you log into a Teleport 14 cluster, then a Teleport 15 cluster, you will no longer be able to log into the Teleport 14 cluster.

I'll update the design to handle this case.

@sclevine This is relevant for you as well, you are going to run into a similar problem with /var/lib/teleport.

@sclevine
Copy link
Member

sclevine commented Apr 8, 2024

@sclevine This is relevant for you as well, you are going to run into a similar problem with /var/lib/teleport.

Less worried about this for agents, given that it's much less common to switch back and forth between versions. The solution I proposed here blocks the invalid downgrade until someone wipes /var/lib/teleport manually:
https://github.com/gravitational/teleport/pull/40190/files#r1553965583

@russjones
Copy link
Contributor Author

russjones commented Apr 17, 2024

@sclevine @bernardjkim @r0mant @tigrato @hugoShaka I've pushed an update to reduce scope and focus on our primary use-case: Cloud.

Instead of maintaining multiple versions of client tools per-cluster, a single version of client tools will be maintained. For Cloud customers this should have no impact as most have a single cluster and even those with multiple clusters will be on the same version. For self-hosted clusters, by default this feature will be turned off with auto mode removed.

I think this will be a much simpler implementation. We can come back around to supporting multiple versions (and self-hosted use case) in the future.

rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
rfd/0144-client-tools-updates.md Show resolved Hide resolved

Inspiration drawn from https://go.dev/doc/toolchain.

### Implementation
Copy link
Contributor

@hugoShaka hugoShaka Apr 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we build some kind of observability around this and use this as a success criteria?

  • for the Teleport admins, so they know which tools versions their users have. For example recording the teleport client version on login, and when an update happens. (with prometheus metric)
  • for cloud operations, so we know what's the tenant state and can send the apropriate communications/do the right maintenances (with prometheus metrics as well)
  • for product decision so we can measure the tool update adoption for customers with dial-home (with the existing posthog analytics):
    • report the versions of teleport tools
    • report if automatic tool update is enabled
    • report the OS distribution (mac/windows/linux, and which major version)
    • report if the version is automatic, or pinned

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, definitely planning on adding observability. I'll update the RFD a bit later in development on exact metrics, but all of the above sound reasonable.

We'll have to do something to avoid duplicates and preserve anonymity, we can follow a similar approach to what we do for product metrics.

rfd/0144-client-tools-updates.md Outdated Show resolved Hide resolved
* Add changes proposed for client autoupdate
* Add proxy flag and CDN info
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-changelog Indicates that a PR does not require a changelog entry rfd Request for Discussion size/md
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants