Skip to content

Commit c89188c

Browse files
committed
Add make targets for vGPU guest drivers
Signed-off-by: Christopher Desiniotis <[email protected]>
1 parent 02504c4 commit c89188c

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

Makefile

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,11 @@ DISTRIBUTIONS := ubuntu18.04 ubuntu20.04 ubuntu22.04 ubuntu24.04 signed_ubuntu20
5858
PUSH_TARGETS := $(patsubst %, push-%, $(DISTRIBUTIONS))
5959
BASE_FROM := noble jammy focal
6060
PUSH_TARGETS := $(patsubst %, push-%, $(DISTRIBUTIONS))
61+
VGPU_GUEST_DRIVER_PUSH_TARGETS := $(patsubst %, push-vgpuguest-%, $(DISTRIBUTIONS))
6162
DRIVER_PUSH_TARGETS := $(foreach push_target, $(PUSH_TARGETS), $(addprefix $(push_target)-, $(DRIVER_VERSIONS)))
6263
BUILD_TARGETS := $(patsubst %, build-%, $(DISTRIBUTIONS))
6364
DRIVER_BUILD_TARGETS := $(foreach build_target, $(BUILD_TARGETS), $(addprefix $(build_target)-, $(DRIVER_VERSIONS)))
65+
VGPU_GUEST_DRIVER_BUILD_TARGETS := $(patsubst %, build-vgpuguest-%, $(DISTRIBUTIONS))
6466
TEST_TARGETS := $(patsubst %, test-%, $(DISTRIBUTIONS))
6567
PULL_TARGETS := $(patsubst %, pull-%, $(DISTRIBUTIONS))
6668
DRIVER_PULL_TARGETS := $(foreach pull_target, $(PULL_TARGETS), $(addprefix $(pull_target)-, $(DRIVER_VERSIONS)))
@@ -71,7 +73,7 @@ BASE_PUSH := $(patsubst %, push-base-%, $(BASE_FROM))
7173
BASE_BUILD_TARGETS := $(foreach target,$(BASE_BUILD),$(target))
7274
BASE_PUSH_TARGETS := $(foreach target,$(BASE_PUSH),$(target))
7375

74-
PHONY: $(BASE_BUILD_TARGETS) $(BASE_PUSH_TARGETS) $(DISTRIBUTIONS) $(PUSH_TARGETS) $(BUILD_TARGETS) $(TEST_TARGETS) $(PULL_TARGETS) $(ARCHIVE_TARGETS) $(DRIVER_PUSH_TARGETS) $(DRIVER_BUILD_TARGETS) $(DRIVER_PULL_TARGETS) $(DRIVER_ARCHIVE_TARGETS)
76+
PHONY: $(BASE_BUILD_TARGETS) $(BASE_PUSH_TARGETS) $(DISTRIBUTIONS) $(PUSH_TARGETS) $(BUILD_TARGETS) $(TEST_TARGETS) $(PULL_TARGETS) $(ARCHIVE_TARGETS) $(DRIVER_PUSH_TARGETS) $(DRIVER_BUILD_TARGETS) $(DRIVER_PULL_TARGETS) $(DRIVER_ARCHIVE_TARGETS) $(VGPU_GUEST_DRIVER_BUILD_TARGETS) $(VGPU_GUEST_DRIVER_PUSH_TARGETS)
7577

7678
ifeq ($(BUILD_MULTI_ARCH_IMAGES),true)
7779
include $(CURDIR)/multi-arch.mk
@@ -221,3 +223,44 @@ $(BASE_PUSH_TARGETS):
221223
regctl \
222224
image copy \
223225
$(IMAGE) $(OUT_IMAGE)
226+
227+
# $(VGPU_GUEST_DRIVER_BUILD_TARGETS) is in the form of build-vgpuguest-$(DIST)
228+
# The vGPU guest driver .run file is assumed to be present in the $SUBDIR/drivers/ directory.
229+
# VGPU_GUEST_DRIVER_VERSION must be defined in the environment when invoking this target.
230+
VGPU_GUEST_DRIVER_VERSION ?= ""
231+
build-vgpuguest-%: $(if $(VGPU_GUEST_DRIVER_VERSION),,$(error "VGPU_GUEST_DRIVER_VERSION is not set"))
232+
# Ensure DRIVER_VERSION has the -grid suffix
233+
build-vgpuguest-%: DRIVER_VERSION := $(addsuffix -grid,$(VGPU_GUEST_DRIVER_VERSION:-grid=))
234+
build-vgpuguest-%: DRIVER_BRANCH = $(word 1,$(subst ., ,${DRIVER_VERSION}))
235+
build-vgpuguest-%: DIST = $(word 3,$(subst -, ,$@))
236+
build-vgpuguest-%: SUBDIR = $(word 3,$(subst -, ,$@))
237+
build-vgpuguest-%: DOCKERFILE = $(CURDIR)/$(SUBDIR)/Dockerfile
238+
# Remove '-grid' substring in the image tag
239+
build-vgpuguest-%: DRIVER_TAG = $(DRIVER_VERSION:-grid=)
240+
241+
build-vgpuguest-rhcos%: SUBDIR = rhel8
242+
243+
$(VGPU_GUEST_DRIVER_BUILD_TARGETS):
244+
DOCKER_BUILDKIT=1 \
245+
$(DOCKER) $(BUILDX) build --pull \
246+
$(DOCKER_BUILD_OPTIONS) \
247+
$(DOCKER_BUILD_PLATFORM_OPTIONS) \
248+
--tag $(IMAGE) \
249+
--build-arg DRIVER_TYPE=vgpu \
250+
--build-arg VGPU_LICENSE_SERVER_TYPE=NLS \
251+
--build-arg DRIVER_VERSION="$(DRIVER_VERSION)" \
252+
--build-arg DRIVER_BRANCH="$(DRIVER_BRANCH)" \
253+
--build-arg GOLANG_VERSION="$(GOLANG_VERSION)" \
254+
--build-arg CVE_UPDATES="$(CVE_UPDATES)" \
255+
$(DOCKER_BUILD_ARGS) \
256+
--file $(DOCKERFILE) \
257+
$(CURDIR)/$(SUBDIR)
258+
259+
260+
# $(VGPU_GUEST_DRIVER_PUSH_TARGETS) is in the form of push-vgpuguest-$(DIST)
261+
# VGPU_GUEST_DRIVER_VERSION must be defined in the environment when invoking this target.
262+
push-vgpuguest-%: $(if $(VGPU_GUEST_DRIVER_VERSION),,$(error "VGPU_GUEST_DRIVER_VERSION is not set"))
263+
# Remove '-grid' substring in the image tag
264+
push-vgpuguest-%: DRIVER_TAG = $(VGPU_GUEST_DRIVER_VERSION:-grid=)
265+
push-vgpuguest-%: DIST = $(word 3,$(subst -, ,$@))
266+

native-only.mk

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,7 @@ DOCKER_BUILD_PLATFORM_OPTIONS = --platform=linux/amd64
1717
$(DRIVER_PUSH_TARGETS): push-%:
1818
$(DOCKER) tag "$(IMAGE)" "$(OUT_IMAGE)"
1919
$(DOCKER) push "$(OUT_IMAGE)"
20+
21+
$(VGPU_GUEST_DRIVER_PUSH_TARGETS): push-vgpuguest-%:
22+
$(DOCKER) tag "$(IMAGE)" "$(OUT_IMAGE)"
23+
$(DOCKER) push "$(OUT_IMAGE)"

0 commit comments

Comments
 (0)