tflint
Set variable TERRAFORM_TFLINT_SECURED_ENV to false if you need tflint --init to be called with all ENV variables.
tflint documentation
- Version in MegaLinter: 0.46.1
- Visit Official Web Site
- See How to configure tflint rules- If custom .tflint.hclconfig file isn't found, .tflint.hcl will be used
 
- If custom 
- See How to disable tflint rules in files
- See Index of problems detected by tflint
Configuration in MegaLinter
- Enable tflint by adding TERRAFORM_TFLINTin ENABLE_LINTERS variable
- Disable tflint by adding TERRAFORM_TFLINTin DISABLE_LINTERS variable
| Variable | Description | Default value | 
|---|---|---|
| TERRAFORM_TFLINT_SECURED_ENV | Allows to send the full env to tflint --init. Initialized with default value true. Set tofalseto allowtflint --initto access your env vars. | True | 
| 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_CLI_LINT_MODE | Override default CLI lint mode - file: Calls the linter for each file- project: Call the linter from the root of the project | file | 
| TERRAFORM_TFLINT_FILE_EXTENSIONS | Allowed file extensions. "*"matches any extension,""matches empty extension. Empty list excludes all filesEx: [".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_PRE_COMMANDS | List of bash commands to run before the linter | None | 
| TERRAFORM_TFLINT_POST_COMMANDS | List of bash commands to run after the linter | None | 
| TERRAFORM_TFLINT_CONFIG_FILE | tflint configuration file nameUse LINTER_DEFAULTto let the linter find it | .tflint.hcl | 
| TERRAFORM_TFLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | 
| TERRAFORM_TFLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | false | 
| TERRAFORM_TFLINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | 0 | 
| TERRAFORM_TFLINT_CLI_EXECUTABLE | Override CLI executable | ['tflint'] | 
MegaLinter Flavours
This linter is available in the following flavours
| Flavor | Description | Embedded linters | Info | |
|---|---|---|---|---|
|  | all | Default MegaLinter Flavor | 113 | |
| cupcake | MegaLinter for the most commonly used languages | 81 | ||
| security | Optimized for security | 21 | ||
| terraform | Optimized for TERRAFORM based projects | 51 | 
Behind the scenes
How are identified applicable files
- File extensions: .tf
How the linting is performed
- tflint is called one time by identified file (fileCLI lint mode)
Example calls
tflint myfile.tf
tflint -c .tflint.hcl myfile.tf
Help content
Usage:
  tflint --chdir=DIR/--recursive [OPTIONS]
Application Options:
  -v, --version                                                 Print TFLint
                                                                version
      --init                                                    Install plugins
      --langserver                                              Start language
                                                                server
  -f, --format=[default|json|checkstyle|junit|compact|sarif]    Output format
  -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
      --enable-plugin=PLUGIN_NAME                               Enable plugins
                                                                from the
                                                                command line
      --var-file=FILE                                           Terraform
                                                                variable file
                                                                name
      --var='foo=bar'                                           Set a Terraform
                                                                variable
      --module                                                  Enable module
                                                                inspection
      --no-module                                               Disable module
                                                                inspection
      --chdir=DIR                                               Switch to a
                                                                different
                                                                working
                                                                directory
                                                                before
                                                                executing the
                                                                command
      --recursive                                               Run command in
                                                                each directory
                                                                recursively
      --filter=FILE                                             Filter issues
                                                                by file names
                                                                or globs
      --force                                                   Return zero
                                                                exit status
                                                                even if issues
                                                                found
      --minimum-failure-severity=[error|warning|notice]         Sets minimum
                                                                severity level
                                                                for exiting
                                                                with a non-zero
                                                                error code
      --color                                                   Enable
                                                                colorized output
      --no-color                                                Disable
                                                                colorized output
Help Options:
  -h, --help                                                    Show this help
                                                                message
Installation on mega-linter Docker image
- Dockerfile commands :
FROM ghcr.io/terraform-linters/tflint:v0.46.1 as tflint
COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/