Infracost is an official HashiCorp partner. We work together to ensure that Infracost can be used alongside Terraform Cloud and integrated into your workflow.
If you're a Terraform Cloud user, we recommend starting with Run Tasks. Run Tasks are not yet available in Terraform Enterprise, so you can use the details below to integrate using our other CI/CD integrations.
Terraform Cloud Run Tasks
Run Tasks is a beta Terraform Cloud feature that can be used to integrate Infracost into the Terraform Cloud pipeline directly. This enables Infracost to work with Terraform Cloud natively, meaning you do not need to install/upgrade our CLI into your CI/CD systems. As shown in the following screenshot, Infracost adds a comment showing the cost diff in Terraform Cloud's dashboard and you can click on the Details link to see the cost breakdown or diff in the same way you would see it when you run the CLI yourself.
Please email email@example.com if you'd like to get access to the beta program.
To setup the integration:
- Generate a unique Infracost hook endpoint URL and HMAC key. These will be used in the next step.
- Follow the instructions for configuring a Run Task in Terraform Cloud. There are two steps you need to do: setup the integration, and enable it in your workspaces.
- After you've setup the integration, and enabled it on one or more of your workspaces, your runs will show the Infracost Run Task output and a link to the details; see example here.
Notes: As this integration is directly within Terraform Cloud, three things are not supported yet: pull request comments are not created; multiple currencies are not supported; the usage-file is not supported. Please create a GitHub issue or contact us if you're interested in these features. If you use GitHub, you can use the Infracost GitHub Actions to use those features (in addition to Cloud Run Tasks).
|Terraform Cloud dashboard||Details link|
Infracost is a verified Terraform Cloud integration. Terraform Cloud only sends the plan JSON file to Infracost during cost estimation, no other secrets/logs are sent, and once the cost estimate is generated, the temporary plan file is deleted from our servers.
Terraform Cloud users
This section is only applicable for Terraform Cloud users.
Running Infracost locally requires no additional steps as your Terraform CLI config file is used to access the plan.
When running Infracost in CI/CD systems, you should either:
- Set the
INFRACOST_TERRAFORM_CLOUD_TOKENenvironment variable to a Team API Token or User API Token. This environment variable can also be set in the config file.
- Set the Terraform environment variable
TF_CLI_CONFIG_FILEto the absolute path of your Terraform CLI config file.
Terraform Enterprise users
When running Infracost locally or in CI/CD systems, you should set both of the following environment variables. These environment variables can also be set in the config file.
INFRACOST_TERRAFORM_CLOUD_TOKENto a Team API Token or User API Token.
INFRACOST_TERRAFORM_CLOUD_HOSTto your backend host, this overrides the default
Terraform Cloud and Enterprise users who use multiple Terraform workspaces, can use an Infracost config file to define them; their results will be combined into the same breakdown or diff output.
If you'd like to select one workspace, you can do so by either:
- using the
- setting the
INFRACOST_TERRAFORM_WORKSPACEenvironment variable (this sets the
Only set this for multi-workspace deployments, otherwise it might result in the Terraform error "workspaces not supported". If you see this error, try running
unset INFRACOST_TERRAFORM_WORKSPACE and