Skip to content

Commit 226a3ef

Browse files
authored
Update latest
1 parent f26682b commit 226a3ef

1 file changed

Lines changed: 49 additions & 19 deletions

File tree

infra-as-code/bicep/modules/vwanConnectivity/vwanConnectivity.bicep

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,17 @@ param parAzureFirewallLock lockType = {
284284
notes: 'This lock was created by the ALZ Bicep vWAN Connectivity Module.'
285285
}
286286

287+
@sys.description(''' Resource Lock Configuration for Azure Firewall Policy.
288+
289+
- `kind` - The lock settings of the service which can be CanNotDelete, ReadOnly, or None.
290+
- `notes` - Notes about this lock.
291+
292+
''')
293+
param parAzureFirewallPolicyLock lockType = {
294+
kind: 'None'
295+
notes: 'This lock was created by the ALZ Bicep vWAN Connectivity Module.'
296+
}
297+
287298
@sys.description('The scale unit for this VPN Gateway.')
288299
param parVpnGatewayScaleUnit int = 1
289300

@@ -316,9 +327,18 @@ param parPrivateDnsZonesResourceGroup string = resourceGroup().name
316327
@sys.description('Array of DNS Zones to provision in Hub Virtual Network. Default: All known Azure Private DNS Zones, baked into underlying AVM module see: https://github.com/Azure/bicep-registry-modules/tree/main/avm/ptn/network/private-link-private-dns-zones#parameter-privatelinkprivatednszones')
317328
param parPrivateDnsZones array = []
318329

330+
@sys.description('Switch to enable/disable fallback to internet for Private DNS Zones (option only available for Private DNS zones associated to Private Link resources).')
331+
param parPrivateDnsZonesFallbackToInternet bool = false
332+
319333
@sys.description('Array of Resource IDs of VNets to link to Private DNS Zones.')
320334
param parVirtualNetworkResourceIdsToLinkTo array = []
321335

336+
@sys.description('Array of additional Private Link Private DNS Zones to include in addition to those specified in `parPrivateDnsZones`.')
337+
param additionalPrivateLinkPrivateDnsZonesToInclude array = []
338+
339+
@sys.description('Array of Private Link Private DNS Zones to exclude from those specified in `parPrivateDnsZones`.')
340+
param privateLinkPrivateDnsZonesToExclude array = []
341+
322342
@sys.description('''Resource Lock Configuration for Private DNS Zone(s).
323343
324344
- `kind` - The lock settings of the service which can be CanNotDelete, ReadOnly, or None.
@@ -484,11 +504,11 @@ module modSidecarVirtualNetwork 'br/public:avm/res/network/virtual-network:0.7.0
484504

485505
module modVnetPeeringVwan '../vnetPeeringVwan/vnetPeeringVwan.bicep' = [
486506
for (hub, i) in parVirtualWanHubs: if (hub.parSidecarVirtualNetwork.sidecarVirtualNetworkEnabled) {
487-
name: 'deploy-vnet-peering-vwan-${hub.parSidecarVirtualNetwork.?name}-${hub.parHubLocation}'
507+
name: take('deploy-vnet-peering-vwan-${hub.parSidecarVirtualNetwork.?name}-${hub.parHubLocation}', 64)
488508
scope: subscription()
489509
params: {
490510
parRemoteVirtualNetworkResourceId: modSidecarVirtualNetwork[i].outputs.resourceId
491-
parVirtualWanHubResourceId: resVhub[0].id
511+
parVirtualWanHubResourceId: resVhub[i].id
492512
}
493513
}
494514
]
@@ -588,14 +608,14 @@ resource resFirewallPolicies 'Microsoft.Network/firewallPolicies@2024-05-01' = [
588608
}
589609
]
590610

591-
// Create Azure Firewall Policy resource lock if parAzFirewallEnabled is true and parGlobalResourceLock.kind != 'None' or if parAzureFirewallLock.kind != 'None'
611+
// Create Azure Firewall Policy resource lock if parAzFirewallEnabled is true and parGlobalResourceLock.kind != 'None' or if parAzureFirewallPolicyLock.kind != 'None'
592612
resource resFirewallPoliciesLock 'Microsoft.Authorization/locks@2020-05-01' = [
593-
for (hub, i) in parVirtualWanHubs: if ((parVirtualHubEnabled && parVirtualWanHubs[i].parAzFirewallEnabled) && (parAzureFirewallLock.kind != 'None' || parGlobalResourceLock.kind != 'None')) {
613+
for (hub, i) in parVirtualWanHubs: if ((parVirtualHubEnabled && parVirtualWanHubs[i].parAzFirewallEnabled) && (parAzureFirewallPolicyLock.kind != 'None' || parGlobalResourceLock.kind != 'None')) {
594614
scope: resFirewallPolicies[i]
595-
name: parAzureFirewallLock.?name ?? '${resFirewallPolicies[i].name}-lock'
615+
name: parAzureFirewallPolicyLock.?name ?? '${resFirewallPolicies[i].name}-lock'
596616
properties: {
597-
level: (parGlobalResourceLock.kind != 'None') ? parGlobalResourceLock.kind : parAzureFirewallLock.kind
598-
notes: (parGlobalResourceLock.kind != 'None') ? parGlobalResourceLock.?notes : parAzureFirewallLock.?notes
617+
level: (parGlobalResourceLock.kind != 'None') ? parGlobalResourceLock.kind : parAzureFirewallPolicyLock.kind
618+
notes: (parGlobalResourceLock.kind != 'None') ? parGlobalResourceLock.?notes : parAzureFirewallPolicyLock.?notes
599619
}
600620
}
601621
]
@@ -630,13 +650,13 @@ resource resFirewallPoliciesSharedGlobal 'Microsoft.Network/firewallPolicies@202
630650
}
631651
}
632652

633-
// Create Azure Firewall Policy resource lock if parAzFirewallEnabled is true and parGlobalResourceLock.kind != 'None' or if parAzureFirewallLock.kind != 'None'
634-
resource resFirewallPoliciesLockSharedGlobal 'Microsoft.Authorization/locks@2020-05-01' = if ((parVirtualHubEnabled && parVirtualWanHubs[0].parAzFirewallEnabled && parAzFirewallPolicyDeploymentStyle == 'SharedGlobal') && (parAzureFirewallLock.kind != 'None' || parGlobalResourceLock.kind != 'None')) {
653+
// Create Azure Firewall Policy resource lock if parAzFirewallEnabled is true and parGlobalResourceLock.kind != 'None' or if parAzureFirewallPolicyLock.kind != 'None'
654+
resource resFirewallPoliciesLockSharedGlobal 'Microsoft.Authorization/locks@2020-05-01' = if ((parVirtualHubEnabled && parVirtualWanHubs[0].parAzFirewallEnabled && parAzFirewallPolicyDeploymentStyle == 'SharedGlobal') && (parAzureFirewallPolicyLock.kind != 'None' || parGlobalResourceLock.kind != 'None')) {
635655
scope: resFirewallPoliciesSharedGlobal
636-
name: parAzureFirewallLock.?name ?? '${resFirewallPoliciesSharedGlobal.name}-lock'
656+
name: parAzureFirewallPolicyLock.?name ?? '${resFirewallPoliciesSharedGlobal.name}-lock'
637657
properties: {
638-
level: (parGlobalResourceLock.kind != 'None') ? parGlobalResourceLock.kind : parAzureFirewallLock.kind
639-
notes: (parGlobalResourceLock.kind != 'None') ? parGlobalResourceLock.?notes : parAzureFirewallLock.?notes
658+
level: (parGlobalResourceLock.kind != 'None') ? parGlobalResourceLock.kind : parAzureFirewallPolicyLock.kind
659+
notes: (parGlobalResourceLock.kind != 'None') ? parGlobalResourceLock.?notes : parAzureFirewallPolicyLock.?notes
640660
}
641661
}
642662

@@ -659,11 +679,13 @@ resource resAzureFirewall 'Microsoft.Network/azureFirewalls@2024-05-01' = [
659679
virtualHub: {
660680
id: parVirtualHubEnabled ? resVhub[i].id : ''
661681
}
662-
firewallPolicy: {
663-
id: (parVirtualHubEnabled && hub.parAzFirewallEnabled && parAzFirewallPolicyDeploymentStyle == 'SharedGlobal')
664-
? resFirewallPoliciesSharedGlobal.id
665-
: resFirewallPolicies[i].id
666-
}
682+
firewallPolicy: (parVirtualHubEnabled && hub.parAzFirewallEnabled)
683+
? {
684+
id: (parAzFirewallPolicyDeploymentStyle == 'SharedGlobal')
685+
? resFirewallPoliciesSharedGlobal.id
686+
: resFirewallPolicies[i].id
687+
}
688+
: null
667689
}
668690
}
669691
]
@@ -698,13 +720,21 @@ resource resDDoSProtectionPlanLock 'Microsoft.Authorization/locks@2020-05-01' =
698720
}
699721

700722
// Private DNS Zones cannot be linked to the Virtual WAN Hub today however, they can be linked to spokes as they are normal VNets as per https://docs.microsoft.com/azure/virtual-wan/howto-private-link
701-
module modPrivateDnsZonesAVM 'br/public:avm/ptn/network/private-link-private-dns-zones:0.3.0' = if (parPrivateDnsZonesEnabled) {
723+
module modPrivateDnsZonesAVM 'br/public:avm/ptn/network/private-link-private-dns-zones:0.7.0' = if (parPrivateDnsZonesEnabled) {
702724
name: 'deploy-Private-DNS-Zones-AVM-Single'
703725
scope: resourceGroup(parPrivateDnsZonesResourceGroup)
704726
params: {
705727
location: parLocation
706728
privateLinkPrivateDnsZones: empty(parPrivateDnsZones) ? null : parPrivateDnsZones
707-
virtualNetworkResourceIdsToLinkTo: parVirtualNetworkResourceIdsToLinkTo
729+
additionalPrivateLinkPrivateDnsZonesToInclude: additionalPrivateLinkPrivateDnsZonesToInclude
730+
privateLinkPrivateDnsZonesToExclude: privateLinkPrivateDnsZonesToExclude
731+
virtualNetworkLinks: [
732+
for vnetId in parVirtualNetworkResourceIdsToLinkTo: {
733+
virtualNetworkResourceId: vnetId
734+
registrationEnabled: false
735+
resolutionPolicy: parPrivateDnsZonesFallbackToInternet ? 'NxDomainRedirect' : 'Default'
736+
}
737+
]
708738
enableTelemetry: parTelemetryOptOut ? false : true
709739
tags: parTags
710740
lock: {

0 commit comments

Comments
 (0)