Skip to content

Commit 02d0df6

Browse files
committed
add private dns zone name check
1 parent e344c91 commit 02d0df6

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

locals.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,10 @@ locals {
5858
subnet_ids = toset([for id in local.potential_subnet_ids : id if id != null])
5959
use_brown_field_gw_for_ingress = var.brown_field_application_gateway_for_ingress != null
6060
use_green_field_gw_for_ingress = var.green_field_application_gateway_for_ingress != null
61+
valid_private_dns_zone_regexs = [
62+
"private\\.[a-z]+\\.azmk8s\\.io",
63+
"privatelink\\.[a-z]+\\.azmk8s\\.io",
64+
"[a-zA-Z0-9\\-]{1,32}\\.private\\.[a-z]+\\.azmk8s\\.io",
65+
"[a-zA-Z0-9\\-]{1,32}\\.privatelink\\.[a-z]+\\.azmk8s\\.io",
66+
]
6167
}

main.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,10 @@ resource "azurerm_kubernetes_cluster" "main" {
636636
condition = var.dns_prefix_private_cluster != null || var.identity_type == "UserAssigned" || var.client_id != ""
637637
error_message = "A user assigned identity or a service principal must be used when using a custom private dns zone"
638638
}
639+
precondition {
640+
condition = var.private_dns_zone_id == null ? true : (anytrue([for r in local.valid_private_dns_zone_regexs : try(regex(r, reverse(split("/", var.private_dns_zone_id))[0]) == reverse(split("/", var.private_dns_zone_id))[0], false)]))
641+
error_message = "Private DNS zone must be in one of the following format: `privatelink.<region>.azmk8s.io`, `<subzone>.privatelink.<region>.azmk8s.io`, `private.<region>.azmk8s.io`, `<subzone>.private.<region>.azmk8s.io`"
642+
}
639643
}
640644
}
641645

0 commit comments

Comments
 (0)