diff --git a/images/httpbin/Makefile b/images/httpbin/Makefile index 6e30e1ada..90d2fbb09 100644 --- a/images/httpbin/Makefile +++ b/images/httpbin/Makefile @@ -1,4 +1,4 @@ -# Copyright 2020 The Kubernetes Authors. +# Copyright 2020 The Kubernetes Authors. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,16 +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)/httpbin +IMAGE = $(REGISTRY)/e2e-test-httpbin -.PHONY: image -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 + +# 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/httpbin/cloudbuild.yaml b/images/httpbin/cloudbuild.yaml new file mode 100644 index 000000000..2a8f7da65 --- /dev/null +++ b/images/httpbin/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"