utilities/pipelines/staticValidation/psrule/ps-rule.yaml (56 lines of code) (raw):
#
# PSRule for Azure configuration
#
# Please see the documentation for all configuration options:
# https://aka.ms/ps-rule/options
# https://aka.ms/ps-rule-azure/options
# Configure binding for local rules.
binding:
preferTargetInfo: true
targetType:
- type
- resourceType
# Require minimum versions of modules.
requires:
PSRule: "@pre >=2.9.0"
PSRule.Rules.Azure: "@pre >=1.38.0"
# Use PSRule for Azure.
include:
module:
- PSRule.Rules.Azure
execution:
ruleSuppressed: Debug
unprocessedObject: Debug
output:
culture:
- "en-US"
input:
pathIgnore:
# Exclude all files.
- "*"
# Only process defaults and waf-aligned test files.
- "!avm/**/defaults/*.test.bicep"
- "!avm/**/waf-aligned/*.test.bicep"
configuration:
# Enable automatic expansion of Azure parameter files.
AZURE_PARAMETER_FILE_EXPANSION: false
# Enable automatic expansion of Azure Bicep source files.
AZURE_BICEP_FILE_EXPANSION: true
# Configures the number of seconds to wait for build Bicep files.
AZURE_BICEP_FILE_EXPANSION_TIMEOUT: 20
# Custom non-sensitive parameters' names
AZURE_DEPLOYMENT_NONSENSITIVE_PARAMETER_NAMES:
[
"sasTokenValidityLength",
"passwordlength",
"secretname",
"secreturl",
"secreturi",
"secretrotation",
"secretinterval",
"secretprovider",
"secretsprovider",
"secretref",
"secretid",
"disablepassword",
"sync*passwords",
"sqlAdministratorLogin",
"tokenname",
"ssoClientSecretKeyVaultPath",
"ssoSecretType",
"tokenValidityLength",
"uniqueKeyPolicyKeys",
]
rule:
# Enable custom rules that don't exist in the baseline
includeLocal: false
exclude:
# Ignore the following rules for all resources
- Azure.KeyVault.PurgeProtect
- Azure.VM.UseHybridUseBenefit
- Azure.AppConfig.PurgeProtect
- Azure.MySQL.MaintenanceWindow # Must be excluded until https://msdata.visualstudio.com/Database%20Systems/_workitems/edit/2788114 is fixed
- Azure.AppService.AvailabilityZone # Must disable as the serverfarm premium skus are not available in the AVM subscription. The module is WAF-aligned, just the tests don't validate it