From e89a28d5fce1874a48ab3d1ae68f5f5f7ee5e816 Mon Sep 17 00:00:00 2001 From: Nina Maller Date: Thu, 12 Sep 2024 10:54:15 -0700 Subject: [PATCH 1/3] add docs --- .../highAvailabilitySetup/ArmTemplate.md | 75 ++++++++ ...bilityExpressRouteCircuitsARMTemplate.json | 169 ++++++++++++++++++ ...lNetworkGatewayConnectionsARMTemplate.json | 86 +++++++++ 3 files changed, 330 insertions(+) create mode 100644 application-workloads/expressroute/highAvailabilitySetup/ArmTemplate.md create mode 100644 application-workloads/expressroute/highAvailabilitySetup/NewAzHighAvailabilityExpressRouteCircuitsARMTemplate.json create mode 100644 application-workloads/expressroute/highAvailabilitySetup/NewHighAvailabilityVirtualNetworkGatewayConnectionsARMTemplate.json diff --git a/application-workloads/expressroute/highAvailabilitySetup/ArmTemplate.md b/application-workloads/expressroute/highAvailabilitySetup/ArmTemplate.md new file mode 100644 index 000000000000..770b442d5fb7 --- /dev/null +++ b/application-workloads/expressroute/highAvailabilitySetup/ArmTemplate.md @@ -0,0 +1,75 @@ +ARM template usage to create 2 circuits: + +# parameters to create 2 circuits on provider +$parameters = @{ + # circuit 1 parameters: + circuit1Location = "eastus" + circuit1Name = "circuit1" + circuit1SkuTier = "Standard" + circuit1SkuFamily = "MeteredData" + circuit1BandwidthInMbps = 1000 + circuit1ProviderName = "AT&T Netbond" + circuit1PeeringLocation = "Amsterdam" + # circuit 2 parameters: + circuit2Location = "eastus" + circuit2Name = "circuit2" + circuit2SkuTier = "Standard" + circuit2SkuFamily = "MeteredData" + circuit2BandwidthInMbps = 2000 + circuit2ProviderName = "AT&T Netbond" + circuit2PeeringLocation = "Amsterdam" +} + +# parameters to create 2 circuits on direct ports +$parameters = @{ + # circuit 1 parameters: + circuit1Location = "eastus" + circuit1Name = "circuit1" + circuit1SkuTier = "Standard" + circuit1SkuFamily = "MeteredData" + circuit1DirectId = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRoutePorts/" + circuit1BandwidthInGbps = 1 + circuit1DirectEnableRateLimiting = $true + # circuit 2 parameters: + circuit2Location = "eastus" + circuit2Name = "circuit2" + circuit2SkuTier = "Standard" + circuit2SkuFamily = "MeteredData" + circuit2DirectId = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRoutePorts/" + circuit2BandwidthInGbps = 1 + circuit2DirectEnableRateLimiting = $true +} +# Deploy the ARM template using the hashtable +New-AzResourceGroupDeployment -Name "circuitdeployment" ` + -ResourceGroupName "" ` + -TemplateFile .\NewAzHighAvailabilityExpressRouteCircuitsARMTemplate.json ` + -TemplateParameterObject $parameters + + + + +# Usage of arm template to deploy 2 connections +$parameters = @{ + # Gateway parameters: + location = "francecentral" + virtualNetworkGatewayId1 = "/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworkGateways/erVng_migrated" + # connection 1 parameters: + connectionName1 = "connection1" + routingWeight1 = 10 + expressRouteGatewayBypass1 = $false + expressRouteId1 = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRouteCircuits/providercircuit1" + # connection 2 parameters: + connectionName2 = "connection2" + routingWeight2 = 20 + expressRouteGatewayBypass2 = $false + expressRouteId2 = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRouteCircuits/providercircuit2" +} + +# Define resource group name +$resourceGroupName = "" # Replace with your resource group name + +# Deploy the ARM template using the hashtable +New-AzResourceGroupDeployment -Name "connectiondeployment" ` + -ResourceGroupName "" ` + -TemplateFile .\NewHighAvailabilityVirtualNetworkGatewayConnectionsARMTemplate.json ` + -TemplateParameterObject $parameters \ No newline at end of file diff --git a/application-workloads/expressroute/highAvailabilitySetup/NewAzHighAvailabilityExpressRouteCircuitsARMTemplate.json b/application-workloads/expressroute/highAvailabilitySetup/NewAzHighAvailabilityExpressRouteCircuitsARMTemplate.json new file mode 100644 index 000000000000..b72bb40cc58a --- /dev/null +++ b/application-workloads/expressroute/highAvailabilitySetup/NewAzHighAvailabilityExpressRouteCircuitsARMTemplate.json @@ -0,0 +1,169 @@ +{ + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "circuit1Location": { + "type": "string" + }, + "circuit1Name": { + "type": "string" + }, + "circuit1SkuTier": { + "type": "string" + }, + "circuit1SkuFamily": { + "type": "string" + }, + "circuit1BandwidthInMbps": { + "defaultValue": 1000, + "type": "int" + }, + "circuit1ProviderName": { + "defaultValue": "", + "type": "string" + }, + "circuit1PeeringLocation": { + "defaultValue": "", + "type": "string" + }, + "circuit1BandwidthInGbps": { + "defaultValue": 1, + "type": "int" + }, + "circuit1DirectId": { + "defaultValue": "", + "type": "string" + }, + "circuit1DirectEnableRateLimiting": { + "defaultValue": false, + "type": "bool" + }, + "circuit1Tags": { + "type": "object", + "defaultValue": {} + }, + "circuit2Location": { + "type": "string" + }, + "circuit2Name": { + "type": "string" + }, + "circuit2SkuTier": { + "type": "string" + }, + "circuit2SkuFamily": { + "type": "string" + }, + "circuit2BandwidthInMbps": { + "defaultValue": 1000, + "type": "int" + }, + "circuit2ProviderName": { + "defaultValue": "", + "type": "string" + }, + "circuit2PeeringLocation": { + "defaultValue": "", + "type": "string" + }, + "circuit2BandwidthInGbps": { + "defaultValue": 1, + "type": "int" + }, + "circuit2DirectId": { + "defaultValue": "", + "type": "string" + }, + "circuit2DirectEnableRateLimiting": { + "defaultValue": false, + "type": "bool" + }, + "circuit2Tags": { + "type": "object", + "defaultValue": {} + } + }, + "resources": [ + { + "type": "Microsoft.Network/expressRouteCircuits", + "apiVersion": "2023-06-01", + "name": "[parameters('circuit1Name')]", + "location": "[parameters('circuit1Location')]", + "sku": { + "name": "[concat(parameters('circuit1SkuTier'),'_', parameters('circuit1SkuFamily'))]", + "tier": "[parameters('circuit1SkuTier')]", + "family": "[parameters('circuit1SkuFamily')]" + }, + "properties": { + "expressRoutePort": { + "id": "[parameters('circuit1DirectId')]" + }, + "enableDirectPortRateLimit": "[parameters('circuit1DirectEnableRateLimiting')]", + "bandwidthInGbps": "[parameters('circuit1BandwidthInGbps')]" + }, + "tags": "[parameters('circuit1Tags')]", + "condition": "[not(empty(parameters('circuit1DirectId')))]" + }, + { + "type": "Microsoft.Network/expressRouteCircuits", + "apiVersion": "2023-06-01", + "name": "[parameters('circuit1Name')]", + "location": "[parameters('circuit1Location')]", + "sku": { + "name": "[concat(parameters('circuit1SkuTier'),'_', parameters('circuit1SkuFamily'))]", + "tier": "[parameters('circuit1SkuTier')]", + "family": "[parameters('circuit1SkuFamily')]" + }, + "properties": { + "serviceProviderProperties": { + "serviceProviderName": "[parameters('circuit1ProviderName')]", + "peeringLocation": "[parameters('circuit1PeeringLocation')]", + "bandwidthInMbps": "[parameters('circuit1BandwidthInMbps')]" + } + }, + "tags": "[parameters('circuit1Tags')]", + "condition": "[empty(parameters('circuit1DirectId'))]" + }, + { + "type": "Microsoft.Network/expressRouteCircuits", + "apiVersion": "2023-06-01", + "name": "[parameters('circuit2Name')]", + "location": "[parameters('circuit2Location')]", + "sku": { + "name": "[concat(parameters('circuit2SkuTier'),'_', parameters('circuit2SkuFamily'))]", + "tier": "[parameters('circuit2SkuTier')]", + "family": "[parameters('circuit2SkuFamily')]" + }, + "properties": { + "expressRoutePort": { + "id": "[parameters('circuit2DirectId')]" + }, + "enableDirectPortRateLimit": "[parameters('circuit2DirectEnableRateLimiting')]", + "bandwidthInGbps": "[parameters('circuit2BandwidthInGbps')]" + }, + "tags": "[parameters('circuit2Tags')]", + "condition": "[not(empty(parameters('circuit2DirectId')))]" + }, + { + "type": "Microsoft.Network/expressRouteCircuits", + "apiVersion": "2023-06-01", + "name": "[parameters('circuit2Name')]", + "location": "[parameters('circuit2Location')]", + "sku": { + "name": "[concat(parameters('circuit2SkuTier'),'_', parameters('circuit2SkuFamily'))]", + "tier": "[parameters('circuit2SkuTier')]", + "family": "[parameters('circuit2SkuFamily')]" + }, + "properties": { + "serviceProviderProperties": { + "serviceProviderName": "[parameters('circuit2ProviderName')]", + "peeringLocation": "[parameters('circuit2PeeringLocation')]", + "bandwidthInMbps": "[parameters('circuit2BandwidthInMbps')]" + } + }, + "tags": "[parameters('circuit2Tags')]", + "condition": "[empty(parameters('circuit2DirectId'))]" + } + ] + } + \ No newline at end of file diff --git a/application-workloads/expressroute/highAvailabilitySetup/NewHighAvailabilityVirtualNetworkGatewayConnectionsARMTemplate.json b/application-workloads/expressroute/highAvailabilitySetup/NewHighAvailabilityVirtualNetworkGatewayConnectionsARMTemplate.json new file mode 100644 index 000000000000..596e0d19056f --- /dev/null +++ b/application-workloads/expressroute/highAvailabilitySetup/NewHighAvailabilityVirtualNetworkGatewayConnectionsARMTemplate.json @@ -0,0 +1,86 @@ +{ + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "location": { + "type": "string" + }, + "virtualNetworkGatewayId1": { + "type": "string" + }, + "connectionName1": { + "type": "string" + }, + "routingWeight1": { + "type": "int" + }, + "expressRouteGatewayBypass1": { + "type": "bool" + }, + "expressRouteId1": { + "type": "string" + }, + "connection1Tags": { + "type": "object", + "defaultValue": {} + }, + "connectionName2": { + "type": "string" + }, + "routingWeight2": { + "type": "int" + }, + "expressRouteGatewayBypass2": { + "type": "bool" + }, + "expressRouteId2": { + "type": "string" + }, + "connection2Tags": { + "type": "object", + "defaultValue": {} + } + }, + "resources": [ + { + "name": "[parameters('connectionName1')]", + "type": "Microsoft.Network/connections", + "apiVersion": "2023-09-01", + "location": "[parameters('location')]", + "tags": "[parameters('connection1Tags')]", + "dependsOn": [], + "properties": { + "connectionType": "ExpressRoute", + "virtualNetworkGateway1": { + "id": "[parameters('virtualNetworkGatewayId1')]" + }, + "routingWeight": "[parameters('routingWeight1')]", + "expressRouteGatewayBypass": "[parameters('expressRouteGatewayBypass1')]", + "peer": { + "id": "[parameters('expressRouteId1')]" + } + } + }, + { + "name": "[parameters('connectionName2')]", + "type": "Microsoft.Network/connections", + "apiVersion": "2023-09-01", + "location": "[parameters('location')]", + "tags": "[parameters('connection2Tags')]", + "dependsOn": [ + "[resourceId('Microsoft.Network/connections', parameters('connectionName1'))]" + ], + "properties": { + "connectionType": "ExpressRoute", + "virtualNetworkGateway1": { + "id": "[parameters('virtualNetworkGatewayId1')]" + }, + "routingWeight": "[parameters('routingWeight2')]", + "expressRouteGatewayBypass": "[parameters('expressRouteGatewayBypass2')]", + "peer": { + "id": "[parameters('expressRouteId2')]" + } + } + } + ] +} \ No newline at end of file From 125434a4fe7c87aa6e0f49f8403b1d8be0b4adbf Mon Sep 17 00:00:00 2001 From: Nina Maller Date: Thu, 26 Sep 2024 16:02:40 -0700 Subject: [PATCH 2/3] :changes --- .../{ArmTemplate.md => README.md} | 12 +++--------- .../expressroute/highAvailabilitySetup/metadata.json | 9 +++++++++ 2 files changed, 12 insertions(+), 9 deletions(-) rename application-workloads/expressroute/highAvailabilitySetup/{ArmTemplate.md => README.md} (93%) create mode 100644 application-workloads/expressroute/highAvailabilitySetup/metadata.json diff --git a/application-workloads/expressroute/highAvailabilitySetup/ArmTemplate.md b/application-workloads/expressroute/highAvailabilitySetup/README.md similarity index 93% rename from application-workloads/expressroute/highAvailabilitySetup/ArmTemplate.md rename to application-workloads/expressroute/highAvailabilitySetup/README.md index 770b442d5fb7..14eb3f72a41d 100644 --- a/application-workloads/expressroute/highAvailabilitySetup/ArmTemplate.md +++ b/application-workloads/expressroute/highAvailabilitySetup/README.md @@ -1,4 +1,4 @@ -ARM template usage to create 2 circuits: +# ARM template usage to create 2 circuits: # parameters to create 2 circuits on provider $parameters = @{ @@ -39,15 +39,12 @@ $parameters = @{ circuit2BandwidthInGbps = 1 circuit2DirectEnableRateLimiting = $true } -# Deploy the ARM template using the hashtable + New-AzResourceGroupDeployment -Name "circuitdeployment" ` -ResourceGroupName "" ` -TemplateFile .\NewAzHighAvailabilityExpressRouteCircuitsARMTemplate.json ` -TemplateParameterObject $parameters - - - # Usage of arm template to deploy 2 connections $parameters = @{ # Gateway parameters: @@ -65,10 +62,7 @@ $parameters = @{ expressRouteId2 = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRouteCircuits/providercircuit2" } -# Define resource group name -$resourceGroupName = "" # Replace with your resource group name - -# Deploy the ARM template using the hashtable +$resourceGroupName = "" New-AzResourceGroupDeployment -Name "connectiondeployment" ` -ResourceGroupName "" ` -TemplateFile .\NewHighAvailabilityVirtualNetworkGatewayConnectionsARMTemplate.json ` diff --git a/application-workloads/expressroute/highAvailabilitySetup/metadata.json b/application-workloads/expressroute/highAvailabilitySetup/metadata.json new file mode 100644 index 000000000000..dc521fafbc3c --- /dev/null +++ b/application-workloads/expressroute/highAvailabilitySetup/metadata.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://aka.ms/azure-quickstart-templates-metadata-schema#", + "itemDisplayName": "ExpressRoute high Availability ARM Templates", + "description": "ARM templates to deploy 2 ExpressRoute circuits and 2 connections for resilient setups.", + "summary": "ARM templates for deploying a set of circuits and connections to be set up as high available/zone redundant, in order to achieve resiliency.", + "githubUsername": "nimaller", + "dateUpdated": "2024-09-26", + "type": "QuickStart" + } \ No newline at end of file From f952087bf1bd2fd5d420dda273ea0af105164efd Mon Sep 17 00:00:00 2001 From: Nina Maller Date: Tue, 15 Oct 2024 15:05:09 -0700 Subject: [PATCH 3/3] changes --- .../new-express-route-circuits/README.md | 69 +++++++++++++++++++ .../new-express-route-circuits}/metadata.json | 4 +- .../new-circuits-template.json} | 0 .../README.md | 47 +++++++++++++ .../metadata.json | 9 +++ .../new-connections-template.json} | 0 .../highAvailabilitySetup/README.md | 69 ------------------- 7 files changed, 127 insertions(+), 71 deletions(-) create mode 100644 application-workloads/expressroute/high-availability-setup/new-express-route-circuits/README.md rename application-workloads/expressroute/{highAvailabilitySetup => high-availability-setup/new-express-route-circuits}/metadata.json (60%) rename application-workloads/expressroute/{highAvailabilitySetup/NewAzHighAvailabilityExpressRouteCircuitsARMTemplate.json => high-availability-setup/new-express-route-circuits/new-circuits-template.json} (100%) create mode 100644 application-workloads/expressroute/high-availability-setup/new-virtual-network-gateway-connections/README.md create mode 100644 application-workloads/expressroute/high-availability-setup/new-virtual-network-gateway-connections/metadata.json rename application-workloads/expressroute/{highAvailabilitySetup/NewHighAvailabilityVirtualNetworkGatewayConnectionsARMTemplate.json => high-availability-setup/new-virtual-network-gateway-connections/new-connections-template.json} (100%) delete mode 100644 application-workloads/expressroute/highAvailabilitySetup/README.md diff --git a/application-workloads/expressroute/high-availability-setup/new-express-route-circuits/README.md b/application-workloads/expressroute/high-availability-setup/new-express-route-circuits/README.md new file mode 100644 index 000000000000..591642ac52bc --- /dev/null +++ b/application-workloads/expressroute/high-availability-setup/new-express-route-circuits/README.md @@ -0,0 +1,69 @@ +--- +description: A template for deploying 2 Express Route Circuits +page_type: sample +products: +- azure +- azure-resource-manager +urlFragment: new-express-route-circuits +languages: +- json +--- +# High Resiliency Express Route Circuit Deployment + +![Azure Public Test Date](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-express-route-circuits/PublicLastTestDate.svg) +![Azure Public Test Result](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-express-route-circuits/PublicDeployment.svg) + +![Azure US Gov Last Test Date](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-express-route-circuits/FairfaxLastTestDate.svg) +![Azure US Gov Last Test Result](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-express-route-circuits/FairfaxDeployment.svg) + +![Best Practice Check](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-express-route-circuits/BestPracticeResult.svg) +![Cred Scan Check](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-express-route-circuits/CredScanResult.svg) + +[![Deploy To Azure](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/deploytoazure.svg?sanitize=true)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fapplication-workloads%2Fexpressroute%2Fhigh-availability-setup%2Fnew-express-route-circuits%2Fazuredeploy.json) +[![Deploy To Azure US Gov](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/deploytoazuregov.svg?sanitize=true)](https://portal.azure.us/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fapplication-workloads%2Fexpressroute%2Fhigh-availability-setup%2Fnew-express-route-circuits%2Fazuredeploy.json) +[![Visualize](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/visualizebutton.svg?sanitize=true)](http://armviz.io/#/?load=https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fapplication-workloads%2Fexpressroute%2Fhigh-availability-setup%2Fnew-express-route-circuits%2Fazuredeploy.json) + +This template deploys 2 Express Route Circuits + +For more information about how to design and architect Azure ExpressRoute for resiliency check the [official tutorials](https://learn.microsoft.com/en-us/azure/expressroute/design-architecture-for-resiliency). + +`Tags: Microsoft.Networkwork/expressroute, expressroute` + +# Example parameters for template +$parameters = @{ + # circuit 1 parameters for circuit using service provider: + circuit1Location = "eastus" + circuit1Name = "circuit1" + circuit1SkuTier = "Standard" + circuit1SkuFamily = "MeteredData" + circuit1BandwidthInMbps = 1000 + circuit1ProviderName = "AT&T Netbond" + circuit1PeeringLocation = "Amsterdam" + # circuit 2 parameters for circuit using service provider: + circuit2Location = "eastus" + circuit2Name = "circuit2" + circuit2SkuTier = "Standard" + circuit2SkuFamily = "MeteredData" + circuit2BandwidthInMbps = 2000 + circuit2ProviderName = "AT&T Netbond" + circuit2PeeringLocation = "Amsterdam" +} + +$parameters = @{ + # circuit 1 parameters for circuit using direct port: + circuit1Location = "eastus" + circuit1Name = "circuit1" + circuit1SkuTier = "Standard" + circuit1SkuFamily = "MeteredData" + circuit1DirectId = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRoutePorts/" + circuit1BandwidthInGbps = 1 + circuit1DirectEnableRateLimiting = $true + # circuit 2 parameters for circuit using direct port: + circuit2Location = "eastus" + circuit2Name = "circuit2" + circuit2SkuTier = "Standard" + circuit2SkuFamily = "MeteredData" + circuit2DirectId = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRoutePorts/" + circuit2BandwidthInGbps = 1 + circuit2DirectEnableRateLimiting = $true +} \ No newline at end of file diff --git a/application-workloads/expressroute/highAvailabilitySetup/metadata.json b/application-workloads/expressroute/high-availability-setup/new-express-route-circuits/metadata.json similarity index 60% rename from application-workloads/expressroute/highAvailabilitySetup/metadata.json rename to application-workloads/expressroute/high-availability-setup/new-express-route-circuits/metadata.json index dc521fafbc3c..e0c49a3f5153 100644 --- a/application-workloads/expressroute/highAvailabilitySetup/metadata.json +++ b/application-workloads/expressroute/high-availability-setup/new-express-route-circuits/metadata.json @@ -1,8 +1,8 @@ { "$schema": "https://aka.ms/azure-quickstart-templates-metadata-schema#", "itemDisplayName": "ExpressRoute high Availability ARM Templates", - "description": "ARM templates to deploy 2 ExpressRoute circuits and 2 connections for resilient setups.", - "summary": "ARM templates for deploying a set of circuits and connections to be set up as high available/zone redundant, in order to achieve resiliency.", + "description": "ARM templates to deploy 2 ExpressRoute circuits for resilient setups.", + "summary": "ARM templates for deploying a set of circuits to be set up as high available/zone redundant, in order to achieve resiliency.", "githubUsername": "nimaller", "dateUpdated": "2024-09-26", "type": "QuickStart" diff --git a/application-workloads/expressroute/highAvailabilitySetup/NewAzHighAvailabilityExpressRouteCircuitsARMTemplate.json b/application-workloads/expressroute/high-availability-setup/new-express-route-circuits/new-circuits-template.json similarity index 100% rename from application-workloads/expressroute/highAvailabilitySetup/NewAzHighAvailabilityExpressRouteCircuitsARMTemplate.json rename to application-workloads/expressroute/high-availability-setup/new-express-route-circuits/new-circuits-template.json diff --git a/application-workloads/expressroute/high-availability-setup/new-virtual-network-gateway-connections/README.md b/application-workloads/expressroute/high-availability-setup/new-virtual-network-gateway-connections/README.md new file mode 100644 index 000000000000..8192ed7bea98 --- /dev/null +++ b/application-workloads/expressroute/high-availability-setup/new-virtual-network-gateway-connections/README.md @@ -0,0 +1,47 @@ +--- +description: A template for deploying 2 Express Route Virtual Network Gateway Connection +page_type: sample +products: +- azure +- azure-resource-manager +urlFragment: new-virtual-network-gateway-connections +languages: +- json +--- +# High Resiliency Express Route Virtual Network Gateway Connections Deployment + +![Azure Public Test Date](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-virtual-network-gateway-connections/PublicLastTestDate.svg) +![Azure Public Test Result](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-virtual-network-gateway-connections/PublicDeployment.svg) + +![Azure US Gov Last Test Date](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-virtual-network-gateway-connections/FairfaxLastTestDate.svg) +![Azure US Gov Last Test Result](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-virtual-network-gateway-connections/FairfaxDeployment.svg) + +![Best Practice Check](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-virtual-network-gateway-connections/BestPracticeResult.svg) +![Cred Scan Check](https://azurequickstartsservice.blob.core.windows.net/badges/expressroute/high-availability-setup/new-virtual-network-gateway-connections/CredScanResult.svg) + +[![Deploy To Azure](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/deploytoazure.svg?sanitize=true)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fapplication-workloads%2Fexpressroute%2Fhigh-availability-setup%2Fnew-virtual-network-gateway-connections%2Fazuredeploy.json) +[![Deploy To Azure US Gov](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/deploytoazuregov.svg?sanitize=true)](https://portal.azure.us/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fapplication-workloads%2Fexpressroute%2Fhigh-availability-setup%2Fnew-virtual-network-gateway-connections%2Fazuredeploy.json) +[![Visualize](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/visualizebutton.svg?sanitize=true)](http://armviz.io/#/?load=https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fapplication-workloads%2Fexpressroute%2Fhigh-availability-setup%2Fnew-virtual-network-gateway-connections%2Fazuredeploy.json) + +This template deploys 2 Express Route Virtual Network Gateway Connections + +For more information about how to design and architect Azure ExpressRoute for resiliency check the [official tutorials](https://learn.microsoft.com/en-us/azure/expressroute/design-architecture-for-resiliency). + +`Tags: Microsoft.Networkwork/expressroute, expressroute` + +# Example parameters for template +$parameters = @{ + # Gateway parameters: + location = "francecentral" + virtualNetworkGatewayId1 = "/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworkGateways/erVng_migrated" + # connection 1 parameters: + connectionName1 = "connection1" + routingWeight1 = 10 + expressRouteGatewayBypass1 = $false + expressRouteId1 = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRouteCircuits/providercircuit1" + # connection 2 parameters: + connectionName2 = "connection2" + routingWeight2 = 20 + expressRouteGatewayBypass2 = $false + expressRouteId2 = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRouteCircuits/providercircuit2" +} \ No newline at end of file diff --git a/application-workloads/expressroute/high-availability-setup/new-virtual-network-gateway-connections/metadata.json b/application-workloads/expressroute/high-availability-setup/new-virtual-network-gateway-connections/metadata.json new file mode 100644 index 000000000000..68bb4bd2c8d7 --- /dev/null +++ b/application-workloads/expressroute/high-availability-setup/new-virtual-network-gateway-connections/metadata.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://aka.ms/azure-quickstart-templates-metadata-schema#", + "itemDisplayName": "ExpressRoute Virtual Network Gateway Connections high Availability ARM Templates", + "description": "ARM templates to deploy 2 virtual network gateway connections for resilient setups.", + "summary": "ARM templates for deploying a set of connections to be set up as high available/zone redundant, in order to achieve resiliency.", + "githubUsername": "nimaller", + "dateUpdated": "2024-09-26", + "type": "QuickStart" + } \ No newline at end of file diff --git a/application-workloads/expressroute/highAvailabilitySetup/NewHighAvailabilityVirtualNetworkGatewayConnectionsARMTemplate.json b/application-workloads/expressroute/high-availability-setup/new-virtual-network-gateway-connections/new-connections-template.json similarity index 100% rename from application-workloads/expressroute/highAvailabilitySetup/NewHighAvailabilityVirtualNetworkGatewayConnectionsARMTemplate.json rename to application-workloads/expressroute/high-availability-setup/new-virtual-network-gateway-connections/new-connections-template.json diff --git a/application-workloads/expressroute/highAvailabilitySetup/README.md b/application-workloads/expressroute/highAvailabilitySetup/README.md deleted file mode 100644 index 14eb3f72a41d..000000000000 --- a/application-workloads/expressroute/highAvailabilitySetup/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# ARM template usage to create 2 circuits: - -# parameters to create 2 circuits on provider -$parameters = @{ - # circuit 1 parameters: - circuit1Location = "eastus" - circuit1Name = "circuit1" - circuit1SkuTier = "Standard" - circuit1SkuFamily = "MeteredData" - circuit1BandwidthInMbps = 1000 - circuit1ProviderName = "AT&T Netbond" - circuit1PeeringLocation = "Amsterdam" - # circuit 2 parameters: - circuit2Location = "eastus" - circuit2Name = "circuit2" - circuit2SkuTier = "Standard" - circuit2SkuFamily = "MeteredData" - circuit2BandwidthInMbps = 2000 - circuit2ProviderName = "AT&T Netbond" - circuit2PeeringLocation = "Amsterdam" -} - -# parameters to create 2 circuits on direct ports -$parameters = @{ - # circuit 1 parameters: - circuit1Location = "eastus" - circuit1Name = "circuit1" - circuit1SkuTier = "Standard" - circuit1SkuFamily = "MeteredData" - circuit1DirectId = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRoutePorts/" - circuit1BandwidthInGbps = 1 - circuit1DirectEnableRateLimiting = $true - # circuit 2 parameters: - circuit2Location = "eastus" - circuit2Name = "circuit2" - circuit2SkuTier = "Standard" - circuit2SkuFamily = "MeteredData" - circuit2DirectId = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRoutePorts/" - circuit2BandwidthInGbps = 1 - circuit2DirectEnableRateLimiting = $true -} - -New-AzResourceGroupDeployment -Name "circuitdeployment" ` - -ResourceGroupName "" ` - -TemplateFile .\NewAzHighAvailabilityExpressRouteCircuitsARMTemplate.json ` - -TemplateParameterObject $parameters - -# Usage of arm template to deploy 2 connections -$parameters = @{ - # Gateway parameters: - location = "francecentral" - virtualNetworkGatewayId1 = "/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworkGateways/erVng_migrated" - # connection 1 parameters: - connectionName1 = "connection1" - routingWeight1 = 10 - expressRouteGatewayBypass1 = $false - expressRouteId1 = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRouteCircuits/providercircuit1" - # connection 2 parameters: - connectionName2 = "connection2" - routingWeight2 = 20 - expressRouteGatewayBypass2 = $false - expressRouteId2 = "/subscriptions//resourceGroups//providers/Microsoft.Network/expressRouteCircuits/providercircuit2" -} - -$resourceGroupName = "" -New-AzResourceGroupDeployment -Name "connectiondeployment" ` - -ResourceGroupName "" ` - -TemplateFile .\NewHighAvailabilityVirtualNetworkGatewayConnectionsARMTemplate.json ` - -TemplateParameterObject $parameters \ No newline at end of file