Skip to content

Commit 8308ef4

Browse files
killianmuldoondpf-release
authored andcommitted
fix: revert "chore: parallelize docker build and push for release"
* fix: bump curl version in hostdriver image bump curl version to working 7.81.0-1ubuntu1.21 Signed-off-by: Killian Muldoon <[email protected]> * fix revert: "chore: parallelize docker build and push for release" This reverts commit 4819b4e4dc5a848fb7d51402a19d7beb5e6a1d03. Based on release-v25.7@639252b6bfbfeafe44f198e508b1c40babd93ec9
1 parent 0eae9dd commit 8308ef4

File tree

2 files changed

+20
-44
lines changed

2 files changed

+20
-44
lines changed

Dockerfile.hostdriver

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ FROM nvcr.io/nvidia/doca/doca:3.0.0-full-rt-host
33
ARG TARGETARCH
44
ARG MFT_VERSION=4.29.0-131
55
ARG KUBECTL_VERSION=1.33.0
6-
ARG PACKAGES="dpkg-dev=1.21.1ubuntu2.6 libusb-1.0-0=2:1.0.25-1ubuntu2 ipmitool=1.8.18-11ubuntu2.2 rshim curl=7.81.0-1ubuntu1.20 screen=4.9.0-1 pv=1.6.6-1build2 bridge-utils=1.7-1ubuntu3 iptables=1.8.7-1ubuntu5.2 iproute2=5.15.0-1ubuntu2"
6+
ARG PACKAGES="dpkg-dev=1.21.1ubuntu2.6 libusb-1.0-0=2:1.0.25-1ubuntu2 ipmitool=1.8.18-11ubuntu2.2 rshim curl=7.81.0-1ubuntu1.21 screen=4.9.0-1 pv=1.6.6-1build2 bridge-utils=1.7-1ubuntu3 iptables=1.8.7-1ubuntu5.2 iproute2=5.15.0-1ubuntu2"
77

88
# Enable deb-src to be able to fetch sources
99
RUN sed -i 's/^# deb-src/deb-src/g' /etc/apt/sources.list /etc/apt/sources.list.d/*

Makefile

Lines changed: 19 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -468,16 +468,10 @@ test-release-e2e-quick: # Build images required for the quick DPF e2e test.
468468
$(MAKE) helm-package-all helm-push-all
469469
$(MAKE) helm-package-dummydpuservice helm-push-dummydpuservice
470470

471-
PARALLEL_JOBS ?=4
472471
.PHONY: test-release-e2e-slow
473472
test-release-e2e-slow: release # Build images required for the slow DPF e2e tests.
474-
$(MAKE) -j$(PARALLEL_JOBS) --output-sync=target \
475-
docker-build-dummydpuservice \
476-
helm-package-dummydpuservice
477-
# Push operations should wait for builds to complete
478-
$(MAKE) -j$(PARALLEL_JOBS) --output-sync=target \
479-
docker-push-dummydpuservice \
480-
helm-push-dummydpuservice
473+
$(MAKE) docker-build-dummydpuservice docker-push-dummydpuservice
474+
$(MAKE) helm-package-dummydpuservice helm-push-dummydpuservice
481475

482476

483477
TEST_CLUSTER_NAME := dpf-test
@@ -617,13 +611,12 @@ lint-helm-storage: helm ## Run helm lint for snap dpu chart
617611

618612
.PHONY: release-build
619613
release-build: generate ## Build helm and container images for release.
620-
# Build multiarch images which can run on both DPUs and x86 hosts.
614+
# Build multiarch images which will run on both DPUs and x86 hosts.
615+
$(MAKE) $(addprefix docker-build-,$(MULTI_ARCH_DOCKER_BUILD_TARGETS))
621616
# Build arm64 images which will run on DPUs.
617+
$(MAKE) ARCH=$(DPU_ARCH) $(addprefix docker-build-,$(DPU_ARCH_DOCKER_BUILD_TARGETS))
622618
# Build amd64 images which will run on x86 hosts.
623-
$(MAKE) -j$(PARALLEL_JOBS) --output-sync=target \
624-
$(addprefix docker-build-,$(MULTI_ARCH_DOCKER_BUILD_TARGETS)) \
625-
$(addprefix ARCH=$(DPU_ARCH) docker-build-,$(DPU_ARCH_DOCKER_BUILD_TARGETS)) \
626-
$(addprefix ARCH=$(HOST_ARCH) docker-build-,$(HOST_ARCH_DOCKER_BUILD_TARGETS))
619+
$(MAKE) ARCH=$(HOST_ARCH) $(addprefix docker-build-,$(HOST_ARCH_DOCKER_BUILD_TARGETS))
627620

628621
# Package the helm charts.
629622
$(MAKE) helm-package-all
@@ -849,8 +842,7 @@ DPU_ARCH_DOCKER_BUILD_TARGETS=$(DPU_ARCH_BUILD_TARGETS) ovs-cni
849842
MULTI_ARCH_DOCKER_BUILD_TARGETS= dpf-system ovn-kubernetes storage-system storage-host
850843

851844
.PHONY: docker-build-all
852-
docker-build-all:
853-
$(MAKE) -j$(PARALLEL_JOBS) --output-sync=target $(addprefix docker-build-,$(DOCKER_BUILD_TARGETS)) ## Build docker images for all DOCKER_BUILD_TARGETS. Architecture defaults to build system architecture unless overridden or hardcoded.
845+
docker-build-all: $(addprefix docker-build-,$(DOCKER_BUILD_TARGETS)) ## Build docker images for all DOCKER_BUILD_TARGETS. Architecture defaults to build system architecture unless overridden or hardcoded.
854846

855847
DPF_SYSTEM_IMAGE_NAME ?= dpf-system
856848
export DPF_SYSTEM_IMAGE ?= $(REGISTRY)/$(DPF_SYSTEM_IMAGE_NAME)
@@ -930,17 +922,14 @@ docker-build-dpf-system-for-%: generate-manifests-release-defaults
930922
-t $(DPF_SYSTEM_IMAGE):$(TAG)-$*
931923

932924
.PHONY: docker-push-dpf-system # Push a multi-arch image for DPF System using `docker manifest`. The variable DPF_SYSTEM_ARCH defines which architectures this target pushes for.
933-
docker-push-dpf-system:
934-
# Push each architecture sequentially and build manifest incrementally
935-
$(foreach arch,$(DPF_SYSTEM_ARCH),$(MAKE) docker-push-dpf-system-for-$(arch);)
936-
# Push the final multi-arch manifest
925+
docker-push-dpf-system: $(addprefix docker-push-dpf-system-for-,$(DPF_SYSTEM_ARCH))
937926
docker manifest push --purge $(DPF_SYSTEM_IMAGE):$(TAG)
938927

939928
docker-push-dpf-system-for-%:
940929
# Tag and push the arch-specific image with the single arch-agnostic tag.
941930
docker tag $(DPF_SYSTEM_IMAGE):$(TAG)-$* $(DPF_SYSTEM_IMAGE):$(TAG)
942931
docker push $(DPF_SYSTEM_IMAGE):$(TAG)
943-
# Add this architecture's RepoDigest to the multi-arch manifest
932+
# This must be called in a separate target to ensure the shell command is called in the correct order.
944933
$(MAKE) docker-create-manifest-for-dpf-system
945934

946935
docker-create-manifest-for-dpf-system:
@@ -1011,17 +1000,14 @@ docker-build-ovn-kubernetes-for-%: $(OVNKUBERNETES_DIR)
10111000
-t $(OVNKUBERNETES_IMAGE):$(TAG)-$*
10121001

10131002
.PHONY: docker-push-ovn-kubernetes # Push a multi-arch image for ovn-kubernetes using `docker manifest`. The variable DPF_SYSTEM_ARCH defines which architectures this target pushes for.
1014-
docker-push-ovn-kubernetes:
1015-
# Push each architecture sequentially and build manifest incrementally
1016-
$(foreach arch,$(DPF_SYSTEM_ARCH),$(MAKE) docker-push-ovn-kubernetes-for-$(arch);)
1017-
# Push the final multi-arch manifest
1003+
docker-push-ovn-kubernetes: $(addprefix docker-push-ovn-kubernetes-for-,$(DPF_SYSTEM_ARCH))
10181004
docker manifest push --purge $(OVNKUBERNETES_IMAGE):$(TAG)
10191005

10201006
docker-push-ovn-kubernetes-for-%:
10211007
# Tag and push the arch-specific image with the single arch-agnostic tag.
10221008
docker tag $(OVNKUBERNETES_IMAGE):$(TAG)-$* $(OVNKUBERNETES_IMAGE):$(TAG)
10231009
docker push $(OVNKUBERNETES_IMAGE):$(TAG)
1024-
# Add this architecture's RepoDigest to the multi-arch manifest
1010+
# This must be called in a separate target to ensure the shell command is called in the correct order.
10251011
$(MAKE) docker-create-manifest-for-ovn-kubernetes
10261012

10271013
docker-create-manifest-for-ovn-kubernetes:
@@ -1132,17 +1118,14 @@ docker-build-storage-system-for-%:
11321118
-t $(STORAGE_SYSTEM_IMAGE):$(TAG)-$*
11331119

11341120
.PHONY: docker-push-storage-system # Push a multi-arch image for snap-csi-plugin using `docker manifest`. The variable DPF_SYSTEM_ARCH defines which architectures this target pushes for.
1135-
docker-push-storage-system:
1136-
# Push each architecture sequentially and build manifest incrementally
1137-
$(foreach arch,$(DPF_SYSTEM_ARCH),$(MAKE) docker-push-storage-system-for-$(arch);)
1138-
# Push the final multi-arch manifest
1121+
docker-push-storage-system: $(addprefix docker-push-storage-system-for-,$(DPF_SYSTEM_ARCH))
11391122
docker manifest push --purge $(STORAGE_SYSTEM_IMAGE):$(TAG)
11401123

11411124
docker-push-storage-system-for-%:
11421125
# Tag and push the arch-specific image with the single arch-agnostic tag.
11431126
docker tag $(STORAGE_SYSTEM_IMAGE):$(TAG)-$* $(STORAGE_SYSTEM_IMAGE):$(TAG)
11441127
docker push $(STORAGE_SYSTEM_IMAGE):$(TAG)
1145-
# Add this architecture's RepoDigest to the multi-arch manifest
1128+
# This must be called in a separate target to ensure the shell command is called in the correct order.
11461129
$(MAKE) docker-create-manifest-for-storage-system
11471130

11481131
docker-create-manifest-for-storage-system:
@@ -1174,17 +1157,14 @@ docker-build-storage-host-for-%:
11741157
-t $(STORAGE_HOST_IMAGE):$(TAG)-$*
11751158

11761159
.PHONY: docker-push-storage-host # Push a multi-arch image for storage-host using `docker manifest`. The variable DPF_SYSTEM_ARCH defines which architectures this target pushes for.
1177-
docker-push-storage-host:
1178-
# Push each architecture sequentially and build manifest incrementally
1179-
$(foreach arch,$(DPF_SYSTEM_ARCH),$(MAKE) docker-push-storage-host-for-$(arch);)
1180-
# Push the final multi-arch manifest
1160+
docker-push-storage-host: $(addprefix docker-push-storage-host-for-,$(DPF_SYSTEM_ARCH))
11811161
docker manifest push --purge $(STORAGE_HOST_IMAGE):$(TAG)
11821162

11831163
docker-push-storage-host-for-%:
11841164
# Tag and push the arch-specific image with the single arch-agnostic tag.
11851165
docker tag $(STORAGE_HOST_IMAGE):$(TAG)-$* $(STORAGE_HOST_IMAGE):$(TAG)
11861166
docker push $(STORAGE_HOST_IMAGE):$(TAG)
1187-
# Add this architecture's RepoDigest to the multi-arch manifest
1167+
# This must be called in a separate target to ensure the shell command is called in the correct order.
11881168
$(MAKE) docker-create-manifest-for-storage-host
11891169

11901170
docker-create-manifest-for-storage-host:
@@ -1211,27 +1191,23 @@ docker-build-bfb-registry-for-%:
12111191
. \
12121192
-t $(BFB_REGISTRY_IMAGE):$(TAG)-$*
12131193

1214-
.PHONY: docker-push-bfb-registry # Push a multi-arch image for BFB Registry using `docker manifest`. The variable HOST_ARCH defines which architectures this target pushes for.
1215-
docker-push-bfb-registry:
1216-
# Push each architecture sequentially and build manifest incrementally
1217-
$(foreach arch,$(HOST_ARCH),$(MAKE) docker-push-bfb-registry-for-$(arch);)
1218-
# Push the final multi-arch manifest
1194+
.PHONY: docker-push-bfb-registry # Push a multi-arch image for BFB Registry using `docker manifest`. The variable DPF_SYSTEM_ARCH defines which architectures this target pushes for.
1195+
docker-push-bfb-registry: $(addprefix docker-push-bfb-registry-for-,$(HOST_ARCH))
12191196
docker manifest push --purge $(BFB_REGISTRY_IMAGE):$(TAG)
12201197

12211198
docker-push-bfb-registry-for-%:
12221199
# Tag and push the arch-specific image with the single arch-agnostic tag.
12231200
docker tag $(BFB_REGISTRY_IMAGE):$(TAG)-$* $(BFB_REGISTRY_IMAGE):$(TAG)
12241201
docker push $(BFB_REGISTRY_IMAGE):$(TAG)
1225-
# Add this architecture's RepoDigest to the multi-arch manifest
1202+
# This must be called in a separate target to ensure the shell command is called in the correct order.
12261203
$(MAKE) docker-create-manifest-for-bfb-registry
12271204

12281205
docker-create-manifest-for-bfb-registry:
12291206
# Note: If you tag an image with multiple registries this push might fail. This can be fixed by pruning existing docker images.
12301207
docker manifest create --amend $(BFB_REGISTRY_IMAGE):$(TAG) $(shell docker inspect --format='{{index .RepoDigests 0}}' $(BFB_REGISTRY_IMAGE):$(TAG))
12311208

12321209
.PHONY: docker-push-all
1233-
docker-push-all:
1234-
$(MAKE) -j$(PARALLEL_JOBS) --output-sync=target $(addprefix docker-push-,$(DOCKER_BUILD_TARGETS)) ## Push the docker images for all DOCKER_BUILD_TARGETS.
1210+
docker-push-all: $(addprefix docker-push-,$(DOCKER_BUILD_TARGETS)) ## Push the docker images for all DOCKER_BUILD_TARGETS.
12351211

12361212
.PHONY: docker-push-dpf-system
12371213
docker-push-dpf-system: ## This is a no-op to allow using DOCKER_BUILD_TARGETS.

0 commit comments

Comments
 (0)