From 388fc748ddf29591a4c4cb2f080577f07d117e9b Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Thu, 11 Jan 2024 19:37:31 -0300 Subject: [PATCH] Simplify images Makefiles --- .github/workflows/images.yaml | 25 ++++---- .github/workflows/junit-reports.yaml | 1 + .github/workflows/zz-tmpl-images.yaml | 54 ++++++++++++++-- go.work.sum | 2 +- images/{kube-webhook-certgen => }/Makefile | 46 +++++++++----- images/cfssl/Makefile | 57 ----------------- images/cfssl/TAG | 1 + images/cfssl/cloudbuild.yaml | 2 +- images/cfssl/rootfs/Dockerfile | 1 - images/custom-error-pages/Makefile | 59 ------------------ images/custom-error-pages/TAG | 1 + images/custom-error-pages/cloudbuild.yaml | 2 +- images/e2e-test-echo/EXTRAARGS | 1 + images/e2e-test-echo/TAG | 1 + .../{echo => e2e-test-echo}/rootfs/Dockerfile | 0 .../{echo => e2e-test-echo}/rootfs/nginx.conf | 0 images/echo/Makefile | 61 ------------------- images/echo/cloudbuild.yaml | 17 ------ images/ext-auth-example-authsvc/Makefile | 57 ----------------- images/ext-auth-example-authsvc/TAG | 1 + .../ext-auth-example-authsvc/cloudbuild.yaml | 2 +- images/fastcgi-helloserver/Makefile | 59 ------------------ images/fastcgi-helloserver/TAG | 1 + images/fastcgi-helloserver/cloudbuild.yaml | 2 +- images/go-grpc-greeter-server/Makefile | 57 ----------------- images/go-grpc-greeter-server/TAG | 1 + images/go-grpc-greeter-server/cloudbuild.yaml | 2 +- images/httpbun/Makefile | 57 ----------------- images/httpbun/TAG | 1 + images/httpbun/cloudbuild.yaml | 2 +- images/kube-webhook-certgen/TAG | 1 + images/kube-webhook-certgen/cloudbuild.yaml | 2 +- images/opentelemetry/Makefile | 59 ------------------ images/opentelemetry/TAG | 1 + images/opentelemetry/cloudbuild.yaml | 2 +- images/test-runner/TAG | 1 + 36 files changed, 115 insertions(+), 524 deletions(-) rename images/{kube-webhook-certgen => }/Makefile (60%) delete mode 100644 images/cfssl/Makefile create mode 100644 images/cfssl/TAG delete mode 100644 images/custom-error-pages/Makefile create mode 100644 images/custom-error-pages/TAG create mode 100644 images/e2e-test-echo/EXTRAARGS create mode 100644 images/e2e-test-echo/TAG rename images/{echo => e2e-test-echo}/rootfs/Dockerfile (100%) rename images/{echo => e2e-test-echo}/rootfs/nginx.conf (100%) delete mode 100644 images/echo/Makefile delete mode 100644 images/echo/cloudbuild.yaml delete mode 100644 images/ext-auth-example-authsvc/Makefile create mode 100644 images/ext-auth-example-authsvc/TAG delete mode 100644 images/fastcgi-helloserver/Makefile create mode 100644 images/fastcgi-helloserver/TAG delete mode 100644 images/go-grpc-greeter-server/Makefile create mode 100644 images/go-grpc-greeter-server/TAG delete mode 100644 images/httpbun/Makefile create mode 100644 images/httpbun/TAG create mode 100644 images/kube-webhook-certgen/TAG delete mode 100644 images/opentelemetry/Makefile create mode 100644 images/opentelemetry/TAG create mode 100644 images/test-runner/TAG diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 087c2b093..42921e5fa 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -14,7 +14,8 @@ on: - 'images/**' permissions: - contents: read + contents: write + packages: write env: PLATFORMS: linux/amd64 @@ -29,7 +30,7 @@ jobs: custom-error-pages: ${{ steps.filter.outputs.custom-error-pages }} cfssl: ${{ steps.filter.outputs.cfssl }} fastcgi-helloserver: ${{ steps.filter.outputs.fastcgi-helloserver }} - echo: ${{ steps.filter.outputs.echo }} + e2e-test-echo: ${{ steps.filter.outputs.e2e-test-echo }} go-grpc-greeter-server: ${{ steps.filter.outputs.go-grpc-greeter-server }} httpbun: ${{ steps.filter.outputs.httpbun }} kube-webhook-certgen: ${{ steps.filter.outputs.kube-webhook-certgen }} @@ -50,8 +51,8 @@ jobs: - 'images/cfssl/**' fastcgi-helloserver: - 'images/fastcgi-helloserver/**' - echo: - - 'images/echo/**' + e2e-test-echo: + - 'images/e2e-test-echo/**' go-grpc-greeter-server: - 'images/go-grpc-greeter-server/**' httpbun: @@ -80,13 +81,13 @@ jobs: with: name: custom-error-pages - echo: + e2e-test-echo: needs: changes if: | - (needs.changes.outputs.echo == 'true') + (needs.changes.outputs.e2e-test-echo == 'true') uses: ./.github/workflows/zz-tmpl-images.yaml with: - name: echo + name: e2e-test-echo ext-auth-example-authsvc: needs: changes @@ -96,13 +97,13 @@ jobs: with: name: ext-auth-example-authsvc - fastcfgi-helloserver: + fastcgi-helloserver: needs: changes if: | - (needs.changes.outputs.fastcfgi-helloserver == 'true') + (needs.changes.outputs.fastcgi-helloserver == 'true') uses: ./.github/workflows/zz-tmpl-images.yaml with: - name: fastcfgi-helloserver + name: fastcgi-helloserver go-grpc-greeter-server: needs: changes @@ -139,14 +140,14 @@ jobs: check-latest: true - name: image build run: | - cd images/kube-webhook-certgen && make build + cd images/ && make NAME=kube-webhook-certgen build - name: Create Kubernetes cluster id: kind run: | kind create cluster --image=kindest/node:${{ matrix.k8s }} - name: image test run: | - cd images/kube-webhook-certgen && make test test-e2e + cd images/ && make NAME=kube-webhook-certgen test test-e2e nginx: runs-on: ubuntu-latest diff --git a/.github/workflows/junit-reports.yaml b/.github/workflows/junit-reports.yaml index 62745a53b..78270c5be 100644 --- a/.github/workflows/junit-reports.yaml +++ b/.github/workflows/junit-reports.yaml @@ -15,3 +15,4 @@ jobs: name: JEST Tests $1 # Name of the check run which will be created path: 'report*.xml' # Path to test results (inside artifact .zip) reporter: jest-junit # Format of test results + fail-on-empty: 'true' diff --git a/.github/workflows/zz-tmpl-images.yaml b/.github/workflows/zz-tmpl-images.yaml index 40ca1e6fd..4e999c65d 100644 --- a/.github/workflows/zz-tmpl-images.yaml +++ b/.github/workflows/zz-tmpl-images.yaml @@ -18,12 +18,33 @@ env: PLATFORMS: ${{ inputs.platforms-test }} permissions: - contents: read + contents: write + packages: write jobs: - image-build: - name: Build ${{ inputs.name }} + changestag: + permissions: + contents: read # for dorny/paths-filter to fetch a list of changed files runs-on: ubuntu-latest + outputs: + tag: ${{ steps.filter.outputs.tag }} + + steps: + - name: Checkout + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1 + id: filter + with: + token: ${{ secrets.GITHUB_TOKEN }} + filters: | + tag: + - 'images/**/TAG' + + image-build: + name: Build + runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout @@ -31,6 +52,31 @@ jobs: - name: Build run: | - cd images/${{ inputs.name }} && make build + cd images/ && make NAME=${{ inputs.name }} build + image-push: + name: Push + needs: changestag + if: | + (github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'kubernetes/ingress-nginx' && needs.changestag.outputs.tag == 'true') + runs-on: ubuntu-latest + permissions: + contents: write + packages: write + env: + PLATFORMS: ${{ inputs.platforms-publish }} + steps: + - name: Checkout + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - name: Login to GitHub Container Registry + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Push + run: | + cd images/ && make REGISTRY=ghcr.io/kubernetes/ingress-nginx NAME=${{ inputs.name }} push diff --git a/go.work.sum b/go.work.sum index 2b31940aa..e45006894 100644 --- a/go.work.sum +++ b/go.work.sum @@ -180,4 +180,4 @@ golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= \ No newline at end of file diff --git a/images/kube-webhook-certgen/Makefile b/images/Makefile similarity index 60% rename from images/kube-webhook-certgen/Makefile rename to images/Makefile index cd014c7c3..069ca72b9 100644 --- a/images/kube-webhook-certgen/Makefile +++ b/images/Makefile @@ -1,4 +1,4 @@ -# Copyright 2021 The Kubernetes Authors. All rights reserved. +# Copyright 2024 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,17 +14,23 @@ .DEFAULT_GOAL:=build +# set default shell SHELL=/bin/bash -o pipefail -o errexit DIR:=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))) -INIT_BUILDX=$(DIR)/../../hack/init-buildx.sh +INIT_BUILDX=$(DIR)/../hack/init-buildx.sh -SHORT_SHA ?=$(shell git rev-parse --short HEAD) -TAG ?=v$(shell date +%Y%m%d)-$(SHORT_SHA) + +BASE_IMAGE = $(shell cat $(DIR)/../NGINX_BASE) REGISTRY ?= local +NAME ?= + +IMAGE = $(REGISTRY)/$(NAME) +TAG ?= $(shell cat $(NAME)/TAG) + +EXTRAARGS ?= $(shell cat $(NAME)/EXTRAARGS) -IMAGE = $(REGISTRY)/kube-webhook-certgen # required to enable buildx export DOCKER_CLI_EXPERIMENTAL=enabled @@ -34,17 +40,33 @@ PLATFORMS?=linux/amd64,linux/arm,linux/arm64,linux/s390x OUTPUT= PROGRESS=plain -build: ensure-buildx + +precheck: +ifndef NAME + $(error NAME variable is required) +endif + +build: precheck ensure-buildx docker buildx build \ + --label=org.opencontainers.image.source=https://github.com/kubernetes/ingress-nginx \ + --label=org.opencontainers.image.licenses=Apache-2.0 \ + --label=org.opencontainers.image.description="Ingress NGINX $(NAME) image" \ + --build-arg BASE_IMAGE=$(BASE_IMAGE) \ --platform=${PLATFORMS} $(OUTPUT) \ --progress=$(PROGRESS) \ - --pull \ - -t $(IMAGE):$(TAG) rootfs + --pull $(EXTRAARGS) \ + -t $(IMAGE):$(TAG) $(NAME)/rootfs # push the cross built image push: OUTPUT=--push push: build +test: precheck + cd $(NAME)/rootfs && go test ./... + +test-e2e: precheck + cd $(NAME) && ./hack/e2e.sh + # enable buildx ensure-buildx: # this is required for cloudbuild @@ -55,10 +77,4 @@ else endif @echo "done" -test: - cd rootfs && go test ./... - -test-e2e: - ./hack/e2e.sh - -.PHONY: build push ensure-buildx test test-e2e +.PHONY: build push ensure-buildx test test-e2e precheck diff --git a/images/cfssl/Makefile b/images/cfssl/Makefile deleted file mode 100644 index 31c37fbc5..000000000 --- a/images/cfssl/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 2020 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# set default shell -SHELL=/bin/bash -o pipefail -o errexit - -DIR:=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))) -INIT_BUILDX=$(DIR)/../../hack/init-buildx.sh - -SHORT_SHA ?=$(shell git rev-parse --short HEAD) -TAG ?=v$(shell date +%Y%m%d)-$(SHORT_SHA) - -REGISTRY ?= local - -IMAGE = $(REGISTRY)/e2e-test-cfssl - -# required to enable buildx -export DOCKER_CLI_EXPERIMENTAL=enabled - -# build with buildx -PLATFORMS?=linux/amd64,linux/arm,linux/arm64,linux/s390x -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/main/hack/init-buildx.sh | bash -else - @exec $(INIT_BUILDX) -endif - @echo "done" - -.PHONY: build push ensure-buildx diff --git a/images/cfssl/TAG b/images/cfssl/TAG new file mode 100644 index 000000000..95e94cdd3 --- /dev/null +++ b/images/cfssl/TAG @@ -0,0 +1 @@ +v0.0.1 \ No newline at end of file diff --git a/images/cfssl/cloudbuild.yaml b/images/cfssl/cloudbuild.yaml index 5fed3b712..32d91ca83 100644 --- a/images/cfssl/cloudbuild.yaml +++ b/images/cfssl/cloudbuild.yaml @@ -14,4 +14,4 @@ steps: - -c - | gcloud auth configure-docker \ - && cd images/cfssl && make push + && cd images && make NAME=cfssl push diff --git a/images/cfssl/rootfs/Dockerfile b/images/cfssl/rootfs/Dockerfile index 8b8f1632e..3b6c36f74 100644 --- a/images/cfssl/rootfs/Dockerfile +++ b/images/cfssl/rootfs/Dockerfile @@ -13,7 +13,6 @@ # limitations under the License. FROM alpine:3.19.0 -# BLA RUN echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories RUN apk update \ diff --git a/images/custom-error-pages/Makefile b/images/custom-error-pages/Makefile deleted file mode 100644 index 98f7104a7..000000000 --- a/images/custom-error-pages/Makefile +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 2021 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Container image for nginx-errors. - -# set default shell -SHELL=/bin/bash -o pipefail -o errexit - -DIR:=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))) -INIT_BUILDX=$(DIR)/../../hack/init-buildx.sh - -SHORT_SHA ?=$(shell git rev-parse --short HEAD) -TAG ?=v$(shell date +%Y%m%d)-$(SHORT_SHA) - -REGISTRY ?= local - -IMAGE = $(REGISTRY)/nginx-errors - -# required to enable buildx -export DOCKER_CLI_EXPERIMENTAL=enabled - -# build with buildx -PLATFORMS?=linux/amd64,linux/arm,linux/arm64,linux/s390x -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/main/hack/init-buildx.sh | bash -else - @exec $(INIT_BUILDX) -endif - @echo "done" - -.PHONY: build push ensure-buildx diff --git a/images/custom-error-pages/TAG b/images/custom-error-pages/TAG new file mode 100644 index 000000000..95e94cdd3 --- /dev/null +++ b/images/custom-error-pages/TAG @@ -0,0 +1 @@ +v0.0.1 \ No newline at end of file diff --git a/images/custom-error-pages/cloudbuild.yaml b/images/custom-error-pages/cloudbuild.yaml index a443d2b11..bb74da6b8 100644 --- a/images/custom-error-pages/cloudbuild.yaml +++ b/images/custom-error-pages/cloudbuild.yaml @@ -14,4 +14,4 @@ steps: - -c - | gcloud auth configure-docker \ - && cd images/custom-error-pages && make push + && cd images/ && make NAME=custom-error-pages push diff --git a/images/e2e-test-echo/EXTRAARGS b/images/e2e-test-echo/EXTRAARGS new file mode 100644 index 000000000..3db8aaa5c --- /dev/null +++ b/images/e2e-test-echo/EXTRAARGS @@ -0,0 +1 @@ +--build-arg LUAROCKS_VERSION=3.8.0 --build-arg LUAROCKS_SHA=ab6612ca9ab87c6984871d2712d05525775e8b50172701a0a1cabddf76de2be7 \ No newline at end of file diff --git a/images/e2e-test-echo/TAG b/images/e2e-test-echo/TAG new file mode 100644 index 000000000..95e94cdd3 --- /dev/null +++ b/images/e2e-test-echo/TAG @@ -0,0 +1 @@ +v0.0.1 \ No newline at end of file diff --git a/images/echo/rootfs/Dockerfile b/images/e2e-test-echo/rootfs/Dockerfile similarity index 100% rename from images/echo/rootfs/Dockerfile rename to images/e2e-test-echo/rootfs/Dockerfile diff --git a/images/echo/rootfs/nginx.conf b/images/e2e-test-echo/rootfs/nginx.conf similarity index 100% rename from images/echo/rootfs/nginx.conf rename to images/e2e-test-echo/rootfs/nginx.conf diff --git a/images/echo/Makefile b/images/echo/Makefile deleted file mode 100644 index a213df5d3..000000000 --- a/images/echo/Makefile +++ /dev/null @@ -1,61 +0,0 @@ -# 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. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# set default shell -SHELL=/bin/bash -o pipefail -o errexit - -DIR:=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))) -INIT_BUILDX=$(DIR)/../../hack/init-buildx.sh - -SHORT_SHA ?=$(shell git rev-parse --short HEAD) -TAG ?=v$(shell date +%Y%m%d)-$(SHORT_SHA) - -REGISTRY ?= local - -IMAGE = $(REGISTRY)/e2e-test-echo - -# required to enable buildx -export DOCKER_CLI_EXPERIMENTAL=enabled - -BASE_IMAGE = $(shell cat $(DIR)/../../NGINX_BASE) -# build with buildx -PLATFORMS?=linux/amd64 -OUTPUT= -PROGRESS=plain - -build: ensure-buildx - docker buildx build \ - --platform=${PLATFORMS} $(OUTPUT) \ - --progress=$(PROGRESS) \ - --pull \ - --build-arg BASE_IMAGE=${BASE_IMAGE} \ - --build-arg LUAROCKS_VERSION=3.8.0 \ - --build-arg LUAROCKS_SHA=ab6612ca9ab87c6984871d2712d05525775e8b50172701a0a1cabddf76de2be7 \ - -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/main/hack/init-buildx.sh | bash -else - @exec $(INIT_BUILDX) -endif - @echo "done" - -.PHONY: build push ensure-buildx diff --git a/images/echo/cloudbuild.yaml b/images/echo/cloudbuild.yaml deleted file mode 100644 index 811d8d3f0..000000000 --- a/images/echo/cloudbuild.yaml +++ /dev/null @@ -1,17 +0,0 @@ -timeout: 1200s -options: - substitution_option: ALLOW_LOOSE -steps: - - name: gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20211118-2f2d816b90 - entrypoint: bash - env: - - DOCKER_CLI_EXPERIMENTAL=enabled - - 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 \ - && cd images/echo && make push diff --git a/images/ext-auth-example-authsvc/Makefile b/images/ext-auth-example-authsvc/Makefile deleted file mode 100644 index 63f261ec3..000000000 --- a/images/ext-auth-example-authsvc/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 2022 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. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# set default shell -SHELL=/bin/bash -o pipefail -o errexit - -DIR:=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))) -INIT_BUILDX=$(DIR)/../../hack/init-buildx.sh - -SHORT_SHA ?=$(shell git rev-parse --short HEAD) -TAG ?=v$(shell date +%Y%m%d)-$(SHORT_SHA) - -REGISTRY ?= local - -IMAGE = $(REGISTRY)/ext-auth-example-authsvc - -# required to enable buildx -export DOCKER_CLI_EXPERIMENTAL=enabled - -# build with buildx -PLATFORMS?=linux/amd64,linux/arm,linux/arm64,linux/s390x -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/ext-auth-example-authsvc/TAG b/images/ext-auth-example-authsvc/TAG new file mode 100644 index 000000000..95e94cdd3 --- /dev/null +++ b/images/ext-auth-example-authsvc/TAG @@ -0,0 +1 @@ +v0.0.1 \ No newline at end of file diff --git a/images/ext-auth-example-authsvc/cloudbuild.yaml b/images/ext-auth-example-authsvc/cloudbuild.yaml index 4a436e012..3d06caf68 100644 --- a/images/ext-auth-example-authsvc/cloudbuild.yaml +++ b/images/ext-auth-example-authsvc/cloudbuild.yaml @@ -16,4 +16,4 @@ steps: - -c - | gcloud auth configure-docker \ - && cd images/ext-auth-example-authsvc && make push + && cd images/ && make NAME=ext-auth-example-authsvc push diff --git a/images/fastcgi-helloserver/Makefile b/images/fastcgi-helloserver/Makefile deleted file mode 100644 index 4d277a19d..000000000 --- a/images/fastcgi-helloserver/Makefile +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 2020 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# 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 - -DIR:=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))) -INIT_BUILDX=$(DIR)/../../hack/init-buildx.sh - -SHORT_SHA ?=$(shell git rev-parse --short HEAD) -TAG ?=v$(shell date +%Y%m%d)-$(SHORT_SHA) - -REGISTRY ?= local - -IMAGE = $(REGISTRY)/e2e-test-fastcgi-helloserver - -# required to enable buildx -export DOCKER_CLI_EXPERIMENTAL=enabled - -# build with buildx -PLATFORMS?=linux/amd64,linux/arm,linux/arm64 -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/main/hack/init-buildx.sh | bash -else - @exec $(INIT_BUILDX) -endif - @echo "done" - -.PHONY: build push ensure-buildx diff --git a/images/fastcgi-helloserver/TAG b/images/fastcgi-helloserver/TAG new file mode 100644 index 000000000..95e94cdd3 --- /dev/null +++ b/images/fastcgi-helloserver/TAG @@ -0,0 +1 @@ +v0.0.1 \ No newline at end of file diff --git a/images/fastcgi-helloserver/cloudbuild.yaml b/images/fastcgi-helloserver/cloudbuild.yaml index 80623a197..c1123a194 100644 --- a/images/fastcgi-helloserver/cloudbuild.yaml +++ b/images/fastcgi-helloserver/cloudbuild.yaml @@ -14,5 +14,5 @@ steps: - -c - | gcloud auth configure-docker \ - && cd images/fastcgi-helloserver && make push + && cd images/ && make NAME=fastcgi-helloserver push diff --git a/images/go-grpc-greeter-server/Makefile b/images/go-grpc-greeter-server/Makefile deleted file mode 100644 index e221ecfea..000000000 --- a/images/go-grpc-greeter-server/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 2021 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. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# set default shell -SHELL=/bin/bash -o pipefail -o errexit - -DIR:=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))) -INIT_BUILDX=$(DIR)/../../hack/init-buildx.sh - -SHORT_SHA ?=$(shell git rev-parse --short HEAD) -TAG ?=v$(shell date +%Y%m%d)-$(SHORT_SHA) - -REGISTRY ?= local - -IMAGE = $(REGISTRY)/go-grpc-greeter-server - -# required to enable buildx -export DOCKER_CLI_EXPERIMENTAL=enabled - -# build with buildx -PLATFORMS?=linux/amd64,linux/arm,linux/arm64,linux/s390x -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/go-grpc-greeter-server/TAG b/images/go-grpc-greeter-server/TAG new file mode 100644 index 000000000..95e94cdd3 --- /dev/null +++ b/images/go-grpc-greeter-server/TAG @@ -0,0 +1 @@ +v0.0.1 \ No newline at end of file diff --git a/images/go-grpc-greeter-server/cloudbuild.yaml b/images/go-grpc-greeter-server/cloudbuild.yaml index 20740eb27..daef69416 100644 --- a/images/go-grpc-greeter-server/cloudbuild.yaml +++ b/images/go-grpc-greeter-server/cloudbuild.yaml @@ -16,4 +16,4 @@ steps: - -c - | gcloud auth configure-docker \ - && cd images/go-grpc-greeter-server && make push + && cd images/ && make NAME=go-grpc-greeter-server push diff --git a/images/httpbun/Makefile b/images/httpbun/Makefile deleted file mode 100644 index bcb8c7be2..000000000 --- a/images/httpbun/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# 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. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# set default shell -SHELL=/bin/bash -o pipefail -o errexit - -DIR:=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))) -INIT_BUILDX=$(DIR)/../../hack/init-buildx.sh - -SHORT_SHA ?=$(shell git rev-parse --short HEAD) -TAG ?=v$(shell date +%Y%m%d)-$(SHORT_SHA) - -REGISTRY ?= local - -IMAGE = $(REGISTRY)/e2e-test-httpbun - -# required to enable buildx -export DOCKER_CLI_EXPERIMENTAL=enabled - -# build with buildx -PLATFORMS?=linux/amd64,linux/arm,linux/arm64,linux/s390x -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/main/hack/init-buildx.sh | bash -else - @exec $(INIT_BUILDX) -endif - @echo "done" - -.PHONY: build push ensure-buildx diff --git a/images/httpbun/TAG b/images/httpbun/TAG new file mode 100644 index 000000000..95e94cdd3 --- /dev/null +++ b/images/httpbun/TAG @@ -0,0 +1 @@ +v0.0.1 \ No newline at end of file diff --git a/images/httpbun/cloudbuild.yaml b/images/httpbun/cloudbuild.yaml index 68afbe873..bcf32db05 100644 --- a/images/httpbun/cloudbuild.yaml +++ b/images/httpbun/cloudbuild.yaml @@ -16,4 +16,4 @@ steps: - -c - | gcloud auth configure-docker \ - && cd images/httpbun && make push + && cd images/ && make NAME=httpbun push diff --git a/images/kube-webhook-certgen/TAG b/images/kube-webhook-certgen/TAG new file mode 100644 index 000000000..95e94cdd3 --- /dev/null +++ b/images/kube-webhook-certgen/TAG @@ -0,0 +1 @@ +v0.0.1 \ No newline at end of file diff --git a/images/kube-webhook-certgen/cloudbuild.yaml b/images/kube-webhook-certgen/cloudbuild.yaml index 88d7400d0..690f13126 100644 --- a/images/kube-webhook-certgen/cloudbuild.yaml +++ b/images/kube-webhook-certgen/cloudbuild.yaml @@ -29,4 +29,4 @@ steps: - -c - | gcloud auth configure-docker \ - && cd images/kube-webhook-certgen && make push + && cd images/ && make NAME=kube-webhook-certgen push diff --git a/images/opentelemetry/Makefile b/images/opentelemetry/Makefile deleted file mode 100644 index 03d92a298..000000000 --- a/images/opentelemetry/Makefile +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 2021 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. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -.DEFAULT_GOAL:=build - -# set default shell -SHELL=/bin/bash -o pipefail -o errexit - -DIR:=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))) -INIT_BUILDX=$(DIR)/../../hack/init-buildx.sh - -# 0.0.0 shouldn't clobber any released builds -SHORT_SHA ?=$(shell git rev-parse --short HEAD) -TAG ?=v$(shell date +%Y%m%d)-$(SHORT_SHA) - -REGISTRY ?= gcr.io/k8s-staging-ingress-nginx - -IMAGE = $(REGISTRY)/opentelemetry - -# required to enable buildx -export DOCKER_CLI_EXPERIMENTAL=enabled - -# build with buildx -PLATFORMS?=linux/amd64,linux/arm,linux/arm64,linux/s390x -OUTPUT= -PROGRESS=plain -build: ensure-buildx - docker buildx build \ - --platform=${PLATFORMS} $(OUTPUT) \ - --progress=$(PROGRESS) \ - --pull \ - --tag $(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/main/hack/init-buildx.sh | bash -else - @exec $(INIT_BUILDX) -endif - @echo "done" - -.PHONY: build push ensure-buildx diff --git a/images/opentelemetry/TAG b/images/opentelemetry/TAG new file mode 100644 index 000000000..95e94cdd3 --- /dev/null +++ b/images/opentelemetry/TAG @@ -0,0 +1 @@ +v0.0.1 \ No newline at end of file diff --git a/images/opentelemetry/cloudbuild.yaml b/images/opentelemetry/cloudbuild.yaml index baf29a051..6705dac87 100644 --- a/images/opentelemetry/cloudbuild.yaml +++ b/images/opentelemetry/cloudbuild.yaml @@ -16,4 +16,4 @@ steps: - -c - | gcloud auth configure-docker \ - && cd images/opentelemetry && make push + && cd images/ && make NAME=opentelemetry push diff --git a/images/test-runner/TAG b/images/test-runner/TAG new file mode 100644 index 000000000..95e94cdd3 --- /dev/null +++ b/images/test-runner/TAG @@ -0,0 +1 @@ +v0.0.1 \ No newline at end of file