diff --git a/main.tf b/main.tf index 1607968..5f74d9a 100644 --- a/main.tf +++ b/main.tf @@ -56,14 +56,14 @@ resource "azurerm_subnet" "subnet" { dynamic "delegation" { - for_each = local.subnet[each.key].delegation.name == "" ? [] : [0] + for_each = local.subnet[each.key].delegation content { - name = local.subnet[each.key].delegation.name == "" ? delegation.key : local.subnet[each.key].delegation.name + name = local.subnet[each.key].delegation[delegation.key].name == "" ? delegation.key : local.subnet[each.key].delegation[delegation.key].name service_delegation { - name = local.subnet[each.key].delegation.service_delegation.name - actions = local.subnet[each.key].delegation.service_delegation.actions + name = local.subnet[each.key].delegation[delegation.key].service_delegation.name + actions = local.subnet[each.key].delegation[delegation.key].service_delegation.actions } } } diff --git a/variables.tf b/variables.tf index 8dcf44c..ca6b3f5 100644 --- a/variables.tf +++ b/variables.tf @@ -306,13 +306,16 @@ locals { local.subnet_values[subnet], { for config in ["delegation"] : - config => merge( - merge(local.default.subnet[config], local.subnet_values[subnet][config]), - { - for subconfig in ["service_delegation"] : - subconfig => merge(local.default.subnet[config][subconfig], local.subnet_values[subnet][config][subconfig]) - } - ) + config => keys(local.subnet_values[subnet][config]) == keys(local.default.subnet[config]) ? {} : { + for key in keys(local.subnet_values[subnet][config]) : + key => merge( + merge(local.default.subnet[config], local.subnet_values[subnet][config][key]), + { + for subconfig in ["service_delegation"] : + subconfig => merge(local.default.subnet[config][subconfig], local.subnet_values[subnet][config][key][subconfig]) + } + ) + } } ) }