升级到TFLint 0.40.0会导致现有代码出现错误

现象

有一天,在CI/CD管道中,使用TFLint进行Terraform静态分析时,突然在过去一直没有问题的现有代码部分出现了错误。

原因

在 TFLint 升级到 0.39.3 版本到 0.40.0 版本时,

    • terraform_required_version

 

    terraform_required_providers

默认情况下启用了的检查。

将会是一个Terraform脚本

 ├ backend
 ├ modules <- モジュールとして切り出し
 └ hoge <- 実行用ディレクトリ。modulesを読み込んで利用。

由于结构如上所述,version/provider的描述仅在hoge内部,因此对于modules中的代码,上述检查会导致错误。

解决方案 (jiě jué cè)

如果固定了版本,即使有bug修复或有用的修正也无法加入,所以不想这样做。通过添加以下描述并将相关检查内容禁用来解决该问题。

.tflint.hcl in simplified Chinese: “.tflint.hcl”

rule "terraform_required_version" {
  enabled = false
}

rule "terraform_required_providers" {
  enabled = false
}

印象

当模块化时,我觉得会遇到相同的现象。
我认为并不是不推荐使用Terraform进行模块化,但是这个变化有何意图呢?

广告
将在 10 秒后关闭
bannerAds