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?