升级到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进行模块化,但是这个变化有何意图呢?