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.
Metadata
Release files for az-scout-plugin-vm-sku-modernization 2026.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| az_scout_plugin_vm_sku_modernization-2026.8.0.tar.gz | 184.0 kB | With provenance | Details for az_scout_plugin_vm_sku_modernization-2026.8.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| az_scout_plugin_vm_sku_modernization-2026.8.0-py3-none-any.whl | Python 3 | none | any | Details for az_scout_plugin_vm_sku_modernization-2026.8.0-py3-none-any.whl |
Total release size: 238.3 kB
Release files / az_scout_plugin_vm_sku_modernization-2026.8.0.tar.gz
| Download URL | az_scout_plugin_vm_sku_modernization-2026.8.0.tar.gz |
|---|---|
| Size | 184.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d782c2cc238ff0a40a1dc40a9eaeff5447bc165149255b3f4832dc189f7e8e1b
|
|
BLAKE2b-256 checksum How to use checksums |
e2e22553461873b7b926f54dd11bff9a2ce9e5deda8c4ea3d50fe4358d8a6660
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / az_scout_plugin_vm_sku_modernization-2026.8.0-py3-none-any.whl
| Download URL | az_scout_plugin_vm_sku_modernization-2026.8.0-py3-none-any.whl |
|---|---|
| Size | 54.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
50f4560a5b55c39759173e5d9d64b3d0065d5a1a1d3583203e27ef25f1fd221d
|
|
BLAKE2b-256 checksum How to use checksums |
104f88c05d58e60bd156590a718352b88e03f1097fcc9acb5cad45e273b21202
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logSecurity for az-scout-plugin-vm-sku-modernization 2026.8.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for az_scout_plugin_vm_sku_modernization-2026.8.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.