- Terraform Enterprise
- 1.2.x
- 1.1.x
- 1.0.x
- v202507-1
- v202506-1
- v202505-1
- v202504-1
- v202503-1
- v202502-2
- 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 a license
This topic describes how to configure the license so that you can deploy Terraform Enterprise to one of the supported runtimes environments.
You can provide either a HashiCorp License or an IBM Passport Advantage Online (PAO) license. Use a HashiCorp license if you have a legacy HashiCorp license key. Use a PAO license if you purchased Terraform Enterprise through IBM Passport Advantage Online.
Apply the Terraform Enterprise license
There are two ways to apply the new license file on startup:
- Provide the body of the license file as a string to an environment variable called
TFE_LICENSE. - Store the license in a file and provide the file path to an environment variable called
TFE_LICENSE_PATH. - For Kubernetes and OpenShift deployments, you can also store the installation key as a Kubernetes secret and map it to
TFE_LICENSEthrough your Helm values. Refer to Deploy Terraform Enterprise to Kubernetes or Deploy Terraform Enterprise to OpenShift for runtime-specific secret configuration guidance.
License expiration and termination
To prevent unexpected outages caused by delays in license updates, licenses provisioned for use in production don't terminate on their expiry date. If your license key expires, active Terraform Enterprise instances continue to operate. You must update the key with a valid license in order to restart a deployment or to install a new deployment.
If your license expires, you cannot use it for authentication with the HashiCorp image registry at images.registry.hashicorp.com. If you configure your installation to pull directly from the HashiCorp registry and your license expires, you cannot reinstall, scale, or upgrade.
To check your license expiration date, use the tfectl app license command.
License updates
To update an existing installation with a new license, you will need to modify the TFE_LICENSE or TFE_LICENSE_PATH
variable and restart the application.
Product data collection reference
The following JSON payload describes the product usage data that Terraform Enterprise collects. The contents shown are subject to change.
{
"version":"2",
"mode": "automatic",
"timestamp":"${TIME_OF_EXPORT}",
"signature": "${UUID}",
"checksum": "${UUID}",
"snapshots":[
{
"snapshot_version":2,
"id":"${SNAPSHOT_ID}",
"timestamp":"${TIME_OF_EXPORT}",
"schema_version":"2.2.0",
"product":"terraform",
"process_id":"${PROCESS_ID}",
"product_version":"${TFE_VERSION}",
"license_id":"${LICENSE_IDENTIFIER}",
"checksum": "${SHA}",
"metrics": {
"active_agents_count": { # Count of all remote active agents
"key": "active_agents_count",
"value": 0,
"mode": "write"
},
"ado_vcs_present": { # 1 if Azure DevOps is configured as a VCS provider, 0 otherwise
"key": "ado_vcs_present",
"value": 0,
"mode": "write"
},
"aws_provider_present": { # 1 if AWS provider is in use on the installation.
"key": "aws_provider_present",
"value": 0,
"mode": "write"
},
"azure_provider_present": { # 1 if Azure provider is in use on the installation.
"key": "azure_provider_present",
"value": 0,
"mode": "write"
},
"billable_rum_count": { # Count of all billable RUM on the installation
"key": "billable_rum_count",
"value": 0,
"mode": "write"
},
"billable_rum_count_workspace_80th_percentile": { # 80th percentile workspace billable RUM on the installation
"key": "billable_rum_count_workspace_80th_percentile",
"value": 0,
"mode": "write"
},
"billable_rum_count_workspace_avg": { # Mean workspace billable RUM on the installation
"key": "billable_rum_count_workspace_avg",
"value": 0,
"mode": "write"
},
"billable_rum_count_workspace_max": { # Maximum workspace billable RUM on the installation
"key": "billable_rum_count_workspace_max",
"value": 0,
"mode": "write"
},
"billable_rum_count_workspace_median": { # Median workspace billable RUM on the installation
"key": "billable_rum_count_workspace_median",
"value": 0,
"mode": "write"
},
"billable_rum_count_workspace_min": { # Lowest workspace billable RUM on the installation
"key": "billable_rum_count_workspace_min",
"value": 0,
"mode": "write"
},
"billable_rum_opt_in": { 1 if billable RUM reporting is enabled, 0 otherwise
"key": "billable_rum_opt_in",
"value": 1,
"mode": "write"
},
"bitbucket_vcs_present": { # 1 if Bitbucket is configured as a VCS provider, 0 otherwise
"key": "bitbucket_vcs_present",
"value": 0,
"mode": "write"
},
"continuous_validation_used_last_90_days": { # 1 if continuous validation has run in the last 90 days, 0 otherwise
"key": "continuous_validation_used_last_90_days",
"value": 0,
"mode": "write"
},
"daily_api_runs": { # Count of all Terraform runs associated with api daily
"key": "daily_api_runs",
"value": 0,
"mode": "write"
},
"daily_cli_runs": { # Count of all Terraform runs associated with cli daily
"key": "daily_cli_runs",
"value": 0,
"mode": "write"
},
"daily_runs": { # Count of all Terraform runs daily
"key": "daily_runs",
"value": 0,
"mode": "write"
},
"daily_vcs_runs": { # Count of all Terraform runs associated with VCS daily
"key": "daily_vcs_runs",
"value": 0,
"mode": "write"
},
"deployment_option": { # No data collected
"key": "deployment_option",
"value": 0,
"mode": "write"
},
"drift_detection_used_last_90_days": { # 1 if drift detection has run in 90 days, 0 otherwise
"key": "drift_detection_used_last_90_days",
"value": 0,
"mode": "write"
},
"gcp_provider_present": { # 1 if GCP provider is in use on the installation.
"key": "gcp_provider_present",
"value": 0,
"mode": "write"
},
"github_vcs_present": { # 1 if Github is configured as a VCS provider, 0 otherwise
"key": "github_vcs_present",
"value": 0,
"mode": "write"
},
"gitlab_vcs_present": { # 1 if Gitlab is configured as a VCS provider, 0 otherwise
"key": "gitlab_vcs_present",
"value": 0,
"mode": "write"
},
"installation_reporting_environment_type": { # The environment the TFE installation is setup in, 0 = environment type not set, 1 = prod, 2 = non-prod
"key": "installation_reporting_environment_type",
"value": 0,
"mode": "write"
},
"operational_mode": { # No data collected
"key": "operational_mode",
"value": 0,
"mode": "write"
},
"org_admin_count": { # Count of admin users across all organizations in the installation
"key": "org_admin_count",
"value": 1,
"mode": "write"
},
"org_count": { # Count of “Organization” configured on the installation
"key": "org_count",
"value": 1,
"mode": "write"
},
"private_modules_count": { # Count of private modules in the private registry.
"key": "private_modules_count",
"value": 0,
"mode": "write"
},
"product_usage_reporting_opt_in": { 1 if product usage reporting is opted in, 0 otherwise
"key": "product_usage_reporting_opt_in",
"value": 1,
"mode": "write"
},
"project_count": { # Count of “Project” configured on the installation
"key": "project_count",
"value": 1,
"mode": "write"
},
"run_concurrency": { # Run concurrency configured for the TFE installation
"key": "run_concurrency",
"value": 0,
"mode": "write"
},
"run_tasks_count": { # Count of run tasks configured across all workspaces
"key": "run_tasks_count",
"value": 0,
"mode": "write"
},
"run_tasks_used_last_90_days": { # 1 if run tasks has been used in 90 days, 0 otherwise
"key": "run_tasks_used_last_90_days",
"value": 0,
"mode": "write"
},
"run_triggers_used_last_90_days": { # 1 if run triggers has been used in 90 days, 0 otherwise
"key": "run_triggers_used_last_90_days",
"value": 0,
"mode": "write"
},
"sentinel_used_last_90_days": { # 1 if sentinel has run in 90 days, 0 otherwise
"key": "sentinel_used_last_90_days",
"value": 0,
"mode": "write"
},
"servicenow_catalog_billable_rum_count": { Count of all billable RUM on ServiceNow workspaces for this install
"key": "servicenow_catalog_billable_rum_count",
"value": 0,
"mode": "write"
},
"servicenow_catalog_run_count": { # Count of of Terraform runs initiated from ServiceNow for this install
"key": "servicenow_catalog_run_count",
"value": 0,
"mode": "write"
},
"servicenow_catalog_workspace_count": { # Count of workspaces provisioned using servicenow integration
"key": "servicenow_catalog_workspace_count",
"value": 0,
"mode": "write"
},
"teams_count": { # Count of “Teams” configured on the installation
"key": "teams_count",
"value": 1,
"mode": "write"
},
"user_count": { # Count of "Users" configured on the installation
"key": "user_count",
"value": 1,
"mode": "write"
},
"using_admin_api": { # 1 is Admin API was used, 0 otherwise
"key": "using_admin_api",
"value": 0,
"mode": "write"
},
"using_iam_auth_s3": { # 1 if IAM auth-s3 is configured for the TFE installation, 0 otherwise
"key": "using_iam_auth_s3",
"value": 0,
"mode": "write"
},
"varsets_count": { # Count of varsets configured on the installation
"key": "varsets_count",
"value": 0,
"mode": "write"
},
"workspace_count_azure_devops": { # Workspace count connected to Azure DevOps
"key": "workspace_count_azure_devops",
"value": 0,
"mode": "write"
},
"workspace_count_bitbucket": { # Workspace count connected to Bitbucket
"key": "workspace_count_bitbucket",
"value": 0,
"mode": "write"
},
"workspace_count_github": { # Workspace count connected to GitHub
"key": "workspace_count_github",
"value": 0,
"mode": "write"
},
"workspace_count_gitlab": { # Workspace count connected to Gitlab
"key": "workspace_count_gitlab",
"value": 0,
"mode": "write"
},
"workspacecount": { # Count of all workspaces on the installation
"key": "workspacecount",
"value": 1,
"mode": "write"
},
"workspaces_api_driven_runs": { # Workspaces using API-driven runs
"key": "workspaces_api_driven_runs",
"value": 0,
"mode": "write"
},
"workspaces_cli_driven_runs": { # Workspaces using CLI-driven runs
"key": "workspaces_cli_driven_runs",
"value": 0,
"mode": "write"
},
"workspaces_count_continuous_validation": { # No data collected
"key": "workspaces_count_continuous_validation",
"value": 0,
"mode": "write"
},
"workspaces_count_drift_detection": { # No data collected
"key": "workspaces_count_drift_detection",
"value": 0,
"mode": "write"
},
"workspaces_count_no_code_modules": { # No data collected
"key": "workspaces_count_no_code_modules",
"value": 0,
"mode": "write"
},
"workspaces_count_notifications_enabled": { # No data collected
"key": "workspaces_count_notifications_enabled",
"value": 0,
"mode": "write"
},
"workspaces_count_opa_policy_sets": { # No data collected
"key": "workspaces_count_opa_policy_sets",
"value": 0,
"mode": "write"
},
"workspaces_count_run_tasks": { # Count of workspaces with run tasks
"key": "workspaces_count_run_tasks",
"value": 0,
"mode": "write"
},
"workspaces_count_sentinel_policy_sets": { # No data collected
"key": "workspaces_count_sentinel_policy_sets",
"value": 0,
"mode": "write"
}
},
}
],
"metadata":{
}
}
}