From d72ae6a5da95fe7d4aa0246a913bdcf3bf87a8b3 Mon Sep 17 00:00:00 2001 From: Gavin Williams <109519102+fatmcgav-depop@users.noreply.github.com> Date: Tue, 9 Aug 2022 16:17:04 +0100 Subject: [PATCH] Fix issue when attempting to set `create_proxy = false` Spotted this issue whilst trying to integrate this module into some existing code where we don't always want to create a RDS Proxy instance, but when we are creating a proxy we want a default set of endpoints. Setting `create_proxy = false` works for the majority of resources, however the `aws_db_proxy_endpoint` resource uses a `for_each` which will try and create endpoints against a non-existent DB proxy. So switch to using a `local` which gets set to an empty map if `var.create_proxy` is false. --- main.tf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/main.tf b/main.tf index 656d23a..d7aa171 100644 --- a/main.tf +++ b/main.tf @@ -1,7 +1,8 @@ locals { - role_arn = var.create_proxy && var.create_iam_role ? aws_iam_role.this[0].arn : var.role_arn - role_name = coalesce(var.iam_role_name, var.name) - policy_name = coalesce(var.iam_policy_name, var.name) + role_arn = var.create_proxy && var.create_iam_role ? aws_iam_role.this[0].arn : var.role_arn + role_name = coalesce(var.iam_role_name, var.name) + policy_name = coalesce(var.iam_policy_name, var.name) + db_proxy_endpoints = var.create_proxy ? var.db_proxy_endpoints : {} } data "aws_region" "current" {} @@ -68,7 +69,7 @@ resource "aws_db_proxy_target" "db_cluster" { } resource "aws_db_proxy_endpoint" "this" { - for_each = var.db_proxy_endpoints + for_each = local.db_proxy_endpoints db_proxy_name = aws_db_proxy.this[0].name db_proxy_endpoint_name = each.value.name