I have adopted the terragrunt-live repo layout suggested in terragrunt-infrastructure-live-example. I have been using it for a while and it works well.
Part of this methodology is a terragrunt-live
repo separate from the repo containing my own Terraform modules. Whenever I partition code into different repositories, I must take over responsibility for synchronizing files, where Git is the true master.
Why must my terragrunt-live
repo be a separate Git repo? Why can’t it be a terragrunt-live/
directory in my Terraform module repo?
One reason is to have a different set of maintainers for terragrunt-live
and the Terraform modules. This is in fact the case with open source Terraform modules–I can commit to my own terragrunt-live
, but I can only suggest changes to public Terraform modules via a pull request. However, these are my custom Terraform modules that I develop in sync with my terragrunt.hcl
files. My experience is that I always commit them together, and having them in separate repos just invites file skew.
Are there other reasons to keep terragrunt-live
and my own custom Terraform modules in separate repositories?