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

Terraform(v0.13)如何获取(第三方)提供程序二进制文件的最新版本?,terraform,Terraform,在最新的Terraform版本v0.13中,我试图了解如何为第三方Terraform提供者建立提供者注册中心 采取以下terraform配置块: terraform { required_providers { happy_cloud = { source = "registry.example.com/acme/happy_cloud" } } } 从registry.example.com获取,Terraform如何知道acme/ha

在最新的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)

Terraform通过扮演的客户端角色查找指定的提供者

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

  • 在hostname
    registry.example.com
    上执行,以查找其提供程序注册表基URL(如果有)
  • 将该操作调用为
    acme/happy_cloud/versions
    ,以了解该提供商可以使用哪些版本
  • 使用选择与给定版本约束匹配的最新版本(在本例中为空,因此不受约束)。在本例中,我们假设v1.2.3是最新版本
  • 将操作调用为
    acme/happy_cloud/1.2.3/download/linux/amd64
    (或根据当前平台的不同操作系统/arch),以获取为该目标平台构建的版本的软件包位置和签名密钥
  • 最后,下载并验证指定的包文件

Terraform通过扮演的客户端角色查找指定的提供者

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

  • 在hostname
    registry.example.com
    上执行,以查找其提供程序注册表基URL(如果有)
  • 将该操作调用为
    acme/happy_cloud/versions
    ,以了解该提供商可以使用哪些版本
  • 使用选择与给定版本约束匹配的最新版本(在本例中为空,因此不受约束)。在本例中,我们假设v1.2.3是最新版本
  • 将操作调用为
    acme/happy_cloud/1.2.3/download/linux/amd64
    (或根据当前平台的不同操作系统/arch),以获取为该目标平台构建的版本的软件包位置和签名密钥
  • 最后,下载并验证指定的包文件