Skip to content

[INFRA] Standardize variable management (issue #15)#2

Closed
kristopherjturner wants to merge 2 commits intomainfrom
feature/issue-15-variable-standardization
Closed

[INFRA] Standardize variable management (issue #15)#2
kristopherjturner wants to merge 2 commits intomainfrom
feature/issue-15-variable-standardization

Conversation

@kristopherjturner
Copy link
Copy Markdown
Contributor

Summary

Standardizes config directory structure and adds schema validation as part of the org-wide variable management standardization initiative.

Changes

  • Renamed \configs/\ → \config/\ (org standard)
  • Renamed \�ariables.template.yml\ → \�ariables.example.yml\ (org standard)
  • Moved schema files to \config/schema/\
  • Renamed \infrastructure.schema.json\ → \�ariables.schema.json\
  • Updated all path references across 53 files
  • Added \�alidate-config.yml\ CI workflow

Related

- Rename configs/ to config/ (org-wide standard: singular)
- Rename variables.template.yml to variables.example.yml (org-wide standard)
- Move schema assets from config/variables/assets/ to config/schema/
- Rename infrastructure.schema.json to variables.schema.json
- Update all path references across scripts, docs, and README
- Update .gitignore to match new paths
- Add config/variables.yml to .gitignore

Resolves AzureLocal/azurelocal.github.io#15
Validates infrastructure.yml against schema and checks variables.example.yml syntax.

Part of AzureLocal/azurelocal.github.io#15
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Standardizes the repository’s configuration/variable management layout to align with the org-wide config/ convention, adds schema assets under config/schema/, and introduces CI validation for config files.

Changes:

  • Renames and relocates configuration assets from configs/ to config/, including schema/registry paths.
  • Adds committed baseline config and ARM template examples under config/ to support standardized deployments.
  • Introduces a GitHub Actions workflow to validate YAML + JSON Schema on changes under config/.

Reviewed changes

Copilot reviewed 35 out of 54 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tools/Generate-SolutionConfig.ps1 Updates referenced config/registry paths to new config/ layout.
scripts/lifecycle/updates/monitoring/powershell/Monitor-Update.ps1 Updates docstring example paths from configs/ to config/.
scripts/deploy/04-cluster-deployment/phase-06-post-deployment/task-05-storage-configuration/powershell/Invoke-StoragePaths-Orchestrated.ps1 Updates docstring default path from configs/ to config/.
scripts/deploy/04-cluster-deployment/phase-06-post-deployment/task-05-storage-configuration/powershell/Invoke-StorageCSV-Orchestrated.ps1 Updates docstring default path from configs/ to config/.
scripts/deploy/04-cluster-deployment/phase-06-post-deployment/task-04-ssh-connectivity-to-nodes/powershell/Invoke-SSHConnectivity-Orchestrated.ps1 Updates docstring default path from configs/ to config/.
scripts/deploy/04-cluster-deployment/phase-06-post-deployment/task-01-deploy-sdn/powershell/Get-VirtualSwitchName-Standalone.ps1 Updates printed guidance to reference config/infrastructure.yml.
scripts/deploy/04-cluster-deployment/phase-05-cluster-deployment/local-identity/task-02-verify-deployment-completion/powershell/Invoke-VerifyLocalIdentityConfig-Orchestrated.ps1 Updates docstring/examples to config/infrastructure.yml.
scripts/deploy/04-cluster-deployment/phase-05-cluster-deployment/local-identity/task-02-verify-deployment-completion/powershell/Invoke-VerifyClusterHealth-Orchestrated.ps1 Updates docstring/examples to config/infrastructure.yml.
scripts/deploy/04-cluster-deployment/phase-05-cluster-deployment/local-identity/task-01-initiate-deployment-via-arm-template/powershell/Deploy-AzureLocalCluster.ps1 Updates error message text to reference config/ instead of configs/.
scripts/deploy/04-cluster-deployment/phase-05-cluster-deployment/active-directory/task-02-verify-deployment-completion/powershell/Invoke-VerifyClusterHealth-Orchestrated.ps1 Updates docstring/examples to config/infrastructure.yml.
scripts/deploy/04-cluster-deployment/phase-05-cluster-deployment/active-directory/task-02-verify-deployment-completion/powershell/Invoke-VerifyADDomainStatus-Orchestrated.ps1 Updates docstring/examples and fallback candidates to config/.
scripts/deploy/04-cluster-deployment/phase-05-cluster-deployment/active-directory/task-01-initiate-deployment-via-arm-template/powershell/Deploy-AzureLocalCluster.ps1 Updates error message text to reference config/ instead of configs/.
scripts/deploy/04-cluster-deployment/phase-03-os-configuration/task-12-complete-combined-script-all-steps/powershell/Invoke-Phase03OsConfiguration-Orchestrated.ps1 Updates comment wording for config discovery (implementation still needs alignment).
scripts/deploy/04-cluster-deployment/phase-01-hardware-provisioning/task-02-hardware-discovery-via-dell-redfish-api/powershell/Invoke-HardwareDiscovery.ps1 Updates docstring output path to config/.
scripts/deploy/02-azure-foundation/phase-04-azure-management-infrastructure/task-01-virtual-network/powershell/New-VirtualNetwork.ps1 Updates docstring example to config/infrastructure.yml.
scripts/deploy/02-azure-foundation/phase-03-rbac-permissions/powershell/Test-RbacRoleAssignments.ps1 Updates docstrings/examples and default ConfigPath to config/infrastructure.yml.
scripts/deploy/02-azure-foundation/phase-03-rbac-permissions/powershell/Set-RbacRoleAssignments.ps1 Updates docstrings/examples and default ConfigPath to config/infrastructure.yml.
scripts/deploy/02-azure-foundation/phase-02-resource-providers/task-01-register-resource-providers/powershell/Register-ResourceProviders.ps1 Updates docstring default path to config/infrastructure.yml.
scripts/common/utilities/helpers/config-loader.ps1 Updates docstrings but still contains legacy default path in code (needs fix).
scripts/common/utilities/helpers/Connect-AzureSession.ps1 Updates docstring example path to config/infrastructure.yml.
scripts/common/utilities/helpers/Connect-AzureCliSession.ps1 Updates docstring example path to config/infrastructure.yml.
scripts/common/idrac-management/README.md Updates examples to reference config/infrastructure.yml.
scripts/common/idrac-management/Enable-IdracVnc.ps1 Updates docstring examples to reference config/infrastructure.yml.
docs/index.md Updates directory listing and getting-started instructions for config/ and variables example rename.
docs/configuration/variables.md Updates docs to reference variables.example.yml naming.
configs/variables/readme.md Removes old variables readme under legacy configs/ tree.
config/variables/readme.md Adds new variables directory readme describing new config/ structure.
config/variables/.gitkeep Adds placeholder file to keep config/variables/ tracked.
config/variables.example.yml Updates header/comments and standardizes example/template guidance.
config/schema/variables.schema.json Renames/relocates schema and updates $id.
config/schema/master-registry.yaml Updates schema reference naming to variables.schema.json.
config/infrastructure.yml Adds a committed baseline infrastructure config template.
config/azure/arm-templates/examples/two-intent-standard/azuredeploy.parameters.local-identity.json Adds validated example parameters (two-intent, local identity).
config/azure/arm-templates/examples/two-intent-standard/azuredeploy.parameters.ad.json Adds validated example parameters (two-intent, AD).
config/azure/arm-templates/examples/two-intent-standard/README.md Adds documentation for the two-intent example set.
config/azure/arm-templates/examples/three-intent-separated/azuredeploy.parameters.local-identity.json Adds validated example parameters (three-intent, local identity).
config/azure/arm-templates/examples/three-intent-separated/azuredeploy.parameters.ad.json Adds validated example parameters (three-intent, AD).
config/azure/arm-templates/examples/three-intent-separated/README.md Adds documentation for the three-intent example set.
config/azure/arm-templates/examples/single-intent-converged/azuredeploy.parameters.local-identity.json Adds validated example parameters (single-intent, local identity).
config/azure/arm-templates/examples/single-intent-converged/azuredeploy.parameters.ad.json Adds validated example parameters (single-intent, AD).
config/azure/arm-templates/examples/single-intent-converged/README.md Adds documentation for the single-intent example set.
config/azure/arm-templates/examples/README.md Adds top-level documentation for ARM template examples.
config/azure/arm-templates/cluster-deployment/azuredeploy.parameters.local-identity.json Adds placeholder-based parameter template for cluster deployment (local identity).
config/azure/arm-templates/cluster-deployment/azuredeploy.parameters.json Adds a generic parameter file (non-placeholder reference).
config/azure/arm-templates/cluster-deployment/azuredeploy.parameters.ad.json Adds placeholder-based parameter template for cluster deployment (AD).
config/azure/arm-templates/cluster-deployment/azuredeploy.json Adds the ARM deployment template under config/.
config/azure/arm-templates/cluster-deployment/README.md Updates usage to reference config/infrastructure.yml (script path still needs update).
config/azure/arm-templates/README.md Updates usage to reference config/infrastructure.yml (script path still needs update).
config/azure/.gitkeep Adds placeholder file to keep config/azure/ tracked.
config/Generate-AzureLocal-Parameters.ps1 Updates docstring examples to reference config/ paths.
README.md Updates top-level docs for config/ + variables example rename (link needs correction).
.gitignore Updates ignore rules for new config/ layout and variables.yml.
.github/workflows/validate-config.yml Adds CI workflow to validate config YAML and schema compliance.
Comments suppressed due to low confidence (3)

config/azure/arm-templates/cluster-deployment/README.md:39

  • These usage examples still call \.\configs\Generate-AzureLocal-Parameters.ps1, but the generator was moved to config/Generate-AzureLocal-Parameters.ps1 in this PR. Update the example script path so copy/paste works.
    config/schema/variables.schema.json:5
  • $id contains spaces (https://github.com/Azure Local Cloud/...), which is not a valid URL. Use the canonical repository URL (no spaces) or a URN-style identifier so tooling that relies on $id doesn’t break.
    config/azure/arm-templates/README.md:50
  • The Quick Start examples still invoke the generator via \.\configs\Generate-AzureLocal-Parameters.ps1, but the script in this PR lives under config/Generate-AzureLocal-Parameters.ps1. Update the example command paths so they work after the configs/config/ rename.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +566 to 569
# Default to config/infrastructure.yml in repo root
if (-not $ConfigPath) {
$ConfigPath = Join-Path $script:RepoRoot "configs\infrastructure.yml"
}
Comment on lines +132 to 134
# Attempt to find any infrastructure*.yml in a config/ subdirectory
foreach ($dir in @((Join-Path $PSScriptRoot "configs"), ".\configs")) {
if (Test-Path $dir) {
|-----------|-------------|
| **[scripts/](https://github.com/AzureLocal/azurelocal-toolkit/tree/main/scripts)** | 200+ PowerShell scripts organized by deployment stage (02–08), plus common modules, validation, handover, lifecycle, and tools |
| **[configs/](https://github.com/AzureLocal/azurelocal-toolkit/tree/main/configs)** | Master infrastructure config template, ARM templates, and variable registry |
| **[config/](https://github.com/AzureLocal/azurelocal-toolkit/tree/main/configs)** | Master infrastructure config template, ARM templates, and variable registry |
print('✅ config/infrastructure.yml passes schema validation')
except ValidationError as e:
print(f'❌ Schema validation failed: {e.message}')
print(f' Path: {\" > \".join(str(p) for p in e.absolute_path)}')
@kristopherjturner
Copy link
Copy Markdown
Contributor Author

Superseded by #3 which now includes all issue-15 variable standardization changes merged with issue-14 unified standards.

@kristopherjturner kristopherjturner deleted the feature/issue-15-variable-standardization branch March 22, 2026 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority/medium Medium priority solution/toolkit AzureLocal Toolkit type/infra Infrastructure and tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants