Skip to content

Validation Matrix

Complete validation coverage for the AVD automation solution across all IaC tools.

Quick Reference

Area Tool Command CI Workflow
Config Schema Python python tests/validate-config-schema.py ci-config-schema.yml
Config Schema PowerShell Invoke-Pester tests/powershell/Schema-Validation.Tests.ps1 ci-powershell.yml
Config Loader PowerShell Invoke-Pester tests/powershell/Config-Loader.Tests.ps1 ci-powershell.yml
PowerShell Lint PSScriptAnalyzer Invoke-ScriptAnalyzer -Path src/powershell -Recurse ci-powershell.yml
Terraform Format Terraform terraform fmt -check -recursive ci-terraform.yml
Terraform Validate Terraform terraform init -backend=false && terraform validate ci-terraform.yml
Terraform Lint TFLint tflint --format compact ci-terraform.yml
Bicep Build Azure CLI az bicep build --file <file> ci-bicep.yml
Bicep Lint Azure CLI az bicep lint --file <file> ci-bicep.yml
Ansible Lint ansible-lint ansible-lint src/ansible/ ci-ansible.yml
Ansible Syntax ansible-playbook ansible-playbook site.yml --syntax-check ci-ansible.yml
YAML Lint yamllint yamllint -d relaxed src/ansible/ ci-ansible.yml

Pre-Deployment Checks

Run Test-AVDDeployment.ps1 to validate a live environment before deployment:

Check Description
Config Load YAML parses and schema validates
Azure Connectivity az account show succeeds
Resource Group Target RG exists or can be created
Network VNet/subnet exist and have available IPs
Permissions Current identity has required RBAC roles
Key Vault Referenced vault is accessible

Post-Deployment Checks

Check Tool Description
Host Pool Health PowerShell Session hosts registered and available
AVD Agent Status PowerShell Agent reporting healthy on all hosts
User Connectivity PowerShell Test RDP connection to host pool
FSLogix Profiles PowerShell Profile containers mounting correctly
Monitoring Azure Portal Diagnostic data flowing to LAW
Scaling Plan Azure Portal Plan active and schedules triggering

CI/CD Workflow Map

Pull Request
├── ci-terraform.yml      → fmt + validate + tflint
├── ci-bicep.yml          → build + lint
├── ci-powershell.yml     → PSScriptAnalyzer + Pester
├── ci-ansible.yml        → yamllint + syntax-check + ansible-lint
├── ci-config-schema.yml  → JSON Schema validation of examples
├── validate-config.yml   → Schema validation of variables.example.yml
└── validate-repo-structure.yml → Repository structure checks