<p>tfenv 不从 conf.tf 读取 required_version</p>

创建于 2019-07-22  ·  6评论  ·  资料来源: tfutils/tfenv

问题

我在conf.tf文件中声明了以下内容:

terraform {
  required_version = "0.12.5"

  backend "s3" {
    bucket   = "somebucket"
    region   = "eu-central-1"
    role_arn = "somerole"
  }
}

当我运行terraform --version ,tfenv 不会读取列出的版本,而是读取/usr/local/Cellar/tfenv/1.0.1/version设置的版本

预期行为

我希望 tfenv 解析required_version的 conf.tf 文件以使用正确的版本。
如果支持与否,我的文档有点不清楚(https://github.com/tfutils/tfenv#min-required)

documentation enhancement

最有用的评论

我认为该文档可能有点误导: https :

// this will detect 0.12.3
terraform {
  required_version  = "<0.12.3, >= 0.10.0"
}

所有6条评论

这不是预期的用例。 tfenv 不评估 terraform 版本声明。 使用的 terraform 核心版本由.terraform-version文件维护。 您是否在 required_version 声明中设置限制以确保您的代码在由不兼容的版本评估时不会执行取决于您。

我认为该文档可能有点误导: https :

// this will detect 0.12.3
terraform {
  required_version  = "<0.12.3, >= 0.10.0"
}

@Zordrak虽然不是有意的,但您愿意接受 PR 吗?

我认为应该很容易与 #118 联系起来(一旦我最终完成了我的 PR - 我需要先完成我在eslint-plugin-jest :joy:)。

至少,这可用于生成.terraform-version文件(并保持更新)。

我很高兴维护和支持这些新功能。

在这里和 #118 中,有关于 PR 贡献的建议。 你还打算吗? 之前我说这不是用例时我错了,因为我完全忘记了其他人贡献的最低要求的工作。

如果您认为可以安全地改进它,欢迎您提供它(以及相关的测试用例)。

否则,这个和#118 可能应该暂时关闭。

@Zordrak我假设你指的是我 :)

我确实打开了 #122 作为 #118 的初始实现,但由于一年多来没有得到任何人的关注而将其关闭。

如果您愿意查看 PR,我不介意将其备份并查看我是否可以改进当前的逻辑,但这可能需要一些时间。

文档建议使用裸版本,例如:

required_version = "0.12.5"

被解析为意味着所需的最低版本是0.12.5 。 (编辑:我测试过 - 如果.terraform-version和 env var 不存在,则会出现tfenv version-name错误。)

如果作为解析> / < ,如果没有它们(或= )将被视为与0.12.5相同的方式,那将是很棒的 IMO .terraform-version文件中指定的。 这是terraform 自己的行为- "0.12.5"表示0.12.5 _only_,因此如果有可用的版本>0.12.5 ,将其作为最低限度将不起作用。

此页面是否有帮助?
0 / 5 - 0 等级