From 11ea411f113cb2a7b01f8ad34ada8cadaea35872 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 4 Sep 2022 18:52:03 +0200 Subject: [PATCH 01/11] Updated AzureBastion to new dependency approach --- .github/workflows/ms.network.bastionhosts.yml | 3 +- .../.test/custompip.parameters.json | 37 ----- .../.test/custompip/dependencies.bicep | 39 +++++ .../.test/custompip/deploy.test.bicep | 70 +++++++++ .../.test/default/dependencies.bicep | 50 +++++++ .../.test/default/deploy.test.bicep | 83 +++++++++++ .../bastionHosts/.test/min.parameters.json | 12 -- .../bastionHosts/.test/min/dependencies.bicep | 28 ++++ .../bastionHosts/.test/min/deploy.test.bicep | 46 ++++++ .../bastionHosts/.test/parameters.json | 61 -------- .../Microsoft.Network/bastionHosts/readme.md | 136 +++++++++--------- 11 files changed, 385 insertions(+), 180 deletions(-) delete mode 100644 modules/Microsoft.Network/bastionHosts/.test/custompip.parameters.json create mode 100644 modules/Microsoft.Network/bastionHosts/.test/custompip/dependencies.bicep create mode 100644 modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep create mode 100644 modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep create mode 100644 modules/Microsoft.Network/bastionHosts/.test/default/deploy.test.bicep delete mode 100644 modules/Microsoft.Network/bastionHosts/.test/min.parameters.json create mode 100644 modules/Microsoft.Network/bastionHosts/.test/min/dependencies.bicep create mode 100644 modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep delete mode 100644 modules/Microsoft.Network/bastionHosts/.test/parameters.json diff --git a/.github/workflows/ms.network.bastionhosts.yml b/.github/workflows/ms.network.bastionhosts.yml index afcedb67f4..16edb95875 100644 --- a/.github/workflows/ms.network.bastionhosts.yml +++ b/.github/workflows/ms.network.bastionhosts.yml @@ -106,8 +106,7 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/modules/Microsoft.Network/bastionHosts/.test/custompip.parameters.json b/modules/Microsoft.Network/bastionHosts/.test/custompip.parameters.json deleted file mode 100644 index dbb195e70f..0000000000 --- a/modules/Microsoft.Network/bastionHosts/.test/custompip.parameters.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-bas-custompip-001" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-custompip-bas" - }, - "publicIPAddressObject": { - "value": { - "name": "adp-<>-az-pip-custom-x-bas", - "publicIPPrefixResourceId": "", - "publicIPAllocationMethod": "Static", - "skuName": "Standard", - "skuTier": "Regional", - "roleAssignments": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ], - "diagnosticMetricsToEnable": [ - "AllMetrics" - ], - "diagnosticLogCategoriesToEnable": [ - "DDoSProtectionNotifications", - "DDoSMitigationFlowLogs", - "DDoSMitigationReports" - ] - } - } - } -} diff --git a/modules/Microsoft.Network/bastionHosts/.test/custompip/dependencies.bicep b/modules/Microsoft.Network/bastionHosts/.test/custompip/dependencies.bicep new file mode 100644 index 0000000000..a3cab26da9 --- /dev/null +++ b/modules/Microsoft.Network/bastionHosts/.test/custompip/dependencies.bicep @@ -0,0 +1,39 @@ +@description('Optional. The location to deploy to.') +param location string = resourceGroup().location + +@description('Required. The name of the Virtual Network to create.') +param virtualNetworkName string + +@description('Required. The name of the Managed Identity to create.') +param managedIdentityName string + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +@description('The resource ID of the created Virtual Network.') +output virtualNetworkResourceId string = virtualNetwork.id + +@description('The principal ID of the created Managed Identity.') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId diff --git a/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep new file mode 100644 index 0000000000..7e888227ec --- /dev/null +++ b/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep @@ -0,0 +1,70 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'nbhctmpip' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' + managedIdentityName: 'dep-<>-msi-${serviceShort}' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + vNetId: resourceGroupResources.outputs.virtualNetworkResourceId + publicIPAddressObject: { + diagnosticLogCategoriesToEnable: [ + 'DDoSMitigationFlowLogs' + 'DDoSMitigationReports' + 'DDoSProtectionNotifications' + ] + diagnosticMetricsToEnable: [ + 'AllMetrics' + ] + name: 'adp-<>-az-pip-custom-x-bas' + publicIPAllocationMethod: 'Static' + publicIPPrefixResourceId: '' + roleAssignments: [ + { + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + roleDefinitionIdOrName: 'Reader' + } + ] + skuName: 'Standard' + skuTier: 'Regional' + } + } +} diff --git a/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep b/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep new file mode 100644 index 0000000000..341f7e8e92 --- /dev/null +++ b/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep @@ -0,0 +1,50 @@ +@description('Optional. The location to deploy to.') +param location string = resourceGroup().location + +@description('Required. The name of the Virtual Network to create.') +param virtualNetworkName string + +@description('Required. The name of the Public IP to create.') +param publicIPName string + +@description('Required. The name of the Managed Identity to create.') +param managedIdentityName string + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +resource publicIP 'Microsoft.Network/publicIPAddresses@2022-01-01' = { + name: publicIPName + location: location +} + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +@description('The resource ID of the created Virtual Network.') +output virtualNetworkResourceId string = virtualNetwork.id + +@description('The resource ID of the created Public IP.') +output publicIPResourceId string = publicIP.id + +@description('The principal ID of the created Managed Identity.') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId diff --git a/modules/Microsoft.Network/bastionHosts/.test/default/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/default/deploy.test.bicep new file mode 100644 index 0000000000..669def392a --- /dev/null +++ b/modules/Microsoft.Network/bastionHosts/.test/default/deploy.test.bicep @@ -0,0 +1,83 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'nbhdef' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' + publicIPName: 'dep-<>-pip-${serviceShort}' + managedIdentityName: 'dep-<>-msi-${serviceShort}' + } +} + +// Diagnostics +// =========== +module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' + params: { + storageAccountName: 'dep<>diasa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' + location: location + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + vNetId: resourceGroupResources.outputs.virtualNetworkResourceId + azureBastionSubnetPublicIpId: resourceGroupResources.outputs.publicIPResourceId + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + disableCopyPaste: true + enableFileCopy: false + enableIpConnect: false + enableShareableLink: false + lock: 'CanNotDelete' + roleAssignments: [ + { + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + roleDefinitionIdOrName: 'Reader' + } + ] + scaleUnits: 4 + skuType: 'Standard' + } +} diff --git a/modules/Microsoft.Network/bastionHosts/.test/min.parameters.json b/modules/Microsoft.Network/bastionHosts/.test/min.parameters.json deleted file mode 100644 index 6ef38853fb..0000000000 --- a/modules/Microsoft.Network/bastionHosts/.test/min.parameters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-bas-min-001" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-002" - } - } -} diff --git a/modules/Microsoft.Network/bastionHosts/.test/min/dependencies.bicep b/modules/Microsoft.Network/bastionHosts/.test/min/dependencies.bicep new file mode 100644 index 0000000000..1b0458c3e3 --- /dev/null +++ b/modules/Microsoft.Network/bastionHosts/.test/min/dependencies.bicep @@ -0,0 +1,28 @@ +@description('Optional. The location to deploy to.') +param location string = resourceGroup().location + +@description('Required. The name of the Virtual Network to create.') +param virtualNetworkName string + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +@description('The resource ID of the created Virtual Network.') +output virtualNetworkResourceId string = virtualNetwork.id diff --git a/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep new file mode 100644 index 0000000000..9307924ad1 --- /dev/null +++ b/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep @@ -0,0 +1,46 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'nbhmin' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + vNetId: resourceGroupResources.outputs.virtualNetworkResourceId + } +} diff --git a/modules/Microsoft.Network/bastionHosts/.test/parameters.json b/modules/Microsoft.Network/bastionHosts/.test/parameters.json deleted file mode 100644 index a00daefbae..0000000000 --- a/modules/Microsoft.Network/bastionHosts/.test/parameters.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-bas-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001" - }, - "azureBastionSubnetPublicIpId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-bas" - }, - "skuType": { - "value": "Standard" - }, - "scaleUnits": { - "value": 4 - }, - "disableCopyPaste": { - "value": true - }, - "enableFileCopy": { - "value": false - }, - "enableIpConnect": { - "value": false - }, - "enableShareableLink": { - "value": false - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} diff --git a/modules/Microsoft.Network/bastionHosts/readme.md b/modules/Microsoft.Network/bastionHosts/readme.md index 18e5308d1f..074ebac90d 100644 --- a/modules/Microsoft.Network/bastionHosts/readme.md +++ b/modules/Microsoft.Network/bastionHosts/readme.md @@ -307,11 +307,11 @@ The following module usage examples are retrieved from the content of the files ```bicep module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-BastionHosts' + name: '${uniqueString(deployment().name)}-test-nbhctmpip' params: { // Required parameters - name: '<>-az-bas-custompip-001' - vNetId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-custompip-bas' + name: '<>nbhctmpip001' + vNetId: '' // Non-required parameters publicIPAddressObject: { diagnosticLogCategoriesToEnable: [ @@ -328,7 +328,7 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } @@ -354,10 +354,10 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { "parameters": { // Required parameters "name": { - "value": "<>-az-bas-custompip-001" + "value": "<>nbhctmpip001" }, "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-custompip-bas" + "value": "" }, // Non-required parameters "publicIPAddressObject": { @@ -376,7 +376,7 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { "roleAssignments": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -392,7 +392,7 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = {

-

Example 2: Min

+

Example 2: Default

@@ -400,61 +400,18 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { ```bicep module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-BastionHosts' + name: '${uniqueString(deployment().name)}-test-nbhdef' params: { // Required parameters - name: '<>-az-bas-min-001' - vNetId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-002' - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "name": { - "value": "<>-az-bas-min-001" - }, - "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-002" - } - } -} -``` - -
-

- -

Example 3: Parameters

- -
- -via Bicep module - -```bicep -module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-BastionHosts' - params: { - // Required parameters - name: '<>-az-bas-x-001' - vNetId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001' + name: '<>nbhdef001' + vNetId: '' // Non-required parameters - azureBastionSubnetPublicIpId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-bas' - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' + azureBastionSubnetPublicIpId: '' + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' disableCopyPaste: true enableFileCopy: false enableIpConnect: false @@ -463,7 +420,7 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } @@ -488,29 +445,29 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { "parameters": { // Required parameters "name": { - "value": "<>-az-bas-x-001" + "value": "<>nbhdef001" }, "vNetId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001" + "value": "" }, // Non-required parameters "azureBastionSubnetPublicIpId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-bas" + "value": "" }, "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + "value": "" }, "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" + "value": "" }, "diagnosticLogsRetentionInDays": { "value": 7 }, "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + "value": "" }, "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + "value": "" }, "disableCopyPaste": { "value": true @@ -531,7 +488,7 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { "value": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -549,3 +506,46 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = {

+ +

Example 3: Min

+ +
+ +via Bicep module + +```bicep +module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-test-nbhmin' + params: { + // Required parameters + name: '<>nbhmin001' + vNetId: '' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "<>nbhmin001" + }, + "vNetId": { + "value": "" + } + } +} +``` + +
+

From 9d697896ff6b6fed67e40ec2eb7e36b29a00fa31 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 4 Sep 2022 20:02:13 +0200 Subject: [PATCH 02/11] Updated subnet --- .../bastionHosts/.test/custompip/dependencies.bicep | 2 +- .../bastionHosts/.test/default/dependencies.bicep | 2 +- .../Microsoft.Network/bastionHosts/.test/min/dependencies.bicep | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/Microsoft.Network/bastionHosts/.test/custompip/dependencies.bicep b/modules/Microsoft.Network/bastionHosts/.test/custompip/dependencies.bicep index a3cab26da9..c05d23eeb9 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/custompip/dependencies.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/custompip/dependencies.bicep @@ -18,7 +18,7 @@ resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { } subnets: [ { - name: 'defaultSubnet' + name: 'AzureBastionSubnet' properties: { addressPrefix: '10.0.0.0/24' } diff --git a/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep b/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep index 341f7e8e92..d0d5a6eb7d 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep @@ -21,7 +21,7 @@ resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { } subnets: [ { - name: 'defaultSubnet' + name: 'AzureBastionSubnet' properties: { addressPrefix: '10.0.0.0/24' } diff --git a/modules/Microsoft.Network/bastionHosts/.test/min/dependencies.bicep b/modules/Microsoft.Network/bastionHosts/.test/min/dependencies.bicep index 1b0458c3e3..8b08c39916 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/min/dependencies.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/min/dependencies.bicep @@ -15,7 +15,7 @@ resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { } subnets: [ { - name: 'defaultSubnet' + name: 'AzureBastionSubnet' properties: { addressPrefix: '10.0.0.0/24' } From b1b7b695b05045b7a6f5120314755bd69b12efd1 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 4 Sep 2022 20:05:52 +0200 Subject: [PATCH 03/11] Update to latest --- .../bastionHosts/.test/default/dependencies.bicep | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep b/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep index d0d5a6eb7d..ea73d90358 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep @@ -33,6 +33,10 @@ resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { resource publicIP 'Microsoft.Network/publicIPAddresses@2022-01-01' = { name: publicIPName location: location + sku: { + name: 'Standard' + tier: 'Regional' + } } resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { From 8cbfe292a77913d0df113f6529ab262b414f206c Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 4 Sep 2022 20:29:14 +0200 Subject: [PATCH 04/11] Updated pip creation --- .../bastionHosts/.test/default/dependencies.bicep | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep b/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep index ea73d90358..53311deb6c 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep @@ -37,6 +37,9 @@ resource publicIP 'Microsoft.Network/publicIPAddresses@2022-01-01' = { name: 'Standard' tier: 'Regional' } + properties: { + publicIPAllocationMethod: 'Static' + } } resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { From d77be00556fbb572a1844e0df2e15eff1bec6186 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 8 Sep 2022 19:14:56 +0200 Subject: [PATCH 05/11] Updated folder default to common. --- .../{default => common}/dependencies.bicep | 0 .../{default => common}/deploy.test.bicep | 0 .../Microsoft.Network/bastionHosts/readme.md | 188 +++++++++--------- 3 files changed, 94 insertions(+), 94 deletions(-) rename modules/Microsoft.Network/bastionHosts/.test/{default => common}/dependencies.bicep (100%) rename modules/Microsoft.Network/bastionHosts/.test/{default => common}/deploy.test.bicep (100%) diff --git a/modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep b/modules/Microsoft.Network/bastionHosts/.test/common/dependencies.bicep similarity index 100% rename from modules/Microsoft.Network/bastionHosts/.test/default/dependencies.bicep rename to modules/Microsoft.Network/bastionHosts/.test/common/dependencies.bicep diff --git a/modules/Microsoft.Network/bastionHosts/.test/default/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep similarity index 100% rename from modules/Microsoft.Network/bastionHosts/.test/default/deploy.test.bicep rename to modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep diff --git a/modules/Microsoft.Network/bastionHosts/readme.md b/modules/Microsoft.Network/bastionHosts/readme.md index 074ebac90d..e46a810fa4 100644 --- a/modules/Microsoft.Network/bastionHosts/readme.md +++ b/modules/Microsoft.Network/bastionHosts/readme.md @@ -299,100 +299,7 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Custompip

- -
- -via Bicep module - -```bicep -module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-test-nbhctmpip' - params: { - // Required parameters - name: '<>nbhctmpip001' - vNetId: '' - // Non-required parameters - publicIPAddressObject: { - diagnosticLogCategoriesToEnable: [ - 'DDoSMitigationFlowLogs' - 'DDoSMitigationReports' - 'DDoSProtectionNotifications' - ] - diagnosticMetricsToEnable: [ - 'AllMetrics' - ] - name: 'adp-<>-az-pip-custom-x-bas' - publicIPAllocationMethod: 'Static' - publicIPPrefixResourceId: '' - roleAssignments: [ - { - principalIds: [ - '' - ] - roleDefinitionIdOrName: 'Reader' - } - ] - skuName: 'Standard' - skuTier: 'Regional' - } - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "name": { - "value": "<>nbhctmpip001" - }, - "vNetId": { - "value": "" - }, - // Non-required parameters - "publicIPAddressObject": { - "value": { - "diagnosticLogCategoriesToEnable": [ - "DDoSMitigationFlowLogs", - "DDoSMitigationReports", - "DDoSProtectionNotifications" - ], - "diagnosticMetricsToEnable": [ - "AllMetrics" - ], - "name": "adp-<>-az-pip-custom-x-bas", - "publicIPAllocationMethod": "Static", - "publicIPPrefixResourceId": "", - "roleAssignments": [ - { - "principalIds": [ - "" - ], - "roleDefinitionIdOrName": "Reader" - } - ], - "skuName": "Standard", - "skuTier": "Regional" - } - } - } -} -``` - -
-

- -

Example 2: Default

+

Example 1: Common

@@ -507,6 +414,99 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = {

+

Example 2: Custompip

+ +
+ +via Bicep module + +```bicep +module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-test-nbhctmpip' + params: { + // Required parameters + name: '<>nbhctmpip001' + vNetId: '' + // Non-required parameters + publicIPAddressObject: { + diagnosticLogCategoriesToEnable: [ + 'DDoSMitigationFlowLogs' + 'DDoSMitigationReports' + 'DDoSProtectionNotifications' + ] + diagnosticMetricsToEnable: [ + 'AllMetrics' + ] + name: 'adp-<>-az-pip-custom-x-bas' + publicIPAllocationMethod: 'Static' + publicIPPrefixResourceId: '' + roleAssignments: [ + { + principalIds: [ + '' + ] + roleDefinitionIdOrName: 'Reader' + } + ] + skuName: 'Standard' + skuTier: 'Regional' + } + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "name": { + "value": "<>nbhctmpip001" + }, + "vNetId": { + "value": "" + }, + // Non-required parameters + "publicIPAddressObject": { + "value": { + "diagnosticLogCategoriesToEnable": [ + "DDoSMitigationFlowLogs", + "DDoSMitigationReports", + "DDoSProtectionNotifications" + ], + "diagnosticMetricsToEnable": [ + "AllMetrics" + ], + "name": "adp-<>-az-pip-custom-x-bas", + "publicIPAllocationMethod": "Static", + "publicIPPrefixResourceId": "", + "roleAssignments": [ + { + "principalIds": [ + "" + ], + "roleDefinitionIdOrName": "Reader" + } + ], + "skuName": "Standard", + "skuTier": "Regional" + } + } + } +} +``` + +
+

+

Example 3: Min

From 788a6b4f66bb340e577230ce853ba2e6d857bc37 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 9 Sep 2022 12:52:00 +0200 Subject: [PATCH 06/11] Update to latest --- .../bastionHosts/.test/common/deploy.test.bicep | 4 ++-- .../bastionHosts/.test/custompip/deploy.test.bicep | 2 +- .../bastionHosts/.test/min/deploy.test.bicep | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep index 669def392a..992554eebd 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep @@ -10,8 +10,8 @@ param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') -param serviceShort string = 'nbhdef' +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'nbhcom' // =========== // // Deployments // diff --git a/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep index 7e888227ec..6846065477 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'nbhctmpip' // =========== // diff --git a/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep index 9307924ad1..4cf3c18bfc 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'nbhmin' // =========== // From 87eaa4ac7329a131f10b42037eb207e7a8b8e6af Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 9 Sep 2022 13:05:11 +0200 Subject: [PATCH 07/11] Update to latest --- .../bastionHosts/.test/common/deploy.test.bicep | 6 +++--- .../bastionHosts/.test/custompip/deploy.test.bicep | 6 +++--- .../bastionHosts/.test/min/deploy.test.bicep | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep index 992554eebd..77692ce73d 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep @@ -3,14 +3,14 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') +@description('Optional. The name of the resource group to deploy for a testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' -@description('Optional. The location to deploy resources to') +@description('Optional. The location to deploy resources to.') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') param serviceShort string = 'nbhcom' // =========== // diff --git a/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep index 6846065477..f4dd5aad26 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep @@ -3,14 +3,14 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') +@description('Optional. The name of the resource group to deploy for a testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' -@description('Optional. The location to deploy resources to') +@description('Optional. The location to deploy resources to.') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') param serviceShort string = 'nbhctmpip' // =========== // diff --git a/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep index 4cf3c18bfc..eb17e4c03a 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep @@ -3,14 +3,14 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') +@description('Optional. The name of the resource group to deploy for a testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' -@description('Optional. The location to deploy resources to') +@description('Optional. The location to deploy resources to.') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') param serviceShort string = 'nbhmin' // =========== // From 1f71cb584752f2386b54bdee05b19bff027f78cf Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 9 Sep 2022 13:57:58 +0200 Subject: [PATCH 08/11] Update to latest --- modules/Microsoft.Network/bastionHosts/readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/Microsoft.Network/bastionHosts/readme.md b/modules/Microsoft.Network/bastionHosts/readme.md index 44f51e4c4b..31f58006d5 100644 --- a/modules/Microsoft.Network/bastionHosts/readme.md +++ b/modules/Microsoft.Network/bastionHosts/readme.md @@ -308,10 +308,10 @@ The following module usage examples are retrieved from the content of the files ```bicep module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-test-nbhdef' + name: '${uniqueString(deployment().name)}-test-nbhcom' params: { // Required parameters - name: '<>nbhdef001' + name: '<>nbhcom001' vNetId: '' // Non-required parameters azureBastionSubnetPublicIpId: '' @@ -353,7 +353,7 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { "parameters": { // Required parameters "name": { - "value": "<>nbhdef001" + "value": "<>nbhcom001" }, "vNetId": { "value": "" From ddefc73a9ce2223381019ec6c18f6a63b1b02dbf Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Mon, 19 Sep 2022 00:04:21 +0200 Subject: [PATCH 09/11] Update modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep --- .../bastionHosts/.test/common/deploy.test.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep index 77692ce73d..73ca429431 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/common/deploy.test.bicep @@ -3,7 +3,7 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes.') +@description('Optional. The name of the resource group to deploy for testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' From 8fb4032fabf2cd8b77b55a82e37e57701ffd8a91 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Mon, 19 Sep 2022 00:04:39 +0200 Subject: [PATCH 10/11] Update modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep --- .../bastionHosts/.test/custompip/deploy.test.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep index f4dd5aad26..b9534e142b 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/custompip/deploy.test.bicep @@ -3,7 +3,7 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes.') +@description('Optional. The name of the resource group to deploy for testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg' From 57925f894cc41fd205be32b3b9c53836bda6377f Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Mon, 19 Sep 2022 00:04:52 +0200 Subject: [PATCH 11/11] Update modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep --- .../Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep b/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep index eb17e4c03a..b84b6622b0 100644 --- a/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep +++ b/modules/Microsoft.Network/bastionHosts/.test/min/deploy.test.bicep @@ -3,7 +3,7 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes.') +@description('Optional. The name of the resource group to deploy for testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.network.bastionhosts-${serviceShort}-rg'