@@ -21,12 +21,6 @@ resource "azurerm_resource_group" "rg" {
21
21
tags = merge ({ " Name" = format (" %s" , var. resource_group_name ) }, var. tags , )
22
22
}
23
23
24
- data "azurerm_virtual_network" "vnet01" {
25
- count = var. enable_private_endpoint ? 1 : 0
26
- name = var. virtual_network_name
27
- resource_group_name = local. resource_group_name
28
- }
29
-
30
24
data "azurerm_client_config" "current" {}
31
25
32
26
data "azurerm_log_analytics_workspace" "logws" {
@@ -316,11 +310,17 @@ resource "azurerm_sql_failover_group" "fog" {
316
310
# ---------------------------------------------------------
317
311
# Private Link for SQL Server - Default is "false"
318
312
# ---------------------------------------------------------
313
+ data "azurerm_virtual_network" "vnet01" {
314
+ count = var. enable_private_endpoint && var. existing_vnet_id == null ? 1 : 0
315
+ name = var. virtual_network_name
316
+ resource_group_name = local. resource_group_name
317
+ }
318
+
319
319
resource "azurerm_subnet" "snet-ep" {
320
- count = var. enable_private_endpoint ? 1 : 0
321
- name = " snet-endpoint-shared- ${ local . location } "
322
- resource_group_name = local . resource_group_name
323
- virtual_network_name = var. virtual_network_name
320
+ count = var. enable_private_endpoint && var . existing_subnet_id == null ? 1 : 0
321
+ name = " snet-endpoint-${ local . location } "
322
+ resource_group_name = var . existing_vnet_id == null ? data . azurerm_virtual_network . vnet01 . 0 . resource_group_name : element ( split ( " / " , var . existing_vnet_id ), 4 )
323
+ virtual_network_name = var. existing_vnet_id == null ? data . azurerm_virtual_network . vnet01 . 0 . name : element ( split ( " / " , var . existing_vnet_id ), 8 )
324
324
address_prefixes = var. private_subnet_address_prefix
325
325
enforce_private_link_endpoint_network_policies = true
326
326
}
@@ -330,11 +330,11 @@ resource "azurerm_private_endpoint" "pep1" {
330
330
name = format (" %s-primary" , " sqldb-private-endpoint" )
331
331
location = local. location
332
332
resource_group_name = local. resource_group_name
333
- subnet_id = azurerm_subnet. snet-ep . 0 . id
333
+ subnet_id = var . existing_subnet_id == null ? azurerm_subnet. snet-ep . 0 . id : var . existing_subnet_id
334
334
tags = merge ({ " Name" = format (" %s" , " sqldb-private-endpoint" ) }, var. tags , )
335
335
336
336
private_service_connection {
337
- name = " sqldbprivatelink"
337
+ name = " sqldbprivatelink-primary "
338
338
is_manual_connection = false
339
339
private_connection_resource_id = azurerm_sql_server. primary . id
340
340
subresource_names = [" sqlServer" ]
@@ -346,11 +346,11 @@ resource "azurerm_private_endpoint" "pep2" {
346
346
name = format (" %s-secondary" , " sqldb-private-endpoint" )
347
347
location = local. location
348
348
resource_group_name = local. resource_group_name
349
- subnet_id = azurerm_subnet. snet-ep . 0 . id
349
+ subnet_id = var . existing_subnet_id == null ? azurerm_subnet. snet-ep . 0 . id : var . existing_subnet_id
350
350
tags = merge ({ " Name" = format (" %s" , " sqldb-private-endpoint" ) }, var. tags , )
351
351
352
352
private_service_connection {
353
- name = " sqldbprivatelink"
353
+ name = " sqldbprivatelink-secondary "
354
354
is_manual_connection = false
355
355
private_connection_resource_id = azurerm_sql_server. secondary . 0 . id
356
356
subresource_names = [" sqlServer" ]
@@ -376,7 +376,7 @@ data "azurerm_private_endpoint_connection" "private-ip2" {
376
376
}
377
377
378
378
resource "azurerm_private_dns_zone" "dnszone1" {
379
- count = var. enable_private_endpoint ? 1 : 0
379
+ count = var. existing_private_dns_zone == null && var . enable_private_endpoint ? 1 : 0
380
380
name = " privatelink.database.windows.net"
381
381
resource_group_name = local. resource_group_name
382
382
tags = merge ({ " Name" = format (" %s" , " SQL-Private-DNS-Zone" ) }, var. tags , )
@@ -386,15 +386,16 @@ resource "azurerm_private_dns_zone_virtual_network_link" "vent-link1" {
386
386
count = var. enable_private_endpoint ? 1 : 0
387
387
name = " vnet-private-zone-link"
388
388
resource_group_name = local. resource_group_name
389
- private_dns_zone_name = azurerm_private_dns_zone. dnszone1 . 0 . name
390
- virtual_network_id = data. azurerm_virtual_network . vnet01 . 0 . id
389
+ private_dns_zone_name = var. existing_private_dns_zone == null ? azurerm_private_dns_zone. dnszone1 . 0 . name : var. existing_private_dns_zone
390
+ virtual_network_id = var. existing_vnet_id == null ? data. azurerm_virtual_network . vnet01 . 0 . id : var. existing_vnet_id
391
+ registration_enabled = true
391
392
tags = merge ({ " Name" = format (" %s" , " vnet-private-zone-link" ) }, var. tags , )
392
393
}
393
394
394
395
resource "azurerm_private_dns_a_record" "arecord1" {
395
396
count = var. enable_private_endpoint ? 1 : 0
396
397
name = azurerm_sql_server. primary . name
397
- zone_name = azurerm_private_dns_zone. dnszone1 . 0 . name
398
+ zone_name = var . existing_private_dns_zone == null ? azurerm_private_dns_zone. dnszone1 . 0 . name : var . existing_private_dns_zone
398
399
resource_group_name = local. resource_group_name
399
400
ttl = 300
400
401
records = [data . azurerm_private_endpoint_connection . private-ip1 . 0 . private_service_connection . 0 . private_ip_address ]
@@ -403,7 +404,7 @@ resource "azurerm_private_dns_a_record" "arecord1" {
403
404
resource "azurerm_private_dns_a_record" "arecord2" {
404
405
count = var. enable_failover_group && var. enable_private_endpoint ? 1 : 0
405
406
name = azurerm_sql_server. secondary . 0 . name
406
- zone_name = azurerm_private_dns_zone. dnszone1 . 0 . name
407
+ zone_name = var . existing_private_dns_zone == null ? azurerm_private_dns_zone. dnszone1 . 0 . name : var . existing_private_dns_zone
407
408
resource_group_name = local. resource_group_name
408
409
ttl = 300
409
410
records = [data . azurerm_private_endpoint_connection . private-ip2 . 0 . private_service_connection . 0 . private_ip_address ]
0 commit comments