Skip to content

Releases: terraform-linters/tflint

v0.10.1

21 Aug 05:50
Compare
Choose a tag to compare

0.10.1 (2019-08-21)

GPG key ID: 8CE69160EB3F2FE9

BugFixes

  • #393: Eval provider attributes
    • There is a bug that returned an error when using a variable in the provider block attributes.

v0.10.0

17 Aug 13:19
Compare
Choose a tag to compare

0.10.0 (2019-08-17)

GPG key ID: 8CE69160EB3F2FE9

Breaking Changes

  • #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.

Changes

  • #378: Remove aws_instance_default_standard_volume rule
  • #379: Remove aws_db_instance_readable_password rule

Enhancements

  • #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 in aws_route53_health_check_invalid_cloudwatch_alarm_region rule and aws_route53_zone_association_invalid_vpc_region rule.
    • Added capacityOptimized as a valid strategy in aws_spot_fleet_request_invalid_allocation_strategy rule.

Chores

  • #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

v0.9.3

02 Aug 14:38
Compare
Choose a tag to compare

0.9.3 (2019-08-02)

GPG key ID: 8CE69160EB3F2FE9

Enhancements

  • #375: Update dependencies to Terraform 0.12.6 (@lawliet89)
  • #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 allows RESOURCE_GROUP as a valid type.

Chores

  • #368: Update brew instructions (@arbourd)
    • TFLint's formula is now hosted by homebrew/core 🎉
  • #373: Bump github.com/hashicorp/terraform from 0.12.5 to 0.12.6 in /tools

v0.9.2

20 Jul 06:52
Compare
Choose a tag to compare

0.9.2 (2019-07-20)

GPG key ID: 8CE69160EB3F2FE9

Enhancements

v0.9.1

08 Jul 16:49
Compare
Choose a tag to compare

0.9.1 (2019-07-09)

GPG key ID: 8CE69160EB3F2FE9

Enhancements

  • #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

BugFixes

  • #355: Fix a false positive for log-delivery-write ACL

Chores

  • #346: Docs: Limitations -> Compatibility with Terraform
  • #347: Fix rule generator

v0.9.0

28 Jun 17:31
Compare
Choose a tag to compare

0.9.0 (2019-06-29)

GPG key ID: 8CE69160EB3F2FE9

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.

Breaking Changes

  • #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.
  • #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 run tflint.
    • If you also want to check module calls, pass the --module option. In that case, you need to run terraform init as before.

Changes

  • #340: Replace aws_cloudwatch_metric_alarm_invalid_init with auto-generated
    • The output message has changed, but there has been no other change.

Enhancements

BugFixes

  • #341: Fix false negatives in the S3 invalid ACL rule

Chores

  • #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

v0.8.3

09 Jun 10:06
Compare
Choose a tag to compare

0.8.3 (2019-06-09)

GPG key ID: 8CE69160EB3F2FE9

Enhancements

BugFixes

  • #320: Avoid InvalidAMIID errors.

Others

  • #319: Added pre-commit hooks. (@krzyzakp)
  • #323: Bump github.com/aws/aws-sdk-go from 1.19.41 to 1.19.46

v0.8.2

02 Jun 15:22
Compare
Choose a tag to compare

0.8.2 (2019-06-03)

GPG key ID: 8CE69160EB3F2FE9

Enhancements

  • #308: Make aws_instance_invalid_ami rule faster.
    • The --fast option to disable this rule will be removed in v0.9.
  • #309: Accept a directory as an argument.

Others

  • #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.

v0.8.1

29 May 16:45
Compare
Choose a tag to compare

0.8.1 (2019-05-30)

GPG key ID: 8CE69160EB3F2FE9

Enhancements

  • #277: Ignore annotation support.
    • tflint-ignore: rule_name annotation is now availble. See README.md.

BugFixes

  • #293: Fix false negatives when aws_instance_default_standard_volume rule checks dynamic blocks.
  • #297: Fix panic when checking whether an expression is null.

Others

  • #292: Migrating to Go Modules.

v0.8.0

25 May 14:52
Compare
Choose a tag to compare

0.8.0 (2019-05-25)

GPG key ID: 8CE69160EB3F2FE9

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.

Breaking Changes

  • 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}.
  • The file name of a module includes module ID instead of the source attribute.
    • Up to now it was output like github.com/wata727/example-module/instance.tf, but it will be changed like module_id/instance.tf.
  • 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(not resource) block because it is valid as HCL syntax in previous versions.
  • Remove --debug option.
    • Please use TFLINT_LOG environment variables instead.
  • 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.

Enhancements

  • HCL2 support
  • Built-in Functions support
    • Until now, if an expression includes function calls, it was ignored.
  • TF_DATA_DIR and TF_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.

BugFixes

  • Improve expression checks
    • Since it used to be checked by a regular expression, there were many bugs, but it was greatly improved by using the terraform/lang package. See #204 #160
  • 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 on aws_route_specified_multiple_targets

Project Changes

  • Change license: MIT -> MPL 2.0
  • Update documentations