infracost

Cloud cost estimates for Terraform in your CLI and pull requests 💰📉

Github stars Tracking Chart





Infracost shows hourly and monthly cost estimates for a Terraform project. This helps developers, DevOps et al. quickly see the cost breakdown and compare different deployment options upfront.

Table of Contents

Checkout the docs site for detailed usage options, supported resources and more information.

Installation

  1. Download and install the latest Infracost release

    Linux:

    curl -s -L https://github.com/infracost/infracost/releases/latest/download/infracost-linux-amd64.tar.gz, tar xz -C /tmp && \
    sudo mv /tmp/infracost-linux-amd64 /usr/local/bin/infracost
    

    macOS (Homebrew):

    brew install infracost
    

    macOS (manual):

    curl -s -L https://github.com/infracost/infracost/releases/latest/download/infracost-darwin-amd64.tar.gz, tar xz -C /tmp && \
    sudo mv /tmp/infracost-darwin-amd64 /usr/local/bin/infracost
    

    Docker:

    docker pull infracost/infracost
    docker run --rm \
      -e INFRACOST_API_KEY=see_following_step_on_how_to_get_this \
      -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
      -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
      -v $PWD/:/code/ infracost/infracost --tfdir /code/
      # add other required flags for infracost or envs for Terraform
    
  2. Use our free hosted API for cloud prices by registering for an API key:

    infracost register
    

    Alternatively you can run your own pricing API and set the INFRACOST_PRICING_API_ENDPOINT environment variable to point to it.

    The INFRACOST_API_KEY environment variable can be used to set to the API key in CI systems.

Basic usage

Generate a cost breakdown from a Terraform directory:

infracost --tfdir /path/to/code --tfflags "-var-file=myvars.tfvars"

Check the docs site for more details.

The Infracost GitHub action can be used to automatically add a PR comment showing the cost estimate diff between a pull request and the master branch whenever Terraform files change.

Development

Install Go dependencies:

make deps

Install latest version of terraform-provider-infracost. If you want to use a local development version see #using-a-local-version-of-terraform-provider-infracost

make install_provider

Get an API key.

make run ARGS="register"

Alternatively checkout and run the cloud-pricing-api and set the INFRACOST_PRICING_API_ENDPOINT environment variable to point to it.

Add the API key to your .env.local file:

cat <<EOF >> .env.local
INFRACOST_API_KEY=XXX
EOF

Run the code:

make run ARGS="--tfdir examples/terraform"

Run all tests:

make test

Exclude integration tests:

make test ARGS="-v -short"

Build:

make build

Using a local version of terraform-provider-infracost

To use a local development version of terraform-provider-infracost

  1. Fork/clone the terraform-provider-infracost repository

  2. Inside the directory that you cloned the repository run the following to install the local version in your ~/.terraform.d/plugins directory:

make install

Contributing

Pull requests are welcome! For more info, see the CONTRIBUTING file. For major changes, please open an issue first to discuss what you would like to change.

Join our chat, we are a friendly bunch and happy to help you get started :) https://discord.gg/rXCTaH3

License

Apache License 2.0

Main metrics

Overview
Name With Ownerinfracost/infracost
Primary LanguageGo
Program languageMakefile (Language Count: 5)
Platform
License:Apache License 2.0
所有者活动
Created At2020-06-24 09:11:56
Pushed At2024-10-25 13:08:52
Last Commit At2024-10-23 09:20:51
Release Count113
Last Release Namepreview (Posted on )
First Release Namev0.1.0 (Posted on )
用户参与
Stargazers Count11k
Watchers Count73
Fork Count553
Commits Count3k
Has Issues Enabled
Issues Count900
Issue Open Count171
Pull Requests Count1926
Pull Requests Open Count25
Pull Requests Close Count322
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private