Terraform(v0.13)如何获取(第三方)提供程序二进制文件的最新版本?

时间:2020-08-18 08:26:19

标签: terraform

使用最新的Terraform版本v0.13,我试图了解如何为第三方Terraform提供程序设置提供程序注册表。

采取以下terraform配置块:

terraform {
  required_providers {
    happy_cloud = {
      source = "registry.example.com/acme/happy_cloud"
    }
  }
}

registry.example.com获取信息时,Terraform如何知道acme/happy_cloud提供程序二进制文件的最新可用版本? (例如v1.2.3)

1 个答案:

答案 0 :(得分:3)

Terraform通过扮演the provider registry protocol的客户端角色来查找指定的提供程序。

给出源地址registry.example.com/acme/happy_cloud,Terraform将:

  • 在主机名registry.example.com上执行service discovery,以查找其提供程序注册表基本URL(如果有的话)。
  • acme/happy_cloud/versions的身份调用List Available Versions操作,以了解该提供程序可用的版本。
  • 使用the Semantic Versioning precedence rules选择与给定版本约束(在您的情况下为空,因此不受约束)匹配的最新版本。在此示例中,假设v1.2.3是最新版本。
  • acme/happy_cloud/1.2.3/download/linux/amd64(或取决于您当前平台的其他OS / arch)调用Find a Provider package操作,以获取针对该目标平台构建的该版本的软件包位置和签名密钥。
  • 最后,下载并验证指示的软件包文件。