From 0a128d346768e07c765067f4884652acd218701f Mon Sep 17 00:00:00 2001 From: Manuel Alejandro de Brito Fontes Date: Fri, 26 Jun 2020 15:54:53 -0400 Subject: [PATCH] Add cloudbuild configuration for cfssl test image --- images/cfssl/Makefile | 44 ++++++++++++++++++++++++++++-------- images/cfssl/cloudbuild.yaml | 22 ++++++++++++++++++ 2 files changed, 57 insertions(+), 9 deletions(-) create mode 100644 images/cfssl/cloudbuild.yaml diff --git a/images/cfssl/Makefile b/images/cfssl/Makefile index bbc8259ab..55bb3deb8 100644 --- a/images/cfssl/Makefile +++ b/images/cfssl/Makefile @@ -12,18 +12,44 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Docker image for e2e testing. +# set default shell +SHELL=/bin/bash -o pipefail -o errexit -# Use the 0.0 tag for testing, it shouldn't clobber any release builds -TAG ?= 0.0 +DIR:=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))) +INIT_BUILDX=$(DIR)/../../hack/init-buildx.sh -REGISTRY ?= ingress-controller +TAG ?=v$(shell date +%m%d%Y)-$(shell git rev-parse --short HEAD) +REGISTRY ?= local -IMAGE = $(REGISTRY)/cfssl +IMAGE = $(REGISTRY)/e2e-test-cfssl -image: - docker build \ +# required to enable buildx +export DOCKER_CLI_EXPERIMENTAL=enabled + +# build with buildx +PLATFORMS?=linux/amd64 +OUTPUT= +PROGRESS=plain + +build: ensure-buildx + docker buildx build \ + --platform=${PLATFORMS} $(OUTPUT) \ + --progress=$(PROGRESS) \ + --pull \ -t $(IMAGE):$(TAG) rootfs -clean: - docker rmi -f $(IMAGE):$(TAG) || true +# push the cross built image +push: OUTPUT=--push +push: build + +# enable buildx +ensure-buildx: +# this is required for cloudbuild +ifeq ("$(wildcard $(INIT_BUILDX))","") + @curl -sSL https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/hack/init-buildx.sh | bash +else + @exec $(INIT_BUILDX) +endif + @echo "done" + +.PHONY: build push ensure-buildx diff --git a/images/cfssl/cloudbuild.yaml b/images/cfssl/cloudbuild.yaml new file mode 100644 index 000000000..2a8f7da65 --- /dev/null +++ b/images/cfssl/cloudbuild.yaml @@ -0,0 +1,22 @@ +timeout: 600s +options: + substitution_option: ALLOW_LOOSE +steps: + - name: gcr.io/k8s-testimages/gcb-docker-gcloud:v20200619-68869a4 + entrypoint: bash + env: + - DOCKER_CLI_EXPERIMENTAL=enabled + - TAG=$_GIT_TAG + - BASE_REF=$_PULL_BASE_REF + - REGISTRY=gcr.io/k8s-staging-ingress-nginx + # default cloudbuild has HOME=/builder/home and docker buildx is in /root/.docker/cli-plugins/docker-buildx + # set the home to /root explicitly to if using docker buildx + - HOME=/root + args: + - -c + - | + gcloud auth configure-docker \ + && make push +substitutions: + _GIT_TAG: "12345" + _PULL_BASE_REF: "master"