Skip to content

Commit 51d4d1c

Browse files
authored
Publish legacy and open driver flavors images (#93)
1 parent e7c8a8c commit 51d4d1c

8 files changed

+41
-2
lines changed

.github/workflows/build.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ jobs:
5656
env:
5757
ARCH: ${{ matrix.ARCH }}
5858
DRIVER_VERSION: ${{ matrix.DRIVER_VERSION }}
59+
DRIVER_FLAVOR: ${{ matrix.DRIVER_FLAVOR }}
5960
OS: ${{ matrix.OS }}
6061
RUNNER_ENV: ${{ matrix.ENV }}
6162
RUNNER_VERSION: ${{ matrix.RUNNER_VERSION }}
@@ -75,6 +76,7 @@ jobs:
7576
-var "backup_aws_regions=${BACKUP_AWS_REGIONS}" \
7677
-var "default_aws_region=${DEFAULT_AWS_REGION}" \
7778
-var "driver_version=${DRIVER_VERSION}" \
79+
-var "driver_flavor=${DRIVER_FLAVOR}" \
7880
-var "gh_run_id=${NV_RUN_ID}" \
7981
-var "gh_token=${GH_TOKEN}" \
8082
-var "headless=true" \
@@ -90,6 +92,7 @@ jobs:
9092
BACKUP_AWS_REGIONS: ${{ needs.compute-constants.outputs.BACKUP_AWS_REGIONS }}
9193
DEFAULT_AWS_REGION: ${{ needs.compute-constants.outputs.DEFAULT_AWS_REGION }}
9294
DRIVER_VERSION: ${{ matrix.DRIVER_VERSION }}
95+
DRIVER_FLAVOR: ${{ matrix.DRIVER_FLAVOR }}
9396
GH_TOKEN: ${{ github.token }}
9497
OS: ${{ matrix.OS }}
9598
PACKER_GITHUB_API_TOKEN: ${{ github.token }}

build.pkr.hcl

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ build {
3939
"GH_TOKEN=${var.gh_token}",
4040
"NV_ARCH=${var.arch}",
4141
"NV_DRIVER_VERSION=${var.driver_version}",
42+
"NV_DRIVER_FLAVOR=${var.driver_flavor}",
4243
"NV_CONTEXT_DIR=${local.context_directory}",
4344
"NV_EXE_DIR=${local.exe_directory}",
4445
"NV_RUNNER_ENV=${var.runner_env}",

ci/compute-image-name.sh

+2
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ IMAGE_NAME=$(
1313
--arg OS "${OS}" \
1414
--arg VARIANT "${VARIANT}" \
1515
--arg DRIVER_VERSION "${DRIVER_VERSION}" \
16+
--arg DRIVER_FLAVOR "${DRIVER_FLAVOR}" \
1617
--arg ARCH "${ARCH}" \
1718
--arg RUNNER_VERSION "${RUNNER_VERSION}" \
1819
'[
1920
$OS,
2021
$VARIANT,
2122
$DRIVER_VERSION,
23+
$DRIVER_FLAVOR,
2224
$ARCH,
2325
$RUNNER_VERSION
2426
] | map(select(length > 0)) | join("-")'

linux/installers/nvidia-driver.sh

+7-2
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,22 @@ if [ "${NV_VARIANT}" != "gpu" ]; then
88
fi
99

1010
KEYRING=cuda-keyring_1.1-1_all.deb
11-
ARCH=x86_64
1211

12+
ARCH=x86_64
1313
if [ "${NV_ARCH}" == "arm64" ]; then
1414
ARCH=sbsa
1515
fi
1616

17+
DRIVER_PKG_NAME="nvidia-driver-${NV_DRIVER_VERSION}-server"
18+
if [ "${NV_DRIVER_FLAVOR}" == "open" ]; then
19+
DRIVER_PKG_NAME="nvidia-driver-${NV_DRIVER_VERSION}-server-open"
20+
fi
21+
1722
wget -q "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/${ARCH}/${KEYRING}"
1823
sudo dpkg --install "${KEYRING}"
1924
sudo apt-get update
2025

21-
sudo apt-get -y install "nvidia-driver-${NV_DRIVER_VERSION}-server-open"
26+
sudo apt-get -y install "${DRIVER_PKG_NAME}"
2227

2328
sudo dpkg --purge "$(dpkg -f "${KEYRING}" Package)"
2429

locals.pkr.hcl

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ locals {
33
for k, v in {
44
"arch" = var.arch
55
"driver-version" = var.driver_version
6+
"driver-flavor" = var.driver_flavor
67
"os" = var.os
78
"runner-version" = var.runner_version
89
"variant" = local.variant

matrix.yaml

+15
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ DRIVER_VERSION:
1515
- "535"
1616
- "550"
1717

18+
DRIVER_FLAVOR:
19+
- ""
20+
- "legacy"
21+
- "open"
22+
1823
RUNNER_VERSION:
1924
# renovate: repo=actions/runner
2025
- "2.319.1"
@@ -39,3 +44,13 @@ exclude:
3944
# only make AMI images for windows
4045
- OS: windows
4146
ENV: qemu
47+
# don't set DRIVER_FLAVOR for CPU images
48+
- DRIVER_VERSION: ""
49+
DRIVER_FLAVOR: "legacy"
50+
- DRIVER_VERSION: ""
51+
DRIVER_FLAVOR: "open"
52+
# ensure DRIVER_FLAVOR is set if DRIVER_VERSION is set
53+
- DRIVER_VERSION: "535"
54+
DRIVER_FLAVOR: ""
55+
- DRIVER_VERSION: "550"
56+
DRIVER_FLAVOR: ""

variables.auto.pkrvars.hcl.sample

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// arch = "amd64"
22
// driver_version = "525.147.05"
3+
// driver_flavor = "open"
34
// gh_token = ""
45
// headless = true
56
image_name = "local-image"

variables.pkr.hcl

+11
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,17 @@ variable "driver_version" {
3030
}
3131
}
3232

33+
variable "driver_flavor" {
34+
type = string
35+
default = ""
36+
description = "The NVIDIA driver flavor to install."
37+
38+
validation {
39+
condition = can(regex("^(open|legacy|)$", var.driver_flavor))
40+
error_message = "The driver_flavor value must be either 'open' or 'legacy'."
41+
}
42+
}
43+
3344
variable "gh_run_id" {
3445
type = string
3546
default = ""

0 commit comments

Comments
 (0)