Skip to content

Commit ec11641

Browse files
authored
components: Update DCGM exporter version for AzL3 to 4.6.0 (#7284)
Signed-off-by: Suraj Deshmukh <[email protected]>
1 parent 3e22998 commit ec11641

File tree

3 files changed

+92
-3
lines changed

3 files changed

+92
-3
lines changed

.github/workflows/validate-components.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Validate Components
22
on: pull_request
33

4-
jobs:
4+
jobs:
55
cue:
66
runs-on: ubuntu-latest
77
environment: test
@@ -40,3 +40,16 @@ jobs:
4040
export PATH="$PATH:$GOPATH/bin"
4141
cue vet -c ./schemas/components.cue ./vhdbuilder/packer/windows/components-test.json
4242
43+
version-consistency:
44+
runs-on: ubuntu-latest
45+
steps:
46+
- uses: actions/checkout@v5
47+
- uses: actions/setup-go@v6
48+
with:
49+
go-version: '1.24'
50+
- name: Run GPU managed components version consistency test
51+
working-directory: ./e2e
52+
run: |
53+
set -ex
54+
go test -v -run ^Test_Version_Consistency_GPU_Managed_Components$ .
55+

e2e/scenario_gpu_managed_experience_test.go

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package e2e
22

33
import (
44
"context"
5+
"regexp"
56
"testing"
67
"time"
78

@@ -29,6 +30,81 @@ func getDCGMPackageNames(os string) []string {
2930
return packages
3031
}
3132

33+
// extractMajorMinorPatchVersion extracts the major.minor.patch version from a
34+
// version string
35+
//
36+
// Examples:
37+
//
38+
// "4.6.0-1" -> "4.6.0"
39+
// "4.5.2-1.azl3" -> "4.5.2"
40+
// "1:4.4.1-1" -> "4.4.1" (handles epoch prefix)
41+
func extractMajorMinorPatchVersion(version string) string {
42+
// Remove epoch prefix (e.g., "1:" in "1:4.4.1-1")
43+
version = regexp.MustCompile(`^\d+:`).ReplaceAllString(version, "")
44+
45+
// Match major.minor.patch pattern
46+
re := regexp.MustCompile(`^(\d+\.\d+\.\d+)`)
47+
matches := re.FindStringSubmatch(version)
48+
if len(matches) > 1 {
49+
return matches[1]
50+
}
51+
return ""
52+
}
53+
54+
type packageOSVariant struct {
55+
pkgName string
56+
osName string
57+
osRelease string
58+
}
59+
60+
func Test_Version_Consistency_GPU_Managed_Components(t *testing.T) {
61+
allPackageVariants := [][]packageOSVariant{
62+
{
63+
{"nvidia-device-plugin", "ubuntu", "r2404"},
64+
{"nvidia-device-plugin", "ubuntu", "r2204"},
65+
{"nvidia-device-plugin", "azurelinux", "v3.0"},
66+
},
67+
{
68+
{"datacenter-gpu-manager-4-core", "ubuntu", "r2404"},
69+
{"datacenter-gpu-manager-4-core", "ubuntu", "r2204"},
70+
{"datacenter-gpu-manager-4-core", "azurelinux", "v3.0"},
71+
},
72+
{
73+
{"datacenter-gpu-manager-4-proprietary", "ubuntu", "r2404"},
74+
{"datacenter-gpu-manager-4-proprietary", "ubuntu", "r2204"},
75+
{"datacenter-gpu-manager-4-proprietary", "azurelinux", "v3.0"},
76+
},
77+
{
78+
{"datacenter-gpu-manager-exporter", "ubuntu", "r2404"},
79+
{"datacenter-gpu-manager-exporter", "ubuntu", "r2204"},
80+
{"dcgm-exporter", "azurelinux", "v3.0"},
81+
},
82+
}
83+
84+
for _, packageGroup := range allPackageVariants {
85+
expectedVersion := ""
86+
for _, pkgVar := range packageGroup {
87+
componentVersions := components.GetExpectedPackageVersions(pkgVar.pkgName, pkgVar.osName, pkgVar.osRelease)
88+
require.Lenf(t, componentVersions, 1,
89+
"Expected exactly one %s version for %s %s but got %d",
90+
pkgVar.pkgName, pkgVar.osName, pkgVar.osRelease, len(componentVersions))
91+
92+
pkgVersion := extractMajorMinorPatchVersion(componentVersions[0])
93+
require.NotEmptyf(t, pkgVersion, "Failed to extract major.minor.patch version from %s for %s %s",
94+
componentVersions[0], pkgVar.osName, pkgVar.osRelease)
95+
96+
// For the first iteration, set the expectedVersion
97+
if expectedVersion == "" {
98+
expectedVersion = pkgVersion
99+
continue
100+
}
101+
require.Equalf(t, expectedVersion, pkgVersion,
102+
"Expected all %s versions to have the same major.minor.patch version, but found mismatch: %s vs %s for %s.%s",
103+
pkgVar.pkgName, expectedVersion, pkgVersion, pkgVar.osName, pkgVar.osRelease)
104+
}
105+
}
106+
}
107+
32108
func Test_Ubuntu2404_NvidiaDevicePluginRunning(t *testing.T) {
33109
RunScenario(t, &Scenario{
34110
Description: "Tests that NVIDIA device plugin and DCGM Exporter are running & functional on Ubuntu 24.04 GPU nodes",

parts/common/components.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@
749749
"downloadURL": "mcr.microsoft.com/aks/aks-gpu-grid:*",
750750
"gpuVersion": {
751751
"renovateTag": "registry=https://mcr.microsoft.com, name=aks/aks-gpu-grid",
752-
"latestVersion": "550.144.06-20251021155159"
752+
"latestVersion": "550.144.06-20251021155159"
753753
}
754754
}
755755
],
@@ -1633,7 +1633,7 @@
16331633
"versionsV2": [
16341634
{
16351635
"renovateTag": "RPM_registry=https://packages.microsoft.com/azurelinux/3.0/prod/cloud-native/x86_64/repodata, name=dcgm-exporter, os=azurelinux, release=3.0",
1636-
"latestVersion": "4.5.2-1.azl3"
1636+
"latestVersion": "4.6.0-1.azl3"
16371637
}
16381638
]
16391639
}

0 commit comments

Comments
 (0)