#terragrunt - April 2020

terragruntArchived
20 messages

Terragrunt discussions
Archive: https://archive.sweetops.com/terragrunt/

David
Davidover 6 years ago
Just a heads up for anyone else making use or considering usage of read_terragrunt_config, the function is unfortunately in a bad state.

Issue originally pointing out a concern with the function: https://github.com/gruntwork-io/terragrunt/issues/1107
Follow up issue from a maintainer pointing out that the issue is very complicated to fix: https://github.com/gruntwork-io/terragrunt/issues/1128
Issue where a maintainer recommends against using the function at the moment: https://github.com/gruntwork-io/terragrunt/issues/303

I've hit some nastly bugs with it that are particularly hard to debug, so this is just a friendly suggestion that you all consider those issues before deciding to make use of it
joshmyers
joshmyersover 6 years ago
How many levels of dirs are folks ending up with given example Terragrunt repo? Does this put people off?
joshmyers
joshmyersover 6 years ago
my dev environment alone has 32 dirs….not sure how I feel about it….
joshmyers
joshmyersover 6 years ago
test/dev
├── env.hcl
├── eu-central-1
│   ├── account-service
│   │   └── terragrunt.hcl
│   ├── compliance-service
│   │   └── terragrunt.hcl
│   ├── device-service
│   │   └── terragrunt.hcl
│   ├── graph-service
│   │   └── terragrunt.hcl
│   ├── idp-service
│   │   └── terragrunt.hcl
│   ├── profile-service
│   │   └── terragrunt.hcl
│   ├── region.hcl
│   └── resource-service
│       └── terragrunt.hcl
├── eu-west-1
│   ├── account-service
│   │   └── terragrunt.hcl
│   ├── compliance-service
│   │   └── terragrunt.hcl
│   ├── device-service
│   │   └── terragrunt.hcl
│   ├── graph-service
│   │   └── terragrunt.hcl
│   ├── idp-service
│   │   └── terragrunt.hcl
│   ├── profile-service
│   │   └── terragrunt.hcl
│   ├── region.hcl
│   └── resource-service
│       └── terragrunt.hcl
├── us-east-1
│   ├── account-service
│   │   └── terragrunt.hcl
│   ├── compliance-service
│   │   └── terragrunt.hcl
│   ├── device-service
│   │   └── terragrunt.hcl
│   ├── graph-service
│   │   └── terragrunt.hcl
│   ├── idp-service
│   │   └── terragrunt.hcl
│   ├── profile-service
│   │   └── terragrunt.hcl
│   ├── region.hcl
│   └── resource-service
│       └── terragrunt.hcl
└── us-west-2
    ├── account-service
    │   └── terragrunt.hcl
    ├── compliance-service
    │   └── terragrunt.hcl
    ├── device-service
    │   └── terragrunt.hcl
    ├── graph-service
    │   └── terragrunt.hcl
    ├── idp-service
    │   └── terragrunt.hcl
    ├── profile-service
    │   └── terragrunt.hcl
    ├── region.hcl
    └── resource-service
        └── terragrunt.hcl

32 directories, 33 files
joshmyers
joshmyersover 6 years ago
Maybe @antonbabenko or others have thoughts as heavy Terragrunt users?
David
Davidover 6 years ago
At my company we have hundreds of modules per env 🤷‍♂️

It became 1000% more manageable for us once we got into a good CI/CD flow with atlantis. So now the flow is:

• Make changes to the underlying modules
• Run terragrunt-atlantis-config to generate atlantis config for our dependency graph
• Open a PR
• Atlantis plans everything that needs to be changed
• Approve PR, apply all the plans with one command
Sometimes those PRs can affect dozens of modules (especially because we do releases with staging and prod branches), but that's no problem because it's so easy to apply everything
joshmyers
joshmyersover 6 years ago
@David Thanks for the reply. Yes we do the same but the Atlantis workflow isn’t perfect (mainly saying that based off Atlantis triggers but totally depends how you have laid out the repo) - but still not sure how I feel about all these dirs…
loren
lorenover 6 years ago
the gruntwork folks seem open to an alternative that maps it out in a single file, if you'd prefer a flatter approach. i think they were looking for help with that pr
joshmyers
joshmyersover 6 years ago
Hmm, maybe, not sure if that approach will play nicely with something like Atlantis though…
joshmyers
joshmyersover 6 years ago
staging
└── terragrunt.hcl
production
└── terragrunt.hcl
joshmyers
joshmyersover 6 years ago
Won’t work very well, a change to staging/terragrunt.hcl and Atlantis builds every staging project?
joshmyers
joshmyersover 6 years ago
staging
├── production
│   ├── apps.hcl
│   ├── data-stores.hcl
│   └── networking.hcl
└── staging
    ├── apps.hcl
    ├── data-stores.hcl
    └── networking.hcl
joshmyers
joshmyersover 6 years ago
could work…
loren
lorenover 6 years ago
Comment on the issue! 😁 I don't think they're looking at custom hcl filenames...
loren
lorenover 6 years ago
apps/terragrunt.hcl, etc, might work...
joshmyers
joshmyersover 6 years ago
The whole thing sounds very up in the air…
joshmyers
joshmyersover 6 years ago
Argh.
joshmyers
joshmyersover 6 years ago
Why is software so hard? 🙂
loren
lorenover 6 years ago
Lololol, anything software that is or looks easy has had some absolutely masterful designers and developers