RE: There are some workarounds, like using mock_outputs, or deploying some stacks individually.
Terraspace also has a concept of mocks Dependencies: Tfvars - Terraspace Got mixed opinions on using mocks myself.
Both terragrunt and terraspace, when applying multiple stacks will have limitations. Of course, there’s bias here since I am the author of Terraspace.
Generally speaking, think
terraspace all can be used for infrastructure designs that are kept simple. It’s a beautiful thing when it does work! But don’t think
terraspace all can be elixir and a be-end-all-end solution for everything.
Did an interview with Anton B, he explains it pretty clearly: “We still have makefiles, we still have shell”. Here’s the video at the specific time: https://youtu.be/J_-XPfFlsbU?t=6420
As the infrastructure grows in complexity, maybe orchestrating multiple stacks with your own pipeline is a better option. Makefile is a lower-level of simple orchestration. Something like codepipeline with multiple codebuild projects calling
terraspace up and or
terraspace all is a high-level version of orchestration.
Also, the terraform SAAS-like services like TFC, Spacelift, env0, and scalr have a notion of connecting multiple stacks through more webhook-like triggers. Got mixed feelings about that also. Sometimes there’s more clarity with a centralized pipeline orchestrating all in one place. Distributed systems can sometimes be harder to follow and debug. It might depend on the complexity of the infrastructure code itself. And there may be ways to simplify the code to reduce its complexity. Sometimes it’s possible, and sometimes not.