Terraform 社区提供商是否被视为第三方?

awo*_*ski 5 terraform

我正在准备Terraform Associate 认证考试。我在 Udemy 上进行了模拟考试,并得到了有关自动安装社区提供商的问题错误。然而,根据实际terraform行为,我质疑考试(或 Terraform 的文档)是否不正确。可能我的问题应该针对模拟考试的作者,但我想我应该将其发布在这里,以防澄清可能对其他人有帮助。

考试题目是:

对或错?terraform init无法自动下载社区提供程序。

我的答案是错误的,根据考试不正确,解释如下:

解释

任何人都可以开发和分发自己的 Terraform 提供程序。(有关提供程序开发的更多信息,请参阅编写自定义提供程序。)这些第三方提供程序必须手动安装,因为 terraform init 无法自动下载它们。

https://www.terraform.io/docs/configuration/providers.html#third-party-plugins

Terraform 的init文档证实了这一点(注意没有提及社区插件):

请注意,terraform init 无法自动下载非 HashiCorp 分发的提供程序。有关安装说明,请参阅下面的第三方插件

但是,如果您将社区提供商添加到您的配置中并运行terraform init社区插件,则会自动安装:

provider "auth0" {
  version = "> 0.8"
}
Run Code Online (Sandbox Code Playgroud)
$ terraform init

Initializing the backend...

Initializing provider plugins...
- Checking for available provider plugins...
- Downloading plugin for provider "auth0" (terraform-providers/auth0) 0.10.2...
...
Run Code Online (Sandbox Code Playgroud)

所以我只能假设基于实际的地形功能社区提供商不被视为第三方插件?

Mat*_*ard 4

文档和练习考试均基于过时的信息。以前,该答案和文档都是正确的,您被迫手动安装自定义提供程序。文档中描述的方法和过程是完全准确的。

然而,2020 年 1 月 15 日,Terraform 注册表进行了扩展,除了社区模块之外,还为社区提供商提供功能。Hashicorp 的官方公告可以在这里查看。现在您描述的方法(也适用于第三方模块)是有效的。您还可以查看提供者注册表,这使得这成为可能。请注意,Terraform Cloud 和 Terraform Enterprise 都还提供具有此功能的私有注册表。

更新说明:实际上,Terraform Cloud 的私有注册表目前仅限于模块,包括 VCS 连接的提供商。然而,TF CloudRegistry 界面暗示该功能最终将会推出。此外,社区提供商的支持正在通过 Terraform 0.13发行说明进一步扩展。

顺便说一句,我目前不相信任何第三方 Hashicorp 认证学习指南的完整性。该考试最近才退出测试版。我很难找到该公告(它要么在官方博客文章中,要么在合作伙伴电子邮件中),但那是在 2020 年 4 月中旬之后。当我获得 Terraform(2019 年 1 月下旬)和 Vault(2020 年 4 月上旬)认证时,两者都仍处于测试阶段,考试中有趣的现象就证明了这一点,例如一些问题被逐字重复。目前我最信任官方的 Hashicorp 学习指南。