From 5ce1f897e65fae24140b6a7ebc6158c0f4edf7fc Mon Sep 17 00:00:00 2001 From: Federico Arambarri Date: Tue, 18 Jun 2024 14:46:05 -0300 Subject: [PATCH] rg names avnm-mesh-connected-group --- solutions/avnm-mesh-connected-group/README.md | 51 +++++++++++-------- .../bicep/main.bicep | 8 +-- .../bicep/modules/avnm.bicep | 2 +- .../bicep/modules/avnmDeploymentScript.bicep | 2 +- .../bicep/modules/hub.bicep | 2 +- .../bicep/modules/spoke.bicep | 2 +- 6 files changed, 36 insertions(+), 31 deletions(-) diff --git a/solutions/avnm-mesh-connected-group/README.md b/solutions/avnm-mesh-connected-group/README.md index 414f4015..7969ca72 100644 --- a/solutions/avnm-mesh-connected-group/README.md +++ b/solutions/avnm-mesh-connected-group/README.md @@ -1,13 +1,13 @@ --- page_type: sample languages: -- azurepowershell -- azurecli + - azurepowershell + - azurecli products: - azure - azure-virtual-network - virtual-network-manager -description: This sample deploys Virtual Networks and implements inter-network connectivity using Azure Virtual Network Manager and a mesh connectivity topology. +description: This sample deploys Virtual Networks and implements inter-network connectivity using Azure Virtual Network Manager and a mesh connectivity topology. urlFragment: avnm-mesh-connected-group azureDeploy: https://raw.githubusercontent.com/mspnp/samples/main/solutions/avnm-mesh-connected-group/azuredeploy.json --- @@ -20,35 +20,46 @@ This sample deploys Azure virtual networks, using Azure Virtual Network Manager **Default Deployment with Static Network Group Membership** -```azurecli-interactive -az deployment subscription create \ - --template-uri https://raw.githubusercontent.com/mspnp/samples/main/solutions/avnm-mesh-connected-group/armTemplates/azuredeploy.json \ - --parameters location=eastus +```bash +LOCATION=eastus +RESOURCEGROUP_NAME=rg-avnm-mesh-${LOCATION} + +curl -o main.bicep https://raw.githubusercontent.com/mspnp/samples/main/solutions/avnm-mesh-connected-group/bicep/main.bicep +mkdir modules +cd modules +curl -o avnm.bicep https://raw.githubusercontent.com/mspnp/samples/main/solutions/avnm-mesh-connected-group/bicep/modules/avnm.bicep +curl -o avnmDeploymentScript.bicep https://raw.githubusercontent.com/mspnp/samples/main/solutions/avnm-mesh-connected-group/bicep/modules/avnmDeploymentScript.bicep +curl -o dynMemberPolicy.bicep https://raw.githubusercontent.com/mspnp/samples/main/solutions/avnm-mesh-connected-group/bicep/modules/dynMemberPolicy.bicep +curl -o hub.bicep https://raw.githubusercontent.com/mspnp/samples/main/solutions/avnm-mesh-connected-group/bicep/modules/hub.bicep +curl -o spoke.bicep https://raw.githubusercontent.com/mspnp/samples/main/solutions/avnm-mesh-connected-group/bicep/modules/spoke.bicep +cd .. + +az deployment sub create --template-file main.bicep -n avnm-mesh-connected-group -l ${LOCATION} --parameters resourceGroupName=${RESOURCEGROUP_NAME} ``` **Default Deployment with Dynamic Network Group Membership** -Include the deployment parameter `networkGroupMembershipType` with a value of `dynamic` to use Azure Policy to dynamically manage the membership of the network group. +Include the deployment parameter `networkGroupMembershipType` with a value of `dynamic` to use Azure Policy to dynamically manage the membership of the network group. ->![NOTE] This deployment requires permissions to create and assign Azure Policy at the target subscription level. +> ![NOTE] This deployment requires permissions to create and assign Azure Policy at the target subscription level. -```azurecli-interactive -az deployment subscription create \ - --template-uri https://raw.githubusercontent.com/mspnp/samples/main/solutions/avnm-mesh-connected-group/armTemplates/azuredeploy.json \ - --parameters networkGroupMembershipType=dynamic location=eastus +```bash +az deployment sub create --template-file main.bicep -n avnm-mesh-connected-group -l ${LOCATION} --parameters resourceGroupName=${RESOURCEGROUP_NAME} networkGroupMembershipType=dynamic ``` ## Solution deployment parameters -| Parameter | Type | Description | Default | -|---|---|---|--| -| `location` | string | Deployment location. Location must support availability zones. | `resourceGroup().location` | -| `deployVirtualMachines` | bool | If true, deploys one basic Linux virtual machine to spoke one and one basic Windows virtual machine to spoke two. | `false` | -| `networkGroupMembershipType` | string | Specify either 'static' or 'dynamic' network group membership. Default: 'static' | `false` | +| Parameter | Type | Description | Default | +| ---------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------- | -------------------------- | +| `location` | string | Deployment location. Location must support availability zones. | `resourceGroup().location` | +| `deployVirtualMachines` | bool | If true, deploys one basic Linux virtual machine to spoke one and one basic Windows virtual machine to spoke two. | `false` | +| `networkGroupMembershipType` | string | Specify either 'static' or 'dynamic' network group membership. Default: 'static' | `false` | -## Bicep implementation +## Clean up -The links above use JSON Azure Resource Manager (ARM) templates to support network referencing. The ARM templates were generated from the following [source bicep file](https://github.com/mspnp/samples/blob/main/solutions/avnm-mesh-connected-group/bicep), which has additional comments and considerations. +```bash +az group delete --name ${RESOURCEGROUP_NAME} --yes +``` ## Microsoft Open Source Code of Conduct diff --git a/solutions/avnm-mesh-connected-group/bicep/main.bicep b/solutions/avnm-mesh-connected-group/bicep/main.bicep index 35b9a833..f49fe757 100644 --- a/solutions/avnm-mesh-connected-group/bicep/main.bicep +++ b/solutions/avnm-mesh-connected-group/bicep/main.bicep @@ -8,7 +8,7 @@ param resourceGroupName string @description('The location of this regional hub. All resources, including spoke resources, will be deployed to this region.') @minLength(6) -param location string +param location string = deployment().location // Network Group Membership Options: // @@ -31,7 +31,6 @@ module hub 'modules/hub.bicep' = { name: 'vnet-hub' scope: resourceGroup params: { - location: location } } @@ -40,7 +39,6 @@ module spokeA 'modules/spoke.bicep' = { name: 'spoke001' scope: resourceGroup params: { - location: location spokeName: 'spoke001' spokeVnetPrefix: '10.100.0.0/22' } @@ -51,7 +49,6 @@ module spokeB 'modules/spoke.bicep' = { name: 'spoke002' scope: resourceGroup params: { - location: location spokeName: 'spoke002' spokeVnetPrefix: '10.101.0.0/22' } @@ -62,7 +59,6 @@ module spokeC 'modules/spoke.bicep' = { name: 'spoke003' scope: resourceGroup params: { - location: location spokeName: 'spoke003' spokeVnetPrefix: '10.102.0.0/22' } @@ -73,7 +69,6 @@ module spokeD 'modules/spoke.bicep' = { name: 'spoke004' scope: resourceGroup params: { - location: location spokeName: 'spoke004' spokeVnetPrefix: '10.103.0.0/22' } @@ -94,7 +89,6 @@ module avnm 'modules/avnm.bicep' = { name: 'avnm' scope: resourceGroup params: { - location: location hubVnetId: hub.outputs.hubVnetId spokeNetworkGroupMembers: [ spokeA.outputs.vnetId diff --git a/solutions/avnm-mesh-connected-group/bicep/modules/avnm.bicep b/solutions/avnm-mesh-connected-group/bicep/modules/avnm.bicep index f8d2e281..3db4378a 100644 --- a/solutions/avnm-mesh-connected-group/bicep/modules/avnm.bicep +++ b/solutions/avnm-mesh-connected-group/bicep/modules/avnm.bicep @@ -1,4 +1,4 @@ -param location string +param location string = resourceGroup().location param spokeNetworkGroupMembers array param hubVnetId string param networkGroupMembershipType string diff --git a/solutions/avnm-mesh-connected-group/bicep/modules/avnmDeploymentScript.bicep b/solutions/avnm-mesh-connected-group/bicep/modules/avnmDeploymentScript.bicep index 2444454b..c50a17c1 100644 --- a/solutions/avnm-mesh-connected-group/bicep/modules/avnmDeploymentScript.bicep +++ b/solutions/avnm-mesh-connected-group/bicep/modules/avnmDeploymentScript.bicep @@ -1,4 +1,4 @@ -param location string +param location string = resourceGroup().location param userAssignedIdentityId string param networkManagerName string param configurationId string diff --git a/solutions/avnm-mesh-connected-group/bicep/modules/hub.bicep b/solutions/avnm-mesh-connected-group/bicep/modules/hub.bicep index 8ed07510..f5f41cbe 100644 --- a/solutions/avnm-mesh-connected-group/bicep/modules/hub.bicep +++ b/solutions/avnm-mesh-connected-group/bicep/modules/hub.bicep @@ -1,4 +1,4 @@ -param location string +param location string = resourceGroup().location @description('The regional hub network.') resource vnetHub 'Microsoft.Network/virtualNetworks@2022-01-01' = { diff --git a/solutions/avnm-mesh-connected-group/bicep/modules/spoke.bicep b/solutions/avnm-mesh-connected-group/bicep/modules/spoke.bicep index afa0d79b..1d81cd16 100644 --- a/solutions/avnm-mesh-connected-group/bicep/modules/spoke.bicep +++ b/solutions/avnm-mesh-connected-group/bicep/modules/spoke.bicep @@ -1,4 +1,4 @@ -param location string +param location string = resourceGroup().location param spokeName string param spokeVnetPrefix string