From c8dd0cc25bdb9276118d747a0b94f12d7feb5114 Mon Sep 17 00:00:00 2001 From: Christopher Desiniotis Date: Sat, 8 Mar 2025 21:58:44 -0800 Subject: [PATCH] USE GIT_COMMIT in container builds Signed-off-by: Christopher Desiniotis --- Makefile | 1 + rhel10/Dockerfile | 2 ++ rhel10/precompiled/Dockerfile | 3 +++ rhel10/precompiled/Makefile | 3 +++ rhel8/Dockerfile | 2 ++ rhel8/precompiled/Dockerfile | 3 +++ rhel8/precompiled/Makefile | 2 ++ rhel9/Dockerfile | 2 ++ rhel9/precompiled/Dockerfile | 3 +++ rhel9/precompiled/Makefile | 3 +++ ubuntu20.04/Dockerfile | 10 ++++++++++ ubuntu22.04/Dockerfile | 10 ++++++++++ ubuntu22.04/precompiled/Dockerfile | 11 +++++++++++ ubuntu24.04/Dockerfile | 10 ++++++++++ ubuntu24.04/precompiled/Dockerfile | 11 +++++++++++ versions.mk | 2 ++ vgpu-manager/rhel8/Dockerfile | 2 ++ vgpu-manager/rhel9/Dockerfile | 2 ++ vgpu-manager/ubuntu20.04/Dockerfile | 10 ++++++++++ vgpu-manager/ubuntu22.04/Dockerfile | 10 ++++++++++ vgpu-manager/ubuntu24.04/Dockerfile | 10 ++++++++++ 21 files changed, 112 insertions(+) diff --git a/Makefile b/Makefile index 7b8c70014..e3b6d8514 100644 --- a/Makefile +++ b/Makefile @@ -171,6 +171,7 @@ $(DRIVER_BUILD_TARGETS): --build-arg DRIVER_BRANCH="$(DRIVER_BRANCH)" \ --build-arg CUDA_VERSION="$(CUDA_VERSION)" \ --build-arg CVE_UPDATES="$(CVE_UPDATES)" \ + --build-arg GIT_COMMIT="$(GIT_COMMIT)" \ $(DOCKER_BUILD_ARGS) \ --file $(DOCKERFILE) \ $(CURDIR)/$(SUBDIR) diff --git a/rhel10/Dockerfile b/rhel10/Dockerfile index 70d1a25ff..434255504 100644 --- a/rhel10/Dockerfile +++ b/rhel10/Dockerfile @@ -41,6 +41,7 @@ ARG DRIVER_VERSION ENV DRIVER_VERSION=$DRIVER_VERSION ARG DRIVER_BRANCH ENV DRIVER_BRANCH=$DRIVER_BRANCH +ARG GIT_COMMIT # Arg to indicate if driver type is either of passthrough/baremetal or vgpu ARG DRIVER_TYPE=passthrough @@ -97,6 +98,7 @@ LABEL io.k8s.display-name="NVIDIA Driver Container" LABEL name="NVIDIA Driver Container" LABEL vendor="NVIDIA" LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" LABEL release="N/A" LABEL summary="Provision the NVIDIA driver through containers" LABEL description="See summary" diff --git a/rhel10/precompiled/Dockerfile b/rhel10/precompiled/Dockerfile index 3b73e72c9..7369b9bb1 100644 --- a/rhel10/precompiled/Dockerfile +++ b/rhel10/precompiled/Dockerfile @@ -93,6 +93,8 @@ ARG BUILD_ARCH ARG TARGET_ARCH ENV TARGETARCH=${TARGET_ARCH} +ARG GIT_COMMIT + # Force using provided RHSM registration ENV SMDEV_CONTAINER_OFF=1 @@ -172,6 +174,7 @@ LABEL io.k8s.display-name="NVIDIA Driver Container" LABEL name="NVIDIA Driver Container" LABEL vendor="NVIDIA" LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" LABEL release="${KERNEL_VERSION}-${OS_TAG}" LABEL summary="Provision the NVIDIA driver through containers" LABEL description="See summary" diff --git a/rhel10/precompiled/Makefile b/rhel10/precompiled/Makefile index f826f22fa..88acf650e 100644 --- a/rhel10/precompiled/Makefile +++ b/rhel10/precompiled/Makefile @@ -1,3 +1,5 @@ +GIT_COMMIT ?= $(shell git describe --match="" --dirty --long --always --abbrev=40 2> /dev/null || echo "") + RHEL_VERSION ?= 10.0 RHEL_VERSION_MAJOR = $(shell echo "${RHEL_VERSION}" | awk -F. '{print $$1}') @@ -70,6 +72,7 @@ image: rhsm-register --build-arg DRIVER_STREAM_TYPE=${DRIVER_STREAM_TYPE} \ --build-arg BASE_URL=${BASE_URL} \ --build-arg OS_TAG=${OS_TAG} \ + --build-arg GIT_COMMIT=${GIT_COMMIT} \ --tag ${IMAGE_REGISTRY}/${IMAGE_NAME}:${DRIVER_VERSION}-${KERNEL_VERSION_TAG}-${OS_TAG} \ --progress=plain \ --file ${DOCKERFILE} . diff --git a/rhel8/Dockerfile b/rhel8/Dockerfile index 42832b314..ff717f161 100644 --- a/rhel8/Dockerfile +++ b/rhel8/Dockerfile @@ -35,6 +35,7 @@ ARG DRIVER_VERSION ENV DRIVER_VERSION=$DRIVER_VERSION ARG DRIVER_BRANCH ENV DRIVER_BRANCH=$DRIVER_BRANCH +ARG GIT_COMMIT # Arg to indicate if driver type is either of passthrough/baremetal or vgpu ARG DRIVER_TYPE=passthrough @@ -90,6 +91,7 @@ LABEL io.k8s.display-name="NVIDIA Driver Container" LABEL name="NVIDIA Driver Container" LABEL vendor="NVIDIA" LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" LABEL release="N/A" LABEL summary="Provision the NVIDIA driver through containers" LABEL description="See summary" diff --git a/rhel8/precompiled/Dockerfile b/rhel8/precompiled/Dockerfile index 2c7eda749..a25ceb4e4 100644 --- a/rhel8/precompiled/Dockerfile +++ b/rhel8/precompiled/Dockerfile @@ -67,6 +67,8 @@ ENV DRIVER_VERSION=${DRIVER_VERSION} ARG TARGET_ARCH='' ENV TARGETARCH=${TARGET_ARCH} +ARG GIT_COMMIT + # Force using provided RHSM registration ENV SMDEV_CONTAINER_OFF=1 @@ -138,6 +140,7 @@ LABEL io.k8s.display-name="NVIDIA Driver Container" LABEL name="NVIDIA Driver Container" LABEL vendor="NVIDIA" LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" LABEL release="N/A" LABEL summary="Provision the NVIDIA driver through containers" LABEL description="See summary" diff --git a/rhel8/precompiled/Makefile b/rhel8/precompiled/Makefile index b7b2a925d..757c0b824 100644 --- a/rhel8/precompiled/Makefile +++ b/rhel8/precompiled/Makefile @@ -1,4 +1,5 @@ DOCKERFILE = Dockerfile +GIT_COMMIT ?= $(shell git describe --match="" --dirty --long --always --abbrev=40 2> /dev/null || echo "") RHEL_VERSION ?= 8.6 CUDA_VERSION ?= 12.6.0 CUDA_DIST ?= ubi8 @@ -52,6 +53,7 @@ image: rhsm-register --build-arg DRIVER_TOOLKIT_IMAGE=${DRIVER_TOOLKIT_IMAGE} \ --build-arg DRIVER_TYPE=${DRIVER_TYPE} \ --build-arg BASE_URL=${BASE_URL} \ + --build-arg GIT_COMMIT=${GIT_COMMIT} \ --tag ${IMAGE_REGISTRY}/${IMAGE_NAME}:${DRIVER_VERSION}-${KERNEL_VERSION}-${OS_TAG} \ --progress=plain \ --file ${DOCKERFILE} . diff --git a/rhel9/Dockerfile b/rhel9/Dockerfile index 53b594e41..def1bd1ea 100644 --- a/rhel9/Dockerfile +++ b/rhel9/Dockerfile @@ -40,6 +40,7 @@ ARG DRIVER_VERSION ENV DRIVER_VERSION=$DRIVER_VERSION ARG DRIVER_BRANCH ENV DRIVER_BRANCH=$DRIVER_BRANCH +ARG GIT_COMMIT # Arg to indicate if driver type is either of passthrough/baremetal or vgpu ARG DRIVER_TYPE=passthrough @@ -96,6 +97,7 @@ LABEL io.k8s.display-name="NVIDIA Driver Container" LABEL name="NVIDIA Driver Container" LABEL vendor="NVIDIA" LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" LABEL release="N/A" LABEL summary="Provision the NVIDIA driver through containers" LABEL description="See summary" diff --git a/rhel9/precompiled/Dockerfile b/rhel9/precompiled/Dockerfile index 3b73e72c9..7369b9bb1 100644 --- a/rhel9/precompiled/Dockerfile +++ b/rhel9/precompiled/Dockerfile @@ -93,6 +93,8 @@ ARG BUILD_ARCH ARG TARGET_ARCH ENV TARGETARCH=${TARGET_ARCH} +ARG GIT_COMMIT + # Force using provided RHSM registration ENV SMDEV_CONTAINER_OFF=1 @@ -172,6 +174,7 @@ LABEL io.k8s.display-name="NVIDIA Driver Container" LABEL name="NVIDIA Driver Container" LABEL vendor="NVIDIA" LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" LABEL release="${KERNEL_VERSION}-${OS_TAG}" LABEL summary="Provision the NVIDIA driver through containers" LABEL description="See summary" diff --git a/rhel9/precompiled/Makefile b/rhel9/precompiled/Makefile index b587dc208..8d4b262fc 100644 --- a/rhel9/precompiled/Makefile +++ b/rhel9/precompiled/Makefile @@ -1,3 +1,5 @@ +GIT_COMMIT ?= $(shell git describe --match="" --dirty --long --always --abbrev=40 2> /dev/null || echo "") + RHEL_VERSION ?= 9.4 RHEL_VERSION_MAJOR = $(shell echo "${RHEL_VERSION}" | awk -F. '{print $$1}') @@ -70,6 +72,7 @@ image: rhsm-register --build-arg DRIVER_STREAM_TYPE=${DRIVER_STREAM_TYPE} \ --build-arg BASE_URL=${BASE_URL} \ --build-arg OS_TAG=${OS_TAG} \ + --build-arg GIT_COMMIT=${GIT_COMMIT} \ --tag ${IMAGE_REGISTRY}/${IMAGE_NAME}:${DRIVER_VERSION}-${KERNEL_VERSION_TAG}-${OS_TAG} \ --progress=plain \ --file ${DOCKERFILE} . diff --git a/ubuntu20.04/Dockerfile b/ubuntu20.04/Dockerfile index bfa1463a0..9003916ae 100644 --- a/ubuntu20.04/Dockerfile +++ b/ubuntu20.04/Dockerfile @@ -43,6 +43,7 @@ ENV TARGETARCH=$TARGETARCH ARG DRIVER_VERSION ENV DRIVER_VERSION=$DRIVER_VERSION ENV DEBIAN_FRONTEND=noninteractive +ARG GIT_COMMIT # Arg to indicate if driver type is either of passthrough(baremetal) or vgpu ARG DRIVER_TYPE=passthrough @@ -103,4 +104,13 @@ RUN rm /etc/apt/sources.list.d/cuda.list # Add NGC DL license from the CUDA image RUN mkdir /licenses && mv /NGC-DL-CONTAINER-LICENSE /licenses/NGC-DL-CONTAINER-LICENSE +LABEL io.k8s.display-name="NVIDIA Driver Container" +LABEL name="NVIDIA Driver Container" +LABEL vendor="NVIDIA" +LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" +LABEL release="N/A" +LABEL summary="Provision the NVIDIA driver through containers" +LABEL description="See summary" + ENTRYPOINT ["nvidia-driver", "init"] diff --git a/ubuntu22.04/Dockerfile b/ubuntu22.04/Dockerfile index 204dcbdfd..b1e9ff337 100644 --- a/ubuntu22.04/Dockerfile +++ b/ubuntu22.04/Dockerfile @@ -48,6 +48,7 @@ ENV TARGETARCH=$TARGETARCH ARG DRIVER_VERSION ENV DRIVER_VERSION=$DRIVER_VERSION ENV DEBIAN_FRONTEND=noninteractive +ARG GIT_COMMIT # Arg to indicate if driver type is either of passthrough(baremetal) or vgpu ARG DRIVER_TYPE=passthrough @@ -114,4 +115,13 @@ RUN rm -f /etc/apt/sources.list.d/cuda* # Add NGC DL license from the CUDA image RUN mkdir /licenses && mv /NGC-DL-CONTAINER-LICENSE /licenses/NGC-DL-CONTAINER-LICENSE +LABEL io.k8s.display-name="NVIDIA Driver Container" +LABEL name="NVIDIA Driver Container" +LABEL vendor="NVIDIA" +LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" +LABEL release="N/A" +LABEL summary="Provision the NVIDIA driver through containers" +LABEL description="See summary" + ENTRYPOINT ["nvidia-driver", "init"] diff --git a/ubuntu22.04/precompiled/Dockerfile b/ubuntu22.04/precompiled/Dockerfile index 6b0008079..9bd4ba798 100644 --- a/ubuntu22.04/precompiled/Dockerfile +++ b/ubuntu22.04/precompiled/Dockerfile @@ -13,6 +13,8 @@ ENV DRIVER_VERSION=$DRIVER_VERSION ARG KERNEL_VERSION=5.15.0-116-generic ENV KERNEL_VERSION=$KERNEL_VERSION +ARG GIT_COMMIT + ENV NVIDIA_VISIBLE_DEVICES=void RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections @@ -67,4 +69,13 @@ WORKDIR /drivers # Remove cuda repository to avoid GPG errors RUN rm -f /etc/apt/sources.list.d/cuda* +LABEL io.k8s.display-name="NVIDIA Driver Container" +LABEL name="NVIDIA Driver Container" +LABEL vendor="NVIDIA" +LABEL version="${DRIVER_BRANCH}-${KERNEL_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" +LABEL release="N/A" +LABEL summary="Provision the NVIDIA driver through containers" +LABEL description="See summary" + ENTRYPOINT ["nvidia-driver", "init"] diff --git a/ubuntu24.04/Dockerfile b/ubuntu24.04/Dockerfile index 1b6253d01..7442ee7c3 100644 --- a/ubuntu24.04/Dockerfile +++ b/ubuntu24.04/Dockerfile @@ -50,6 +50,7 @@ ARG BASE_URL=https://us.download.nvidia.com/tesla ARG TARGETARCH ENV TARGETARCH=$TARGETARCH ARG DRIVER_VERSION +ARG GIT_COMMIT ENV DRIVER_VERSION=$DRIVER_VERSION ENV DEBIAN_FRONTEND=noninteractive @@ -96,4 +97,13 @@ RUN if [ -n "${CVE_UPDATES}" ]; then \ rm -rf /var/lib/apt/lists/*; \ fi +LABEL io.k8s.display-name="NVIDIA Driver Container" +LABEL name="NVIDIA Driver Container" +LABEL vendor="NVIDIA" +LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" +LABEL release="N/A" +LABEL summary="Provision the NVIDIA driver through containers" +LABEL description="See summary" + ENTRYPOINT ["nvidia-driver", "init"] diff --git a/ubuntu24.04/precompiled/Dockerfile b/ubuntu24.04/precompiled/Dockerfile index 14a91c90f..1a601f1ab 100644 --- a/ubuntu24.04/precompiled/Dockerfile +++ b/ubuntu24.04/precompiled/Dockerfile @@ -13,6 +13,8 @@ ENV DRIVER_VERSION=$DRIVER_VERSION ARG KERNEL_VERSION=6.8.0-44-generic ENV KERNEL_VERSION=$KERNEL_VERSION +ARG GIT_COMMIT + ENV NVIDIA_VISIBLE_DEVICES=void RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections @@ -59,4 +61,13 @@ RUN mkdir -p /usr/local/repos && \ WORKDIR /drivers +LABEL io.k8s.display-name="NVIDIA Driver Container" +LABEL name="NVIDIA Driver Container" +LABEL vendor="NVIDIA" +LABEL version="${DRIVER_BRANCH}-${KERNEL_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" +LABEL release="N/A" +LABEL summary="Provision the NVIDIA driver through containers" +LABEL description="See summary" + ENTRYPOINT ["nvidia-driver", "init"] diff --git a/versions.mk b/versions.mk index c8491772a..e0e812ec4 100644 --- a/versions.mk +++ b/versions.mk @@ -16,3 +16,5 @@ DRIVER_VERSIONS ?= 535.288.01 580.126.20 GOLANG_VERSION := 1.25.7 + +GIT_COMMIT ?= $(shell git describe --match="" --dirty --long --always --abbrev=40 2> /dev/null || echo "") diff --git a/vgpu-manager/rhel8/Dockerfile b/vgpu-manager/rhel8/Dockerfile index 8f40bcc28..abc3bf543 100644 --- a/vgpu-manager/rhel8/Dockerfile +++ b/vgpu-manager/rhel8/Dockerfile @@ -4,6 +4,7 @@ ARG DRIVER_VERSION ENV DRIVER_VERSION=$DRIVER_VERSION ARG DRIVER_ARCH=x86_64 ENV DRIVER_ARCH=$DRIVER_ARCH +ARG GIT_COMMIT="" RUN mkdir -p /driver WORKDIR /driver @@ -21,6 +22,7 @@ LABEL io.k8s.display-name="NVIDIA vGPU Manager Container" LABEL name="NVIDIA vGPU Manager Container" LABEL vendor="NVIDIA" LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" LABEL release="N/A" LABEL summary="Provision the NVIDIA vGPU Manager through containers" LABEL description="See summary" diff --git a/vgpu-manager/rhel9/Dockerfile b/vgpu-manager/rhel9/Dockerfile index 595cf6133..106ccf138 100644 --- a/vgpu-manager/rhel9/Dockerfile +++ b/vgpu-manager/rhel9/Dockerfile @@ -17,6 +17,7 @@ ARG DRIVER_VERSION ENV DRIVER_VERSION=$DRIVER_VERSION ARG DRIVER_ARCH=x86_64 ENV DRIVER_ARCH=$DRIVER_ARCH +ARG GIT_COMMIT="" RUN mkdir -p /driver WORKDIR /driver @@ -34,6 +35,7 @@ LABEL io.k8s.display-name="NVIDIA vGPU Manager Container" LABEL name="NVIDIA vGPU Manager Container" LABEL vendor="NVIDIA" LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" LABEL release="N/A" LABEL summary="Provision the NVIDIA vGPU Manager through containers" LABEL description="See summary" diff --git a/vgpu-manager/ubuntu20.04/Dockerfile b/vgpu-manager/ubuntu20.04/Dockerfile index ded5b1250..aa0bba9a1 100644 --- a/vgpu-manager/ubuntu20.04/Dockerfile +++ b/vgpu-manager/ubuntu20.04/Dockerfile @@ -4,6 +4,7 @@ ARG DRIVER_VERSION ENV DRIVER_VERSION=$DRIVER_VERSION ARG DRIVER_ARCH=x86_64 ENV DRIVER_ARCH=$DRIVER_ARCH +ARG GIT_COMMIT="" # Remove cuda repository to avoid GPG errors RUN rm /etc/apt/sources.list.d/cuda.list @@ -40,4 +41,13 @@ RUN if [ -n "${CVE_UPDATES}" ]; then \ # Add NGC DL license from the CUDA image RUN mkdir /licenses && mv /NGC-DL-CONTAINER-LICENSE /licenses/NGC-DL-CONTAINER-LICENSE +LABEL io.k8s.display-name="NVIDIA vGPU Manager Container" +LABEL name="NVIDIA vGPU Manager Container" +LABEL vendor="NVIDIA" +LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" +LABEL release="N/A" +LABEL summary="Provision the NVIDIA vGPU Manager (host driver) through containers" +LABEL description="See summary" + ENTRYPOINT ["nvidia-driver", "init"] diff --git a/vgpu-manager/ubuntu22.04/Dockerfile b/vgpu-manager/ubuntu22.04/Dockerfile index 533a770d7..4f16b2401 100644 --- a/vgpu-manager/ubuntu22.04/Dockerfile +++ b/vgpu-manager/ubuntu22.04/Dockerfile @@ -4,6 +4,7 @@ ARG DRIVER_VERSION ENV DRIVER_VERSION=$DRIVER_VERSION ARG DRIVER_ARCH=x86_64 ENV DRIVER_ARCH=$DRIVER_ARCH +ARG GIT_COMMIT="" # Remove cuda repository to avoid GPG errors RUN rm /etc/apt/sources.list.d/cuda*.list @@ -47,4 +48,13 @@ RUN if [ -n "${CVE_UPDATES}" ]; then \ # Add NGC DL license from the CUDA image RUN mkdir /licenses && mv /NGC-DL-CONTAINER-LICENSE /licenses/NGC-DL-CONTAINER-LICENSE +LABEL io.k8s.display-name="NVIDIA vGPU Manager Container" +LABEL name="NVIDIA vGPU Manager Container" +LABEL vendor="NVIDIA" +LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" +LABEL release="N/A" +LABEL summary="Provision the NVIDIA vGPU Manager (host driver) through containers" +LABEL description="See summary" + ENTRYPOINT ["nvidia-driver", "init"] diff --git a/vgpu-manager/ubuntu24.04/Dockerfile b/vgpu-manager/ubuntu24.04/Dockerfile index 404892321..4c36f5551 100644 --- a/vgpu-manager/ubuntu24.04/Dockerfile +++ b/vgpu-manager/ubuntu24.04/Dockerfile @@ -4,6 +4,7 @@ ARG DRIVER_VERSION ENV DRIVER_VERSION=$DRIVER_VERSION ARG DRIVER_ARCH=x86_64 ENV DRIVER_ARCH=$DRIVER_ARCH +ARG GIT_COMMIT="" # Remove cuda repository to avoid GPG errors RUN rm /etc/apt/sources.list.d/cuda*.list @@ -41,4 +42,13 @@ RUN if [ -n "${CVE_UPDATES}" ]; then \ # Add NGC DL license from the CUDA image RUN mkdir /licenses && mv /NGC-DL-CONTAINER-LICENSE /licenses/NGC-DL-CONTAINER-LICENSE +LABEL io.k8s.display-name="NVIDIA vGPU Manager Container" +LABEL name="NVIDIA vGPU Manager Container" +LABEL vendor="NVIDIA" +LABEL version="${DRIVER_VERSION}" +LABEL vcs-ref="${GIT_COMMIT}" +LABEL release="N/A" +LABEL summary="Provision the NVIDIA vGPU Manager (host driver) through containers" +LABEL description="See summary" + ENTRYPOINT ["nvidia-driver", "init"]