Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
8f3b4ed
initial working version
nielsams Apr 23, 2025
8826e4d
add table output
nielsams Apr 23, 2025
21b85ee
added location data lookup
nielsams Apr 24, 2025
526cc47
added network provider
nielsams Apr 24, 2025
c6039ab
fix output formatting
nielsams Apr 24, 2025
15eb080
add basic compute types
nielsams Apr 24, 2025
13fb891
formatting fixes
nielsams Apr 24, 2025
393cc72
add more common resource types
nielsams Apr 24, 2025
30ec6c1
allowing to omit dependent resources for clarity
nielsams Apr 24, 2025
4c7e672
add more resource types
nielsams Apr 24, 2025
1bf201e
improve readme
nielsams Apr 25, 2025
0cc3b73
bug fixes and new resource types
nielsams Apr 25, 2025
35e1c89
more resource types
nielsams Apr 25, 2025
605c497
temp remove notificationhubs
nielsams Apr 25, 2025
0234dec
add more resource types
nielsams Apr 25, 2025
be94d39
adding tests and bugfixes
nielsams Apr 28, 2025
2d01598
minor structural changes
nielsams Apr 28, 2025
e36cb81
fix whitespace issues
nielsams Apr 28, 2025
c2697be
new types and bugfixes
nielsams Apr 28, 2025
70dbfd4
syntax improvements
nielsams Apr 29, 2025
19fb1b1
formatting fixes
nielsams Apr 29, 2025
71005bd
added resource types
nielsams Apr 29, 2025
233ab5b
readme updates
nielsams Apr 29, 2025
1aad2dd
fix note box syntax
nielsams Apr 29, 2025
7f6dd37
fix note box syntax
nielsams Apr 29, 2025
c8a201a
shorten parameter name
nielsams Apr 29, 2025
9026850
metadata updates
nielsams Apr 29, 2025
2fb2f69
requested metadata updates
nielsams Apr 29, 2025
0d3b99b
update incorrect codeowners path
nielsams Apr 30, 2025
e82a7c2
add missing license headers
nielsams May 6, 2025
dc103be
add entry to service_name.json
nielsams May 6, 2025
642d41f
update service_name value
nielsams May 8, 2025
02085d3
add init.py files
nielsams May 8, 2025
dd06e74
add init.py files
nielsams May 8, 2025
d406c61
update module init
nielsams May 8, 2025
b28db3b
update VERSION parameter
nielsams May 12, 2025
6fd4706
syntax changes for python39 compliance
nielsams May 13, 2025
971aa49
update to resource validators
nielsams May 14, 2025
0161bb9
add support for tag filter
nielsams May 15, 2025
ba72e95
improved input validation
nielsams May 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
improve readme
  • Loading branch information
nielsams committed Apr 25, 2025
commit 1bf201e0c67bd28a8033e85f4e0e96ebb5cabb7e
58 changes: 58 additions & 0 deletions src/zones/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Microsoft Azure CLI 'zones' Extension

This package is for the 'zones' extension.
i.e. 'az zones'

This CLI Extension helps validate the zone redundancy status of resources within a specific scope.
For each resource, one of the following statuses will be returned:
Unknown # Unable to verify status. You'll need to check the resource manually.
Yes # Resource is configured for zone redundancy
Always # Resource is always zone redundant, no configuration needed
No # Resource is not configured for zone redundancy, but could be in another configuration
Never # Resource cannot be configured for zone redundancy
Dependent # Resource is zone redundant if parent or related resource is zone redundant
NoZonesInRegion # The region the resource is deployed in does not have Availability Zones

## When should you use this?

In order to build a fully zone redundant application, you need to satisfy three criteria:

1) Enable zone redundancy on all PaaS resources in the application
2) Ensure zonal resources are spread across all zones. These are the resources that take a 'zones' attribute in their definition.
3) Validate that your application code is able to handle the loss of a zone, e.g. that connections are retried properly when a dependency is unreachable.

The _zones_ CLI extension can help with the first two steps. By running this against a specific resource group that contains your production resources, you can be sure that you have not overlooked any resources in your quest for zone redundancy. If the results show 'No' on one of your resources, that means that you need to change the configuration to enable ZR. If it shows 'Never', that probably means you need to deploy multiple of those resources to the different zones manually.

The third step can be validated using Chaos Engineering practices. On Azure, look into Chaos Studio to get started with that.

## USAGE

Validate all resources in current scope to which you have read access:

```bash
az zones validate
```

Get the results in human-readable table format:

```bash
az zones validate --output table
```

Validate all resources in specific resource groups to which you have read access:

```bash
az zones validate --resource-groups <resource_group1>,<resource_group2>,...
```

Omit 'dependent' resources from the output. These are resources that by themselves cannot be zone redundant, but take on the status of their parent or related resource. This can be useful for improving readability of the results:

```bash
az zones validate --omit-dependent-resources
```

## Important Notes

- The _zones_ CLI extension can only help with resources you can view, i.e. for which you have read access. You must ensure that all relevant resources are indeed listed in the results.

- While this extension is a useful tool in validating zone redundancy on resources, you are still responsible for reviewing the [Reliability Guides](https://learn.microsoft.com/azure/reliability/overview-reliability-guidance) for all the services you use in your applications, as these may contain important information regarding operation in high availability scenarios.
26 changes: 0 additions & 26 deletions src/zones/README.rst

This file was deleted.