Azure / Enterprise-Scale-for-AVS

Enterprise-scale for AVS represents the strategic design path and target technical state for an Azure VMware Solution (AVS) deployment. This solution provides an architectural approach and reference implementation to prepare landing zone subscriptions for a scalable Azure VMware Solution (AVS) cluster.
MIT License
126 stars 84 forks source link

AVS Greenfield deployment is failing because of wrong Public IP type #290

Closed starkilla2003 closed 10 months ago

starkilla2003 commented 11 months ago

The deployment is not deploying a virtual network gateway because the following error:

"Basic IP configuration for ExpressRoute Virtual Network Gateways is not supported. Please create and associate a Standard IP. "

The deployment type used was the ARM deployment.

demirsenturk commented 11 months ago

Hello, would like to provide some information that may help identify the problem: I noticed that there is a line in an ARM template (line 555) that specifies a Public IP with a Basic SKU.

                      "sku": {
                        "name": "Basic",
                        "tier": "Regional"
                      }

https://github.com/Azure/Enterprise-Scale-for-AVS/blob/82e3916925924290f3fa90a34683dbbb200f8a40/AVS-Landing-Zone/GreenField/ARM/ESLZDeploy.deploy.json#L555

This is used then in the deployment of the VNET Gateway with Standard SKU [parameters('GatewaySku')], which can lead to the above error.

                      "name": "[variables('GatewayName')]",
                      "location": "[parameters('Location')]",
                      "properties": {
                        "gatewayType": "ExpressRoute",
                        "sku": {
                          "name": "[parameters('GatewaySku')]",
                          "tier": "[parameters('GatewaySku')]"
                        },
                        "ipConfigurations": [
                          {
                            "name": "default",
                            "properties": {
                              "privateIPAllocationMethod": "Dynamic",
                              "subnet": {
                                "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('VNetName'), 'GatewaySubnet')]"
                              },
                              "publicIPAddress": {
                                "id": "[resourceId('Microsoft.Network/publicIPAddresses', format('{0}-PIP', variables('GatewayName')))]"
                              }

https://github.com/Azure/Enterprise-Scale-for-AVS/blob/82e3916925924290f3fa90a34683dbbb200f8a40/AVS-Landing-Zone/GreenField/ARM/ESLZDeploy.deploy.json#L580C31-L580C31

starkilla2003 commented 11 months ago

The issue seems to also be present in the Bicep part of the Greenfield deployment. Also when changing the SKU to Standard the IP also needs to be static.

husamhilal commented 11 months ago

Thanks a lot @starkilla2003 and @demirsenturk for detecting this issue. You are 100% correct. This is a recent change in Azure as you see here: https://learn.microsoft.com/en-us/azure/expressroute/expressroute-howto-add-gateway-portal-resource-manager

image

I will make sure to fix this problem.

cc: @michielvanschaik, @sblair01 please see this pull request: https://github.com/Azure/Enterprise-Scale-for-AVS/pull/291

michielvanschaik commented 10 months ago

Thank you @starkilla2003 and @demirsenturk for detecting the issue and @husamhilal for creating the pull request.

cc: @sblair01

husamhilal commented 10 months ago

Perfect, thanks @michielvanschaik!

@starkilla2003, @demirsenturk as your time permits, can you confirm that this change addressed your concern?

Also, please feel free to provide any addition feedback for issues or new features. We're happy to improve the AVS LZA 🙂

starkilla2003 commented 10 months ago

@husamhilal everything works as expected now! thank you for your effort!