diff --git a/.github/workflows/opendata-instance-size-flexibility.yml b/.github/workflows/opendata-instance-size-flexibility.yml new file mode 100644 index 000000000..8dea73d7c --- /dev/null +++ b/.github/workflows/opendata-instance-size-flexibility.yml @@ -0,0 +1,84 @@ +name: Update Instance Size Flexibility + +on: + schedule: + - cron: '0 6 * * 1' # Every Monday at 06:00 UTC + workflow_dispatch: + +# Unlike the other open data workflows, the Catalogs API is authenticated and requires +# Microsoft.Capacity/catalogs/read. This reuses the existing OIDC service principal from the +# aoe-prod environment (same one the AOE deployment workflows use) via federated credentials, +# so no client secret is stored. The principal's subscription must have the Microsoft.Capacity +# resource provider registered. +permissions: + contents: write + pull-requests: write + id-token: write + +jobs: + update: + environment: aoe-prod + runs-on: ubuntu-latest + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + with: + ref: dev + + - name: Install Az.Accounts + shell: pwsh + run: | + Set-PSRepository PSGallery -InstallationPolicy Trusted + Install-Module -Name Az.Accounts -RequiredVersion 2.19.0 -Force + + - name: Login via Az module + uses: azure/login@hf_447_release + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + enable-AzPSSession: true + + - name: Fetch ISF ratios from Azure Catalogs API + shell: pwsh + run: src/scripts/Update-InstanceSizeFlexibility.ps1 + + - name: Create PR if data changed + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR_BODY: | + ## Summary + + Weekly automated update of instance size flexibility (ISF) ratios from the + [Azure Reservations Catalogs API](https://learn.microsoft.com/azure/cost-management-billing/reservations/instance-size-flexibility#extract-instance-size-flexibility-ratios-using-azure-catalogs-api). + + This file maps each ARM SKU to its instance size flexibility group and ratio, + replacing the deprecated `AutofitComboMeterData.csv` and `isfratioblob.csv` files + that were hosted on `ccmstorageprod.blob.core.windows.net` (retired 30 Aug 2026). + + ## Test plan + + - [ ] Review the diff for unexpected changes (large drops in group/SKU count, etc.) + - [ ] Spot-check a few SKUs against the Azure Pricing Calculator + + πŸ€– Generated by the **Update Instance Size Flexibility** workflow + run: | + # Check for changes (handles both new file and modified file) + if git diff --quiet --exit-code -- src/open-data/InstanceSizeFlexibility.csv 2>/dev/null && \ + ! git ls-files --others --exclude-standard | grep -q 'InstanceSizeFlexibility.csv'; then + echo "No changes detected" + exit 0 + fi + + BRANCH="opendata/instance-size-flexibility-$(date +%Y%m%d)" + git checkout -b "$BRANCH" + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add src/open-data/InstanceSizeFlexibility.csv + git commit -m "chore: Update instance size flexibility ratios" + git push origin "$BRANCH" + + gh pr create \ + --title "[Open Data] Update instance size flexibility ratios ($(date +'%B %Y'))" \ + --base dev \ + --body "$PR_BODY" diff --git a/docs-mslearn/toolkit/changelog.md b/docs-mslearn/toolkit/changelog.md index 1f7974bef..a01533027 100644 --- a/docs-mslearn/toolkit/changelog.md +++ b/docs-mslearn/toolkit/changelog.md @@ -3,7 +3,7 @@ title: FinOps toolkit changelog description: Review the latest features and enhancements in the FinOps toolkit, including updates to FinOps hubs, Power BI reports, and more. author: MSBrett ms.author: brettwil -ms.date: 06/19/2026 +ms.date: 06/29/2026 ms.topic: reference ms.service: finops ms.subservice: finops-toolkit @@ -18,14 +18,18 @@ ms.reviewer: brettwil This article summarizes the features and enhancements in each release of the FinOps toolkit. - +### [Open data](open-data.md) updates + +**[Instance size flexibility](open-data.md#instance-size-flexibility)** + +- **Added** + - Added a new [Instance size flexibility](open-data.md#instance-size-flexibility) dataset that maps each ARM SKU to its instance size flexibility group and ratio, sourced from the Azure Reservations Catalogs API. It replaces the deprecated ISF ratio files hosted on `ccmstorageprod.blob.core.windows.net` ([#2090](https://github.com/microsoft/finops-toolkit/issues/2090)).
diff --git a/docs-mslearn/toolkit/open-data.md b/docs-mslearn/toolkit/open-data.md index afc1f6f4b..0e7cf8489 100644 --- a/docs-mslearn/toolkit/open-data.md +++ b/docs-mslearn/toolkit/open-data.md @@ -4,7 +4,7 @@ description: Use open data to normalize and enhance your FinOps reporting, ensur ms.topic: concept-article author: flanakin ms.author: micflan -ms.date: 04/04/2026 +ms.date: 06/29/2026 ms.service: finops ms.subservice: finops-toolkit ms.reviewer: micflan @@ -179,6 +179,31 @@ A few important notes about the data:
+## Instance size flexibility + +Instance size flexibility (ISF) lets a reservation apply across multiple SKUs in the same flexibility group, weighted by a ratio. The instance size flexibility file maps each ARM SKU to its flexibility group and ratio, sourced from the [Azure Reservations Catalogs API](/azure/cost-management-billing/reservations/instance-size-flexibility#extract-instance-size-flexibility-ratios-using-azure-catalogs-api). It replaces the static ISF ratio files that were previously hosted on `ccmstorageprod.blob.core.windows.net`, which Microsoft is retiring. + +Sample data: + +| InstanceSizeFlexibilityGroup | ArmSkuName | Ratio | +| ---------------------------- | -------------- | ----- | +| Av2 Series | Standard_A1_v2 | 1 | +| Av2 Series | Standard_A2_v2 | 2.1 | +| Av2 Series | Standard_A4_v2 | 4.44 | + +A few important notes about the data: + +- It covers the reserved resource types that expose ISF ratios: Virtual Machines, Block Blob storage, Redis Cache, and Dedicated Host. +- Ratios are the raw Microsoft values within each group (the smallest SKU isn't always `1`). +- Data is updated weekly via a GitHub Actions workflow. + + +> [!div class="nextstepaction"] +> [Download](https://github.com/microsoft/finops-toolkit/releases/latest/download/InstanceSizeFlexibility.csv) + + +
+ ## Dataset examples The following files are examples of what you see when you export data from Microsoft Cost Management. These files are provided to help you understand the data structure and format. They are from an Enterprise Agreement (EA) demo account and aren't intended to be used for ingestion or reporting. diff --git a/docs/open-data.md b/docs/open-data.md index fd0fd59ab..ed191680b 100644 --- a/docs/open-data.md +++ b/docs/open-data.md @@ -34,6 +34,12 @@ FinOps toolkit open data is used to transform Cost Management actual and amortiz ## Download open data