Complex Graphs, Subgraphs, and Subtrees
Let’s say you have a more complex dependency graph. Here’s an example:
If would like to deploy just part the infrastructure, you can filter for subgraphs or subtrees.
terraspace all up STACKS
This allows you to target specific components of your infrastructure.
$ terraspace all up a2 Will run: terraspace up c1 # batch 1 terraspace up c3 # batch 1 terraspace up b3 # batch 2 terraspace up a2 # batch 3 Are you sure? (y/N)
Terraspace calculates the dependency graph, filters for the subtree, and then deploys the stack in the right order. The green nodes represent stacks that will be deployed.
You can also specify multiple stacks to target.
$ terraspace all up a2 b2 Will run: terraspace up c1 # batch 1 terraspace up c3 # batch 1 terraspace up e1 # batch 1 terraspace up b3 # batch 2 terraspace up d1 # batch 2 terraspace up a2 # batch 3 terraspace up c2 # batch 3 terraspace up b2 # batch 4 Are you sure? (y/N)
The targeted stacks is a new subgraph represented by the green nodes.
Graph Demo Repo
Here’s also an example repo to show how dependencies work: Terraspace Graph Demo.
Regular Up Commands
If you need further control of the deployment, you can always drop down to the regular up commands. IE:
terraspace up b2 terraspace up b3
You get the best of both worlds. You can automatically deploy the entire infrastructure with a single command. If necessary, you can also drop down and deploy individual stacks.