Recently I encountered a Terraform task in which I had a list of roles and a list of policies and I needed to create a AWS resource for every combination of role-policy. In a “regular” programming language this would be a simple nested loop. Thankfully Terraform 0.12 added for_each
and for
attributes to declare recurring resources. But two problems remained:
1. I needed some kind of way to nest these for declarations
2. for_each
attributes requires a map with a unique key
So let’s tackle these problems one at a time. Let’s we have 2 lists:
locals { ROLES = ["developer", "analyst", "manager"] POLICIES = ["arn:1", "arn:2", "arn:3"] }