@@ -94,12 +94,8 @@ GVISOR_TAG ?= latest
94
94
# storage provisioner tag to push changes to
95
95
STORAGE_PROVISIONER_TAG ?= v3
96
96
97
- # TODO: multi-arch manifest
98
- ifeq ($(GOARCH ) ,amd64)
99
- STORAGE_PROVISIONER_IMAGE ?= $(REGISTRY ) /storage-provisioner:$(STORAGE_PROVISIONER_TAG )
100
- else
97
+ STORAGE_PROVISIONER_MANIFEST ?= $(REGISTRY ) /storage-provisioner:$(STORAGE_PROVISIONER_TAG )
101
98
STORAGE_PROVISIONER_IMAGE ?= $(REGISTRY ) /storage-provisioner-$(GOARCH ) :$(STORAGE_PROVISIONER_TAG )
102
- endif
103
99
104
100
# Set the version information for the Kubernetes servers
105
101
MINIKUBE_LDFLAGS := -X k8s.io/minikube/pkg/version.version=$(VERSION ) -X k8s.io/minikube/pkg/version.isoVersion=$(ISO_VERSION ) -X k8s.io/minikube/pkg/version.isoPath=$(ISO_BUCKET ) -X k8s.io/minikube/pkg/version.gitCommitID=$(COMMIT ) -X k8s.io/minikube/pkg/version.storageProvisionerVersion=$(STORAGE_PROVISIONER_TAG )
@@ -579,8 +575,11 @@ else
579
575
endif
580
576
581
577
.PHONY : storage-provisioner-image
582
- storage-provisioner-image : out/storage-provisioner-$(GOARCH ) # # Build storage-provisioner docker image
583
- docker build -t $(STORAGE_PROVISIONER_IMAGE ) -f deploy/storage-provisioner/Dockerfile --build-arg arch=$(GOARCH ) .
578
+ storage-provisioner-image : storage-provisioner-image-$(GOARCH ) # # Build storage-provisioner docker image
579
+ docker tag $(REGISTRY ) /storage-provisioner-$(GOARCH ) :$(STORAGE_PROVISIONER_TAG ) $(REGISTRY ) /storage-provisioner:$(STORAGE_PROVISIONER_TAG )
580
+
581
+ storage-provisioner-image-% : out/storage-provisioner-%
582
+ docker build -t $(REGISTRY ) /storage-provisioner-$* :$(STORAGE_PROVISIONER_TAG ) -f deploy/storage-provisioner/Dockerfile --build-arg arch=$* .
584
583
585
584
.PHONY : kic-base-image
586
585
kic-base-image : # # builds the base image used for kic.
@@ -601,6 +600,18 @@ push-storage-provisioner-image: storage-provisioner-image ## Push storage-provis
601
600
docker login gcr.io/k8s-minikube
602
601
$(MAKE ) push-docker IMAGE=$(STORAGE_PROVISIONER_IMAGE )
603
602
603
+ ALL_ARCH = amd64 arm arm64 ppc64le s390x
604
+ IMAGE = $(REGISTRY ) /storage-provisioner
605
+ TAG = $(STORAGE_PROVISIONER_TAG )
606
+
607
+ .PHONY : push-storage-provisioner-manifest
608
+ push-storage-provisioner-manifest : $(shell echo $(ALL_ARCH ) | sed -e "s~[^ ]* ~storage\-provisioner\-image\-&~g")
609
+ docker login gcr.io/k8s-minikube
610
+ set -x; for arch in $( ALL_ARCH) ; do docker push ${IMAGE} -$$ {arch}:${TAG} ; done
611
+ docker manifest create --amend $(IMAGE ) :$(TAG ) $(shell echo $(ALL_ARCH ) | sed -e "s~[^ ]* ~$(IMAGE ) \-&:$(TAG ) ~g")
612
+ set -x; for arch in $( ALL_ARCH) ; do docker manifest annotate --arch $$ {arch} ${IMAGE} :${TAG} ${IMAGE} -$$ {arch}:${TAG} ; done
613
+ docker manifest push $(STORAGE_PROVISIONER_MANIFEST )
614
+
604
615
.PHONY : push-docker
605
616
push-docker : # Push docker image base on to IMAGE variable
606
617
@docker pull $(IMAGE ) && echo " Image already exist in registry" && exit 1 || echo " Image doesn't exist in registry"
0 commit comments