From b5615b6380349dcd234c2c485f81371d8f1ec83a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Batuhan=20Apayd=C4=B1n?= Date: Wed, 10 Nov 2021 23:07:40 +0300 Subject: [PATCH] feat: create new builder for buildx (#2703) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Erkan Zileli Co-authored-by: Furkan Turkal Signed-off-by: Batuhan Apaydın Co-authored-by: Erkan Zileli Co-authored-by: Furkan Turkal --- Makefile | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 2d8361d4a0..6b3889bf71 100644 --- a/Makefile +++ b/Makefile @@ -52,12 +52,17 @@ ALPINE_PATH := cmd/alpineBase SIG_IMAGE := signatures .PHONY: docker-build-signature docker-push-signature -docker-publish-sigs: docker-build-signature docker-push-signature +docker-buildx-builder: + if ! docker buildx ls | grep -q kyverno; then\ + docker buildx create --name kyverno --use;\ + fi -docker-build-signature: +docker-publish-sigs: docker-buildx-builder docker-build-signature docker-push-signature + +docker-build-signature: docker-buildx-builder @docker buildx build --file $(PWD)/$(ALPINE_PATH)/Dockerfile --tag $(REPO)/$(SIG_IMAGE):$(IMAGE_TAG) . -docker-push-signature: +docker-push-signature: docker-buildx-builder @docker buildx build --file $(PWD)/$(ALPINE_PATH)/Dockerfile --push --tag $(REPO)/$(SIG_IMAGE):$(IMAGE_TAG) . @docker buildx build --file $(PWD)/$(ALPINE_PATH)/Dockerfile --push --tag $(REPO)/$(SIG_IMAGE):latest . @@ -68,12 +73,12 @@ ALPINE_PATH := cmd/alpineBase SBOM_IMAGE := sbom .PHONY: docker-build-sbom docker-push-sbom -docker-publish-sbom: docker-build-sbom docker-push-sbom +docker-publish-sbom: docker-buildx-builder docker-build-sbom docker-push-sbom -docker-build-sbom: +docker-build-sbom: docker-buildx-builder @docker buildx build --file $(PWD)/$(ALPINE_PATH)/Dockerfile --tag $(REPO)/$(SBOM_IMAGE):$(IMAGE_TAG) . -docker-push-sbom: +docker-push-sbom: docker-buildx-builder @docker buildx build --file $(PWD)/$(ALPINE_PATH)/Dockerfile --push --tag $(REPO)/$(SBOM_IMAGE):$(IMAGE_TAG) . @docker buildx build --file $(PWD)/$(ALPINE_PATH)/Dockerfile --push --tag $(REPO)/$(SBOM_IMAGE):latest . @@ -87,15 +92,15 @@ initContainer: fmt vet .PHONY: docker-build-initContainer docker-push-initContainer -docker-publish-initContainer: docker-build-initContainer docker-push-initContainer +docker-publish-initContainer: docker-buildx-builder docker-build-initContainer docker-push-initContainer -docker-build-initContainer: +docker-build-initContainer: docker-buildx-builder @docker buildx build --file $(PWD)/$(INITC_PATH)/Dockerfile --progress plane --platform linux/arm64,linux/amd64 --tag $(REPO)/$(INITC_IMAGE):$(IMAGE_TAG) . --build-arg LD_FLAGS=$(LD_FLAGS) -docker-build-initContainer-amd64: +docker-build-initContainer-amd64: @docker build -f $(PWD)/$(INITC_PATH)/Dockerfile -t $(REPO)/$(INITC_IMAGE):$(IMAGE_TAG) . --build-arg LD_FLAGS=$(LD_FLAGS) --build-arg TARGETPLATFORM="linux/amd64" -docker-push-initContainer: +docker-push-initContainer: docker-buildx-builder @docker buildx build --file $(PWD)/$(INITC_PATH)/Dockerfile --progress plane --push --platform linux/arm64,linux/amd64 --tag $(REPO)/$(INITC_IMAGE):$(IMAGE_TAG) . --build-arg LD_FLAGS=$(LD_FLAGS) @docker buildx build --file $(PWD)/$(INITC_PATH)/Dockerfile --progress plane --push --platform linux/arm64,linux/amd64 --tag $(REPO)/$(INITC_IMAGE):latest . --build-arg LD_FLAGS=$(LD_FLAGS) @@ -118,9 +123,9 @@ local: kyverno: fmt vet GOOS=$(GOOS) go build -o $(PWD)/$(KYVERNO_PATH)/kyverno -tags $(TAGS) -ldflags=$(LD_FLAGS) $(PWD)/$(KYVERNO_PATH)/main.go -docker-publish-kyverno: docker-build-kyverno docker-push-kyverno +docker-publish-kyverno: docker-buildx-builder docker-build-kyverno docker-push-kyverno -docker-build-kyverno: +docker-build-kyverno: docker-buildx-builder @docker buildx build --file $(PWD)/$(KYVERNO_PATH)/Dockerfile --progress plane --platform linux/arm64,linux/amd64 --tag $(REPO)/$(KYVERNO_IMAGE):$(IMAGE_TAG) . --build-arg LD_FLAGS=$(LD_FLAGS) --build-arg TAGS=$(TAGS) docker-build-kyverno-local: @@ -131,7 +136,7 @@ docker-build-kyverno-local: docker-build-kyverno-amd64: @docker build -f $(PWD)/$(KYVERNO_PATH)/Dockerfile -t $(REPO)/$(KYVERNO_IMAGE):$(IMAGE_TAG) . --build-arg LD_FLAGS=$(LD_FLAGS) --build-arg TARGETPLATFORM="linux/amd64" --build-arg TAGS=$(TAGS) -docker-push-kyverno: +docker-push-kyverno: docker-buildx-builder @docker buildx build --file $(PWD)/$(KYVERNO_PATH)/Dockerfile --progress plane --push --platform linux/arm64,linux/amd64 --tag $(REPO)/$(KYVERNO_IMAGE):$(IMAGE_TAG) . --build-arg LD_FLAGS=$(LD_FLAGS) --build-arg TAGS=$(TAGS) @docker buildx build --file $(PWD)/$(KYVERNO_PATH)/Dockerfile --progress plane --push --platform linux/arm64,linux/amd64 --tag $(REPO)/$(KYVERNO_IMAGE):latest . --build-arg LD_FLAGS=$(LD_FLAGS) --build-arg TAGS=$(TAGS) @@ -154,24 +159,24 @@ KYVERNO_CLI_IMAGE := kyverno-cli cli: GOOS=$(GOOS) go build -o $(PWD)/$(CLI_PATH)/kyverno -ldflags=$(LD_FLAGS) $(PWD)/$(CLI_PATH)/main.go -docker-publish-cli: docker-build-cli docker-push-cli +docker-publish-cli: docker-buildx-builder docker-build-cli docker-push-cli -docker-build-cli: +docker-build-cli: docker-buildx-builder @docker buildx build --file $(PWD)/$(CLI_PATH)/Dockerfile --progress plane --platform linux/arm64,linux/amd64 --tag $(REPO)/$(KYVERNO_CLI_IMAGE):$(IMAGE_TAG) . --build-arg LD_FLAGS=$(LD_FLAGS) docker-build-cli-amd64: @docker build -f $(PWD)/$(CLI_PATH)/Dockerfile -t $(REPO)/$(KYVERNO_CLI_IMAGE):$(IMAGE_TAG) . --build-arg LD_FLAGS=$(LD_FLAGS) --build-arg TARGETPLATFORM="linux/amd64" -docker-push-cli: +docker-push-cli: docker-buildx-builder @docker buildx build --file $(PWD)/$(CLI_PATH)/Dockerfile --progress plane --push --platform linux/arm64,linux/amd64 --tag $(REPO)/$(KYVERNO_CLI_IMAGE):$(IMAGE_TAG) . --build-arg LD_FLAGS=$(LD_FLAGS) @docker buildx build --file $(PWD)/$(CLI_PATH)/Dockerfile --progress plane --push --platform linux/arm64,linux/amd64 --tag $(REPO)/$(KYVERNO_CLI_IMAGE):latest . --build-arg LD_FLAGS=$(LD_FLAGS) ################################## -docker-publish-all: docker-publish-initContainer docker-publish-kyverno docker-publish-cli +docker-publish-all: docker-buildx-builder docker-publish-initContainer docker-publish-kyverno docker-publish-cli -docker-build-all: docker-build-initContainer docker-build-kyverno docker-build-cli +docker-build-all: docker-buildx-builder docker-build-initContainer docker-build-kyverno docker-build-cli -docker-build-all-amd64: docker-build-initContainer-amd64 docker-build-kyverno-amd64 docker-build-cli-amd64 +docker-build-all-amd64: docker-buildx-builder docker-build-initContainer-amd64 docker-build-kyverno-amd64 docker-build-cli-amd64 ################################## # Create e2e Infrastruture