【问题标题】:Terragrunt download module from specific branch来自特定分支的 Terragrunt 下载模块
【发布时间】:2020-11-03 11:25:35
【问题描述】:

我最近开始使用 terragrunt 并且一直想知道是否可以从特定分支而不是特定标签(或除了标签之外)而不是默认的 master 下载模块

从master下载特定标签:

terraform {
  source = "git@github.com:<repo>/infrastructure-modules.git//gcp/bucket?ref=v.0.0.1"
}

从 repo 下载特定的分支?

# Pseudo code
terraform {
  source = "git@github.com:<repo>/infrastructure-modules.git//gcp/bucket?ref=v.0.0.1%branch=test"
}

【问题讨论】:

  • ref=&lt;mybranch&gt; 工作了吗?
  • 不,看起来标签在存储库范围内工作,所以我只是在分支上进行了更改,git add,git commit,git tag -a 'v1.branch',git push --follow-tags -你起源 ,我可以标签引用分支不是 master
  • 好的,很高兴知道。我已经相应地编辑了答案,并包含了您的评论以获得更多可见性。

标签: git terraform terragrunt


【解决方案1】:

我可以使用以下方法指定一个分支:

terraform {
  source = "git@github.com:<repo>/infrastructure-modules.git//gcp/bucket?ref=branch-name"
}

【讨论】:

  • 有趣:有支持这种语法的文档吗?
  • 这里解释清楚了link ref 参数的值可以是git checkout 命令接受的任何引用,包括分支和标签名称。
【解决方案2】:

查看 terragrunt cli/download_source_test.go 源代码,没有明显的方法来指定分支。

这意味着您需要向该分支添加一个标签,并将该标签用作ref
话虽如此,请先检查ref=&lt;mybranch&gt; 是否有效。

但是,OP potatopotato 确认 in the comments 直接引用分支名称不起作用。

我刚刚对分支进行了更改,并且:

git add
 git commit
 git tag -a 'v1.branch'
 git push --follow-tags -u origin <branch_name>

我可以使用分支的标签引用,而不是master

German Dautinanswer 指向Terraform / Module Sources / Selecting a Revision

默认情况下,Terraform 将克隆并使用所选存储库中的默认分支(由 HEAD 引用)。您可以使用 ref 参数覆盖它:

module "vpc" {
  source = "git::https://example.com/vpc.git?ref=v1.2.0"
}

ref 参数的值可以是 git checkout 命令接受的任何引用,包括分支和标签名称。

所以使用分支名称是可能的。

【讨论】:

    猜你喜欢
    • 2021-11-18
    • 1970-01-01
    • 2021-02-04
    • 2023-04-03
    • 2013-04-30
    • 2016-03-29
    • 1970-01-01
    • 2012-07-04
    相关资源
    最近更新 更多