Skip to content

feat: Create azurelocal-toolkit repo and migrate toolkit content #12

@kristopherjturner

Description

@kristopherjturner

Parent Issue

Part of #10 — Migrate TierPoint Azure Local content to AzureLocal Cloud organization.

Summary

Create a new repository AzureLocal/azurelocal-toolkit and migrate the prodtech-docs-azl-toolkit content (~597 files). This toolkit contains 227 PowerShell scripts covering the full Azure Local deployment lifecycle, ARM/Bicep/Terraform templates, solution packages (AVD, SOFS), planning tools, and a sophisticated config-driven architecture.

Key Decisions (Finalized)

Decision Resolution
Repo name azurelocal-toolkit
Git history Fresh — do NOT migrate git history (contains TierPoint data)
Variable structure Option C modified — keep infrastructure.yml as metadata/schema registry, create variables.template.yml for Azure Local-specific vars, defer deep cleanup to azurelocal-sofs-fslogix#47
AVD/SOFS solutions NOT migrated (live in their own repos: aurelocal-avd, azurelocal-sofs-fslogix)
Solution placeholders Keep empty folders for: ai_foundry, aks, app_services, iot_operations, machine_learning, mi_sql
Org standards MkDocs Material (blue/light blue), release-please, GitHub Pages, add-to-project workflow, Vale linting
Network device configs NOT migrated (contain real serial numbers)
Folder structure Same as source

Source Inventory

prodtech-docs-azl-toolkit/
├── configs/
│   ├── infrastructure.yml           # 1,611 lines — master config template (14 sections)
│   ├── infrastructure-tplabs.yml    # ❌ SKIP — TP Labs environment-specific (real IDs)
│   ├── infrastructure-temp.yml      # ❌ SKIP — working copy
│   ├── infrastructure copy.yml      # ❌ SKIP — backup
│   ├── solutions.yaml               # 310 lines — solution definitions + variable groups
│   ├── Generate-AzureLocal-Parameters.ps1
│   ├── azure/
│   │   ├── arm-templates/           # Cluster deployment ARM + parameters
│   │   └── b2b/                     # ❌ SKIP — TierPoint B2B configs
│   ├── network-devices/             # ❌ SKIP — Real serial numbers
│   └── variables/assets/            # master-registry.yaml + infrastructure.schema.json
│
├── scripts/                         # 227 .ps1 files — THE MAIN EVENT
│   ├── common/                      # Shared modules (config loader, Key Vault resolver)
│   ├── deploy/
│   │   ├── 01-tierpoint-cicd-infra/ # ❌ SKIP — TierPoint-specific
│   │   ├── 02-azure-foundation/     # ✅ Migrate — landing zones, RBAC, VNet, mgmt infra
│   │   ├── 03-onprem-readiness/     # ✅ Migrate — AD, hardware, network
│   │   ├── 04-cluster-deployment/   # ✅ Migrate — hardware → OS → Arc → cluster
│   │   ├── 05-operational-foundations/ # ✅ Migrate — SDN, monitoring, backup
│   │   ├── 06-testing-validation/   # ✅ Migrate
│   │   ├── 07-validation-handover/  # ✅ Migrate
│   │   └── 08-lifecycle-operations/ # ✅ Migrate
│   ├── handover/                    # Customer transfer scripts
│   ├── lifecycle/                   # Operations + update scripts
│   ├── tools/                       # Script generators
│   └── validation/                  # Test suites (arc, cluster, network, storage)
│
├── solutions/                       # Per-solution deployment packages
│   ├── avd/                         # ❌ SKIP — lives in aurelocal-avd repo
│   ├── sofs/                        # ❌ SKIP — lives in azurelocal-sofs-fslogix repo
│   ├── ai_foundry/                  # ✅ Keep placeholder
│   ├── aks/                         # ✅ Keep placeholder
│   ├── app_services/                # ✅ Keep placeholder
│   ├── iot_operations/              # ✅ Keep placeholder
│   ├── machine_learning/            # ✅ Keep placeholder
│   └── mi_sql/                      # ✅ Keep placeholder
│
├── tools/planning/                  # S2D capacity calculator (.xlsx)
├── logs/                            # ❌ SKIP — 214 execution logs
├── pipelines/                       # Placeholder
├── temp/                            # ❌ SKIP
└── src/, docs/, tests/              # Placeholders

Migration Plan — Phased Approach

Phase 1: Scaffold Repo Infrastructure ✅ (Repo Created)

  • Create AzureLocal/azurelocal-toolkit repository on GitHub
  • .gitignore — merge SOFS repo + source toolkit patterns
  • LICENSE — MIT
  • CONTRIBUTING.md — from SOFS template, adapted for toolkit context
  • CHANGELOG.md — empty Unreleased section
  • release-please-config.json + .release-please-manifest.json
  • mkdocs.yml — Material theme (blue/light blue), same extensions as SOFS
  • docs/index.md — landing page with Under Active Development warning
  • docs/contributing.md — links to root CONTRIBUTING.md
  • docs/roadmap.md — placeholder with future solutions list
  • styles/Microsoft/ — Vale config from SOFS
  • .github/workflows/deploy-docs.yml — from SOFS, adjust paths
  • .github/workflows/add-to-project.yml — from SOFS (with solution/toolkit labels)
  • .github/workflows/release-please.yml — from SOFS
  • azurelocal-toolkit.code-workspace

Phase 2: Selective Content Copy

COPY:

  • configs/infrastructure.yml, solutions.yaml, Generate-AzureLocal-Parameters.ps1
  • configs/azure/arm-templates/ (EXCEPT examples/tplabs/)
  • configs/variables/
  • scripts/ — Deploy-Infrastructure.ps1, common/, deploy/02-08, handover/, lifecycle/, validation/, tools/
  • solutions/ — ai_foundry, aks, app_services, iot_operations, machine_learning, mi_sql (placeholders only)
  • tools/, src/ (placeholders), pipelines/, tests/

SKIP (Content That Must NOT Migrate):

Content Reason
configs/infrastructure-tplabs.yml Real Azure tenant IDs, resource IDs, TierPoint environment data
configs/infrastructure-temp.yml Working copy with 128 TierPoint matches
configs/infrastructure copy.yml Backup with 34 TierPoint matches
configs/azure/b2b/ TierPoint B2B cross-tenant JSON configs
configs/network-devices/ Real device serial numbers
scripts/deploy/01-tierpoint-cicd-infra/ TierPoint-specific CI/CD and B2B scripts
solutions/avd/ Lives in aurelocal-avd repo
solutions/sofs/ Lives in azurelocal-sofs-fslogix repo
logs/ (214 files) Production execution logs
temp/ Scratch files
solutions/sofs/terraform/terraform.tfstate Real infrastructure state — security risk
solutions/sofs/terraform/.terraform/ Provider binaries
Old README.md, CODEOWNERS, SOFS-Deployment-Guide.md Replaced by new org-standard files

Phase 3: Branding Scrub (~262 matches)

Bulk find-replace then contextual review:

Find Replace With Estimated Matches
TierPoint Azure Local Cloud / Hybrid Cloud Solutions 145
prodtech / ProdTech / Product Tech Azure Local Cloud 111
PCS (company context) Remove or replace 6
team-prodtech@ AzureLocal org contact scattered
gitlab.com/tierpoint/prodtech/ github.com/AzureLocal/ scattered
TierPoint tenant ID 28217fed-... Placeholder 00000000-0000-0000-0000-000000000000 multiple
tplabs / tpdemos / tp- azl- / lab- scattered

Phase 4: Variable Structure

  • Keep infrastructure.yml as metadata/schema registry (strip all real TierPoint values)
  • Create configs/variables.template.yml with Azure Local-specific variables only
  • Keep solutions.yaml for solution-to-variable mapping
  • Update master-registry.yaml schema metadata to reflect AzureLocal Cloud standards
  • Defer deep cleanup to variable standards task (azurelocal-sofs-fslogix#47)

Phase 5: README & Docs

  • Rewrite README.md (AzureLocal org style — badges, structure, quick start)
  • Populate docs/ for MkDocs site (index, contributing, roadmap, architecture)
  • Document solution placeholder purpose and future roadmap

Phase 6: Enable GitHub Pages & CI

  • Commit + push all content to main
  • Verify deploy-docs workflow runs and builds successfully
  • Verify add-to-project workflow maps labels correctly
  • Verify release-please workflow initializes
  • Enable GitHub Pages (Settings → Pages → gh-pages branch)
  • Add ADD_TO_PROJECT_PAT secret to repo settings
  • Add solution/toolkit option to GitHub Project MkDocs footer customization — copyright, branding, social links #3 Solution field

Phase 7: Update Related Issues

Phase 8: Validation

  • mkdocs build --strict passes
  • Full-text grep: zero matches for TierPoint, ProdTech, PCS, tplabs
  • No real Azure resource IDs, tenant IDs, or subscription IDs in any committed file
  • All .ps1 files pass syntax check
  • Config loader works with new variable structure
  • GitHub Pages live and serving docs
  • README accurately describes all available scripts and their purpose

Acceptance Criteria

  • AzureLocal/azurelocal-toolkit repo created and populated
  • Zero references to TierPoint, ProdTech, PCS in migrated content
  • Variable structure implemented per Option C (modified)
  • All viable scripts migrated with clean headers and references
  • Solution placeholders created for future brainstorming
  • AVD/SOFS content NOT duplicated (lives in own repos)
  • Full org-standard CI/CD pipeline running (deploy-docs, add-to-project, release-please)
  • MkDocs site live on GitHub Pages
  • Fresh git history (no legacy TierPoint commits)

Related Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions