infracost

module
v0.6.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 12, 2020 License: Apache-2.0

README

Infracost logo

Docs Discord Chat Build Status Docker Image Tweet

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.

Example Infracost output

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_steps_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.

  3. Set the INFRACOST_API_KEY environment variable to your API key, e.g.:

    export INFRACOST_API_KEY=XXXXX
    

    Or persist it in your .zshrc or .bashrc file.

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.

Example infracost diff usage

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL