Cloud cost estimates for Terraform in pull requestsπ°π Shift FinOps Left!
Infracost version 0.10.17
includes several enhancements and bug fixes aimed at helping users with complex setups. This version has improved support for module evaluation, error reporting, and pricing lookups. Give it a try!
Project: infracost/infracost/cmd/infracost/testdata/breakdown_multi_project_with_error/dev
Module path: dev
Errors:
Error loading Terraform modules:
failed to inspect module path testdata/breakdown_multi_project_with_error/dev diag:
Invalid block definition:
Either a quoted string block label or an opening brace ("{") is expected here. (and 1 other messages)
ββββββββββββββββββββββββββββββββββ
Project: infracost/infracost/cmd/infracost/testdata/breakdown_multi_project_with_error/prod
Module path: prod
Name Monthly Qty Unit Monthly Cost
aws_instance.web_app
ββ Instance usage (Linux/UNIX, on-demand, m5.8xlarge) 730 hours $1,121.28
ββ root_block_device
β ββ Storage (general purpose SSD, gp2) 50 GB $5.00
ββ ebs_block_device[0]
ββ Storage (provisioned IOPS SSD, io1) 1,000 GB $125.00
ββ Provisioned IOPS 800 IOPS $52.00
Project total $1,303.28
OVERALL TOTAL $1,303.28
by @hugorut in https://github.com/infracost/infracost/pull/2225 and @tim775 in https://github.com/infracost/infracost/pull/2268
ap-southeast-4
region - by @aliscott in https://github.com/infracost/infracost/pull/2280
export INFRACOST_VERSION=v0.10.16; curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
- by @sylwit in https://github.com/infracost/infracost/pull/2251
for_each
attributes were not expanding correctly if they relied on a referenced expanded module. This improvement will benefit users who heavily rely on composable modules - by @hugorut in https://github.com/infracost/infracost/pull/2232
--config-file
path is abs. This fixes a regression that prevented GitHub action workflows building cost estimates - by @hugorut in https://github.com/infracost/infracost/pull/2234
infracost comment
hiding module path when projects are skipped - by @aliscott in https://github.com/infracost/infracost/pull/2240
each.value
changes. This resolves bugs where the incorrect module inputs were passed before the references were expanded - by @hugorut in https://github.com/infracost/infracost/pull/2241
CoreResource
before costing policy, preventing resource outputs being changed when reporting cost estimates to the CLI - by @hugorut in https://github.com/infracost/infracost/pull/2246
Full Changelog: https://github.com/infracost/infracost/compare/v0.10.16...v0.10.17
v0.10.16 contains various fixes and enhancements, including improvements related to our GitHubApp.
Infracost has now changed behaviour to add .infracost folder at the working directory for the infracost execution and not the sub project folders. Users might run Infracost in these sub project folders in isolation.
Full Changelog: https://github.com/infracost/infracost/compare/v0.10.15...v0.10.16
Infracost v0.10.15 contains fixes for critical issues facing Terragrunt users. It also resolves minor regressions introduced in 0.10.14 and improves our GitHub app functionality.
invalid character ',' looking for beginning of value
bug that Terragrunt users faced if output expressions from dependencies could not be resolved - by @hugorut in https://github.com/infracost/infracost/pull/2175
Full Changelog: https://github.com/infracost/infracost/compare/v0.10.14...v0.10.15
Infracost v0.10.14 contains a number of new resource pricing including support for Google custom machine types! It also includes some CLI features for allowing region overrides and showing the breakdown of all projects in a CI/CD comment.
CLI functionality:
--show-all-projects
flag to show all projects in table of infracost comment
by @fatihtokus in https://github.com/infracost/infracost/pull/2087
--include-all-paths
flag for auto detection by @hugorut in https://github.com/infracost/infracost/pull/2127
--terraform-use-state
flag with --config-file
by @tim775 in https://github.com/infracost/infracost/pull/2104
This release also contains functionality to enable features on Infracost Cloud:
New resource prices:
aws_fsx_openzfs_file_system
) by @jgrumboe in https://github.com/infracost/infracost/pull/2092
azurerm_attestation_provider
) by @yogeshCt3 in https://github.com/infracost/infracost/pull/2134
aws_ec2_host
) by @robh007 in https://github.com/infracost/infracost/pull/2135
New regions:
depends_on
block causing module to re-evaluate with HCL parsing in https://github.com/infracost/infracost/pull/2122
golang.org/x/text
and golang.org/x/net
by @peterdeme in https://github.com/infracost/infracost/pull/2106
https://github.com/infracost/docs/pull/307
Full Changelog: https://github.com/infracost/infracost/compare/v0.10.13...v0.10.14
Infracost 0.10.13 contains fixes for several issues and... changes to support automatic usage estimatesβοΈβοΈβοΈ
for_each
iterating over resource properties by @hugorut in https://github.com/infracost/infracost/pull/2078
Full Changelog: https://github.com/infracost/infracost/compare/v0.10.12...v0.10.13
Infracost 0.10.12 brings additional features that help simplify and debug users' workflows.
New environment variables giving users the option to configure Infracost output currency and format. The below example show the output of the number 64145.4525
with different formatting options:
Environment variables | Output for 64145.4525 |
---|---|
INFRACOST_CURRENCY=USD<BR/>INFRACOST_CURRENCY_FORMAT="USD: 1.234,567890 $" | 64.145,452500 $ |
INFRACOST_CURRENCY=EUR<BR/>INFRACOST_CURRENCY_FORMAT="EUR: 1.234,56β¬" | 64.145,45β¬ |
INFRACOST_CURRENCY=GBP<BR/>INFRACOST_CURRENCY_FORMAT="GBP: Β£ 1,234.567" | Β£ 64,145.453 |
by @fatihtokus in https://github.com/infracost/infracost/pull/2017
The Infracost usage file now allows users to provide defaults for resource types. Resource type defaults apply to all resources of that type regardless of the module they reside in.
This is useful when you want to create traffic profiles such as small/medium/large. Resource type defaults can be overridden on a per-resource basis (shown below); usage keys that are re-defined at a resource level override the default, and new usage keys are merged with the defaults.
aws_dynamodb_table:
storage_gb: 1000 # Set in all DynamoDB table resources
aws_dynamodb_table.my_table:
monthly_write_request_units: 200 # Merged with default that defines storage_gb
aws_dynamodb_table.my_other_table:
storage_gb: 50 # Overrides the default
by @balazs-marjan in https://github.com/infracost/infracost/pull/1979
You can read more about the use cases and options on our docs.
Support for HCL warnings in project metadata. This means that your Infracost Cloud runs will now contain useful information about missing configuration that could be affecting your cost estimates.
by @hugorut in https://github.com/infracost/infracost/pull/2037
Experimental support for Infracost Cloud based usage estimates, populated from live CUR data. More on this soon. - by @tim775 in https://github.com/infracost/infracost/pull/2050
Full Changelog: https://github.com/infracost/infracost/compare/v0.10.11...v0.10.12
Infracost 0.10.11 contains significant updates to improve VCS detection. In addition, we've added the ability to override detection, which enables users to specify how they want their VCS data displayed in Infracost Cloud.
Users should be aware that with 0.10.11 release, the vcsRepoUrl
metadata attribute has been changed to vcsRepositoryUrl
:
{
"vcsPullRequestUrl": "https://github.com/infracost/infracost/pull/42",
- "vcsRepoUrl": "https://github.com/infracost/infracost.git",
+ "vcsRepositoryUrl": "https://github.com/infracost/infracost.git",
"vcsProvider": "github",
"vcsBaseBranch": "master",
"vcsPullRequestTitle": "Some PR title",
"vcsPullRequestId": "4321"
...
}
- `INFRACOST_VCS_PROVIDER`: can be "github", "gitlab", "azure_repos" or "bitbucket"
- `INFRACOST_VCS_REPOSITORY_URL`: HTTPS URL of the repository, e.g. "https://github.com/infracost/example-terraform"
- `INFRACOST_VCS_PULL_REQUEST_URL`: HTTP URL of the pull request, e.g. "https://github.com/alikhajeh1/example-terraform/pull/2"
- `INFRACOST_VCS_PULL_REQUEST_AUTHOR`: author username or full name of the pull request, e.g. "john190" or "John Smith"
- `INFRACOST_VCS_PULL_REQUEST_TITLE`: title of the pull request, e.g. "Increase IOPS"
- `INFRACOST_VCS_BRANCH`: name of the branch that was used to generate the estimate, e.g. "increase_iops"
- `INFRACOST_VCS_COMMIT_SHA`: long commit SHA of the branch that was used to generate the estimate, e.g. "1af413ad15ad6cbdfca667361231231231231231"
- `INFRACOST_VCS_COMMIT_MESSAGE`: the commit message, e.g. "use m5.large"
- `INFRACOST_VCS_COMMIT_TIMESTAMP`: unix epoch timestamp of the commit, e.g. `1661801540`. You can use the following command to get the timestamp on the latest commit from the current branch `export INFRACOST_VCS_COMMIT_TIMESTAMP=$(git show -s --format=%ct)`
- `INFRACOST_VCS_COMMIT_AUTHOR_EMAIL`: git email of author of the commit, e.g. "[email protected]"
- `INFRACOST_VCS_COMMIT_AUTHOR_NAME`: git author name of the commit, e.g. "John Smith"
- `INFRACOST_VCS_PIPELINE_RUN_ID`: a way to differentiate pipelines that are run within one CI/CD run, this is the top-level pipeline ID, not individual jobs/runs within it, e.g. "2846680866"
by @hugorut in https://github.com/infracost/infracost/pull/1990
infracost upload
command which supports uploading an Infracost JSON file to Infracost Cloud without the need for infracost comment
. This command uploads the data regardless of your Org Settings or the INFRACOST_ENABLE_CLOUD
environment variable. - by @tim775 in https://github.com/infracost/infracost/pull/1997
go-git
dependency to fix panics reported by Windows users - by @hugorut in https://github.com/infracost/infracost/pull/1989
azurerm_function_app
and azurerm_mysql_flexible_server
price filters so they no longer show zero prices - by @aliscott in https://github.com/infracost/infracost/pull/1992
Full Changelog: https://github.com/infracost/infracost/compare/v0.10.10...v0.10.11
Infracost v0.10.10 contains fixes and enhancements for the CLI, many of them improving support in the Infracost VS Code extension.
cty.ObjectType
by @hugorut in https://github.com/infracost/infracost/pull/1956
Full Changelog: https://github.com/infracost/infracost/compare/v0.10.9...v0.10.10
π π Infracost v0.10.9 contains a number of fixes for the CLI that are discovered when used with the Infracost VS Code extension support. It also contains several enhancements to how our CLI integrates with Infracost Cloud, to enable it to work with additional CI/CD platforms such as Atlantis, Azure Repos and Bitbucket.
enable_cloud
setting is enabled @tim775 in https://github.com/infracost/infracost/pull/1880
Panic and runtime errors caused by incomplete VS Code Terraform files
interface conversion
by @hugorut in https://github.com/infracost/infracost/pull/1896
value is unknown panic
by @hugorut in https://github.com/infracost/infracost/pull/1888
ForDisplay called on invalid Hostname
panic by @hugorut in https://github.com/infracost/infracost/pull/1895
index out of range [1] with length 1
panic for aws_codebuild_project
by @hugorut in https://github.com/infracost/infracost/pull/1894
Other fixes:
for_each
or count
by @aliscott in https://github.com/infracost/infracost/pull/1885
NAME
env variable overriding the project name by @aliscott in https://github.com/infracost/infracost/pull/1919
aws_ecs_service
to work when referencing a aws_ecs_task_definition
with a family
attribute by @aliscott in https://github.com/infracost/infracost/pull/1917
Full Changelog: https://github.com/infracost/infracost/compare/v0.10.8...v0.10.9
Infracost v0.10.8 adds support for Infracost Cloud, our new hosted service. π π π’
It enables team leads, managers and FinOps practitioners to have visibility across all cost estimates in CI/CD and answer questions like:
As part of this, we've removed the infracost register
command in favour of infracost auth login
, which uses our new login flow. This will not impact existing users or existing API keys.
This release also contains several critical bug fixes for the CLI that have arisen from Infracost's VSCode extension support.
monthly_hrs
usage field - by @jessecureton in https://github.com/infracost/infracost/pull/1812
--exclude-cli-output
option. Allowing users to truncate long Bitbucket comments - by @vdmgolub in https://github.com/infracost/infracost/pull/1881
--debug-report
flag, which generates a rich JSON debugging report. This helps Infracost maintainers debug problems quickly - @hugorut in https://github.com/infracost/infracost/pull/1808
Updated path variables for Terraform file functions. This fixes problems with users trying to load files in child modules - by @tim775 in https://github.com/infracost/infracost/pull/1849
Tweaked product filters for Google Storage Bucket - by @vdmgolub in https://github.com/infracost/infracost/pull/1868
Better automatic project name detection - by @hugorut in https://github.com/infracost/infracost/pull/1878
Several panic and runtime errors caused by incomplete VSCode Terraform files
storage_profile_os_disk
block - by @aliscott in https://github.com/infracost/infracost/pull/1864
cty.NilVal
to HCL expressions when in a partial evaluation state - by @hugorut in https://github.com/infracost/infracost/pull/1867
Full Changelog: https://github.com/infracost/infracost/compare/v0.10.7...v0.10.8