As of recently, Spacelift supports using Terragrunt to run your workloads instead of plain Terraform. Terragrunt support is mostly transparent in that it will work with existing stacks, and can be turned on and off. In that, Terragrunt is not what we consider to be a standalone vendor but more like a VIP CDK around an existing one:
Whether a Terraform stack is using Terragrunt or not is controlled by the presence of
terragrunt label on the stack:
If present, all workloads will use
terragrunt instead of
terraform as the main command. Since Terragrunt API is a superset of Terraform's, this is completely transparent to the end user.
Terragrunt is now installed by default on our standard runner image. If you're building on top of our runner image, make sure to rebuild your image to use our latest version. If you're not using our runner image, you can install Terragrunt separately.
During the Initialization phase we're showing you the exact binary that will process your job, along with its location:
When working with Terragrunt, you will still specify the Terraform version to be used to process your job. We don't do it for Terragrunt, which is way more relaxed in terms of how it interacts with Terraform versions, especially since we're only using a very stable subset of its API.
On our runner image, we install a version of Terragrunt that will work with the latest version of Terraform that we support. If you need a specific version of Terragrunt, feel free to create a custom runner image and install the Terragrunt version of your choosing.
We're currently using Terragrunt the same way we're using Terraform, running
apply commands. This means we're not supporting executing Terraform commands on multiple modules at once (
run-all). This functionality was designed to operate in a very different mode and environment, and is strictly outside our scope.