From 8cb4cb3c53d68ed64dabbc03a2825a6996532bb0 Mon Sep 17 00:00:00 2001 From: Ganeshkumar Ashokavardhanan Date: Mon, 17 Aug 2026 14:18:58 -0700 Subject: [PATCH] chore(gpu): bump aks-gpu-grid to 570.237-20260817204535 Picks up the NVIDIA GRID driver bump merged in Azure/aks-gpu#179, which moved the GRID runfile from 570.211.01 to 570.237 (vGPU18.8 build for NVadsA10_v5). The published image tag is already mirrored to MCR. Note that 570.237 has only TWO version components, not the usual three. This is genuine, not a truncation: the runfile header reports version_string=570.237 and the image ships libnvidia-ml.so.570.237. That breaks two places that assumed a three-component version: 1. .github/renovate.json - the aks/aks-gpu-grid versioning regex required exactly three numeric components, so Renovate could never parse the new tag and would have silently skipped this bump forever. The patch group is now optional. Renovate treats omitted groups as 0, so ordering still works (570.237 > 570.211.01 on the minor component). 2. pkg/agent/datamodel/gpu_components_test.go - TestLoadConfig asserted ^\d+\.\d+\.\d+$ and failed on the new version. Relaxed to ^\d+(\.\d+)+$, mirroring the guard in the upstream aks-gpu repo. The Go parser in gpu_components.go needed no change: it splits on "-" into version and suffix and makes no assumption about component count. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e525ff6d-7072-4f71-92b9-4d5a87808b20 --- .github/renovate.json | 2 +- parts/common/components.json | 2 +- pkg/agent/datamodel/gpu_components_test.go | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index b958a649df2..b22463dd72d 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -666,7 +666,7 @@ "aks/aks-gpu-grid" ], "groupName": "nvidia-gpu-grid", - "versioning": "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-(?\\d{14})$", + "versioning": "regex:^(?\\d+)\\.(?\\d+)(\\.(?\\d+))?-(?\\d{14})$", "automerge": false, "enabled": true, "ignoreUnstable": false, diff --git a/parts/common/components.json b/parts/common/components.json index a5bcc495783..81ebe8c1245 100644 --- a/parts/common/components.json +++ b/parts/common/components.json @@ -711,7 +711,7 @@ "downloadURL": "mcr.microsoft.com/aks/aks-gpu-grid:*", "gpuVersion": { "renovateTag": "registry=https://mcr.microsoft.com, name=aks/aks-gpu-grid", - "latestVersion": "570.211.01-20260522192315" + "latestVersion": "570.237-20260817204535" } }, { diff --git a/pkg/agent/datamodel/gpu_components_test.go b/pkg/agent/datamodel/gpu_components_test.go index 9dc78b327fb..16de9ab7fb2 100644 --- a/pkg/agent/datamodel/gpu_components_test.go +++ b/pkg/agent/datamodel/gpu_components_test.go @@ -32,8 +32,12 @@ func TestLoadConfig(t *testing.T) { } // Define regular expressions for expected formats - versionRegex := `^\d+\.\d+\.\d+$` // match version strings in a format like "X.Y.Z", where each of X, Y, and Z are numbers. e.g., "550.90.12" - suffixRegex := `^\d{14}$` // match a string of exactly 14 digits, which can represent a timestamp e.g., "20241021235610" + // Match NVIDIA driver versions, which have two or more dot-separated numeric components. + // Most are three components ("550.90.12"), but NVIDIA also ships two-component vGPU builds + // (e.g. GRID "570.237"), so the third component must be optional. This mirrors the version + // guard in the upstream Azure/aks-gpu repo: ^[0-9]+(\.[0-9]+)+$ + versionRegex := `^\d+(\.\d+)+$` + suffixRegex := `^\d{14}$` // match a string of exactly 14 digits, which can represent a timestamp e.g., "20241021235610" // Compile the regular expressions versionPattern := regexp.MustCompile(versionRegex)