Gitlab 基础设施注册表对于 terraform 模块的优势

问题描述 投票:0回答:1

我很难理解 Gitlab 基础设施注册表发布 terraform 模块与仅引用 git 存储库相反的优势。使用上的差异

参考存储库:

.gitlab-ci.yml:

before_script:
  - git config --global url."https://oauth2:${GITLAB_ACCESS_TOKEN}@gitlab.com/".insteadOf "https://gitlab.com"

地形:

module "module_test" {
  source = "git::https://gitlab.com/terraform-modules/local_file?ref=v0.1.0"
}

使用基础设施注册表

.gitlab-ci.yml

variables:
  TF_CLI_CONFIG_FILE: $CI_PROJECT_DIR/.terraformrc

before_script:
  - echo -e "credentials \"$CI_SERVER_HOST\" {\n  token = \"$CI_JOB_TOKEN\"\n}" > $TF_CLI_CONFIG_FILE

地形:

module "my_module_name" {
  source = "gitlab.com/terraform-modules/local_file/local"
  version = "0.1.0"
}

那么为什么要费心在基础设施注册表中创建模块呢?我错过了什么?

gitlab terraform
1个回答
0
投票
  • 模块注册表是分发 Terraform 模块以在多个配置中使用的本机方式,使用完全支持模块版本控制的 Terraform 特定协议Gitlab 遵循 Terraform 的模块注册表协议

  • 注册表模块支持版本控制。您可以提供如上面示例所示的特定版本,或使用灵活的版本约束。您可以使用版本,例如在你的版本中.tf

  • 您可以在一个 Terraform 模块注册表中拥有多个模块

  • 通过Registry,您可以指定模块之间的依赖关系。这可确保对一个模块的更改会触发相关模块中的适当更新,从而降低配置漂移的风险。

  • 服务发现。模块注册表必须实现的各种操作。

    • 列出特定模块的可用版本
    • 下载特定模块版本的源代码
© www.soinside.com 2019 - 2024. All rights reserved.