How can we improve Azure Networking?

Support VNET re-deployment without destroying subnets

When you deploy a VNET from an ARM template in incremental mode I would expect omitting the subnet property would not change the subnets since they are child resources. Instead they are destroyed. I think this is inconsistent with all other similar resource types e.g. app service plans and web apps, azure SQL servers and databases, etc... Please make VNETs and subnets deployments consistent.

https://github.com/Azure/azure-quickstart-templates/issues/2786

179 votes
Vote
Sign in
(thinking…)
Sign in with: Microsoft
Signed in as (Sign out)
You have left! (?) (thinking…)
Greg shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

6 comments

Sign in
(thinking…)
Sign in with: Microsoft
Signed in as (Sign out)
Submitting...
  • Anonymous commented  ·   ·  Flag as inappropriate

    @pkhabazi, your solution may work, but it tightly couples the definition of subnets to the same template file as the VNet, which is not what I was trying to achieve... I can't believe this issue has been open for so long! Get it fixed Microsoft.

  • Andrew McGregor commented  ·   ·  Flag as inappropriate

    We simply cannot update the state of the deployment with this limitation. It is defeating the idea of infrastructure as code as we need to use the portal to do so..

  • Connor Dickson commented  ·   ·  Flag as inappropriate

    The ability to conditionally deploy a subnet or to add a VNet at a later stage is a requirement. If I can add them individually through the portal it should be possible through ARM templates.

  • Jonathan Eckman commented  ·   ·  Flag as inappropriate

    This is a big limitation for us. After our VNET is used, we are no longer able to deploy changes to it because it is attempting to delete our subnets which are created in a separate deployment.

  • Rhys commented  ·   ·  Flag as inappropriate

    Perhaps a solution could be to make subnets resources rather than a property of a the virtual network resource. This way incremental deployments of the template would not remove the existing subnet's if they are not defined in the template.

Feedback and Knowledge Base