从具有不同分支的 BitBucket 存储库中的子目录源 Terraform 模块

Source Terraform Module From Sub-Directories In a BitBucket Repository With A different branch

提问人:Hemant Kumar 提问时间:3/24/2021 最后编辑:Hemant Kumar 更新时间:3/27/2023 访问量:657

问:

我有一个 terraform 模块存储库,其中包含具有以下结构的不同模块集

BitBucket Repository(URL: [email protected]:/{repoName}.git?ref=develop
└── modules
    ├── s3
    │   ├── locals.tf
    │   ├── main.tf
    │   ├── output.tf
    │   └── variables.tf
    └── tfstate
        └── main.tf

develop 是我想使用的分支,我在源 URL 中给出了它。我正在调用模块存储库,如下所示:

├── examples
│   ├── gce-nextgen-dev.tfvars
│   └── main.tf

main.tf

module "name" {
  source = "[email protected]:{url}/terraform-modules.git? ref=develop/"
  bucketName = "terraformbucket"
  environment = "dev"
  tags = map("ExtraTag", "ExtraTagValue")
}

如何从 BitBucket 存储库中的子目录调用模块。 如果我从 URL 中删除 ref=develop 并只给出 [email protected]:{url}/terraform-modules.git//modules//s3,它就会起作用 但是在这种情况下,我不想使用master而是开发分支。

terraform bitbucket terraform-provider-aws

评论

0赞 Matthew Schuchard 3/25/2021
您的错误是因为前面的空格拼写错误吗?ref
0赞 Hemant Kumar 3/25/2021
不,这并不是因为这个事实,我在这里输入时犯了一个错误。暂时忽略该空间。我给出的参考是“?ref=develop//modules//s3”

答:

0赞 kabal 3/27/2023 #1

我还有一个包含多个模块的 Bitbucket 存储库。

这就是我引用特定标签的方式,我假设分支的标签是相同的(假设您使用的是公钥)

module "ecs_cluster" {
  source               = "[email protected]:[ORG_NAME]/terraform-modules.git/1.0.0//ecs/cluster"
  resource_name_prefix = local.resource_name_prefix
  vpc_id               = module.networking.vpc_id
}

如果您的存储库是公共的,并且您想要使用 ,那么您可以执行以下操作https

module "ecs_cluster" {
  source               = "git::https://bitbucket.org/[ORG_NAME]/terraform-modules/src/1.0.0//ecs/cluster"
  resource_name_prefix = local.resource_name_prefix
  vpc_id               = module.networking.vpc_id
}