Files
Paul Gottschling 149340f6d5 Move cluster deployment docs into Installation (#65844)
Implements part of RFD 246

Help new users understand what is involved in deploying a Teleport
cluster by moving the self-hosting documentation into the Installation
section. This way, we can include all information related to running
Teleport processes in the same part of the docs.

Docs related to Teleport features but not first-time deployments do not
belong in the Installation section, so this change moves them into the
Management section instead:
- Configure Trusted Clusters
- TLS Routing Migration
- Guides in `zero-trust-access/deploy-a-cluster/reliability`

Also edit the Installation landing page  to make self-hosting guidance
clearer. Merge the H2 sections re: self-hosting and cluster setup and
provide a clearer experience for users, with a table of cluster
components.
2026-04-22 17:18:07 +00:00

212 lines
7.8 KiB
Plaintext

---
title: Enterprise License File
sidebar_position: 1
description: How to manage your Teleport Enterprise license file.
tags:
- conceptual
- platform-wide
---
Self-hosted Teleport Enterprise subscriptions require a valid license. In this
guide, we will show you how to manage your Teleport Enterprise license file.
(!docs/pages/includes/cloud/call-to-action.mdx!)
## Managing your license file
In a self-hosted Teleport Enterprise cluster, the Teleport Auth Service reads a
license file in order to determine the scope and validity of your subscription.
Follow the steps below to give your Teleport Auth Service instances access to
your license file.
### Download your license file
Teleport provides a dedicated account dashboard where you can generate your
license and download enterprise binaries.
To obtain your license file, navigate to your Teleport account dashboard and log
in. You can start at [teleport.sh](https://teleport.sh) and enter your Teleport
account name (e.g. my-company). After logging in you will see a "GENERATE
LICENSE KEY" button, which will generate a new license file and allow you to
download it.
<Admonition type="tip" title="Use the same license on all clusters">
A new license file is produced each time you repeat this procedure.
It is important that you download the license file once and use the
same license across all of your clusters. This will ensure that your
subscription limits apply across all Teleport clusters and that you
are not double-counted.
</Admonition>
![License File modal](../../../img/enterprise/license.png)
The Teleport license file contains an X.509 certificate and the corresponding
private key in PEM format.
### Add your license file to your Auth Service instances
Make your license file available to your Teleport Auth Service instances. The
way you will do this depends on whether you are running the Teleport Auth
Service on a Linux host or on Kubernetes:
<Tabs>
<TabItem label="Linux Host">
Place the downloaded file on each instance of the Teleport Auth Service you will
run in your cluster and set the `license_file` configuration parameter of your
`teleport.yaml` to point to the file location:
```yaml
auth_service:
license_file: /var/lib/teleport/license.pem
```
The `license_file` path can be either absolute or relative to the configured
`data_dir`. If the license file path is not set, Teleport will look for the
`license.pem` file in the configured `data_dir`, which is `/var/lib/teleport` by
default.
</TabItem>
<TabItem label="Kubernetes">
Rename your license file to `license.pem`.
Create a secret called "license" in the namespace you are using to deploy
Teleport:
```code
$ kubectl -n <Var name="teleport-namespace" /> create secret generic license --from-file=license.pem
```
For the Teleport pod to load your license:
- The secret must be named `license`
- The secret must be in the same Kubernetes namespace as the Teleport pod
- The license file in the secret to be named `license.pem`
</TabItem>
</Tabs>
Only Auth Service instances require the license. Instances of other Teleport
services do not need a license file unless they are also running the Auth
Service.
### Check your license expiration date
Your Teleport Enterprise license contains an X.509 certificate that contains the
expiration date of your license.
Run the following command to inspect the expiration date of your license,
assuming your license is saved as `license.pem`:
```code
$ openssl x509 -text -in license.pem | grep "Not After"
Not After : Dec 16 19:43:40 2022 GMT
```
### Renew or update your license
If you have changed your license agreement with Teleport, e.g., you have added
or removed support for a feature, you must obtain an updated license file and
replace your existing license file on all Teleport Auth Service instances. You
must also obtain a new license file after renewing your Teleport Enterprise
license.
Once you restart the Teleport Auth Service, any changes to the license will take
effect.
The Teleport Auth Service checks the expiration status of your license every
hour. This means that, after you replace your license file and restart your Auth
Service instances, it can take up to an hour to confirm the new license.
If you are running a self-hosted Teleport Enterprise cluster on Kubernetes using
the `teleport-cluster` Helm chart, complete the following steps to update your
license:
1. Download a new license file from your Teleport account using the instructions
we provide [earlier in this guide](#download-your-license-file). We assume
that the license file is called `license.pem`.
1. Assign <Var name="teleport-namespace" /> to the Kubernetes namespace where
you manage Teleport-related resources.
1. Replace the Kubernetes secret that stores your existing license. We assume
that the secret is called `license`, but there may be a different secret name
specified in the `licenseSecretName` field of the chart's values file.
The following command prints a secret resource manifest to stdout using a dry
run of `kubectl create secret` and pipes it to `kubectl replace`. This way,
you can update the license without destroying and recreating it, avoiding the
risk of an Auth Service instance looking up a nonexistent license file:
```code
$ kubectl create secret generic license --from-file license.pem --dry-run=client -o yaml | kubectl replace -n <Var name="teleport-namespace" /> -f -
```
## When your license expires
At 90 days before your Teleport Enterprise license expires, users will see an
alert similar to the following when running `tsh login`, `tsh status`, or any
`tctl command`:
```text
Your Teleport Enterprise Edition license will expire in 90 days on one or more
of your auth servers. Please reach out to [email protected] to obtain a
new license. Inaction may lead to unplanned outage or degraded performance and
support.
```
Users will see a similar message as a banner when accessing the Teleport Web UI:
![License warning banner](../../../img/enterprise/license-warning.png)
You can close this banner to dismiss the message for the duration of your
session.
When your license expires, you will have a 30-day grace period before Teleport
Enterprise features become disabled.
`tsh` users will see warnings indicating that Enterprise features are no longer
available:
```text
Your Teleport Enterprise Edition license has expired on one or more of your auth
servers. Please reach out to [email protected] to obtain a new license.
Inaction may lead to unplanned outage or degraded performance and support.
```
Teleport Web UI users will see an alert banner:
![License expired banner](../../../img/enterprise/license-expired.png)
Enterprise features like Single Sign-On will fail.
## Unlicensed Teleport features
If users attempt to use a Teleport feature that your license does not allow,
they will see an error message. For example, if you attempt to use a SAML
authentication connector without a Teleport Enterprise license, you will see the
following error:
```text
SAML: this feature requires Teleport Enterprise
```
## Automatic license updates
By default, self-hosted Teleport Enterprise clusters will periodically check
whether there have been any changes to their subscription. If a change is
detected, then the cluster will automatically fetch an updated license without
user interaction.
In order for this functionality to work:
- the cluster must be running Teleport 16.4.11 or later
- the cluster must have outbound connectivity to https://api.teleport.sh
- the customer must have license updates enabled on their account
It can take up to 15 minutes for a change on the backend to be detected by the
cluster. There is no way to disable this functionality, but the cluster will
continue to function even if network access to api.teleport.sh is not available
(so long as the license remains valid).