Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consistent Availability Zones across provider #14588

Closed
opslivia opened this issue Dec 13, 2021 · 2 comments · Fixed by #15800
Closed

Consistent Availability Zones across provider #14588

opslivia opened this issue Dec 13, 2021 · 2 comments · Fixed by #15800
Assignees
Milestone

Comments

@opslivia
Copy link

opslivia commented Dec 13, 2021

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request

Background

Azure supports two types of placement of resources: the older Availability Sets and the newer Availability Zones.
Different Azure Regions and different Azure Services may or may not support Availability Zones and/or Availability Sets. The resources which do support Availability Zones either require a single Zone or multiple Zones to be specified depending on the Resource - and different Azure Regions support different Zones (e.g. some support 1 and 2, others 1, 2, and 3, etc.).

As Availability Zones have been rolled out across Azure there's been a couple of changes which means these are implemented inconsistently across the Provider:

  1. Zones initially required 1 element. Over time this has differed per-resource, with some resources taking no zones being specified to mean "Zone Redundant" or "No Zone" depending on the Azure Region the resource is being deployed into.
  2. Resources may have historically required no zone to be specified (and have no zone today) but new resources of that type may require a Zone.

What this means in practice is that using Zones across the provider is inconsistent.

With this feature, we will make the use of Zones consistent across the provider. Going forward:

  • Resources will allow an element of a single zone or a list of multiple.
  • We will do away with options like "All Zones" (those using "All Zones" should instead list all zones they desire for the resource).
  • No zones listed will not imply "zone redundant."

Affected Resources

The following will be changed to allow multiple zones listed:

  • azurerm_application_gateway
  • azurerm_dedicated_hardware_security_module
  • azurerm_firewall
  • azurerm_kusto_cluster
  • azurerm_linux_virtual_machine_scale_set
  • azurerm_nat_gateway
  • azurerm_redis_enterprise_cache
  • azurerm_windows_virtual_machine_scale_set
  • azurerm_kubernetes_cluster
  • azurerm_managed_disk
  • azurerm_nat_gateway
  • azurerm_redis_cache

The following will be changed to allow a single zone listed:

  • azurerm_dedicated_host_group
  • azurerm_linux_virtual_machine
  • azurerm_load_balancer
  • azurerm_orchestrated_virtual_machine_scale_set
  • azurerm_mysql_flexible_server
  • azurerm_postgresql_flexible_server
  • standby_availability_zone (is Optional & Computed, but should be just Optional)
  • azurerm_public_ip
  • azurerm_public_ip_prefix
  • azurerm_windows_virtual_machine

The following resources aren't yet publicly deprecated, but will be in the future (they're feature-frozen as there are replacements available):

  • azurerm_virtual_machine
  • azurerm_virtual_machine_scale_set

Potential Terraform Configuration

TBD

References

While there are differences in the Azure Services here (notably No Zone, Zone Redundant, Single Zone and Multiple Zones), we should consolidate this behavior in Terraform so that it's consistent.

@opslivia opslivia added this to the v3.0.0 milestone Dec 13, 2021
staebler added a commit to staebler/installer that referenced this issue Mar 22, 2022
The v3.0 of the azure terraform provider improves the consistency of handling
zones between resource types and between zonal and non-zonal regions [1].
Specifically relevant to the installer, the default behavior of the azurerm_lb
resource is set appropriately depending on whether the region being used
is zonal or non-zonal.

https://bugzilla.redhat.com/show_bug.cgi?id=2060687

[1] hashicorp/terraform-provider-azurerm#14588
@github-actions
Copy link

This functionality has been released in v3.0.0 of the Terraform Provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template. Thank you!

clnperez pushed a commit to clnperez/installer that referenced this issue Apr 21, 2022
The v3.0 of the azure terraform provider improves the consistency of handling
zones between resource types and between zonal and non-zonal regions [1].
Specifically relevant to the installer, the default behavior of the azurerm_lb
resource is set appropriately depending on whether the region being used
is zonal or non-zonal.

https://bugzilla.redhat.com/show_bug.cgi?id=2060687

[1] hashicorp/terraform-provider-azurerm#14588
@github-actions
Copy link

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.
If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 24, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants