Run the Teleport Terraform Provider in CI or Cloud
This guides covers how to run the Teleport Terraform Provider from:
- your CI/CD pipelines on:
- GitHub Actions (we'll use the
github
join method) - GitlabCI (we'll use the
gitlab
join method) - CircleCI (we'll use the
circleci
join method)
- GitHub Actions (we'll use the
- a cloud VM on:
- AWS (we'll use the
aws
join method) - GCP (we'll use the
gcp
join method)
- AWS (we'll use the
Running the Terraform provider with native MachineID is supported on Azure, inside a Kubernetes pod,
and on servers with Trusted Platform Module (TPM). While those setups are not described in details in this guide,
you can follow their regular MachineID guides and replace the "Configure tbot
" step by passing the
join method and token to the provider.
HCP Terraform (Terraform Cloud) and self-hosted Terraform Enterprise are supported but require special configuration, so refer to our dedicated guide.
This guide does not cover running Teleport locally, on a dedicated server or on certain platforms. See the following more specific guides for those cases:
- Run the Terraform Provider locally
- Run the Teleport Terraform Provider on a server
- Run the Teleport Terraform Provider on Spacelift
How it works
This setup asks the runtime (the CI/CD system, cloud provider, container engine, ...) for an identity
proof. This proof is then used directly by the Terraform provider to connect to Teleport and obtain credentials.
In this setup, there is no tbot
daemon involved as the Terraform provider can natively obtain the identity proof
and join the Teleport cluster.
The setup only works for select runtimes which Teleport has a delegated join method for (e.g. GitHub Actions, GitLab CI, ...)