Manual Upgrades
To ensure that your Teleport cluster remains up to date with the lowest amount of manual overhead, we recommend signing up for a cloud-hosted Teleport Enterprise account and following Enroll Agents in Managed Updates.
Before reading this guide, become familiar with the Upgrading Compatibility Overview guide, which describes the sequence in which to upgrade components in your cluster.
This guide shows you how to upgrade Teleport manually. You can perform manual upgrades on Teleport Auth Service and Proxy Service instances running in self-hosted clusters, as well as all Teleport Agents.
Teleport Agents
Note that all Linux servers with SystemD should use Managed Updates for Agents instead of this workflow, including on self-hosted clusters. Otherwise, agents may be disconnected when the cluster is upgraded.
-
Identify the latest compatible Teleport Agent version by querying the
webapiendpoint of the Teleport Proxy Service, replacing teleport.example.com:443 with the host and port of your Teleport account or Teleport Proxy Service:curl https://teleport.example.com:443/webapi/find... "auto_update": { "tools_version": "17.7.7", "tools_auto_update": true, "agent_version": "17.7.7", "agent_auto_update": true, "agent_update_jitter_seconds": 60 }, ... -
Use the
tctl inventory lscommand to list connected agents along with their current version. Use the--older-thanflag to list agents that are upgradable:tctl inventory ls --older-than=v17.7.7Server ID Hostname Services Version Upgrader------------------------------------ -------------- -------------- ------- --------00000000-0000-0000-0000-000000000000 ip-10-1-6-130 Node v14.4.5 none00000000-0000-0000-0000-000000000001 teleport-proxy Proxy v15.2.0 none00000000-0000-0000-0000-000000000002 teleport-auth Auth,Discovery v15.2.0 none... -
For each agent ID returned by the
tctl inventory lscommand, copy the ID and run the followingtctlcommand to access the host viatsh:HOST=00000000-0000-0000-0000-000000000000USER=roottsh ssh "${USER?}@${HOST?}" -
On each Linux server, follow the instructions in the next section to install the new version of the
teleportbinary. -
If you have deployed any agents on Kubernetes using the
teleport-kube-agentHelm chart, follow the instructions to upgrade the Helm release.
Single Teleport binaries on Linux servers
You can upgrade a single Teleport binary running on a Linux host by running the one-line installation script with a higher version than the current one.
Before upgrading Teleport across a self-hosted cluster, read the Compatibility Overview to ensure you are upgrading components in the correct order.
Complete the following steps on all servers that run the Auth Service and Proxy Service, then on each of your agents:
-
Get the current version:
teleport version -
Assign edition to one of the following, depending on your Teleport edition:
Edition Value Teleport Enterprise (Cloud) cloudTeleport Enterprise (Self-Hosted) enterpriseTeleport Community Edition oss -
Assign version to the version you want to install.
-
Install the new Teleport version on your Linux server:
curl https://cdn.teleport.dev/install.sh | bash -s version editionThe installation script detects the package manager on your Linux server and uses it to install Teleport binaries. To customize your installation, learn about the Teleport package repositories in the installation guide.
-
Confirm that the version of the
teleportbinary is the one you expect:teleport version -
Now that you have installed a more recent
teleportbinary on your Auth Service and Proxy Service instances, restart Teleport on these servers to run the new version.Configure your Teleport instance to start automatically when the host boots up by creating a systemd service for it. The instructions depend on how you installed your Teleport instance.
- Package Manager
- TAR Archive
On the host where you will run your Teleport instance, enable and start Teleport:
sudo systemctl enable teleportsudo systemctl start teleportOn the host where you will run your Teleport instance, create a systemd service configuration for Teleport, enable the Teleport service, and start Teleport:
sudo teleport install systemd -o /etc/systemd/system/teleport.servicesudo systemctl enable teleportsudo systemctl start teleportYou can check the status of your Teleport instance with
systemctl status teleportand view its logs withjournalctl -fu teleport.
Self-hosted Teleport clusters on Kubernetes
The instructions in this section assume that you have configured the
teleport-cluster Helm chart with a values file called values.yaml, and that
your teleport-cluster release is called teleport-cluster. The Auth Service instances
are restarted simultaneously during the upgrade so there is no need to shrink
the number of replicas.
-
Update the Teleport Helm chart repository so you can install the latest version of the
teleport-clusterchart:Set up the Teleport Helm repository.
Allow Helm to install charts that are hosted in the Teleport Helm repository:
helm repo add teleport https://charts.releases.teleport.devUpdate the cache of charts from the remote repository so you can upgrade to all available releases:
helm repo update -
Upgrade the
teleport-clusterHelm release:helm upgrade teleport-cluster teleport/teleport-cluster \ --version=17.7.7 \ --values=values.yamlThe
teleport-clusterHelm chart automatically waits for the previous version of the Proxy Service to stop responding to requests before running a new version of the Auth Service.
Teleport Agents running on Kubernetes
The instructions in this section assume that you have configured the
teleport-kube-agent Helm chart with a values file called values.yaml, and
that your teleport-kube-agent release is called teleport-agent.
-
Update the Teleport Helm chart repository so you can install the latest version of the
teleport-kube-agentchart:Set up the Teleport Helm repository.
Allow Helm to install charts that are hosted in the Teleport Helm repository:
helm repo add teleport https://charts.releases.teleport.devUpdate the cache of charts from the remote repository so you can upgrade to all available releases:
helm repo update -
Upgrade the Helm release:
helm -n "teleport" upgrade teleport-agent teleport/teleport-kube-agent \ --values=values.yaml \ --version=17.7.7