15
votes

Using Terraform modules with a git branch as a source,
I am referring to:

git::ssh://private_server:myport/kbf/my_repository.git//ecs-cluster?ref=v0.0.1

In my module source parameter, this works great and provides me with my module at tag v0.0.1 on master.

However I'd like to specify a branch, not a tag, but am not sure how to do this.

4

4 Answers

37
votes

As mentioned in the Terraform documentation here:

git::ssh://private_server:myport/kbf/my_repository.git//ecs-cluster?ref=myBranch
7
votes

Exactly the same way. You have a generic ref there that Git will work out what you mean by context assuming no collisions.

If you do have 2 refs that are ambiguous then Git will error and tell you that it's an ambiguous ref and force you to specify the full ref using refs/heads/branch-name or refs/tags/tag-name.

3
votes

You can use something like this:

module "test_module" {
  source = "git::ssh://bitbucketURL/my_repo.git.git?ref=BranchName"
}

bitbucketURL: Go to bitbucket UI, check clone URL, copy from it.

If you are using something other then bitbucket, please refer to: https://www.terraform.io/docs/modules/sources.html

0
votes

The value of the ref argument can be any reference that would be accepted by the git checkout command, including branch and tag names.

Sample code to use the module using git tag and branch. reference_link

In simple language: just after ref= add the tag or branch as required.

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

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