来自 git 的地形模块

terraform modules from git

下面的示例将从 bitbucket TAG 下载 terraform 文件并部署 aws 资源。

module "S3-BUCKET" {
source      = "git::ssh://git@bitbucket-url:7999/project/s3-terraform-code.git?ref=tags/v1.0"
NAME        = "bucket-sample"
ENVIRONMENT = "prod"
}

问题: 我们是否也可以从 BRANCH 而不是从 bitbucket TAG 下载代码? 让我们说 staging 是分支的名称 可以用什么格式来替换这一行?

source      = "git::ssh://git@bitbucket-url:7999/project/s3-terraform-code.git?ref=tags/v1.0"

Based on the documentation,似乎将 ref 属性直接设置为分支名称应该有效:

source      = "git::ssh://git@bitbucket-url:7999/project/s3-terraform-code.git?ref=master"

此外,如果这是一个 public bitbucket 存储库,您可以使用不带前缀的源,例如:

source      = "bitbucket.org/project-name/s3-terraform-code.git?ref=master"

是的,如 docs 中所述,您应该能够执行以下操作以获得 staging 分支:

module "S3-BUCKET" {
source      = "git::ssh://git@bitbucket-url:7999/project/s3-terraform-code.git?ref=staging"
NAME        = "bucket-sample"
ENVIRONMENT = "prod"
}