policy/Azure-Proactive-Resiliency-Library-v2/azapi/compute/microsoft_compute_virtualMachines_zones.rego (14 lines of code) (raw):
package Azure_Proactive_Resiliency_Library_v2
import rego.v1
valid_azapi_mission_critical_virtual_machine_should_use_zone(resource) if {
count(resource.values.body.zones) > 0
}
valid_azapi_mission_critical_virtual_machine_should_use_zone(resource) if {
resource.after_unknown.body.zones == resource.after_unknown.body.zones
}
deny_mission_critical_virtual_machine_should_use_zone contains reason if {
resource := data.utils.resource(input, "azapi_resource")[_]
data.utils.is_azure_type(resource.values, "Microsoft.Compute/virtualMachines")
not valid_azapi_mission_critical_virtual_machine_should_use_zone(resource)
reason := sprintf("Azure-Proactive-Resiliency-Library-v2/mission_critical_virtual_machine_should_use_zone: '%s' `azapi_resource` must have configured `zones`: https://azure.github.io/Azure-Proactive-Resiliency-Library-v2/azure-resources/Compute/virtualMachines/#deploy-vms-across-availability-zones", [resource.address])
}