【问题标题】:How does Terraform (v0.13) fetch the newest version of a (third-party) provider binary?Terraform (v0.13) 如何获取(第三方)提供程序二进制文件的最新版本?
【发布时间】:2020-08-21 23:35:42
【问题描述】:

使用最新的 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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-01-22
      • 2023-03-23
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 2021-04-19
      相关资源
      最近更新 更多