diff --git a/rfd/0167-auto-updates-change-proposal.md b/rfd/0167-auto-updates-change-proposal.md new file mode 100644 index 0000000000000..785d8348b4b17 --- /dev/null +++ b/rfd/0167-auto-updates-change-proposal.md @@ -0,0 +1,236 @@ +--- +authors: Bernard Kim (bernard@goteleport.com) +state: draft +--- + +# RFD 0167 - Automatic Updates Change Proposal + +## Required Approvers + +* Engineering +* Security: +* Product: + +## What +This RFD proposes some major design changes to the automatic updates architecture. + +## Why +There were two assumptions that drove the initial design of the automatic updates feature. +1. All Teleport Cloud tenants will be forced on to the same version of Teleport. +2. The Teleport updater will be stable, and it will not require major changes. + +Teleport Cloud started rolling out the automatic updates feature starting Teleport 13. Since then, it has become clear that the assumptions that were made do not hold up, and that there are some major limitations that prevent the initial design from supporting the needs of Teleport Cloud. + +## Change Overview +Here is the initial [RFD](https://github.com/gravitational/teleport/blob/master/rfd/0109-cloud-agent-upgrades.md) for the automatic updates feature. To address the most urgent issues, the automatic updates architecture has already diverged from the initial design. Here is a summary of changes. + +### Version Channels +Teleport Cloud now maintains per major version channels. Currently, Teleport Cloud supports v13, v14, and v15 major version channels. The global version channel is still being maintained, but it is now deprecated. + +``` +# Global version channel (deprecated) +https://updates.releases.teleport.dev/v1/stable/cloud/version -> v14.3.6 + +# Major version channels +https://updates.releases.teleport.dev/v1/stable/cloud/v13/version -> v13.4.15 +https://updates.releases.teleport.dev/v1/stable/cloud/v14/version -> v14.3.6 +https://updates.releases.teleport.dev/v1/stable/cloud/v15/version -> v15.1.1 +``` + +### Proxy Version Server +The Teleport proxies now support a version endpoint and serve the latest compatible agent version. The Teleport Cloud proxies are configured to forward version requests to the appropriate upstream major version channel. +``` +# Forwards to https://updates.releases.teleport.dev/v1/stable/cloud/v14/version +https://platform.teleport.sh:443/v1/webapi/automaticupgrades/channel/default/version -> v14.3.6 +``` + +### Teleport Updater Version Endpoint +The Teleport updater is now configured to request an agent version from the proxy instead of the global version server. + +## Overview +With the above changes, this is now what the automatic updates architecture looks like. + +### Version Channels +Teleport Cloud maintains major version channels along with the deprecated global major version channel. Teleport proxies support a version endpoint that serves the latest compatible version of Teleport. The proxies request the latest available version from the appropriate upstream version channel. New Teleport updaters (v14.3.1+), request the target update version from the Teleport proxy. Old Teleport updaters (