繁体   English   中英

Terraform 提供商限制

[英]Terraform provider restrictions

我在尝试运行terraform init -upgrade时遇到问题:

╷
│ 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 >= 2.23.0, >= 2.46.0, >= 3.0.0, >=
│ 3.62.0, >= 3.69.0, ~> 3.69, >= 3.72.0, >= 4.0.0, >= 4.5.0, 4.5.0

我之前能够在我的主清单中使用 terraform 版本 3.74 运行类似的设置,但我升级了一些模块,据我所知,当前的最低版本是 4.5.0,所以我切换到那个。 我不确定当前的问题是否由

  ~> 3.69

来自我包含的模块之一,或者如果我遗漏了其他东西。

我当前的提供商配置如下:

terraform {
  required_version = ">= 1.0"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "4.5.0"
    }
  }
}

我发现一些模块使用 ~> 运算符作为它们的示例,例如:

./.terraform/modules/kubernetes_addon.velero_thanos_bucket/examples/notification/versions.tf:      version = "~> 3.69"
./.terraform/modules/kubernetes_addon.velero_thanos_bucket/examples/object/versions.tf:      version = "~> 3.69"
./.terraform/modules/s3_bucket_for_logs/examples/complete-legacy/versions.tf:      version = "~> 3.69.0"

我已经在使用这些模块的最新版本,并且当我之前在required_providers中执行版本 3.74 时它们一直在工作。

~>是一个非常严格的约束, =也是如此,正如您上面所要求的那样。

=(或无运算符):只允许一个确切的版本号。 不能与其他条件结合。

~>:只允许最右边的版本组件递增。 例如,要允许在特定次要版本中发布新补丁,请使用完整版本号:~> 1.0.4 将允许安装 1.0.5 和 1.0.10,但不允许安装 1.1.0。 这通常称为悲观约束算子。

有些东西不能既正好是 4.5.0 又大于 3.69 但小于 4.0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM