Depend on conditions, we may need to use different parameters. Writing whole tf file with all possible conditions is not feasible and practical.
TEST-1
I want to create ebs volume only in production but not on other environments
Existing code
ebs_block_device {
device_name = "/dev/sdb"
volume_size = 40
encrypted = true
}
Solution-1
We have static code, it is needed to be converted to dynamic block and we should put if condition to put exetute on prod env, discard on other environments.
dynamic "ebs_block_device" {
for_each = var.env == "prod" ? [true] : [] //This is the line
content {
device_name = "/dev/sdb"
volume_size = 40
encrypted = true
}
}
TEST-2
We want to encrypt root block device on just production environment
Solution-2
root_block_device {
volume_size = "20"
volume_type = "gp2"
encrypted = var.env == "prod" ? true : false
delete_on_termination = true
}