7 ms·
We're using Terragrunt with hundreds of AWS accounts and thousands of Terraform deployments/states. I'll never want to do this without Terragrunt again. The su
by thunfisch 3y ago
We're using Terragrunt with hundreds of AWS accounts and thousands of Terraform deployments/states.
I'll never want to do this without Terragrunt again. The suggested method of referencing remote states, and writing out the backends will fall apart instantly at that scale. It's just way too brittle and unwieldy.
Terragrunt with some good defaults that will be included, and separated states for modules (which makes partial applies a breeze) as well as autogenerated backend configs (let Terragrunt inject it for you, with templated values) is the way to go.
- DelightOne 3y agoDo you need to chain multiple Terragrunt executions to first bring the Kubernetes cluster up and then the containers, or does Terragrunt fix that?
- miduil 3y agoYes, with terragrunt you can do a `terragrunt run-all apply` and based on `output` to `variable` in each module data can be passed from one state/module to the next one, terragrunt knows how to run them in the right order so you can bootstrap your EKS cluster by having one module which bootstraps the account, then another one which bootstraps EKS, then one that configures the cluster, installs your "base pods" and then later everything else.
- ckdarby 3y agoHave you spent any time with Pulumi? I've kind of found terraform is dying and encourages a lot of bad practices but everyone agrees with them because HCL and it is transferable as most companies are just using TF.
- RulerOf 3y ago> I've kind of found terraform is dying I don't think it's dying. The hype has worn off. Everybody uses it. It's very mature. There's a module for everything. It's just not new and sexy anymore IMO.
- ckdarby 3y agoGuess this can be revisited now with their licensing
- RulerOf 3y agoI did have a slight chuckle at the news just a few days after I made this statement.
- thecosmicfrog 3y agoTerraform has evolved from exciting hype to stable utility, in my opinion.
- rvdginste 3y agoWe use a setup where we have multiple repos with Terraform configuration and thus multiple Terraform states. We then use Terraform remote state to link everything together. I am talking about 10-20 repos and states. Orthogonal to that, we use multiple workspaces to describe the infra in different environments. The problems I have personally experienced with this approach are: - if you update one of the root Terraform states, you need to execute a Terraform apply for every repo that depends on that Terraform state; developers do not do that because either they forget or they do know but are too lazy and subsequently are surprised that things are broken - if you use workspaces for maintaining the infra in different environments, and certain components are only needed in specific environments, then the Terraform code becomes pretty ugly (using count which makes a single thing suddenly a list of things, which you then have to account for in the outputs which becomes very verbose) Is Terragrunt something that would help us? I do not know Terragrunt, and a quick look at the website did not make that clear for me.