Controlling dependencies with depends_on and ignore_changes
In 99% of cases, Terraform will resolve dependencies automatically. There are two problems you can encounter when you rely solely on automatic resolution:
- Dependency is not automatically handled by Terraform
- Dependency leads to unwanted behavior and should be omitted
For both problems, there is a solution in Terraform. Let's first look at how you can force dependencies with depends_on
. For each resource, you can specify the depends_on
parameter, which accepts a list of resources that this resource depends on. As a result, this resource won't be created until the ones listed inside this parameter are created.
There might be different use cases for this. For example, your private OpenStack installation could be implemented in a way such that it is impossible to create virtual routers in parallel, so you have to force dependency for each router to force Terraform to create them one after another. Or your instances could depend on the existence...