Terraform
- Terraform Enterprise
- 1.0.x (latest)
- v202507-1
- v202506-1
- v202505-1
- v202504-1
- v202503-1
- v202502-1
- v202501-1
- v202411-2
- v202411-1
- v202410-1
- v202409-3
- v202409-2
- v202409-1
- v202408-1
- No versions of this document exist before v202408-1. Click below to redirect to the version homepage.
- v202407-1
- v202406-1
- v202405-1
- v202404-2
- v202404-1
- v202402-2
- v202402-1
- v202401-2
- v202401-1
- v202312-1
- v202311-1
- v202310-1
- v202309-1
- v202308-1
- v202307-1
- v202306-1
- v202305-2
- v202305-1
- v202304-1
- v202303-1
- v202302-1
- v202301-2
- v202301-1
- v202212-2
- v202212-1
- v202211-1
- v202210-1
- v202209-2
- v202209-1
- v202208-3
- v202208-2
- v202208-1
- v202207-2
- v202207-1
- v202206-1
Configure Redis data store connection
This topic describes how to configure Terraform Enterprise connection to an externally-managed Redis data store. This step is only necessary when operating Terraform Enterprise in an active-active operational mode. To allow Terraform Enterprise to self-manage Redis, configure Terraform Enterprise to run in disk operational mode on a compatible runtime platform, such as Docker or Podman. Refer to Configure operational mode for additional information.
Introduction
Terraform Enterprise uses Redis to cache and manage the background job scheduler queue across available hosts. Redis server configuration is required for any runtime platform configured to operate in active-active mode. You can operate Terraform Enterprise in active-active mode on the following runtime platforms:
- Kubernetes
- OpenShift
- Nomad
Requirements
Before proceeding, ensure that your environment meets the following requirements:
- Either a cloud-managed or self-hosted Redis server is required.
- Terraform Enterprise supports Redis server 6 and 7. We recommend using version 7.
- Redis Cluster and Redis Sentinel are not supported.
Example Redis servers:
Secure Redis servers
For secure Redis servers, create a user with read and write access.
TLS requirements
Verify that you meet the following requirements when TLS is required to connect to the Redis server:
- A valid TLS certificate and key are configured on the Redis server.
- The Redis server is properly configured to accept TLS connections.
- The Terraform Enterprise client is configured to use TLS when connecting to Redis. Refer to the TLS configuration reference for additional information.
For detailed information on configuring TLS for Redis, refer to the official Redis documentation on encryption.
Specify Redis connection settings
You can connect to either a Redis standalone instance, or a Redis Enterprise instance in non-clustering mode. The redis authentication can be configured for all Redis configurations.
Authentication
You can configure Redis to use the default user and require a password.
requirepass <your password>
In that case you would configure Terraform Enterprise
    TFE_REDIS_USE_AUTH: true
    TFE_REDIS_PASSWORD: <your password>
Warning
Terraform Enterprise currently does not support usernames provided with the `REDIS_USER` variable to authenticate with an external Redis instance.Redis Standalone
Add the following settings to your Terraform Enterprise configuration:
- Set the TFE_REDIS_HOSTvariable to the location of your Redis server. Format the location asHOST[:PORT], for exampleredis.example.comorredis.example.com:6379.
- Set the TFE_REDIS_USE_TLSvariable totrueif your Redis server requires TLS. Defaults tofalse.
- Set the TFE_REDIS_USE_AUTHvariable totrueif your Redis server requires authentication.
- Set the TFE_REDIS_PASSWORDvariable to the password for the user.
Refer to Redis settings in the configuration reference for additional information.
Redis Enterprise
Terraform Enterprise can use Redis Enterprise in non-clustering mode as it's Redis service. To do so, you must
configure a separate Redis endpoint for sidekiq, an internal component. This
requirement exists because sidekiq and other components that rely on Redis must be kept
separate. In normal operation, this is accomplishing using numbered Redis databases, which
are not supported in Redis Enterprise. By defining a separate endpoint for sidekiq usage,
Terraform Enterprise will use the default database 0 while still maintaining separation between sidekiq and
other components.
Add the following settings to your Terraform Enterprise configuration:
- Set the TFE_REDIS_SIDEKIQ_HOSTvariable to the location of your Redis server. Format the location asHOST[:PORT], for exampleredis.example.comorredis.example.com:6379.
- Set the TFE_REDIS_SIDEKIQ_USE_TLSvariable totrueif your Redis server requires TLS. Defaults tofalse.
- Set the TFE_REDIS_SIDEKIQ_USE_AUTHvariable totrueif your Redis server requires authentication.
- Set the TFE_REDIS_SIDEKIQ_PASSWORDvariable to the password for the user.