This release adds Backend()
API for accessing the Terraform backend configuration. If you want to use the API, the plugin must be built with tflint-plugin-sdk v0.3.0. For details, please see the CHANGELOG of tflint-plugin-sdk.
- #845: Bump tflint-plugin-sdk to v0.3.0 (@wata727)
- This change breaks plugin API backward compatibility. In order for plugins to work against v0.18.0, you need to build with tflint-plugin-sdk v0.3.0.
- #838: plugin: Add
Backend()
to plugin server (@pd) - #844: Add
--loglevel
option (@wata727) - #846: Bump terraform-provider-aws to v2.70.0 from v2.68.0 (@wata727)
- #840: tflint: Fix module resolution when terraform init is invoked from another directory (@mkielar)
- #830: Bump github.com/spf13/afero from 1.3.0 to 1.3.1
- #847: Bump github.com/aws/aws-sdk-go from 1.32.12 to 1.33.7
This release contains several improvements for plugins. In order to take advantage of the improved features, the plugin must be built with tflint-plugin-sdk v0.2.0. For details, please see the CHANGELOG of tflint-plugin-sdk.
- #823: Bump tflint-plugin-sdk to v0.2.0 (@wata727)
- This change breaks plugin API backward compatibility. In order for plugins to work against v0.17.0, you need to build with tflint-plugin-sdk v0.2.0.
- #795: rules: RDS on VMware instance types (@PatMyron)
- #796: plugin: Add Blocks API (@wata727)
- #800 #807: plugin: Add Resources API (@iwarapter) (@wata727)
- #801: rules: Add terraform_standard_module_structure rule (@bendrucker)
- #828: Bump terraform-provider-aws to v2.68.0 from v2.65.0 (@wata727)
- #775: plugin: Support text-based expression sending and receiving on the server (@wata727)
- #785: tflint: Do not walk resource attributes if the resource is not created (@wata727)
- #797: plugin: Allow to omit metadata expr on EmitIssue (@wata727)
- #792: Bump github.com/hashicorp/hcl/v2 from 2.5.1 to 2.6.0
- #793: Bump github.com/hashicorp/aws-sdk-go-base from 0.4.0 to 0.5.0
- #794: Bump github.com/hashicorp/hcl/v2 from 2.5.1 to 2.6.0 in /tools
- #799: Bump github.com/zclconf/go-cty from 1.4.2 to 1.5.0
- #803 #809: awsrules: add tags package with generator (@bendrucker)
- #805 #818 #825: Bump github.com/aws/aws-sdk-go from 1.31.7 to 1.32.11
- #806: Replacing loadConfigFromFile return func by cfg variable (@cedarkuo)
- #811: Bump github.com/hashicorp/terraform-plugin-sdk from 1.13.1 to 1.14.0 in /tools
- #812: Bump github.com/google/go-cmp from 0.4.1 to 0.5.0
- #813: Bump github.com/hashicorp/go-version from 1.2.0 to 1.2.1
- #815: Bump github.com/spf13/afero from 1.2.2 to 1.3.0
- #819: Move tools packages into packages they are responsible for generating (@bendrucker)
- #820: readme: replace wget w/ curl in macOS install example (@bendrucker)
- #821 #822: chore(deps): bump terraform to v0.12.28 (@chenrui333)
- #824: Create Dependabot config file
- #826: Bump github.com/mattn/go-colorable from 0.1.6 to 0.1.7
- #784: add terraform_deprecated_index (disallows foo.0) (@bendrucker)
- #787: Change the plugins dir with TFLINT_PLUGIN_DIR environment variable (@wata727)
- #789: Allow no extensions on windows (@jpreese)
- #790: Bump terraform-provider-aws to v2.65.0 from v2.62.0 (@wata727)
- #767: terraform_workspace_remote: document disabling with local execution (@bendrucker)
- #772: Bump tflint-plugin-sdk to v0.1.1 from v0.1.0 (@wata727)
- #773: Bump github.com/hashicorp/terraform-plugin-sdk from 1.12.0 to 1.13.0 in /tools
- #774: Bump github.com/aws/aws-sdk-go from 1.30.29 to 1.31.4
- #776: Bump tf to v0.12.26 (@chenrui333)
- #777: Update install linux script (@cedarkuo)
- #779: Bump github.com/aws/aws-sdk-go from 1.31.4 to 1.31.7
- #780: Bump github.com/zclconf/go-cty from 1.4.1 to 1.4.2
- #782: Update extend.md (@jpreese)
- #762: Add terraform_comment_syntax rule (@bendrucker)
- #745: Expose raw hcl.File objects to rules (@bendrucker)
- See also terraform-linters#741
- #759: Ignore lang.ReferencesInExpr errors when walking all expressions (@bendrucker)
- #763: Make rule config which is enabled with CLI non-nilable (@wata727)
- #753: Bump go to 1.14.3 and alpine to 3.11 (@chenrui333)
- #754: Add support TFLINT_VERSION environment variable to installation script (@wata727)
- #755: Mention about other providers support (@wata727)
- #756: Bump github.com/google/go-cmp from 0.4.0 to 0.4.1
- #757: Bump github.com/hashicorp/hcl/v2 from 2.5.0 to 2.5.1
- #758: Bump github.com/aws/aws-sdk-go from 1.30.24 to 1.30.29
In this release, some great Terraform rules are added by great contributors! Please note that many rules are not enabled by default. You need to set it appropriately according to your policy.
The naming convention rules have been merged into the terraform_naming_convetion
rule, so if you are using the terraform_dash_in_*
rules you will need to change your configuration. See the documentation for details.
- #737: Remove terraform_dash_in_* rules (@wata727)
- The
terraform_dash_in_data_source_name
,terraform_dash_in_module_name
,terraform_dash_in_output_name
, andterraform_dash_in_resource_name
rules have been removed. Use theterraform_naming_convention
rule instead.
- The
- #697: Add terraform_naming_convention rule (@jgeurts)
- #731: Add terraform_required_providers rule (@bendrucker)
- #738: Add terraform_workspace_remote rule (@bendrucker)
- #739: Add terraform_unused_declarations rule (@bendrucker)
- #752: Bump terraform-provider-aws to v2.62.0 from v2.59.0 (@wata727)
- #732: Copy edits for rules docs (@bendrucker)
- #740: testing: compare Rule types and ignore struct fields (@bendrucker)
- #743: Split runner file into multiple files (@wata727)
- #746: Bump github.com/aws/aws-sdk-go from 1.30.14 to 1.30.24
- #747: Bump github.com/hashicorp/hcl/v2 from 2.3.0 to 2.5.0
- #749: Bump github.com/hashicorp/terraform-plugin-sdk from 1.10.0 to 1.12.0 in /tools
- #750: Bump tf to v0.12.25 (@chenrui333)
- #751: Bump github.com/hashicorp/hcl/v2 from 2.3.0 to 2.5.1 in /tools
- #721: Add a rule to enforce Terraform types for variables (@mveitas)
- #725: Adding rule for terraform_required_version (@mveitas)
- #729: Bump terraform-provider-aws to v2.59.0 from v2.56.0 (@wata727)
- #707: Bump github.com/hashicorp/go-plugin from 1.2.0 to 1.2.2
- #727: Bump github.com/hashicorp/terraform-plugin-sdk from 1.9.0 to 1.10.0 in /tools
- #730: Bump github.com/aws/aws-sdk-go from 1.30.3 to 1.30.14
- #685: Add dash checks for data sources and modules (@gkze)
- #702: Bump terraform-aws-provider to v2.56.0 from v2.54.0 (@wata727)
- #684: Automate homebrew formula upgrade process (@chenrui333)
- #686: Fixes the example of excluding resource types (@bwhaley)
- #690: Bump github.com/hashicorp/terraform-plugin-sdk from 1.8.0 to 1.9.0 in /tools
- #699: Bump github.com/aws/aws-sdk-go from 1.29.29 to 1.30.3
- #676: Bump terraform to v0.12.24 (@chenrui333)
- #681: Bump terraform-provider-aws to v2.54.0 from v2.53.0 (@wata727)
- #682: Bump github.com/aws/aws-sdk-go from 1.29.24 to 1.29.29
- #670: Adds support for aws_autoscaling_group tag blocks and tags attributes (@bwhaley)
- #679: Add bucket-owner-full-control to allowed S3 ACLs (@sds)
- #680: Add bucket-owner-read to allowed S3 ACLs (@wata727)
- #664: Use checkout action v2 (@chenrui333)
- #671: Bump github.com/golang/mock from 1.4.1 to 1.4.3
- #675: Bump github.com/hashicorp/go-plugin from 1.1.0 to 1.2.0
- #650: Bump github.com/zclconf/go-cty from 1.3.0 to 1.3.1
- #653: Bump terraform to v0.12.23 (@chenrui333)
- #665: Bump github.com/aws/aws-sdk-go from 1.28.9 to 1.29.24
- #667: Bump terraform-provider-aws to v2.53.0 from v2.50.0 (@wata727)
- #647: Bump github.com/hashicorp/go-plugin from 1.0.1 to 1.1.0
- #649: Bump golang to v1.14 (@chenrui333)
- #657: Run linters in GitHub Actions (@wata727)
- #660: Bump github.com/hashicorp/terraform-plugin-sdk from 1.7.0 to 1.8.0 in /tools
- #666: Add install guide for Windows (choco install) (@aaronsteers)
- #630: Bump github.com/zclconf/go-cty from 1.2.1 to 1.3.0
- #640: Bump github.com/golang/mock from 1.4.0 to 1.4.1
- #641: Bump github.com/mattn/go-colorable from 0.1.4 to 0.1.6
This release introduces advanced rule configuration syntax. This allows you to customize each rule with its own options. At the moment, only the terraform_module_pinned_source
rule has its own options. See documentation for details.
- #624: Merge terraform_module_semver_source into terraform_module_pinned_source (@wata727)
- The
terraform_module_semver_source
rule has been removed. Instead, use theterraform_module_pinned_source
rule withsemver
style option.
- The
- #609: Add new terraform_deprecated_interpolation rule (@wata727)
- #619: Show the actual value in messages (@wata727)
- #629: Bump terraform to v0.12.21 (@chenrui333)
- #617: Check for tags on AWS resources (@bwhaley)
- #635: Bump terraform-provider-aws to v2.50.0 from v2.46.0 (@wata727)
- #607: Add FAQ (@wata727)
- #608: Remove go111module on env variable in Dockerfile (@cedarkuo)
- #610: Add docker build actions (@wata727)
- #637: Regenerate tags rule (@wata727)
This release ships an experimental plugin system again! The new plugin system supports all operating systems and works perfectly correctly. See the documentation about how to use and create plugins.
- #568: Add new rule: terraform_dash_in_output_name (@osulli)
- #578: Bump github.com/fatih/color from 1.7.0 to 1.9.0
- #579 #597: Bump terraform to v0.12.20 (@chenrui333)
- #585: Introduce go-plugin based plugin system (@wata727)
- #601: Bump github.com/aws/aws-sdk-go from 1.26.8 to 1.28.9
- #605: Bump terraform-provider-aws to v2.46.0 from v2.43.0 (@wata727)
- #519: Set up cache and artifact action (@wata727)
- #573: Bump github.com/hashicorp/hcl/v2 from 2.0.0 to 2.3.0 in /tools
- #576: Bump github.com/google/go-cmp from 0.3.1 to 0.4.0
- #583: Bump golang to v1.13.6 for Docker image (@chenrui333)
- #594: Bump github.com/golang/mock from 1.3.1 to 1.4.0
- #603: Bump github.com/hashicorp/terraform-plugin-sdk from 1.4.1 to 1.6.0 in /tools
- #563: Add elasticache support for t3 family (@BrunoChauvet)
- #564: Bump github.com/aws/aws-sdk-go from 1.25.48 to 1.26.8
- #565: Bump terraform-provider-aws to v2.43.0 from v2.41.0 (@wata727)
- #545: Bump terraform to v0.12.18 (@chenrui333)
- #542: Fix the pre-commit hook (@Dunedan)
- #556: Remove legacy TF 0.11 fields from module records (@madddi)
- #526 #532: Bump terraform to v0.12.17 from v0.12.15 (@chenrui333)
- #537: Bump github.com/aws/aws-sdk-go from 1.25.31 to 1.25.48
- #541: Bump terraform-provider-aws to v2.41.0 from v2.36.0 (@wata727)
- #530: update the docker image name (@ozbillwang)
- #534: Bump the base image to v1.13.5 (@chenrui333)
- #535: Pin actions/checkout@v1 (@wata727)
This is the first release in the terraform-linters organization. This release includes an experimental plugin system. You can easily add custom rules using the Go plugin system. Please see here for the detail.
- #496: Check invalid rule names (@abitrolly)
- #500: Experimental plugin support (@wata727)
- #506 #514: Bump github.com/aws/aws-sdk-go from 1.25.4 to 1.25.31 (@chenrui333,@wata727)
- #506 #523: Bump terraform to v0.12.15 from v0.12.10 (@chenrui333,@wata727)
- #518: Add an optional checker for semver versions (@alexwlchan)
- #522: Bump terraform-provider-aws from v2.32.0 to v2.36.0 (@wata727)
- #517: When checking if a source is pinned, allow for Mercurial/Bitbucket (@alexwlchan)
- #488: Update base image to alpine v3.10 (@chenrui333)
- #503: add note about recursive check (@IslamAzab)
- #515: Rename import path (@wata727)
- #516: Run tests on GitHub Actions (@wata727)
- #520: oneliner linux should follow redirects when fetching latest release (@alexsn)
- #467: Bump github.com/mattn/go-colorable from 0.1.2 to 0.1.4
- #476: Bump github.com/hashicorp/aws-sdk-go-base from 0.3.0 to 0.4.0
- #482: TFLint is now compatible with Terraform v0.12.10
- See https://github.com/hashicorp/terraform/releases/tag/v0.12.10
- Support new built-in functions:
parseint
andcidrsubnets
- #484: Bump terraform-provider-aws from v2.30.0 to v2.32.0
- #471: Bump TFLint version in issue template (@abitrolly)
- #474: Switch to HCL 2.0 in the HCL repository (@explodingcamera)
- #487: Test tools in GitHub Actions
This release includes an experimental Language Server Procotol support. Using LSP makes it easy to integrate TFLint with your favorite editor. Currently, only diagnostics are provided.
- #454: Remove deprecated
ignore-rule
option--ignore-rule
CLI flag and config attribute are removed. Please use--disable-rule
, or define arule
block withenabled = false
in your TFLint config file.- Note that
--disable-rule
behaves differently than--ignore-rule
. Since--ignore-rule
is deprecated, it was overridden by the value defined in rule blocks, but--disable-rule
always takes precedence.
- #439: Experimental language server support
tflint --langserver
launches a Language Server which speaks LSP v3.14.0.
- #455: Add
--enable-rule
and--disable-rule
options - #456: Allow specifying multiple
--ignore-module
and--var-file
flags- You can use these flags multiple times. The previous style is still valid for backward compatibility.
- #459: rule: Add m5, r5, and z1d RDS instance families and m3 and r3 families will be previous generations
- #460: rule: Add m3 and r3 ElastiCache node types as previous generations
- #461: rule: Add m3, c3, g2, r3, and i2 EC2 instance families as previous generations
- #462: rule: Add aws-exec-read bucket ACL as a valid value
- #463: Bump terraform-provider-aws from v2.28.1 to v2.30.0
- Add g4dn instance family
- The limit of length for config rule name will be changed 128 characters from 64
- Add regexp validation for config rule name
- #449: docs: Add annotations page
- #450: Add issue templates
- #451: docs: Assume role is supported
- #457: Tweak log levels
- #458: Remove project package
- #445: TFLint is now compatible with Terraform v0.12.9
- #446: Bump terraform-provider-aws from v2.27.0 to v2.28.1
- No changes for rules
- #442: aws_s3_bucket_invalid_region_rule: Fix false positives
- #443: config: Fix panic when the expression includes invalid references
- #435: docs: Add Linix oneliner to download latest
tflint
(@abitrolly) - #437: docs: Fix typo in dash rule (@abitrolly)
- #429 #433: build: Upgrade to go 1.13 (@chenrui333)
- #431: build: Disable CGO in GoReleaser (@craigfurman)
This release includes major changes to the output format. In particular, third-party tool developers should be aware of changes to the JSON output format. Please see the "Breaking Changes" section for details.
- #396: Emit issues to the root module instead of each module
- Previously issues found inside a module were reported along with the line number for that module, but it now reports on root module arguments that caused issues with the module.
- #407: formatter: Multiple errors and context-rich pretty print
- The output format of default and JSON has been changed. See the pull request for details.
- #413: Remove
--quiet
option- This behavior is the default for new output formats.
- #395: config: Add support for
path.*
named values - #415: Add
--no-color
option - #421: Add mappings for new resources
- 44 rules have been added.
- #424: TFLint is now compatible with Terraform v0.12.8
- #426: Bump terraform-provider-aws from v2.25.0 to v2.27.0
aws_cur_report_definition_invalid_s3_region
rule now allowsap-east-1
as a valid value.aws_instance_invalid_type
,aws_launch_configuration_invalid_type
andaws_launch_template_invalid_instance_type
rules now allowi3en.metal
as a valid value.aws_ssm_parameter_invalid_tier
rule now allowsIntelligent-Tiering
as a valid value.
- #423: client: Add support for role assumption
- The
assume_role
block in theprovider
block is now taken into account.
- The
- #410: Automatically generate API-based rules
- #411: Add tools task to Makefile and clean up
- #412: docs: Tweak documentations
- #414: docs: Fix exit status
- #417: Refactoring tests
- #419: Bump github.com/spf13/afero from 1.2.1 to 1.2.2
- #428: Correct ineffassign (@gliptak)
- #406: Remove GoReleaser before hooks
- #404: Bump terraform-provider-aws from v2.24.0 to v2.25.0
- No changes for rules.
- #405: Bump terraform from v0.12.6 to v0.12.7
- New functions
regex
andregexall
are available. - See https://github.com/hashicorp/terraform/releases/tag/v0.12.7
- New functions
- #394: Remove image task from Makefile
- #397: Bump github.com/hashicorp/terraform from 0.12.6 to 0.12.7 in /tools
- #399: Release via GitHub Actions
- #401: Manually maintain updated SDK-based validation rules
- #393: Eval provider attributes
- There is a bug that returned an error when using a variable in the
provider
block attributes.
- There is a bug that returned an error when using a variable in the
- #361: Get an AWS session in the same way as Terraform
- It will take a region and access keys in the
provider
block written in configuration files into account. - Added support for ECS/CodeBuild task roles and EC2 roles.
- There are breaking changes to credential priorities. It affects under the following cases:
- If you have a region or access keys in the
provider
block, it prefers them over environment variables and shared credentials. - If there are environment variables and shared credentials, it prefers the environment variables. Previously, it prefers shared credentials.
- If you have a region or access keys in the
- It will take a region and access keys in the
- #378: Remove aws_instance_default_standard_volume rule
- #379: Remove aws_db_instance_readable_password rule
- #384: Add terraform_dash_in_resource_name rule (@kulinacs)
- This rule is disabled by default.
- #388: Bump terraform-provider-aws from v2.20.0 to v2.24.0
- Added
me-south-1
as a valid region inaws_route53_health_check_invalid_cloudwatch_alarm_region
rule andaws_route53_zone_association_invalid_vpc_region
rule. - Added
capacityOptimized
as a valid strategy inaws_spot_fleet_request_invalid_allocation_strategy
rule.
- Added
- #387: Bump github.com/google/go-cmp from 0.3.0 to 0.3.1
- #389: Add Terraform compatibility badge
- #390: Remove legacy module walkers
- #375: Update dependencies to Terraform 0.12.6 (@lawliet89)
- Resource
for-each
syntax doesn't report an error, but TFLint still ignoreeach.*
expressions. - See https://github.com/hashicorp/terraform/releases/tag/v0.12.6
- Resource
- #377: Bump terraform-provider-aws from v2.20.0 to v2.22.0
aws_secretsmanager_secret_invalid_policy
rule now allows up to 20480.aws_secretsmanager_secret_version_invalid_secret_string
rule now allows up to 10240.aws_ssm_maintenance_window_target_invalid_resource_type
rule now allowsRESOURCE_GROUP
as a valid type.
- #368: Update brew instructions (@arbourd)
- TFLint's formula is now hosted by
homebrew/core
🎉
- TFLint's formula is now hosted by
- #373: Bump github.com/hashicorp/terraform from 0.12.5 to 0.12.6 in /tools
- #360: Allow settings shared credentials file path
- Added
--aws-creds-file
in CLI flags - Added
shared_credentials_file
in config attributes
- Added
- #365: TFLint is now compatible with Terraform v0.12.5
- #367: TFLint is now compatible with Terraform AWS provider v2.20.0
- Updated
aws_cloudwatch_metric_alarm_invalid_comparison_operator
rule
- Updated
- #348: Update launch configuration instance types
- #350: Add terraform_documented_variables/outputs rules
- #356: Bump terraform-aws-provider from v2.16.0 to v2.18.0
- #355: Fix a false positive for
log-delivery-write
ACL
This release includes breaking changes due to the removal of some CLI flags and options. Please see the "Breaking Changes" section for details.
As a major improvement, added 700+ rules in this release. These rules are automatically generated from aws-sdk validations and can be used without deep checking. For example, you can check whether a resource name matches the regular expression, whether it satisfies length constraints, whether it is included in the list of valid values, etc. before running terraform plan
or terraform apply
.
- #310: Remove
--fast
option- It disables only
aws_instance_invalid_ami
when passed this flag. But the rule is already faster in v0.8.2. Therefore, this flag is not necessary.
- It disables only
- #311: Remove terraform_version option
terraform_version
option is no longer used.
- #313: Make non-zero exit status default if issues found
- Previously, it has return 0 as exit status even if an issue was found, but now it will return 2.
- If you would like to keep the previous behavior, you can use
--force
option.
- #329: Disable module inspection by default
- You no longer need to run
terraform init
just to runtflint
. - If you also want to check module calls, pass the
--module
option. In that case, you need to runterraform init
as before.
- You no longer need to run
- #340: Replace aws_cloudwatch_metric_alarm_invalid_init with auto-generated
- The output message has changed, but there has been no other change.
- #274: Auto generate rules from AWS API models
- These rules are based on Terraform AWS provider v2.16.0.
- #332, #336: TFLint is now compatible with Terraform v0.12.3
- #343: Update valid instance type list
- #341: Fix false negatives in the S3 invalid ACL rule
- #326: Set up CI with Azure Pipelines
- #337: Check mapping attribute types
- #339: Remove appveyor.yml
- #338: Mappings are checked based on Terraform v0.12.3 schema
- #345: Revise documentations
- #318: Added 3 checks for AWS Launch Configuration. (@krzyzakp)
aws_launch_configuration_invalid_iam_profile
aws_launch_configuration_invalid_image_id
aws_launch_configuration_invalid_type
- #321: Add
--var
options. - #322: Add new rule: aws_s3_bucket_invalid_acl. (@ineffyble)
- #324: TFLint is now compatible with Terraform v0.12.1.
- #320: Avoid InvalidAMIID errors.
- #319: Added pre-commit hooks. (@krzyzakp)
- #323: Bump github.com/aws/aws-sdk-go from 1.19.41 to 1.19.46
- #308: Make aws_instance_invalid_ami rule faster.
- The
--fast
option to disable this rule will be removed in v0.9.
- The
- #309: Accept a directory as an argument.
- #298: Revise docker image.
- #300: Bump github.com/mattn/go-colorable from 0.1.1 to 0.1.2.
- #301: Bump github.com/mitchellh/go-homedir from 1.0.0 to 1.1.0.
- #302: Bump github.com/aws/aws-sdk-go from 1.19.18 to 1.19.41.
- #303: Bump github.com/k0kubun/pp from 2.3.0+incompatible to 2.4.0+incompatible.
- #304: Bump github.com/hashicorp/go-version from 1.1.0 to 1.2.0.
- #305: Bump github.com/golang/mock from 1.2.0 to 1.3.1.
- #306: Bump github.com/google/go-cmp from 0.2.0 to 0.3.0.
- #307: Remove mock package.
- #277: Ignore annotation support.
tflint-ignore: rule_name
annotation is now availble. See README.md.
- #293: Fix false negatives when
aws_instance_default_standard_volume
rule checksdynamic
blocks. - #297: Fix panic when checking whether an expression is null.
- #292: Migrating to Go Modules.
This release includes major changes due to being dependent on Terraform v0.12 internal API. While we try to keep backward compatibility as much as possible, it does include some breaking changes.
We strongly recommend upgrading to Terraform v0.12 before trying TFLint v0.8. terraform 0.12upgrade
is helpful to upgrade your configuration files.
- Always return an error when failed to evaluate an expression.
- Until now, except for module arguments, even if an error occurred, it was ignored.
- Expressions including unsupported named values (such as
${module.foo}
) are not evaluated, so no error occurs.
- Drop support for
${terraform.env}
.- Previously
${terraform.env}
was a valid expression that returned the same as${terraform.workspace}
. - This is because Terraform v0.12 doesn't support
${terraform.env}
.
- Previously
- The file name of a module includes module ID instead of the source attribute.
- Up to now it was output like
github.com/terraform-linters/example-module/instance.tf
, but it will be changed likemodule_id/instance.tf
.
- Up to now it was output like
- Always parse all configuration files under the current directory.
- When passing a file name as an argument, TFLint only parsed that file so far, but it now parses all configuration files under the current directory.
- Also, file arguments are only used to filter the issues obtained. Therefore, you cannot pass files other than under the current directory.
- As a known issue, If file arguments are passed, module's issues are not reported. This will be improved by changing handling of module's issues in the future.
- These behaviors have been changed as it depends on Terraform's
configload
package. - In addition, modules are always loaded regardless of
ignore_module
.
- Raise an error when using invalid syntax as a Terraform configuration.
- For example, it didn't raise an error when using
resources
(notresource
) block because it is valid as HCL syntax in previous versions.
- For example, it didn't raise an error when using
- Remove
--debug
option.- Please use
TFLINT_LOG
environment variables instead.
- Please use
- Raise an error when a file passed by
--config
does not exist.- Previously the error was ignored and the default config was referenced.
- Remove duplicate resource rules.
- This is due to technical difficulty and user experience.
- HCL2 support
- Built-in Functions support
- Until now, if an expression includes function calls, it was ignored.
TF_DATA_DIR
andTF_WORKSPACE
environment variables are now available.- Until now, these variables are ignored.
- It is now possible to handle values doesn't have a default without raising errors.
- In the past, an error occurred when there was a reference to a variable that had no default value in an attribute of a module. See #205
- Terraform v0.11 module support
- Until now, it is failed to properly load a part of Terraform v0.11 module. See also #167
- Support for automatic loading
*.auto.tfvars
files.- Previously it was not loaded automatically.
- Improve expression checks
- Stop overwriting the config under the current directory by the config under the homedir.
- Fixed the problem that overwrites the config under the current directory by homedir config.
- Improve to check for
aws_db_instance_readable_password
.- Previously, false positive occurred when setting values files or environment variables, but this problem has been fixed.
- Make
transit_gateway_id
as a valid target onaws_route_specified_multiple_targets
- #276: Update aws_route_not_specified_target to handle transit_gateway_id. (@davewongillies)
- Add support for db.m5 series db types (#258)
- Update ec2-instances-info dependency (#257)
- Add "features" word to docs for people explicitly looking (#237)
- Update valid instance list (#226)
- Add new
rule
configuration syntax (#197)
- Recommend
rule
syntax instead ofignore_rules
in README (#200)
- Support terraform.workspace variable (#181)
- Accept glob and multiple input (#183)
- Fallback to config under the home directory (#186)
- Add new --quiet option (#190)
- Remove aws_instance_not_specified_iam_profile (#180)
- Handle color for Windows (#184)
- Fix interpolation checking (#189)
- Detect pinned sources using regular expressions (#194)
- Handle empty config file (#166)
- Support module path for v0.11.0 (#161)
- Ignore module initialization when settings
ignore_module
(#163)
- Use
cristim/ec2-instances-info
instead of hard-coded list (#159)
- Use
strings.Trim
instead ofstrings.Replace
(#158)
- Set Docker container default workdir to /data (#152)
- Add ca-certificates to Docker image for TLS requests to AWS (#155)
Re-release due to #151
There is no change in the code from v0.5.0
Minor version update. This release includes environment variable support.
Patch version update. This release includes Terraform v0.10.6 supports.
- Fix unclear error messages (#137)
Patch version update. This release includes a hotfix.
- Fix panic for integer variables interpolation (#131)
Patch version update. This release includes terraform meta information interpolation syntax support.
- Add AwsECSClusterDuplicateNameDetector (#128)
- Update deps (#130)
Minor version update. This release includes big core API changes.
- Overrides module (#118)
- Add document link and detector name on output (#122)
- Add Terraform version options (#123)
- Report
aws_instance_not_specified_iam_profile
only whenterraform_version
is less than 0.8.8 (#124)
- Provide abstract HCL access (#112)
- Fix override logic (#117)
- Fix some output messages and documentation (#125)
Patch version update. This release includes hotfix for module evaluation.
- DO NOT USE Evaluator 🙇 (#114)
Patch version update. This release includes new detectors and bugfix for module.
- Support F1 instances (#107)
- Interpolate module attributes (#105)
Patch version update. This release includes new detectors for aws_route
- Add AwsRouteInvalidRouteTableDetector (#90)
- Add AwsRouteNotSpecifiedTargetDetector (#91)
- Add AwsRouteSpecifiedMultipleTargetsDetector (#92)
- Add AwsRouteInvalidGatewayDetector (#93)
- Add AwsRouteInvalidEgressOnlyGatewayDetector (#94)
- Add AwsRouteInvalidNatGatewayDetector (#95)
- Add AwsRouteInvalidVpcPeeringConnectionDetector (#96)
- Add AwsRouteInvalidInstanceDetector (#97)
- Add AwsRouteInvalidNetworkInterfaceDetector (#98)
- Fix panic when security groups are on EC2-Classic (#89)
- Transfer from hakamadare/tflint to terraform-linters/tflint (#84)
Patch version update. This release includes support for shared credentials.
Patch version update. This release includes hotfix.
- Fix panic when parsing empty list (#78)
Patch version update. This release includes support for tfvars.
- Add Dockerfile (#59)
- Fix link (#60)
- Update help message (#61)
- Move cache from detector to awsclient (#62)
- Refactoring detector (#65)
- glide up (#68)
- Update go version (#69)
Minor version update. This release includes core enhancements for terraform state file.
- Add RDS readable password detector (#46)
- Add duplicate security group name detector (#49)
- Add duplicate ALB name detector (#52)
- Add duplicate ELB name detector (#54)
- Add duplicate DB Instance Identifier Detector (#55)
- Add duplicate ElastiCache Cluster ID detector (#56)
- r4.xlarge is valid type (#43)
Patch version update. This release includes new argument options.
- add db instance invalid type detector (#32)
- add rds previous type detector (#33)
- add invalid type detector for elasticache (#34)
- add previous type detector for elasticache (#35)
- Return error code when issue exists (#31)
- fix install version (#30)
- CLI Test By Interface (#36)
- Fix --error-with-issues description (#37)
- glide up (#38)
Minor version update. This release includes enhancements and several fixes
- add AWS Instance Invalid AMI deep detector (#7)
- add invalid key name deep detector (#11)
- add invalid subnet deep detector (#12)
- add invalid vpc security group deep detector (#13)
- add invalid security group detector for ELB (#16)
- add invalid subnet detector for ELB (#17)
- add invalid instance detector for ELB (#18)
- add invalid security group detector for ALB (#20)
- add invalid subnet detector for ALB (#21)
- add invalid security group detector for RDS (#22)
- add invalid DB subnet group detector for RDS (#23)
- add invalid parameter group detector for RDS (#24)
- add invalid option group detector for RDS (#25)
- add invalid parameter group detector for ElastiCache (#27)
- add invalid subnet group detector for ElastiCache (#28)
- add invalid security group detector for ElastiCache (#29)
- Support t2 and r4 types (#5)
- Improve ineffecient module detector method (#10)
- do not call API when target resources are not found (#15)
- support list type variables evaluation (#19)
- Fix panic deep detecting with module (#8)
- Fix
Fatalf
format in test (#3) - Remove Zero width space in README.md (#4)
- Fix typos (#6)
- documentation (#26)
Initial release
- Add Fundamental features
- Nothing
- Nothing
- Nothing