1818
1919# Go architecture and targets images to build
2020GOARCH ?= amd64
21- MULTIARCH_TARGETS ?= amd64 arm64 ppc64le
21+ MULTIARCH_TARGETS ?= amd64
2222
2323# In CI, to be replaced by `netobserv`
2424IMAGE_ORG ?= $(USER )
@@ -28,10 +28,10 @@ IMAGE_TAG_BASE ?= quay.io/$(IMAGE_ORG)/netobserv-ebpf-agent
2828
2929# Image URL to use all building/pushing image targets
3030IMAGE ?= $(IMAGE_TAG_BASE ) :$(VERSION )
31- IMAGE_SHA = $( IMAGE_TAG_BASE ) : $( BUILD_SHA )
31+ OCI_BUILD_OPTS ?=
3232
33- # Image building tool (docker / podman)
34- OCI_BIN_PATH := $(shell which podman || which docker )
33+ # Image building tool (docker / podman) - docker is preferred in CI
34+ OCI_BIN_PATH := $(shell which docker || which podman )
3535OCI_BIN ?= $(shell basename ${OCI_BIN_PATH})
3636
3737LOCAL_GENERATOR_IMAGE ?= ebpf-generator:latest
@@ -49,7 +49,7 @@ EXCLUDE_COVERAGE_FILES="(/cmd/)|(bpf_bpfe)|(/examples/)|(/pkg/pbflow/)"
4949# build a single arch target provided as argument
5050define build_target
5151 echo 'building image for arch $(1 ) '; \
52- DOCKER_BUILDKIT=1 $(OCI_BIN ) buildx build --load --build-arg TARGETPLATFORM=linux/$(1 ) --build-arg TARGETARCH=$(1 ) --build-arg BUILDPLATFORM=linux/amd64 -t ${IMAGE}-$(1 ) -f Dockerfile .;
52+ DOCKER_BUILDKIT=1 $(OCI_BIN ) buildx build --load --build-arg TARGETPLATFORM=linux/$(1 ) --build-arg TARGETARCH=$(1 ) --build-arg BUILDPLATFORM=linux/amd64 ${OCI_BUILD_OPTS} -t ${IMAGE}-$(1 ) -f Dockerfile .;
5353endef
5454
5555# push a single arch target image
@@ -59,9 +59,9 @@ define push_target
5959endef
6060
6161# manifest create a single arch target provided as argument
62- define manifest_create_target
63- echo 'manifest create for arch $(1 ) '; \
64- DOCKER_BUILDKIT=1 $(OCI_BIN ) manifest add ${IMAGE} ${IMAGE}-$(target ) ;
62+ define manifest_add_target
63+ echo 'manifest add target $(1 ) '; \
64+ DOCKER_BUILDKIT=1 $(OCI_BIN ) manifest add ${IMAGE} ${IMAGE}-$(1 ) ;
6565endef
6666
6767# #@ General
@@ -181,7 +181,7 @@ ifeq (${OCI_BIN}, docker)
181181else
182182 trap 'exit' INT; \
183183 DOCKER_BUILDKIT=1 $(OCI_BIN) manifest create ${IMAGE} ||:
184- $(foreach target,$(MULTIARCH_TARGETS),$(call manifest_create_target ,$(target)))
184+ $(foreach target,$(MULTIARCH_TARGETS),$(call manifest_add_target ,$(target)))
185185endif
186186
187187.PHONY : manifest-push
@@ -193,21 +193,4 @@ else
193193 DOCKER_BUILDKIT=1 $(OCI_BIN) manifest push ${IMAGE} docker://${IMAGE};
194194endif
195195
196- .PHONY : ci-manifest-build
197- ci-manifest-build : manifest-build # # Build CI manifest
198- $(OCI_BIN ) build --build-arg BASE_IMAGE=$(IMAGE ) -t $(IMAGE_SHA ) -f scripts/shortlived.Dockerfile .
199- ifeq ($(VERSION ) , main)
200- # Also tag "latest" only for branch "main"
201- $(OCI_BIN) build -t $(IMAGE) -t $(IMAGE_TAG_BASE):latest -f scripts/shortlived.Dockerfile .
202- endif
203-
204- .PHONY : ci-manifest-push
205- ci-manifest-push : # # Push CI manifest
206- $(OCI_BIN ) push $(IMAGE_SHA )
207- ifeq ($(VERSION ) , main)
208- # Also tag "latest" only for branch "main"
209- $(OCI_BIN) push ${IMAGE}
210- $(OCI_BIN) push $(IMAGE_TAG_BASE):latest
211- endif
212-
213196include .mk/shortcuts.mk
0 commit comments