az-scout-plugin-vm-sku-modernization
External Az Scout plugin for VM SKU Modernization. It inventories legacy VM SKUs (v2-v5) that are in scope for Azure v6/v7 migration planning and adds guided recommendations for readiness, pilot validation, storage/network checks, quota planning, and exportable migration checklists.
What it provides
- a UI tab:
VM SKU Modernization - plugin API routes under
/plugins/vm-sku-modernization/ - an MCP tool:
list_migration_candidate_vms - a target-SKU recommendation panel for inferred v6/v7 candidates
- script helpers for validation steps that must be run locally or from Azure CLI
- a Markdown checklist export from the VM detail modal
Package and plugin identifiers
| Surface | Value |
|---|---|
| GitHub repository | JoGbd/az-scout-plugin-vm-sku-modernization |
| PyPI package | az-scout-plugin-vm-sku-modernization |
| Python module | az_scout_vm_sku_modernization |
| Az Scout plugin entry point | vm_sku_modernization |
| Mounted plugin name | vm-sku-modernization |
The plugin is auto-discovered through:
[project.entry-points."az_scout.plugins"]
vm_sku_modernization = "az_scout_vm_sku_modernization:plugin"
Install locally in Az Scout
From this repository:
uv sync --group dev
uv pip install -e .
Then start Az Scout from your main Az Scout workspace:
uv run az-scout web
The plugin tab appears as VM SKU Modernization once the editable install is visible in the Python environment used by Az Scout.
Main capabilities
The dashboard includes:
- inventory columns for VM name, resource group, subscription, region, SKU, generation, OS, image publisher, disk controller, and zones
- readiness recommendations with statuses such as Verified, Needs remediation, Script / check, and Human review
- priority badges such as Critical risk, Important, and Advisory
- inline Why it matters guidance per recommendation
- an Advanced check flow for deep checks that require live ARM calls
- script helpers for:
- driver validation
- SCSI path validation
- pilot boot diagnostics / extension validation
- before/after network validation
- app-state inventory
- OS-disk backup / restore
- temporary-disk checks
- quota and capacity planning
- a checklist export for the currently selected VM
Migration-effort scoring is calculated by the backend and included in each VM
record. Publisher classification is intentionally conservative: only publishers
whose name begins with Microsoft are treated as first-party; Canonical and all
other publishers remain third-party for planning purposes.
VM detail modal data flow
- Selecting a keyboard-focusable inventory row opens the plugin modal and builds workload recommendations from the VM inventory record.
- The plugin derives v5 or v6/v7 candidate names, then queries
/api/skusfor candidates in parallel. Results are cached for five minutes per tenant, subscription, region, source SKU, and modernization target. - The highest-confidence candidate is passed to
/api/sku-detail. The response supplies the shared VM Profile, Zone Availability, Quota, Basic Deployment Confidence, and Pricing renderers. - Detail responses are cached for five minutes per candidate and currency. Changing the currency performs (or reuses) the matching currency request; an older in-flight response cannot replace the newly selected currency.
- A failed or partial profile, quota, or pricing response does not hide the
workload recommendations. The modal identifies unavailable values explicitly
and uses the
/api/skussnapshot only where it contains usable data.
Caches are cleared when inventory or modernization target changes. Live Azure capacity, quota, and retail prices can change during the cache window and must be revalidated before deployment.
Score limits
Basic Deployment Confidence is an indicative ranking signal, not a deployment guarantee. It combines the signals returned by az-scout (for example SKU match, quota pressure, zones, restrictions, and pricing pressure), excludes missing signals, and can become blocked when a hard constraint is detected. It does not prove instantaneous capacity, application compatibility, image support, performance, reservation eligibility, or successful migration.
The separate Migration Effort badge is a deterministic planning heuristic based on the inventory fields available to this plugin: Hyper-V generation, disk controller, security profile, publisher, and hibernation. Missing fields are handled conservatively. Neither score replaces a pilot, the Advanced check, subscription quota validation, or workload-owner review.
Quality checks
uv run ruff check src/ tests/
uv run ruff format --check src/ tests/
uv run mypy src/
uv run pytest
node --test tests/frontend/vm-sku-modernization.test.js
Publish and submit to catalog
- Push this plugin to
JoGbd/az-scout-plugin-vm-sku-modernization. - Tag a release (CalVer style recommended, for example
v2026.7.0). - Publish the package to PyPI using
.github/workflows/publish.yml. - Open a catalog request in Az Scout with:
- the GitHub repo URL
- the PyPI package name:
az-scout-plugin-vm-sku-modernization - a short description and screenshots
Documentation
For Azure migration guidance behind these recommendations, see:
https://learn.microsoft.com/en-us/azure/virtual-machines/migration/sizes/sizes-v6-v7-migration-plan
Disclaimer
This plugin is not affiliated with Microsoft. Capacity, pricing, availability, and validation outputs are indicative and must be reviewed in your own tenant before production rollout.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file az_scout_plugin_vm_sku_modernization-2026.8.0.tar.gz.
File metadata
- Download URL: az_scout_plugin_vm_sku_modernization-2026.8.0.tar.gz
- Upload date:
- Size: 184.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d782c2cc238ff0a40a1dc40a9eaeff5447bc165149255b3f4832dc189f7e8e1b
|
|
| MD5 |
0ad1e73860d69883a0058d77e071f922
|
|
| BLAKE2b-256 |
e2e22553461873b7b926f54dd11bff9a2ce9e5deda8c4ea3d50fe4358d8a6660
|
Provenance
The following attestation bundles were made for az_scout_plugin_vm_sku_modernization-2026.8.0.tar.gz:
Publisher:
publish.yml on JoGbd/az-scout-plugin-vm-sku-modernization
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
az_scout_plugin_vm_sku_modernization-2026.8.0.tar.gz -
Subject digest:
d782c2cc238ff0a40a1dc40a9eaeff5447bc165149255b3f4832dc189f7e8e1b - Sigstore transparency entry: 2340846900
- Sigstore integration time:
-
Permalink:
JoGbd/az-scout-plugin-vm-sku-modernization@81f30a4bd9cd130c89d374cd69cb52679d35fed4 -
Branch / Tag:
refs/tags/v2026.8.0 - Owner: https://github.com/JoGbd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@81f30a4bd9cd130c89d374cd69cb52679d35fed4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file az_scout_plugin_vm_sku_modernization-2026.8.0-py3-none-any.whl.
File metadata
- Download URL: az_scout_plugin_vm_sku_modernization-2026.8.0-py3-none-any.whl
- Upload date:
- Size: 54.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50f4560a5b55c39759173e5d9d64b3d0065d5a1a1d3583203e27ef25f1fd221d
|
|
| MD5 |
cd0308a96107cdf0d447917b569e8bd6
|
|
| BLAKE2b-256 |
104f88c05d58e60bd156590a718352b88e03f1097fcc9acb5cad45e273b21202
|
Provenance
The following attestation bundles were made for az_scout_plugin_vm_sku_modernization-2026.8.0-py3-none-any.whl:
Publisher:
publish.yml on JoGbd/az-scout-plugin-vm-sku-modernization
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
az_scout_plugin_vm_sku_modernization-2026.8.0-py3-none-any.whl -
Subject digest:
50f4560a5b55c39759173e5d9d64b3d0065d5a1a1d3583203e27ef25f1fd221d - Sigstore transparency entry: 2340846912
- Sigstore integration time:
-
Permalink:
JoGbd/az-scout-plugin-vm-sku-modernization@81f30a4bd9cd130c89d374cd69cb52679d35fed4 -
Branch / Tag:
refs/tags/v2026.8.0 - Owner: https://github.com/JoGbd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@81f30a4bd9cd130c89d374cd69cb52679d35fed4 -
Trigger Event:
push
-
Statement type: