Skip to content

Commit

Permalink
[Modules] Simplified DNS Forwarding Rule Input Parameter (#3413)
Browse files Browse the repository at this point in the history
* Refactored parameter

* Added output

* Update to latest

* Update to latest

* Update to latest

* Temp disabled prefix & suffix settings

* Tried to escape value

* Update to latest

* Enhanced output

* Fallback

* Update to latest
  • Loading branch information
AlexanderSehr authored Jul 28, 2023
1 parent d42f149 commit a9de499
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ jobs:
}
Write-Verbose 'Invoke test with' -Verbose
Write-Verbose ($testContainerData | ConvertTo-Json | Out-String) -Verbose
Write-Verbose ($testContainerData | ConvertTo-Json -Depth 5 | Out-String) -Verbose
Invoke-Pester -Configuration @{
Run = @{
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/templates/validateModulePester/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ runs:
}
Write-Verbose 'Invoke test with' -Verbose
Write-Verbose ($pesterConfiguration | ConvertTo-Json | Out-String) -Verbose
Write-Verbose ($pesterConfiguration | ConvertTo-Json -Depth 5 | Out-String) -Verbose
$testResults = Invoke-Pester -Configuration $pesterConfiguration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,8 @@ module testDeployment '../../main.bicep' = {
params: {
enableDefaultTelemetry: enableDefaultTelemetry
name: '${namePrefix}${serviceShort}001'
dnsResolverOutboundEndpointIds: [
{
id: nestedDependencies.outputs.dnsResolverOutboundEndpointsId
}
dnsResolverOutboundEndpointResourceIds: [
nestedDependencies.outputs.dnsResolverOutboundEndpointsId
]
vNetLinks: [
nestedDependencies.outputs.virtualNetworkResourceId
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,8 @@ module testDeployment '../../main.bicep' = {
params: {
enableDefaultTelemetry: enableDefaultTelemetry
name: '${namePrefix}${serviceShort}001'
dnsResolverOutboundEndpointIds: [
{
id: nestedDependencies.outputs.dnsResolverOutboundEndpointsResourceId
}
dnsResolverOutboundEndpointResourceIds: [
nestedDependencies.outputs.dnsResolverOutboundEndpointsResourceId
]
}
}
26 changes: 9 additions & 17 deletions modules/network/dns-forwarding-rulesets/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ This template deploys an dns forwarding ruleset.

| Parameter Name | Type | Description |
| :-- | :-- | :-- |
| `dnsResolverOutboundEndpointIds` | array | The reference to the DNS resolver outbound endpoints that are used to route DNS queries matching the forwarding rules in the ruleset to the target DNS servers. |
| `dnsResolverOutboundEndpointResourceIds` | array | The reference to the DNS resolver outbound endpoints that are used to route DNS queries matching the forwarding rules in the ruleset to the target DNS servers. |
| `name` | string | Name of the DNS Forwarding Ruleset. |

**Optional parameters**
Expand Down Expand Up @@ -173,10 +173,8 @@ module dnsForwardingRulesets './network/dns-forwarding-rulesets/main.bicep' = {
name: '${uniqueString(deployment().name, location)}-test-ndfrscom'
params: {
// Required parameters
dnsResolverOutboundEndpointIds: [
{
id: '<id>'
}
dnsResolverOutboundEndpointResourceIds: [
'<dnsResolverOutboundEndpointsId>'
]
name: 'ndfrscom001'
// Non-required parameters
Expand Down Expand Up @@ -228,11 +226,9 @@ module dnsForwardingRulesets './network/dns-forwarding-rulesets/main.bicep' = {
"contentVersion": "1.0.0.0",
"parameters": {
// Required parameters
"dnsResolverOutboundEndpointIds": {
"dnsResolverOutboundEndpointResourceIds": {
"value": [
{
"id": "<id>"
}
"<dnsResolverOutboundEndpointsId>"
]
},
"name": {
Expand Down Expand Up @@ -300,10 +296,8 @@ module dnsForwardingRulesets './network/dns-forwarding-rulesets/main.bicep' = {
name: '${uniqueString(deployment().name, location)}-test-ndfrsmin'
params: {
// Required parameters
dnsResolverOutboundEndpointIds: [
{
id: '<id>'
}
dnsResolverOutboundEndpointResourceIds: [
'<dnsResolverOutboundEndpointsResourceId>'
]
name: 'ndfrsmin001'
// Non-required parameters
Expand All @@ -325,11 +319,9 @@ module dnsForwardingRulesets './network/dns-forwarding-rulesets/main.bicep' = {
"contentVersion": "1.0.0.0",
"parameters": {
// Required parameters
"dnsResolverOutboundEndpointIds": {
"dnsResolverOutboundEndpointResourceIds": {
"value": [
{
"id": "<id>"
}
"<dnsResolverOutboundEndpointsResourceId>"
]
},
"name": {
Expand Down
6 changes: 4 additions & 2 deletions modules/network/dns-forwarding-rulesets/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ param roleAssignments array = []
param tags object = {}

@description('Required. The reference to the DNS resolver outbound endpoints that are used to route DNS queries matching the forwarding rules in the ruleset to the target DNS servers.')
param dnsResolverOutboundEndpointIds array
param dnsResolverOutboundEndpointResourceIds array

@description('Optional. Array of forwarding rules.')
param forwardingRules array = []
Expand Down Expand Up @@ -48,7 +48,9 @@ resource dnsForwardingRuleset 'Microsoft.Network/dnsForwardingRulesets@2022-07-0
location: location
tags: tags
properties: {
dnsResolverOutboundEndpoints: dnsResolverOutboundEndpointIds
dnsResolverOutboundEndpoints: [for dnsResolverOutboundEndpointResourceId in dnsResolverOutboundEndpointResourceIds: {
id: dnsResolverOutboundEndpointResourceId
}]
}
}

Expand Down
42 changes: 39 additions & 3 deletions modules/network/dns-forwarding-rulesets/main.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.18.4.5664",
"templateHash": "6120226132023367818"
}
},
"parameters": {
"name": {
"type": "string",
Expand Down Expand Up @@ -42,7 +49,7 @@
"description": "Optional. Tags of the resource."
}
},
"dnsResolverOutboundEndpointIds": {
"dnsResolverOutboundEndpointResourceIds": {
"type": "array",
"metadata": {
"description": "Required. The reference to the DNS resolver outbound endpoints that are used to route DNS queries matching the forwarding rules in the ruleset to the target DNS servers."
Expand Down Expand Up @@ -92,7 +99,15 @@
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"properties": {
"dnsResolverOutboundEndpoints": "[parameters('dnsResolverOutboundEndpointIds')]"
"copy": [
{
"name": "dnsResolverOutboundEndpoints",
"count": "[length(parameters('dnsResolverOutboundEndpointResourceIds'))]",
"input": {
"id": "[parameters('dnsResolverOutboundEndpointResourceIds')[copyIndex('dnsResolverOutboundEndpoints')]]"
}
}
]
}
},
{
Expand Down Expand Up @@ -142,6 +157,13 @@
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.18.4.5664",
"templateHash": "15974628788273884251"
}
},
"parameters": {
"name": {
"type": "string",
Expand Down Expand Up @@ -279,6 +301,13 @@
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.18.4.5664",
"templateHash": "15625871831521285672"
}
},
"parameters": {
"dnsForwardingRulesetName": {
"type": "string",
Expand Down Expand Up @@ -400,6 +429,13 @@
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.18.4.5664",
"templateHash": "5621141103615196068"
}
},
"parameters": {
"principalIds": {
"type": "array",
Expand Down Expand Up @@ -570,4 +606,4 @@
"value": "[reference(resourceId('Microsoft.Network/dnsForwardingRulesets', parameters('name')), '2022-07-01', 'full').location]"
}
}
}
}
2 changes: 1 addition & 1 deletion utilities/pipelines/sharedScripts/Add-YamlListToFile.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ function Add-YamlListToFile {
# Process key value pairs in the list
foreach ($Key in ($KeyValuePair.Keys.split(' ') | Sort-Object)) {
Write-Verbose ('Setting environment variable [{0}] with value [{1}]' -f $Key, $KeyValuePair[$Key]) -Verbose
Write-Output "$Key=$($KeyValuePair[$Key])" | Out-File -FilePath $OutputFilePath -Encoding utf-8 -Append
Write-Output "$Key=$($KeyValuePair[$Key])" | Out-File -FilePath $OutputFilePath -Encoding 'utf-8' -Append
}
}

Expand Down

0 comments on commit a9de499

Please sign in to comment.