Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugin is not compatible with newer versions of TFLint #149

Open
dougireton opened this issue Apr 7, 2022 · 2 comments
Open

Plugin is not compatible with newer versions of TFLint #149

dougireton opened this issue Apr 7, 2022 · 2 comments
Labels
bug Something isn't working

Comments

@dougireton
Copy link

dougireton commented Apr 7, 2022

What were you trying to accomplish?

Running tflint with the serverless-rules installed

Expected Behavior

TFLint works with this plugin

Current Behavior

Failed to initialize plugins; Incompatible API version with plugin "aws-serverless". Plugin version: 9, TFLint versions: [10]

Possible Solution

Steps to Reproduce (for bugs)

  1. Install newest version of tflint 0.35.0
  2. Add plugin "aws-serverless" to your .tflint.hcl file.
  3. Run tflint in a Terraform repo

Environment

MacOS

  • Infrastructure as code technology used:

TFLint version 0.35.0

.tflint.hcl file

config {
  module = true
}

plugin "aws" {
  enabled = true
  version = "0.13.2"
  source  = "github.com/terraform-linters/tflint-ruleset-aws"
}

plugin "aws-serverless" {
  enabled = true
  version = "0.3.2"
  source = "github.com/awslabs/serverless-rules"
}
  • Debugging logs
❯ tflint --loglevel=debug
17:17:02 config.go:110: [INFO] Load config: .tflint.hcl
17:17:02 config.go:365: [DEBUG] Config loaded
17:17:02 config.go:366: [DEBUG]   Module: true
17:17:02 config.go:367: [DEBUG]   Force: false
17:17:02 config.go:368: [DEBUG]   IgnoreModules: map[string]bool{}
17:17:02 config.go:369: [DEBUG]   Varfiles: []string{}
17:17:02 config.go:370: [DEBUG]   Variables: []string{}
17:17:02 config.go:371: [DEBUG]   DisabledByDefault: false
17:17:02 config.go:372: [DEBUG]   PluginDir:
17:17:02 config.go:373: [DEBUG]   Rules: map[string]*tflint.RuleConfig{}
17:17:02 config.go:374: [DEBUG]   Plugins: map[string]*tflint.PluginConfig{"aws":(*tflint.PluginConfig)(0xc000181500), "aws-serverless":(*tflint.PluginConfig)(0xc000181580)}
17:17:02 option.go:49: [DEBUG] CLI Options
17:17:02 option.go:50: [DEBUG]   Module: false
17:17:02 option.go:51: [DEBUG]   Force: false
17:17:02 option.go:52: [DEBUG]   IgnoreModules: map[string]bool{}
17:17:02 option.go:53: [DEBUG]   EnableRules: []string(nil)
17:17:02 option.go:54: [DEBUG]   DisableRules: []string(nil)
17:17:02 option.go:55: [DEBUG]   Only: []string(nil)
17:17:02 option.go:56: [DEBUG]   EnablePlugins: []string(nil)
17:17:02 option.go:57: [DEBUG]   Varfiles: []string{}
17:17:02 option.go:58: [DEBUG]   Variables: []string{}
17:17:02 loader.go:57: [INFO] Initialize new loader
17:17:02 loader.go:68: [INFO] Module manifest file found. Initializing...
17:17:02 loader.go:291: [DEBUG] Parsing the module manifest file: {"Modules":[{"Key":"","Source":"","Dir":"."},{"Key":"vpn_instance","Source":"registry.terraform.io/terraform-aws-modules/ec2-instance/aws","Version":"3.5.0","Dir":".terraform/modules/vpn_instance"}]}
17:17:02 loader.go:82: [INFO] Load configurations under .
17:17:02 loader.go:97: [INFO] Module inspection is enabled. Building a root module with children...
17:17:02 loader.go:273: [DEBUG] Trying to load the module: key=module.vpn_instance, version=3.5.0, dir=.terraform/modules/vpn_instance
17:17:02 loader.go:170: [INFO] Load values files
17:17:02 runner.go:58: [INFO] Initialize new runner for root
17:17:02 terraform.go:79: [INFO] environment file found: network-infrastructure-staging
17:17:02 runner.go:223: [DEBUG] `vpc_security_group_ids` has been marked as unknown
17:17:02 runner.go:223: [DEBUG] `ami` has been marked as unknown
17:17:02 runner.go:223: [DEBUG] `subnet_id` has been marked as unknown
17:17:02 runner.go:223: [DEBUG] `iam_instance_profile` has been marked as unknown
17:17:02 runner.go:223: [DEBUG] `user_data` has been marked as unknown
17:17:02 runner.go:223: [DEBUG] `volume_tags` has been marked as unknown
17:17:02 runner.go:58: [INFO] Initialize new runner for module.vpn_instance
17:17:02 terraform.go:79: [INFO] environment file found: network-infrastructure-staging
17:17:02 runner_eval.go:40: [INFO] unevaluable expression found in .terraform/modules/vpn_instance/main.tf:8. TFLint ignores unevaluable expressions.
17:17:02 runner_eval.go:40: [INFO] unevaluable expression found in .terraform/modules/vpn_instance/main.tf:141. TFLint ignores unevaluable expressions.
17:17:02 discovery.go:79: [DEBUG] Find plugin path: /Users/doug/.tflint.d/plugins/github.com/terraform-linters/tflint-ruleset-aws/0.13.2/tflint-ruleset-aws
17:17:02 discovery.go:43: [INFO] Plugin `aws` found
17:17:02 discovery.go:79: [DEBUG] Find plugin path: /Users/doug/.tflint.d/plugins/github.com/awslabs/serverless-rules/0.3.2/tflint-ruleset-aws-serverless
17:17:02 discovery.go:43: [INFO] Plugin `aws-serverless` found

Failed to initialize plugins; Incompatible API version with plugin "aws-serverless". Plugin version: 9, TFLint versions: [10]
@dougireton dougireton added the bug Something isn't working label Apr 7, 2022
@nmoutschen
Copy link
Contributor

Hey Doug!

Thanks a lot for creating this issue!

Just to give you an update, TFLint made some major changes to their plugin APIs, which will require some significant rewrite for all of the rules on this project, so it might take a few weeks to rewrite those using the new API version.

@jameshalsall
Copy link

Any progress update on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants