Skip to content

Commit

Permalink
Filter out env vars for specific commands only
Browse files Browse the repository at this point in the history
  • Loading branch information
geriBatai committed Aug 30, 2018
1 parent d6a67ab commit 70d7bcb
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
9 changes: 7 additions & 2 deletions cli/args.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,15 @@ func filterTerraformExtraArgs(terragruntOptions *options.TerragruntOptions, terr

func filterTerraformEnvVarsFromExtraArgs(terragruntOptions *options.TerragruntOptions, terragruntConfig *config.TerragruntConfig) map[string]string {
out := map[string]string{}
cmd := util.FirstArg(terragruntOptions.TerraformCliArgs)

for _, arg := range terragruntConfig.Terraform.ExtraArgs {
for k, v := range arg.EnvVars {
out[k] = v
for _, argcmd := range arg.Commands {
if cmd == argcmd {
for k, v := range arg.EnvVars {
out[k] = v
}
}
}
}

Expand Down
10 changes: 10 additions & 0 deletions test/fixture-env-vars-block/terraform.tfvars
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
terragrunt = {
terraform = {
extra_arguments "test" {
commands = ["apply"]
env_vars = {
TF_VAR_custom_var = "I'm set in extra_arguments env_vars"
}
}

extra_arguments "shouldnotapply" {
commands = [ "refresh" ]

env_vars = {
TF_VAR_custom_var = "I'm only set for refresh command, so will be ignored for apply"
}

}
}
}

0 comments on commit 70d7bcb

Please sign in to comment.