Terragrunt for Beginners
Terragrunt Attributes
skip Attribute
In this lesson, we explore the skip
attribute in Terragrunt: a powerful boolean flag that controls whether a specific module runs Terraform commands. By leveraging skip
, you can conditionally bypass apply
, destroy
, and other operations—ideal for tailoring complex infrastructure workflows.
Why Use the skip Attribute?
- Customize multi-module deployments without removing configuration
- Temporarily disable modules under development or testing
- Avoid unintentional changes in non-critical environments
Note
Use the skip
flag to control module execution dynamically, ensuring only ready and tested modules are deployed.
Key Considerations
- Skipping critical modules can lead to incomplete infrastructure
- Ensure dependencies are met before disabling a module
Warning
Never set skip = true
on production-critical modules. Always verify dependencies to prevent configuration drift.
skip Attribute Options
skip Value | Description |
---|---|
true | Bypasses Terraform actions on the module |
false | Executes Terraform actions normally |
Example: Skipping a VPC Module
Imagine you have a VPC module under development. To prevent Terraform from applying it, add skip = true
in your terragrunt.hcl
:
terraform {
source = "tfr://terraform-aws-modules/vpc/aws//?version=5.8.1"
}
include "root" {
path = find_in_parent_folders()
expose = true
}
inputs = {
name = "KodeKloud-VPC"
cidr = "10.100.0.0/16"
}
download_dir = "../.terragrunt-kodekloud"
prevent_destroy = false
skip = true
Running terragrunt apply
:
~/workspace/vpc $ terragrunt apply
INFO[0000] Skipping terragrunt module /config/workspace/vpc/terragrunt.hcl due to skip = true.
~/workspace/vpc $
Terragrunt detects skip = true
and leaves the VPC unchanged.
Enabling the Module
When you're ready to deploy, set skip
to false
or remove it:
terraform {
source = "tfr://terraform-aws-modules/vpc/aws//?version=5.8.1"
}
include "root" {
path = find_in_parent_folders()
expose = true
}
inputs = {
name = "KodeKloud-VPC"
cidr = "10.100.0.0/16"
}
download_dir = "../.terragrunt-kodekloud"
prevent_destroy = false
skip = false
Then run:
~/workspace/vpc $ terragrunt apply
...
Are you sure you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
With skip
disabled, Terragrunt proceeds to create the VPC as expected.
Watch Video
Watch video content