如何使 terraform 的版本与亚特兰蒂斯不可变?

How to make terraform's version immutable with atlantis?

我使用 Atlantis 来 运行 Terraform 的任务。

在 terraform 文件中,我将 AWS 提供商设置为此版本:

terraform {
  required_version = "0.13.5"

  required_providers {
    aws = "3.13.0"
  }
}

这是多个任务之一。其他任务如

terraform {
  required_version = "0.14.9"

  required_providers {
    aws = "3.35.0"
  }
}

Atlantis 的工作流程设置为

dir: myproj/dev workspace: default

几天后,Atlantis 服务器检查新任务导致版本问题 运行 terraform init:

Initializing provider plugins...
- Finding hashicorp/aws versions matching "3.13.0, >= 2.68.*, >= 2.42.*, >= 3.28.*, >= 2.68.*, >= 2.49.*, >= 2.49.*"...
- Finding hashicorp/random versions matching "3.1.0, >= 3.1.*, >= 2.2.*"...
- Using hashicorp/random v3.1.0 from the shared cache directory

Error: Failed to query available provider packages

Could not retrieve the list of available versions for provider hashicorp/aws:
no available releases match the given constraints 3.13.0, >= 2.68.*, >= 2.42.*, >= 3.28.*, >= 2.68.*, >= 2.49.*, >= 2.49.*

我是否应该始终手动更新 aws 模块的新版本? 3.13.0版本不升级到最新有什么办法吗?

您应该在 atlantis.yaml

中配置 terraform 版本

示例:

version: 3
projects:
  - name: my-project-1
    dir: ./my-project-1
    terraform_version: "0.13.5"
  - name: my-project-2
    dir: ./my-project-2
    terraform_version: "0.14.9"