mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
50 end-to-end test cases derived from real Azure built-in policies. Each file contains a complete policy definition, sample resources, and expected evaluation results. Coverage spans storage, networking, compute, security, monitoring, database, identity, governance, and update management scenarios. Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
228 lines
7.0 KiB
YAML
228 lines
7.0 KiB
YAML
# Copyright (c) Microsoft Corporation.
|
|
# Licensed under the MIT License.
|
|
|
|
# E2E Test: Resilience/ContainerService_managedclusters_ZoneRedundant_Audit
|
|
# Real Azure Policy: "Azure Kubernetes Service Managed Clusters should be
|
|
# Zone Redundant"
|
|
# Features: allOf, anyOf, field (type + alias), equals, field count with where,
|
|
# nested field count ([*] inside [*]), less, greater, parameters() with
|
|
# defaultValue
|
|
|
|
aliases: test_aliases.json
|
|
|
|
policy_definition: |
|
|
{
|
|
"properties": {
|
|
"displayName": "[Preview]: Azure Kubernetes Service Managed Clusters should be Zone Redundant",
|
|
"policyType": "BuiltIn",
|
|
"mode": "Indexed",
|
|
"parameters": {
|
|
"effect": {
|
|
"type": "String",
|
|
"metadata": {
|
|
"displayName": "Effect"
|
|
},
|
|
"allowedValues": ["Audit", "Deny", "Disabled"],
|
|
"defaultValue": "Audit"
|
|
}
|
|
},
|
|
"policyRule": {
|
|
"if": {
|
|
"allOf": [
|
|
{
|
|
"field": "type",
|
|
"equals": "Microsoft.ContainerService/managedclusters"
|
|
},
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"count": {
|
|
"field": "Microsoft.ContainerService/managedClusters/agentPoolProfiles[*]",
|
|
"where": {
|
|
"count": {
|
|
"field": "Microsoft.ContainerService/managedClusters/agentPoolProfiles[*].availabilityZones[*]"
|
|
},
|
|
"less": 3
|
|
}
|
|
},
|
|
"greater": 0
|
|
},
|
|
{
|
|
"count": {
|
|
"field": "Microsoft.ContainerService/managedClusters/agentPoolProfiles[*]",
|
|
"where": {
|
|
"field": "Microsoft.ContainerService/managedClusters/agentPoolProfiles[*].count",
|
|
"less": 3
|
|
}
|
|
},
|
|
"greater": 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"then": {
|
|
"effect": "[parameters('effect')]"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
cases:
|
|
# =========================================================================
|
|
# No effect — all pools have 3 AZs and count >= 3
|
|
# =========================================================================
|
|
|
|
- note: pass_fully_zone_redundant
|
|
resource:
|
|
type: "Microsoft.ContainerService/managedclusters"
|
|
name: "myAKS"
|
|
location: "eastus"
|
|
properties:
|
|
agentPoolProfiles:
|
|
- name: "system"
|
|
count: 3
|
|
availabilityZones: ["1", "2", "3"]
|
|
- name: "user"
|
|
count: 5
|
|
availabilityZones: ["1", "2", "3"]
|
|
want_undefined: true
|
|
|
|
# =========================================================================
|
|
# Audit — one pool has fewer than 3 AZs
|
|
# =========================================================================
|
|
|
|
- note: audit_pool_missing_az
|
|
resource:
|
|
type: "Microsoft.ContainerService/managedclusters"
|
|
name: "myAKS"
|
|
location: "eastus"
|
|
properties:
|
|
agentPoolProfiles:
|
|
- name: "system"
|
|
count: 3
|
|
availabilityZones: ["1", "2", "3"]
|
|
- name: "user"
|
|
count: 3
|
|
availabilityZones: ["1", "2"]
|
|
want_effect: "Audit"
|
|
|
|
# =========================================================================
|
|
# Audit — one pool has no AZs at all
|
|
# =========================================================================
|
|
|
|
- note: audit_pool_no_azs
|
|
resource:
|
|
type: "Microsoft.ContainerService/managedclusters"
|
|
name: "myAKS"
|
|
location: "westus"
|
|
properties:
|
|
agentPoolProfiles:
|
|
- name: "system"
|
|
count: 3
|
|
availabilityZones: ["1", "2", "3"]
|
|
- name: "badpool"
|
|
count: 3
|
|
availabilityZones: []
|
|
want_effect: "Audit"
|
|
|
|
# =========================================================================
|
|
# Audit — pool count < 3 (even with 3 AZs)
|
|
# =========================================================================
|
|
|
|
- note: audit_pool_low_count
|
|
resource:
|
|
type: "Microsoft.ContainerService/managedclusters"
|
|
name: "myAKS"
|
|
location: "eastus"
|
|
properties:
|
|
agentPoolProfiles:
|
|
- name: "system"
|
|
count: 2
|
|
availabilityZones: ["1", "2", "3"]
|
|
want_effect: "Audit"
|
|
|
|
# =========================================================================
|
|
# Audit — both: pool has 2 AZs and count = 1
|
|
# =========================================================================
|
|
|
|
- note: audit_both_violations
|
|
resource:
|
|
type: "Microsoft.ContainerService/managedclusters"
|
|
name: "tinyAKS"
|
|
location: "eastus"
|
|
properties:
|
|
agentPoolProfiles:
|
|
- name: "system"
|
|
count: 1
|
|
availabilityZones: ["1"]
|
|
want_effect: "Audit"
|
|
|
|
# =========================================================================
|
|
# No effect — wrong resource type
|
|
# =========================================================================
|
|
|
|
- note: skip_wrong_type
|
|
resource:
|
|
type: "Microsoft.Compute/virtualMachines"
|
|
name: "myVM"
|
|
location: "eastus"
|
|
properties: {}
|
|
want_undefined: true
|
|
|
|
# =========================================================================
|
|
# Audit — single pool, exactly 3 AZs but count = 2
|
|
# =========================================================================
|
|
|
|
- note: audit_three_azs_low_count
|
|
resource:
|
|
type: "Microsoft.ContainerService/managedclusters"
|
|
name: "myAKS"
|
|
location: "eastus"
|
|
properties:
|
|
agentPoolProfiles:
|
|
- name: "system"
|
|
count: 2
|
|
availabilityZones: ["1", "2", "3"]
|
|
want_effect: "Audit"
|
|
|
|
# =========================================================================
|
|
# Deny — explicit effect parameter override
|
|
# =========================================================================
|
|
|
|
- note: deny_with_explicit_effect
|
|
resource:
|
|
type: "Microsoft.ContainerService/managedclusters"
|
|
name: "myAKS"
|
|
location: "eastus"
|
|
properties:
|
|
agentPoolProfiles:
|
|
- name: "system"
|
|
count: 1
|
|
availabilityZones: []
|
|
parameters:
|
|
effect: "Deny"
|
|
want_effect: "Deny"
|
|
|
|
# =========================================================================
|
|
# No effect — three pools, all fully zone-redundant
|
|
# =========================================================================
|
|
|
|
- note: pass_three_pools_all_good
|
|
resource:
|
|
type: "Microsoft.ContainerService/managedclusters"
|
|
name: "bigAKS"
|
|
location: "eastus"
|
|
properties:
|
|
agentPoolProfiles:
|
|
- name: "system"
|
|
count: 3
|
|
availabilityZones: ["1", "2", "3"]
|
|
- name: "user1"
|
|
count: 6
|
|
availabilityZones: ["1", "2", "3"]
|
|
- name: "user2"
|
|
count: 9
|
|
availabilityZones: ["1", "2", "3"]
|
|
want_undefined: true
|