#terragrunt - May 2019

terragruntArchived
39 messages

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

Joe Perez
Joe Perezover 7 years ago
Is it me or do the terragrunt docs seem lacking? I've been having to dig through git issues to find out more. Any external doc references are appreciated
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
we (cloudposse) don't use terragrunt
Joe Perez
Joe Perezover 7 years ago
I really think the tool is great for what it's trying to do, it's just a bit frustrating
Joe Perez
Joe Perezover 7 years ago
what do you guys use?
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
terraform natively supports intialization of projects using the -from-module parameter
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
you can pass that as an environment variable too
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
TF_CLI_ARGS_init=-from=module=....
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
so we define all of our root module invocations here: https://github.com/cloudposse/terraform-root-modules
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
we wrote an "env mapper" to make setting envs for terraform easier (but it's not required)
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
here's how we put it together:
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
the .envrc indicates the module we want to use
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
then we just call terraform init and it automatically imports the remote module
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
no wrappers required
Joe Perez
Joe Perezover 7 years ago
damn that's nice
Joe Perez
Joe Perezover 7 years ago
I was worried about what happens when terraform is updated when using terragrunt
Joe Perez
Joe Perezover 7 years ago
I'm gonna need to dig through all of this
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
yea, that's what i like about this.
Joe Perez
Joe Perezover 7 years ago
what about all the state stuff that terragrunt does for you, how are you guys handling that?
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
terragrunt is basically a task runner
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
there are a lot of task runners out there.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
we use make predominantly with terraform
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
terragrunt helps keep your code DRY, but if you decompose thee different things that terragrunt does, you can easily accomplish it other ways
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
we use direnv to keep project level settings
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
we use make for a task runner
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
we use tfenv to make mapping envs easier (totally optional)
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
we use terraform init -from-module=... (using the TF_CLI_ARGS_init=-from-module=... env), to keep things DRY.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
the combination of these things create a generalizable pattern that works formore than terraform
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
for example, we use helm and helmfile
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
we package all the tools in geodesic, which is our cloud automation image
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
we also use variant to define cli tools specific to our organization.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
Joe Perez
Joe Perezover 7 years ago
this is all really good stuff to take back to my team
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 7 years ago
cool! happy to share more or answer any questions.
Joe Perez
Joe Perezover 7 years ago
this is a great start, thank you
Meb
Mebover 7 years ago
Thanks for the feedbacl & Rex. Good call on these