diff --git a/main.tf b/main.tf index 86609ce..6fabfc7 100644 --- a/main.tf +++ b/main.tf @@ -24,9 +24,9 @@ locals { error_service = module.buckets[bucket].default_custom_error_response_policy.error_service } } - backend_paths = merge(local.cloud_run_backend_paths, local.bucket_backend_paths) - custom_error_responses = merge(local.cloud_run_default_custom_error_responses, local.bucket_default_custom_error_responses) - url_map_name = var.url_map_name == "" ? "${var.name_prefix}-lb" : var.url_map_name + backend_paths = merge(local.cloud_run_backend_paths, local.bucket_backend_paths) + default_custom_error_responses = merge(local.cloud_run_default_custom_error_responses, local.bucket_default_custom_error_responses) + url_map_name = var.url_map_name == "" ? "${var.name_prefix}-lb" : var.url_map_name } # Global IP @@ -130,6 +130,7 @@ resource "google_compute_url_map" "urlmap" { path_matcher = host_rule.key } } + dynamic "path_matcher" { for_each = merge(var.services, var.buckets) content { @@ -152,16 +153,19 @@ resource "google_compute_url_map" "urlmap" { } } } - default_custom_error_response_policy { - dynamic "error_response_rule" { - for_each = coalesce(local.custom_error_responses[path_matcher.key].custom_error_responses, []) - content { - match_response_codes = error_response_rule.value.match_response_codes - path = error_response_rule.value.path - override_response_code = error_response_rule.value.override_response_code + dynamic "default_custom_error_response_policy" { + for_each = local.default_custom_error_responses[path_matcher.key] != null ? [local.default_custom_error_responses[path_matcher.key]] : [] + content { + dynamic "error_response_rule" { + for_each = default_custom_error_response_policy.value.custom_error_responses != null ? default_custom_error_response_policy.value.custom_error_responses : [] + content { + match_response_codes = error_response_rule.value.match_response_codes + path = error_response_rule.value.path + override_response_code = error_response_rule.value.override_response_code + } } + error_service = default_custom_error_response_policy.value.error_service } - error_service = local.custom_error_responses[path_matcher.key].error_service } } } diff --git a/variables.tf b/variables.tf index fd1ff5e..0177b05 100644 --- a/variables.tf +++ b/variables.tf @@ -87,7 +87,7 @@ variable "default_custom_error_response_policy" { })) error_service = optional(string) }) - default = {} + default = null } variable "buckets" { @@ -173,7 +173,7 @@ variable "services" { override_response_code = optional(number) }))) error_service = optional(string) - }), {}) + })) iap_config = optional(object({ enable = bool oauth2_client_id = optional(string)