Skip to content

Commit ec83dd4

Browse files
committed
address review comments
Signed-off-by: Rahul Sharma <rahulsharm@nvidia.com>
1 parent 6b1ead2 commit ec83dd4

3 files changed

Lines changed: 22 additions & 21 deletions

File tree

.github/scripts/generate-image-list.py

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515

16-
"""Generate a complete list of container images required to run the GPU Operator.
16+
"""Generate a complete list of container images that could be pulled and deployed
17+
by the GPU Operator.
1718
1819
Parses the Helm chart's values.yaml (and the bundled NFD subchart) to produce a
1920
plain-text file with one fully-qualified image reference per line. The list is
@@ -207,7 +208,7 @@ def _extract_operator_images(
207208
"""
208209
images: set[str] = set()
209210

210-
def add(repo: str, img: str, ver: str | None) -> None:
211+
def add_image_ref(repo: str, img: str, ver: str | None) -> None:
211212
"""Add a single-tag image, substituting app_version when version is absent."""
212213
if ver == "":
213214
return # empty string = user-supplied image not set; skip
@@ -241,7 +242,7 @@ def add_os_variants(repo: str, img: str, ver: str) -> None:
241242
comp = values.get(key, {})
242243
# Use explicit version from component if specified, otherwise use override if provided
243244
version = comp.get("version") or operator_version
244-
add(comp.get("repository", ""), comp.get("image", ""), version)
245+
add_image_ref(comp.get("repository", ""), comp.get("image", ""), version)
245246

246247
# ------------------------------------------------------------------
247248
# Components with explicit, pinned versions
@@ -257,31 +258,31 @@ def add_os_variants(repo: str, img: str, ver: str) -> None:
257258

258259
# k8s-driver-manager sidecar
259260
dm = driver.get("manager", {})
260-
add(dm.get("repository", ""), dm.get("image", ""), dm.get("version", ""))
261+
add_image_ref(dm.get("repository", ""), dm.get("image", ""), dm.get("version", ""))
261262

262263
# Container Toolkit
263264
tk = values.get("toolkit", {})
264-
add(tk.get("repository", ""), tk.get("image", ""), tk.get("version", ""))
265+
add_image_ref(tk.get("repository", ""), tk.get("image", ""), tk.get("version", ""))
265266

266267
# Device Plugin
267268
dp = values.get("devicePlugin", {})
268-
add(dp.get("repository", ""), dp.get("image", ""), dp.get("version", ""))
269+
add_image_ref(dp.get("repository", ""), dp.get("image", ""), dp.get("version", ""))
269270

270271
# Standalone DCGM hostengine (optional, disabled by default)
271272
dcgm = values.get("dcgm", {})
272-
add(dcgm.get("repository", ""), dcgm.get("image", ""), dcgm.get("version", ""))
273+
add_image_ref(dcgm.get("repository", ""), dcgm.get("image", ""), dcgm.get("version", ""))
273274

274275
# DCGM Exporter
275276
de = values.get("dcgmExporter", {})
276-
add(de.get("repository", ""), de.get("image", ""), de.get("version", ""))
277+
add_image_ref(de.get("repository", ""), de.get("image", ""), de.get("version", ""))
277278

278279
# GPU Feature Discovery (shares the device-plugin image)
279280
gfd = values.get("gfd", {})
280-
add(gfd.get("repository", ""), gfd.get("image", ""), gfd.get("version", ""))
281+
add_image_ref(gfd.get("repository", ""), gfd.get("image", ""), gfd.get("version", ""))
281282

282283
# MIG Manager
283284
mm = values.get("migManager", {})
284-
add(mm.get("repository", ""), mm.get("image", ""), mm.get("version", ""))
285+
add_image_ref(mm.get("repository", ""), mm.get("image", ""), mm.get("version", ""))
285286

286287
# GPUDirect Storage – OS-specific image (e.g. 2.27.3-ubuntu22.04)
287288
gds = values.get("gds", {})
@@ -303,29 +304,29 @@ def add_os_variants(repo: str, img: str, ver: str) -> None:
303304
# The driverManager sidecar is pinned.
304305
vgpu = values.get("vgpuManager", {})
305306
vgpu_dm = vgpu.get("driverManager", {})
306-
add(vgpu_dm.get("repository", ""), vgpu_dm.get("image", ""), vgpu_dm.get("version", ""))
307+
add_image_ref(vgpu_dm.get("repository", ""), vgpu_dm.get("image", ""), vgpu_dm.get("version", ""))
307308

308309
# vGPU Device Manager
309310
vdm = values.get("vgpuDeviceManager", {})
310-
add(vdm.get("repository", ""), vdm.get("image", ""), vdm.get("version", ""))
311+
add_image_ref(vdm.get("repository", ""), vdm.get("image", ""), vdm.get("version", ""))
311312

312313
# VFIO Manager (and its driverManager sidecar)
313314
vfio = values.get("vfioManager", {})
314-
add(vfio.get("repository", ""), vfio.get("image", ""), vfio.get("version", ""))
315+
add_image_ref(vfio.get("repository", ""), vfio.get("image", ""), vfio.get("version", ""))
315316
vfio_dm = vfio.get("driverManager", {})
316-
add(vfio_dm.get("repository", ""), vfio_dm.get("image", ""), vfio_dm.get("version", ""))
317+
add_image_ref(vfio_dm.get("repository", ""), vfio_dm.get("image", ""), vfio_dm.get("version", ""))
317318

318319
# Sandbox Device Plugin (KubeVirt GPU passthrough)
319320
sdp = values.get("sandboxDevicePlugin", {})
320-
add(sdp.get("repository", ""), sdp.get("image", ""), sdp.get("version", ""))
321+
add_image_ref(sdp.get("repository", ""), sdp.get("image", ""), sdp.get("version", ""))
321322

322323
# Kata Sandbox Device Plugin
323324
ksdp = values.get("kataSandboxDevicePlugin", {})
324-
add(ksdp.get("repository", ""), ksdp.get("image", ""), ksdp.get("version", ""))
325+
add_image_ref(ksdp.get("repository", ""), ksdp.get("image", ""), ksdp.get("version", ""))
325326

326327
# Confidential Computing Manager
327328
cc = values.get("ccManager", {})
328-
add(cc.get("repository", ""), cc.get("image", ""), cc.get("version", ""))
329+
add_image_ref(cc.get("repository", ""), cc.get("image", ""), cc.get("version", ""))
329330

330331
# kataManager has no image fields in values.yaml (operator-managed); skip.
331332

.github/workflows/release-image-list.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
with:
3636
ref: ${{ github.event.release.tag_name }}
3737
- name: Set up Python
38-
uses: actions/setup-python@v5
38+
uses: actions/setup-python@v6
3939
with:
4040
python-version: "3.12"
4141
- name: Install PyYAML
@@ -49,7 +49,7 @@ jobs:
4949
--output "${ARTIFACT_NAME}"
5050
echo "artifact_name=${ARTIFACT_NAME}" >> "${GITHUB_OUTPUT}"
5151
- name: Upload image list artifact
52-
uses: actions/upload-artifact@v4
52+
uses: actions/upload-artifact@v7
5353
with:
5454
name: ${{ steps.generate.outputs.artifact_name }}
5555
path: ${{ steps.generate.outputs.artifact_name }}
@@ -65,7 +65,7 @@ jobs:
6565
- uses: actions/checkout@v6
6666
name: Check out code
6767
- name: Download image list artifact
68-
uses: actions/download-artifact@v4
68+
uses: actions/download-artifact@v8
6969
with:
7070
name: ${{ needs.generate-image-list.outputs.artifact_name }}
7171
- name: Attach image list to GitHub Release

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ validate-helm-values: cmds
245245
sed '/^--/d' | \
246246
./gpuop-cfg validate clusterpolicy --input="-"
247247

248-
# Generate a list of all container images required to run the GPU Operator.
248+
# Generate a list of all container images that could be deployed by the GPU Operator.
249249
# Useful for pre-pulling images in air-gapped environments.
250250
# Usage:
251251
# make generate-image-list # prints to stdout (queries registry for OS variants)

0 commit comments

Comments
 (0)