Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 49 additions & 3 deletions .common-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ default:
command: ["--experimental"]

variables:
DRIVER_VERSIONS: 535.274.02 570.195.03 580.105.08
DRIVER_VERSIONS: 535.274.02 570.195.03 580.105.08 590.48.01
BUILD_MULTI_ARCH_IMAGES: "true"

stages:
Expand Down Expand Up @@ -81,13 +81,19 @@ trigger-pipeline:
.driver-versions:
parallel:
matrix:
- DRIVER_VERSION: [535.274.02, 570.195.03, 580.105.08]
- DRIVER_VERSION: [535.274.02, 570.195.03, 580.105.08, 590.48.01]

# Define the driver versions for jobs that can be run in parallel
.driver-versions-ubuntu24.04:
parallel:
matrix:
- DRIVER_VERSION: [570.195.03, 580.105.08]
- DRIVER_VERSION: [570.195.03, 580.105.08, 590.48.01]

# Define the driver versions for jobs that can be run in parallel
.driver-versions-debian13:
parallel:
matrix:
- DRIVER_VERSION: [590.48.01]

# Define the matrix of precompiled jobs that can be run in parallel for ubuntu22.04
.driver-versions-precompiled-ubuntu22.04:
Expand All @@ -114,6 +120,10 @@ trigger-pipeline:
variables:
DIST: ubuntu24.04

.dist-debian13:
variables:
DIST: debian13

.dist-rhel8:
variables:
DIST: rhel8
Expand Down Expand Up @@ -199,6 +209,14 @@ trigger-pipeline:
rules:
- if: $CI_PIPELINE_SOURCE != "schedule" && $CI_COMMIT_TAG == null

.release-debian13:
# Perform for each DRIVER_VERSION
extends:
- .release-generic
- .driver-versions-debian13
rules:
- if: $CI_PIPELINE_SOURCE != "schedule" && $CI_COMMIT_TAG == null

.release-rhel9:
# Perform for each DRIVER_VERSION
extends:
Expand Down Expand Up @@ -245,6 +263,15 @@ trigger-pipeline:
OUT_REGISTRY: "${NGC_REGISTRY}"
OUT_IMAGE_NAME: "${NGC_STAGING_REGISTRY}/driver"

.release:staging-debian13:
extends:
- .release-debian13
variables:
OUT_REGISTRY_USER: "${NGC_REGISTRY_USER}"
OUT_REGISTRY_TOKEN: "${NGC_REGISTRY_TOKEN}"
OUT_REGISTRY: "${NGC_REGISTRY}"
OUT_IMAGE_NAME: "${NGC_STAGING_REGISTRY}/driver"

.release:staging-rhel9:
extends:
- .release-rhel9
Expand Down Expand Up @@ -281,6 +308,18 @@ trigger-pipeline:
VERSION: "${RELEASE_DEVEL_TAG}"
OUT_VERSION: "${DEVEL_RELEASE_IMAGE_VERSION}"

.release:external-debian13:
extends:
- .release-debian13
rules:
- if: $CI_COMMIT_TAG
variables:
#VERSION: "${CI_COMMIT_TAG}"
OUT_VERSION: ""
- if: $CI_COMMIT_BRANCH == $RELEASE_DEVEL_BRANCH
variables:
VERSION: "${RELEASE_DEVEL_TAG}"
OUT_VERSION: "${DEVEL_RELEASE_IMAGE_VERSION}"
.release:external-ubuntu22.04:
extends:
- .release-ubuntu22.04
Expand Down Expand Up @@ -308,6 +347,13 @@ release:staging-ubuntu24.04:
needs:
- image-ubuntu24.04

release:staging-debian13:
extends:
- .release:staging-debian13
- .dist-debian13
needs:
- image-debian13

release:staging-rhel8:
extends:
- .release:staging
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,24 @@ jobs:
- 535.274.02
- 570.195.03
- 580.105.08
- 590.48.01
dist:
- ubuntu22.04
- ubuntu24.04
- debian13
- rhel8
- rhel9
ispr:
- ${{github.event_name == 'pull_request'}}
exclude:
- dist: ubuntu24.04
driver: 535.274.02
- dist: debian13
driver: 535.274.02
- dist: debian13
driver: 570.195.03
- dist: debian13
driver: 580.105.08
fail-fast: false
steps:
- uses: actions/checkout@v6
Expand Down
14 changes: 14 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,15 @@ include:
rules:
- if: $CI_PIPELINE_SOURCE != "schedule"

# Define the image build targets
.image-build-debian13:
# Perform for each DRIVER_VERSION
extends:
- .driver-versions-debian13
- .image-build-generic
rules:
- if: $CI_PIPELINE_SOURCE != "schedule"

# Define the image build targets
.image-build-rhel9:
# Perform for each DRIVER_VERSION
Expand All @@ -83,6 +92,11 @@ image-ubuntu24.04:
- .image-build-ubuntu24.04
- .dist-ubuntu24.04

image-debian13:
extends:
- .image-build-debian13
- .dist-debian13

image-rhel8:
extends:
- .image-build
Expand Down
51 changes: 50 additions & 1 deletion .nvidia-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ variables:
# Define the public staging registry
STAGING_REGISTRY: ghcr.io/nvidia
STAGING_VERSION: "${CI_COMMIT_SHORT_SHA}"
PUBLISH_VERSIONS: 535.274.02 570.195.03 580.105.08
PUBLISH_VERSIONS: 590.48.01

.image-pull-rules:
# We delay the job start to allow the public pipeline to generate the required images.
Expand Down Expand Up @@ -88,6 +88,16 @@ variables:
when: never
- !reference [.image-pull-rules, rules]

.image-pull-debian13:
# Perform for each DRIVER_VERSION
extends:
- .driver-versions-debian13
- .image-pull-generic
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never
- !reference [.image-pull-rules, rules]

image-precompiled-ubuntu24.04:
variables:
DIST: signed_ubuntu24.04
Expand Down Expand Up @@ -136,6 +146,11 @@ image-ubuntu24.04:
- .image-pull-ubuntu24.04
- .dist-ubuntu24.04

image-debian13:
extends:
- .image-pull-debian13
- .dist-debian13

image-rhel8:
extends:
- .image-pull
Expand Down Expand Up @@ -227,6 +242,18 @@ image-rhel9:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- !reference [.pipeline-trigger-rules, rules]

.scan-debian13:
# Repeat for each DRIVER_VERSION
extends:
- .driver-versions-debian13
- .scan-generic
rules:
- !reference [.scan-rules-common, rules]
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- !reference [.pipeline-trigger-rules, rules]

.scan-precompiled-ubuntu24.04:
variables:
DIST: signed_ubuntu24.04
Expand Down Expand Up @@ -283,6 +310,22 @@ scan-ubuntu24.04-arm64:
needs:
- image-ubuntu24.04

scan-debian13-amd64:
extends:
- .scan-debian13
- .dist-debian13
- .platform-amd64
needs:
- image-debian13

scan-debian13-arm64:
extends:
- .scan-debian13
- .dist-debian13
- .platform-arm64
needs:
- image-debian13

scan-precompiled-ubuntu24.04-amd64:
variables:
PLATFORM: linux/amd64
Expand Down Expand Up @@ -358,6 +401,12 @@ release:ngc-ubuntu24.04:
- .dist-ubuntu24.04
- .driver-versions-ubuntu24.04

release:ngc-debian13:
extends:
- .release:ngc
- .dist-debian13
- .driver-versions-debian13

release:ngc-precompiled-ubuntu24.04:
variables:
DIST: signed_ubuntu24.04
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ OUT_IMAGE_TAG = $(OUT_IMAGE_VERSION)-$(OUT_DIST)
OUT_IMAGE = $(OUT_IMAGE_NAME):$(OUT_IMAGE_TAG)

##### Public rules #####
DISTRIBUTIONS := ubuntu18.04 ubuntu20.04 ubuntu22.04 ubuntu24.04 signed_ubuntu20.04 signed_ubuntu22.04 signed_ubuntu24.04 rhel8 rhel9 flatcar fedora36 sles15.3 precompiled_rhcos
DISTRIBUTIONS := ubuntu18.04 ubuntu20.04 ubuntu22.04 ubuntu24.04 signed_ubuntu20.04 signed_ubuntu22.04 signed_ubuntu24.04 rhel8 rhel9 flatcar fedora36 sles15.3 precompiled_rhcos debian13
RHCOS_VERSIONS := rhcos4.14 rhcos4.15 rhcos4.16 rhcos4.17 rhcos4.18 rhel9.6
PUSH_TARGETS := $(patsubst %, push-%, $(DISTRIBUTIONS))
BASE_FROM := noble jammy focal
Expand Down
99 changes: 99 additions & 0 deletions debian13/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
ARG BASE_IMAGE=debian:13.2-slim

FROM ${BASE_IMAGE} AS build

ARG TARGETARCH
ARG GOLANG_VERSION

# Arg to indicate if driver type is either of passthrough(baremetal) or vgpu
ARG DRIVER_TYPE=passthrough
ENV DRIVER_TYPE=$DRIVER_TYPE

SHELL ["/bin/bash", "-c"]

RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections

# Remove cuda repository to avoid GPG errors
RUN rm -f /etc/apt/sources.list.d/cuda*

RUN apt-get update && apt-get install -y --no-install-recommends \
apt-utils \
build-essential \
ca-certificates \
curl \
git \
wget && \
rm -rf /var/lib/apt/lists/*



# download appropriate binary based on the target architecture for multi-arch builds
RUN OS_ARCH=${TARGETARCH/x86_64/amd64} && OS_ARCH=${OS_ARCH/aarch64/arm64} && \
wget -nv -O - https://go.dev/dl/go${GOLANG_VERSION}.linux-${OS_ARCH}.tar.gz \
| tar -C /usr/local -xz

ENV PATH=/usr/local/go/bin:$PATH

WORKDIR /work

RUN if [ "$DRIVER_TYPE" = "vgpu" ]; then \
git clone https://github.com/NVIDIA/gpu-driver-container driver && \
cd driver/vgpu/src && \
go build -o vgpu-util && \
mv vgpu-util /work; fi

FROM ${BASE_IMAGE}

SHELL ["/bin/bash", "-c"]

ARG BASE_URL=https://us.download.nvidia.com/tesla
ARG TARGETARCH
ENV TARGETARCH=$TARGETARCH
ARG DRIVER_VERSION
ENV DRIVER_VERSION=$DRIVER_VERSION
ENV DEBIAN_FRONTEND=noninteractive

# Arg to indicate if driver type is either of passthrough(baremetal) or vgpu
ARG DRIVER_TYPE=passthrough
ENV DRIVER_TYPE=$DRIVER_TYPE
ARG DRIVER_BRANCH=550
ENV DRIVER_BRANCH=$DRIVER_BRANCH
ARG VGPU_LICENSE_SERVER_TYPE=NLS
ENV VGPU_LICENSE_SERVER_TYPE=$VGPU_LICENSE_SERVER_TYPE
# Enable vGPU version compability check by default
ARG DISABLE_VGPU_VERSION_CHECK=true
ENV DISABLE_VGPU_VERSION_CHECK=$DISABLE_VGPU_VERSION_CHECK
ENV NVIDIA_VISIBLE_DEVICES=void

RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections

RUN echo "TARGETARCH=$TARGETARCH"

ADD install.sh /tmp

RUN usermod -o -u 0 -g 0 _apt && \
/tmp/install.sh depinstall && /tmp/install.sh setup_cuda_repo

COPY nvidia-driver /usr/local/bin

COPY --from=build /work/vgpu-util* /usr/local/bin

ADD drivers drivers/

# Fetch the installer, fabricmanager and libnvidia-nscq automatically for passthrough/baremetal types
RUN if [ "$DRIVER_TYPE" != "vgpu" ]; then \
cd drivers && \
/tmp/install.sh download_installer; fi

RUN /tmp/install.sh extra_pkgs_install

WORKDIR /drivers

# Install / upgrade packages here that are required to resolve CVEs
ARG CVE_UPDATES
RUN if [ -n "${CVE_UPDATES}" ]; then \
apt-get update && apt-get upgrade -y ${CVE_UPDATES} && \
rm -rf /var/lib/apt/lists/*; \
fi

ENTRYPOINT ["nvidia-driver", "init"]
3 changes: 3 additions & 0 deletions debian13/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Debian 13 [![build status](https://gitlab.com/nvidia/driver/badges/master/build.svg)](https://gitlab.com/nvidia/driver/commits/master)

See https://github.com/NVIDIA/nvidia-docker/wiki/Driver-containers-(Beta)
1 change: 1 addition & 0 deletions debian13/drivers/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Folder for downloading vGPU drivers and dependent metadata files
Loading