Skip to content

Templates

Platform ships five template variants plus a shared _common scaffold. Together they let New-AzureLocalRepo.ps1 spin up any AzureLocal repo with one command.

Variants

Variant When Page
ps-module PowerShell module (exported cmdlets, Pester, PSScriptAnalyzer) ps-module
ts-web-app TypeScript / React / Vite web app ts-web-app
iac-solution Bicep / Terraform / ARM infrastructure iac-solution
migration-runbook Operational playbook for a specific migration (e.g., Nutanix → Azure Local) migration-runbook
training-site Course / training material served as a static site training-site

Shared

  • _common — files copied into every variant: CHANGELOG.md, CODEOWNERS, STANDARDS.md, .editorconfig, .gitignore, .azurelocal-platform.yml, and 4 GitHub Actions workflows.

Extending

How they're used

./repo-management/org-scripts/New-AzureLocalRepo.ps1 `
    -Type ts-web-app `
    -Name azurelocal-cockpit `
    -Description "Ops dashboard for Azure Local fleets"

The script merges _common + the chosen variant, substitutes tokens, and pushes the result as a new GitHub repo. See New-repo bootstrap for internals.

Layout on disk

templates/
├── _common/                # 10 files
├── ps-module/              # 7 files
├── ts-web-app/             # 6 files
├── iac-solution/           # 5 files
├── migration-runbook/      # 3 files
└── training-site/          # 3 files

Token set (shared across variants)

Token Expanded value
{{REPO_NAME}} e.g., azurelocal-cockpit
{{MODULE_NAME}} e.g., AzureLocalCockpit
{{DESCRIPTION}} Free text
{{REPO_TYPE}} One of the 5 variant names
{{YEAR}} Current year
{{AUDIT_DATE}} yyyy-MM-dd today
{{MODULE_GUID}} New GUID (ps-module only)
{{ID_PREFIX}} Short ID prefix derived from module name
{{MAPROOM}} true for ps-module with tests, else false
{{WORKFLOWS_ADOPTED}} Comma-separated list of adopted workflows