1

我们在 git 中有多个 aws 模块,当我们在其他项目中使用模块时,我们指定 git 中模块的路径作为源,如下所示:

module "module_name" {
  source = "git::https://gitlab_domain_name.com/terraform/modules/aws/module_name.git?ref=v1.0.0"
  ...
}

我想知道使用 terraform 私有注册表来存储我们的模块是否有好处,例如在使用 Java 开发时,我们使用存储库来存储打包的 JAR,或者在使用 docker 映像时。

4

1 回答 1

2

是的,私有注册表有好处。也就是说,您可以在那里放置一些描述、文档、示例,并且您可以更好地直观地表示模块的功能、输入、输出和资源。

但除此之外,就模块的功能而言,它的行为方式相同。例如,Java 注册表(例如 nexus)是有意义的,因为您不想强迫每个人自己构建库(也许他们根本不能),因此有一个存储预构建库的地方确实有意义。该推理不适用于 terraform,因为没有编译任何内容。

自定义提供程序的情况完全不同,在这种情况下,您需要一个私有注册表来提供编译的 golang 二进制文件,但您可以自己编写一个而不需要太多努力(从 terraform 0.13 开始),它只是一个 http rest api。

于 2020-10-06T17:02:38.303 回答