【发布时间】:2020-08-26 02:36:17
【问题描述】:
我在私有 gitlab 存储库中创建了一个 terraform 模块。 另一个 repo 中的 terraform 资源需要使用这个模块。
module "my_module" {
source = "git::https://gitlab.example.com/my-repo.git"
}
这在本地工作,但不在我们的 CI 管道中,因为它需要用户名和密码。所以我生成了一对并尝试了这个:
module "email_sns" {
source = "git::https://${var.username}:${var.password}@gitlab.example.com/my-repo.git"
}
这不起作用,因为 terraform 不允许在 source 中使用变量。
剩下的唯一选择是,afaik 是使用 git credential helper 并为其添加用户名和密码。
但是store 助手将它们存储为纯文本。我不想要这个。
我可以看到有一个使用 cache 作为助手的选项,但是如何将用户名和密码存储在 CI 中?
或者有没有其他方法可以解决这个问题?
【问题讨论】:
-
您确实需要在管道中而不是在 TF 配置中处理此问题。至于纯文本问题,有多种秘密管理解决方案可用于避免该问题。