Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Fix terraform_wrapper_module_for_each hook heredoc vars defaults #554

Merged
merged 3 commits into from
Aug 10, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions hooks/terraform_wrapper_module_for_each.sh
Original file line number Diff line number Diff line change
Expand Up @@ -323,11 +323,11 @@ EOF

# Get names of module variables in all terraform files
# shellcheck disable=SC2207
module_vars=($(echo "$all_tf_content" | hcledit block list | { grep variable. || true; } | cut -d'.' -f 2))
module_vars=($(echo "$all_tf_content" | hcledit block list | { grep variable. | cut -d'.' -f 2 || true; }))

# Get names of module outputs in all terraform files
# shellcheck disable=SC2207
module_outputs=($(echo "$all_tf_content" | hcledit block list | { grep output. || true; } | cut -d'.' -f 2))
module_outputs=($(echo "$all_tf_content" | hcledit block list | { grep output. | cut -d'.' -f 2 || true; }))

# Looking for sensitive output
local wrapper_output_sensitive="# sensitive = false # No sensitive module output found"
Expand Down Expand Up @@ -360,6 +360,13 @@ EOF
# https://github.com/terraform-aws-modules/terraform-aws-security-group/blob/0bd31aa88339194efff470d3b3f58705bd008db0/rules.tf#L8
# As a result, wrappers in terraform-aws-security-group module are missing values of the rules variable and is not useful. :(
var_value="try(each.value.${module_var}, var.defaults.${module_var}, {})"
elif [[ $var_default == \<\<* ]]; then
# Heredoc style default values produce HCL parsing error:
# 'Unterminated template string; No closing marker was found for the string.'
# Because closing marker must be alone on it's own line:
# https://developer.hashicorp.com/terraform/language/expressions/strings#heredoc-strings
var_value="try(each.value.${module_var}, var.defaults.${module_var}, $var_default
)"
else
var_value="try(each.value.${module_var}, var.defaults.${module_var}, $var_default)"
fi
Expand Down
Loading