Skip to content

tflint

tflint documentation

tflint - GitHub

Configuration in Mega-Linter

Variable Description Default value
TERRAFORM_TFLINT_ARGUMENTS User custom arguments to add in linter CLI call
Ex: -s --foo "bar"
TERRAFORM_TFLINT_FILTER_REGEX_INCLUDE Custom regex including filter
Ex: (src|lib)
Include every file
TERRAFORM_TFLINT_FILTER_REGEX_EXCLUDE Custom regex excluding filter
Ex: (test|examples)
Exclude no file
TERRAFORM_TFLINT_FILE_EXTENSIONS Allowed file extensions. "*" matches any extension, "" matches empty extension. Empty list excludes all files
Ex: [".py", ""]
[".tf"]
TERRAFORM_TFLINT_FILE_NAMES_REGEX File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: ["Dockerfile(-.+)?", "Jenkinsfile"]
Include every file
TERRAFORM_TFLINT_CONFIG_FILE tflint configuration file name
Use LINTER_DEFAULT to let the linter find it
.tflint.hcl
TERRAFORM_TFLINT_RULES_PATH Path where to find linter configuration file Workspace folder, then Mega-Linter default rules
TERRAFORM_TFLINT_DISABLE_ERRORS Run linter but consider errors as warnings false

Mega-Linter Flavours

This linter is available in the following flavours

Flavor Description Embedded linters Info
all Default Mega-Linter Flavor 83 Docker Image Size (tag) Docker Pulls
terraform Optimized for TERRAFORM based projects 39 Docker Image Size (tag) Docker Pulls

Behind the scenes

How are identified applicable files

  • File extensions: .tf

Example calls

tflint myfile.tf
tflint -c .tflint.hcl myfile.tf

Help content

Usage:
  tflint [OPTIONS] [FILE or DIR...]

Application Options:
  -v, --version                                   Print TFLint version
      --langserver                                Start language server
  -f, --format=[default|json|checkstyle|junit]    Output format (default:
                                                  default)
  -c, --config=FILE                               Config file name (default:
                                                  .tflint.hcl)
      --ignore-module=SOURCE                      Ignore module sources
      --enable-rule=RULE_NAME                     Enable rules from the command
                                                  line
      --disable-rule=RULE_NAME                    Disable rules from the
                                                  command line
      --only=RULE_NAME                            Enable only this rule,
                                                  disabling all other defaults.
                                                  Can be specified multiple
                                                  times
      --var-file=FILE                             Terraform variable file name
      --var='foo=bar'                             Set a Terraform variable
      --module                                    Inspect modules
      --force                                     Return zero exit status even
                                                  if issues found
      --no-color                                  Disable colorized output
      --loglevel=[trace|debug|info|warn|error]    Change the loglevel (default:
                                                  none)

Help Options:
  -h, --help                                      Show this help message

Installation on mega-linter Docker image

  • Dockerfile commands :
FROM wata727/tflint:latest as tflint
COPY --from=tflint /usr/local/bin/tflint /usr/bin/

Example success log

Results of tflint linter (version 0.21.0)
See documentation on https://nvuillam.github.io/mega-linter/descriptors/terraform_tflint/
-----------------------------------------------

[SUCCESS] .automation/test/terraform/good/terraform_good_1.tf


Example error log

Results of tflint linter (version 0.21.0)
See documentation on https://nvuillam.github.io/mega-linter/descriptors/terraform_tflint/
-----------------------------------------------

[ERROR] .automation/test/terraform/bad/terraform_bad_1.tf
    Failed to load configurations. 1 error(s) occurred:

    Error: Invalid expression

      on .automation/test/terraform/bad/terraform_bad_1.tf line 3, in resource "aws_instance" "bad":
       3:   instance_type =            # invalid type!
       4: }

    Expected the start of an expression, but found an invalid expression token.