Update nginx base image in one place (#8400)
* update files to use one base image file Signed-off-by: James Strong <strong.james.e@gmail.com> * add chart test as well Signed-off-by: James Strong <strong.james.e@gmail.com> * update e2e-test image building Signed-off-by: James Strong <strong.james.e@gmail.com> * update e2e base image arg Signed-off-by: James Strong <strong.james.e@gmail.com> * add current e2e so test run Signed-off-by: James Strong <strong.james.e@gmail.com> * working on fixing build * getting dev-env and make release to work * test * i think buildx is working on mac * updates * why docker for mac and linux cli differ * fix target arch * fix target arch * fix loag issue * fix issue * update the chroot docker file * fix docker base build * mac is the issue * env not getting to the e2e deployment.go file * fix pull issue * fix pull issue * move test scripts into test folder * clean up ci * updates for PR * remove unnesscary var
This commit is contained in:
parent
8baac4214a
commit
e1a16f6e74
19 changed files with 138 additions and 70 deletions
|
@ -1,8 +0,0 @@
|
|||
coverage:
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
target: 40%
|
||||
threshold: null
|
||||
patch: false
|
||||
changes: false
|
5
.github/workflows/ci.yaml
vendored
5
.github/workflows/ci.yaml
vendored
|
@ -44,6 +44,7 @@ jobs:
|
|||
- 'charts/ingress-nginx/Chart.yaml'
|
||||
- 'charts/ingress-nginx/**/*'
|
||||
|
||||
|
||||
security:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
@ -195,6 +196,7 @@ jobs:
|
|||
kind get kubeconfig > $HOME/.kube/kind-config-kind
|
||||
make kind-e2e-chart-tests
|
||||
|
||||
|
||||
kubernetes:
|
||||
name: Kubernetes
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -251,6 +253,7 @@ jobs:
|
|||
kind get kubeconfig > $HOME/.kube/kind-config-kind
|
||||
make kind-e2e-test
|
||||
|
||||
|
||||
kubernetes-chroot:
|
||||
name: Kubernetes chroot
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -308,6 +311,7 @@ jobs:
|
|||
kind get kubeconfig > $HOME/.kube/kind-config-kind
|
||||
make kind-e2e-test
|
||||
|
||||
|
||||
test-image-build:
|
||||
permissions:
|
||||
contents: read # for dorny/paths-filter to fetch a list of changed files
|
||||
|
@ -374,6 +378,7 @@ jobs:
|
|||
run: |
|
||||
cd images/ext-auth-example-authsvc && make build
|
||||
|
||||
|
||||
test-image:
|
||||
permissions:
|
||||
contents: read # for dorny/paths-filter to fetch a list of changed files
|
||||
|
|
83
Makefile
83
Makefile
|
@ -53,9 +53,16 @@ ifneq ($(PLATFORM),)
|
|||
PLATFORM_FLAG="--platform"
|
||||
endif
|
||||
|
||||
MAC_OS = $(shell uname -s)
|
||||
ifeq ($(MAC_OS), Darwin)
|
||||
MAC_DOCKER_FLAGS="--load"
|
||||
else
|
||||
MAC_DOCKER_FLAGS=
|
||||
endif
|
||||
|
||||
REGISTRY ?= gcr.io/k8s-staging-ingress-nginx
|
||||
|
||||
BASE_IMAGE ?= registry.k8s.io/ingress-nginx/nginx:0ff500c23f34e939305de709cb6d47da34b66611@sha256:15f91034a03550dfab6ec50a7be4abbb683d087e234ad7fef5adedef54e46a5a
|
||||
BASE_IMAGE ?= $(shell cat NGINX_BASE)
|
||||
|
||||
GOARCH=$(ARCH)
|
||||
|
||||
|
@ -65,12 +72,14 @@ help: ## Display this help
|
|||
.PHONY: image
|
||||
image: clean-image ## Build image for a particular arch.
|
||||
echo "Building docker image ($(ARCH))..."
|
||||
@docker build \
|
||||
docker build \
|
||||
${PLATFORM_FLAG} ${PLATFORM} \
|
||||
--no-cache \
|
||||
$(MAC_DOCKER_FLAGS) \
|
||||
--pull \
|
||||
--build-arg BASE_IMAGE="$(BASE_IMAGE)" \
|
||||
--build-arg VERSION="$(TAG)" \
|
||||
--build-arg TARGETARCH="$(ARCH)" \
|
||||
--build-arg TARGET_ARCH="$(ARCH)" \
|
||||
--build-arg COMMIT_SHA="$(COMMIT_SHA)" \
|
||||
--build-arg BUILD_ID="$(BUILD_ID)" \
|
||||
-t $(REGISTRY)/controller:$(TAG) rootfs
|
||||
|
@ -82,14 +91,16 @@ gosec:
|
|||
.PHONY: image-chroot
|
||||
image-chroot: clean-chroot-image ## Build image for a particular arch.
|
||||
echo "Building docker image ($(ARCH))..."
|
||||
@docker build \
|
||||
docker build \
|
||||
--no-cache \
|
||||
$(MAC_DOCKER_FLAGS) \
|
||||
--pull \
|
||||
--build-arg BASE_IMAGE="$(BASE_IMAGE)" \
|
||||
--build-arg VERSION="$(TAG)" \
|
||||
--build-arg TARGETARCH="$(ARCH)" \
|
||||
--build-arg TARGET_ARCH="$(ARCH)" \
|
||||
--build-arg COMMIT_SHA="$(COMMIT_SHA)" \
|
||||
--build-arg BUILD_ID="$(BUILD_ID)" \
|
||||
-t $(REGISTRY)/controller-chroot:$(TAG) rootfs -f rootfs/Dockerfile.chroot
|
||||
-t $(REGISTRY)/controller-chroot:$(TAG) rootfs -f rootfs/Dockerfile-chroot
|
||||
|
||||
.PHONY: clean-image
|
||||
clean-image: ## Removes local image
|
||||
|
@ -105,64 +116,82 @@ clean-chroot-image: ## Removes local image
|
|||
|
||||
.PHONY: build
|
||||
build: ## Build ingress controller, debug tool and pre-stop hook.
|
||||
@build/run-in-docker.sh \
|
||||
build/run-in-docker.sh \
|
||||
MAC_OS=$(MAC_OS) \
|
||||
PKG=$(PKG) \
|
||||
ARCH=$(ARCH) \
|
||||
COMMIT_SHA=$(COMMIT_SHA) \
|
||||
REPO_INFO=$(REPO_INFO) \
|
||||
TAG=$(TAG) \
|
||||
GOBUILD_FLAGS=$(GOBUILD_FLAGS) \
|
||||
build/build.sh
|
||||
|
||||
|
||||
.PHONY: build-plugin
|
||||
build-plugin: ## Build ingress-nginx krew plugin.
|
||||
@build/run-in-docker.sh \
|
||||
PKG=$(PKG) \
|
||||
MAC_OS=$(MAC_OS) \
|
||||
ARCH=$(ARCH) \
|
||||
COMMIT_SHA=$(COMMIT_SHA) \
|
||||
REPO_INFO=$(REPO_INFO) \
|
||||
TAG=$(TAG) \
|
||||
GOBUILD_FLAGS=$(GOBUILD_FLAGS) \
|
||||
build/build-plugin.sh
|
||||
|
||||
|
||||
.PHONY: clean
|
||||
clean: ## Remove .gocache directory.
|
||||
rm -rf bin/ .gocache/ .cache/
|
||||
|
||||
|
||||
.PHONY: static-check
|
||||
static-check: ## Run verification script for boilerplate, codegen, gofmt, golint, lualint and chart-lint.
|
||||
@build/run-in-docker.sh \
|
||||
hack/verify-all.sh
|
||||
|
||||
###############################
|
||||
# Tests for ingress-nginx
|
||||
###############################
|
||||
|
||||
.PHONY: test
|
||||
test: ## Run go unit tests.
|
||||
@build/run-in-docker.sh \
|
||||
PKG=$(PKG) \
|
||||
MAC_OS=$(MAC_OS) \
|
||||
ARCH=$(ARCH) \
|
||||
COMMIT_SHA=$(COMMIT_SHA) \
|
||||
REPO_INFO=$(REPO_INFO) \
|
||||
TAG=$(TAG) \
|
||||
GOBUILD_FLAGS=$(GOBUILD_FLAGS) \
|
||||
build/test.sh
|
||||
test/test.sh
|
||||
|
||||
.PHONY: lua-test
|
||||
lua-test: ## Run lua unit tests.
|
||||
@build/run-in-docker.sh \
|
||||
BUSTED_ARGS=$(BUSTED_ARGS) \
|
||||
build/test-lua.sh
|
||||
MAC_OS=$(MAC_OS) \
|
||||
test/test-lua.sh
|
||||
|
||||
.PHONY: e2e-test
|
||||
e2e-test: ## Run e2e tests (expects access to a working Kubernetes cluster).
|
||||
@build/run-e2e-suite.sh
|
||||
|
||||
.PHONY: kind-e2e-test
|
||||
kind-e2e-test: ## Run e2e tests using kind.
|
||||
@test/e2e/run.sh
|
||||
|
||||
.PHONY: kind-e2e-chart-tests
|
||||
kind-e2e-chart-tests: ## Run helm chart e2e tests
|
||||
@test/e2e/run-chart-test.sh
|
||||
|
||||
.PHONY: e2e-test-binary
|
||||
e2e-test-binary: ## Build binary for e2e tests.
|
||||
@build/run-in-docker.sh \
|
||||
MAC_OS=$(MAC_OS) \
|
||||
ginkgo build ./test/e2e
|
||||
|
||||
.PHONY: print-e2e-suite
|
||||
print-e2e-suite: e2e-test-binary ## Prints information about the suite of e2e tests.
|
||||
@build/run-in-docker.sh \
|
||||
MAC_OS=$(MAC_OS) \
|
||||
hack/print-e2e-suite.sh
|
||||
|
||||
.PHONY: vet
|
||||
|
@ -185,6 +214,8 @@ dev-env: ## Starts a local Kubernetes cluster using kind, building and deployin
|
|||
dev-env-stop: ## Deletes local Kubernetes cluster created by kind.
|
||||
@kind delete cluster --name ingress-nginx-dev
|
||||
|
||||
|
||||
|
||||
.PHONY: live-docs
|
||||
live-docs: ## Build and launch a local copy of the documentation website in http://localhost:8000
|
||||
@docker build ${PLATFORM_FLAG} ${PLATFORM} -t ingress-nginx-docs .github/actions/mkdocs
|
||||
|
@ -202,14 +233,6 @@ misspell: ## Check for spelling errors.
|
|||
-error \
|
||||
cmd/* internal/* deploy/* docs/* design/* test/* README.md
|
||||
|
||||
.PHONY: kind-e2e-test
|
||||
kind-e2e-test: ## Run e2e tests using kind.
|
||||
@test/e2e/run.sh
|
||||
|
||||
.PHONY: kind-e2e-chart-tests
|
||||
kind-e2e-chart-tests: ## Run helm chart e2e tests
|
||||
@test/e2e/run-chart-test.sh
|
||||
|
||||
.PHONY: run-ingress-controller
|
||||
run-ingress-controller: ## Run the ingress controller locally using a kubectl proxy connection.
|
||||
@build/run-ingress-controller.sh
|
||||
|
@ -223,35 +246,35 @@ show-version:
|
|||
echo -n $(TAG)
|
||||
|
||||
PLATFORMS ?= amd64 arm arm64 s390x
|
||||
|
||||
EMPTY :=
|
||||
SPACE := $(EMPTY) $(EMPTY)
|
||||
COMMA := ,
|
||||
BUILDX_PLATFORMS ?= linux/amd64,linux/arm,linux/arm64,linux/s390x
|
||||
|
||||
.PHONY: release # Build a multi-arch docker image
|
||||
release: ensure-buildx clean
|
||||
echo "Building binaries..."
|
||||
$(foreach PLATFORM,$(PLATFORMS), echo -n "$(PLATFORM)..."; ARCH=$(PLATFORM) make build;)
|
||||
|
||||
echo "Building and pushing ingress-nginx image..."
|
||||
@docker buildx build \
|
||||
echo "Building and pushing ingress-nginx image...$(BUILDX_PLATFORMS)"
|
||||
|
||||
docker buildx build \
|
||||
--no-cache \
|
||||
--push \
|
||||
--pull \
|
||||
--progress plain \
|
||||
--platform $(subst $(SPACE),$(COMMA),$(PLATFORMS)) \
|
||||
--platform $(BUILDX_PLATFORMS) \
|
||||
--build-arg BASE_IMAGE="$(BASE_IMAGE)" \
|
||||
--build-arg VERSION="$(TAG)" \
|
||||
--build-arg COMMIT_SHA="$(COMMIT_SHA)" \
|
||||
--build-arg BUILD_ID="$(BUILD_ID)" \
|
||||
-t $(REGISTRY)/controller:$(TAG) rootfs
|
||||
|
||||
@docker buildx build \
|
||||
docker buildx build \
|
||||
--no-cache \
|
||||
--push \
|
||||
--pull \
|
||||
--progress plain \
|
||||
--platform $(subst $(SPACE),$(COMMA),$(PLATFORMS)) \
|
||||
--platform $(BUILDX_PLATFORMS) \
|
||||
--build-arg BASE_IMAGE="$(BASE_IMAGE)" \
|
||||
--build-arg VERSION="$(TAG)" \
|
||||
--build-arg COMMIT_SHA="$(COMMIT_SHA)" \
|
||||
--build-arg BUILD_ID="$(BUILD_ID)" \
|
||||
-t $(REGISTRY)/controller-chroot:$(TAG) rootfs -f rootfs/Dockerfile.chroot
|
||||
-t $(REGISTRY)/controller-chroot:$(TAG) rootfs -f rootfs/Dockerfile-chroot
|
||||
|
|
1
NGINX_BASE
Normal file
1
NGINX_BASE
Normal file
|
@ -0,0 +1 @@
|
|||
registry.k8s.io/ingress-nginx/nginx:0ff500c23f34e939305de709cb6d47da34b66611@sha256:15f91034a03550dfab6ec50a7be4abbb683d087e234ad7fef5adedef54e46a5a
|
|
@ -14,8 +14,11 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
GO_BUILD_CMD="go build"
|
||||
|
||||
if [ -n "$DEBUG" ]; then
|
||||
set -x
|
||||
GO_BUILD_CMD="go build -v"
|
||||
fi
|
||||
|
||||
set -o errexit
|
||||
|
@ -31,17 +34,12 @@ mandatory=(
|
|||
TAG
|
||||
)
|
||||
|
||||
missing=false
|
||||
for var in "${mandatory[@]}"; do
|
||||
if [[ -z "${!var:-}" ]]; then
|
||||
echo "Environment variable $var must be set"
|
||||
missing=true
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$missing" = true ]; then
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
export CGO_ENABLED=0
|
||||
export GOARCH=${ARCH}
|
||||
|
@ -49,21 +47,27 @@ export GOARCH=${ARCH}
|
|||
TARGETS_DIR="rootfs/bin/${ARCH}"
|
||||
echo "Building targets for ${ARCH}, generated targets in ${TARGETS_DIR} directory."
|
||||
|
||||
go build \
|
||||
echo "Building ${PKG}/cmd/nginx"
|
||||
|
||||
${GO_BUILD_CMD} \
|
||||
-trimpath -ldflags="-buildid= -w -s \
|
||||
-X ${PKG}/version.RELEASE=${TAG} \
|
||||
-X ${PKG}/version.COMMIT=${COMMIT_SHA} \
|
||||
-X ${PKG}/version.REPO=${REPO_INFO}" \
|
||||
-o "${TARGETS_DIR}/nginx-ingress-controller" "${PKG}/cmd/nginx"
|
||||
|
||||
go build \
|
||||
echo "Building ${PKG}/cmd/dbg"
|
||||
|
||||
${GO_BUILD_CMD} \
|
||||
-trimpath -ldflags="-buildid= -w -s \
|
||||
-X ${PKG}/version.RELEASE=${TAG} \
|
||||
-X ${PKG}/version.COMMIT=${COMMIT_SHA} \
|
||||
-X ${PKG}/version.REPO=${REPO_INFO}" \
|
||||
-o "${TARGETS_DIR}/dbg" "${PKG}/cmd/dbg"
|
||||
|
||||
go build \
|
||||
echo "Building ${PKG}/cmd/waitshutdown"
|
||||
|
||||
${GO_BUILD_CMD} \
|
||||
-trimpath -ldflags="-buildid= -w -s \
|
||||
-X ${PKG}/version.RELEASE=${TAG} \
|
||||
-X ${PKG}/version.COMMIT=${COMMIT_SHA} \
|
||||
|
|
|
@ -51,6 +51,9 @@ trap cleanup EXIT
|
|||
E2E_CHECK_LEAKS=${E2E_CHECK_LEAKS:-}
|
||||
FOCUS=${FOCUS:-.*}
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
NGINX_BASE_IMAGE=$(cat $BASEDIR/../NGINX_BASE)
|
||||
|
||||
export E2E_CHECK_LEAKS
|
||||
export FOCUS
|
||||
|
||||
|
@ -76,6 +79,7 @@ kubectl run --rm \
|
|||
--env="E2E_NODES=${E2E_NODES}" \
|
||||
--env="FOCUS=${FOCUS}" \
|
||||
--env="E2E_CHECK_LEAKS=${E2E_CHECK_LEAKS}" \
|
||||
--env="NGINX_BASE_IMAGE=${NGINX_BASE_IMAGE}" \
|
||||
--overrides='{ "apiVersion": "v1", "spec":{"serviceAccountName": "ingress-nginx-e2e"}}' \
|
||||
e2e --image=nginx-ingress-controller:e2e
|
||||
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
if [ -n "$DEBUG" ]; then
|
||||
DEBUG=${DEBUG:-"false"}
|
||||
if [ "$DEBUG" == "true" ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
|
@ -62,6 +63,14 @@ else
|
|||
PLATFORM_FLAG=
|
||||
fi
|
||||
|
||||
USER=${USER:-nobody}
|
||||
|
||||
if [[ ${MAC_OS} == "Darwin" ]]; then
|
||||
MAC_DOCKER_FLAGS=""
|
||||
else
|
||||
MAC_DOCKER_FLAGS="-u $(id -u ${USER}):$(id -g ${USER})" #idk why mac/git fails on the gobuild if these are presented to dockerrun.sh script
|
||||
fi
|
||||
|
||||
echo "..printing env & other vars to stdout"
|
||||
echo "HOSTNAME=`hostname`"
|
||||
uname -a
|
||||
|
@ -80,12 +89,13 @@ if [[ "$DOCKER_IN_DOCKER_ENABLED" == "true" ]]; then
|
|||
/bin/bash -c "${FLAGS}"
|
||||
set +x
|
||||
else
|
||||
echo "..reached DIND check ELSE block, inside run-in-docker.sh"
|
||||
echo "Reached DIND check ELSE block, inside run-in-docker.sh"
|
||||
docker run \
|
||||
${PLATFORM_FLAG} ${PLATFORM} \
|
||||
--tty \
|
||||
--rm \
|
||||
${DOCKER_OPTS} \
|
||||
-e DEBUG=${DEBUG} \
|
||||
-e GOCACHE="/go/src/${PKG}/.cache" \
|
||||
-e GOMODCACHE="/go/src/${PKG}/.modcache" \
|
||||
-e DOCKER_IN_DOCKER_ENABLED="true" \
|
||||
|
@ -95,6 +105,6 @@ else
|
|||
-v "/var/run/docker.sock:/var/run/docker.sock" \
|
||||
-v "${INGRESS_VOLUME}:/etc/ingress-controller/" \
|
||||
-w "/go/src/${PKG}" \
|
||||
-u $(id -u ${USER}):$(id -g ${USER}) \
|
||||
${MAC_DOCKER_FLAGS} \
|
||||
${E2E_IMAGE} /bin/bash -c "${FLAGS}"
|
||||
fi
|
||||
|
|
|
@ -26,6 +26,7 @@ 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=
|
||||
|
@ -36,7 +37,7 @@ build: ensure-buildx
|
|||
--platform=${PLATFORMS} $(OUTPUT) \
|
||||
--progress=$(PROGRESS) \
|
||||
--pull \
|
||||
--build-arg BASE_IMAGE=registry.k8s.io/ingress-nginx/nginx:0ff500c23f34e939305de709cb6d47da34b66611@sha256:15f91034a03550dfab6ec50a7be4abbb683d087e234ad7fef5adedef54e46a5a \
|
||||
--build-arg BASE_IMAGE=${BASE_IMAGE} \
|
||||
--build-arg LUAROCKS_VERSION=3.8.0 \
|
||||
--build-arg LUAROCKS_SHA=ab6612ca9ab87c6984871d2712d05525775e8b50172701a0a1cabddf76de2be7 \
|
||||
-t $(IMAGE):$(TAG) rootfs
|
||||
|
|
|
@ -19,7 +19,9 @@ This image provides a default configuration file with no backend servers.
|
|||
|
||||
_Using docker_
|
||||
|
||||
NGINX base image we use is defined in NGINX_BASE file at the root of the project
|
||||
|
||||
```console
|
||||
docker run -v /some/nginx.conf:/etc/nginx/nginx.conf:ro registry.k8s.io/ingress-nginx/nginx:0ff500c23f34e939305de709cb6d47da34b66611@sha256:15f91034a03550dfab6ec50a7be4abbb683d087e234ad7fef5adedef54e46a5a
|
||||
docker run -v /some/nginx.conf:/etc/nginx/nginx.conf:ro $(cat ../../NGINX_BASE)
|
||||
```
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ REGISTRY ?= local
|
|||
|
||||
IMAGE = $(REGISTRY)/e2e-test-runner
|
||||
|
||||
NGINX_BASE_IMAGE ?= registry.k8s.io/ingress-nginx/nginx:0ff500c23f34e939305de709cb6d47da34b66611@sha256:15f91034a03550dfab6ec50a7be4abbb683d087e234ad7fef5adedef54e46a5a
|
||||
NGINX_BASE_IMAGE ?= $(shell cat $DIR/../../NGINX_BASE)
|
||||
|
||||
# required to enable buildx
|
||||
export DOCKER_CLI_EXPERIMENTAL=enabled
|
||||
|
|
|
@ -16,7 +16,7 @@ ARG BASE_IMAGE
|
|||
|
||||
FROM ${BASE_IMAGE}
|
||||
|
||||
ARG TARGETARCH
|
||||
ARG TARGET_ARCH
|
||||
ARG VERSION
|
||||
ARG COMMIT_SHA
|
||||
ARG BUILD_ID=UNSET
|
||||
|
@ -41,9 +41,9 @@ RUN apk update \
|
|||
|
||||
COPY --chown=www-data:www-data etc /etc
|
||||
|
||||
COPY --chown=www-data:www-data bin/${TARGETARCH}/dbg /
|
||||
COPY --chown=www-data:www-data bin/${TARGETARCH}/nginx-ingress-controller /
|
||||
COPY --chown=www-data:www-data bin/${TARGETARCH}/wait-shutdown /
|
||||
COPY --chown=www-data:www-data bin/${TARGET_ARCH}/dbg /
|
||||
COPY --chown=www-data:www-data bin/${TARGET_ARCH}/nginx-ingress-controller /
|
||||
COPY --chown=www-data:www-data bin/${TARGET_ARCH}/wait-shutdown /
|
||||
|
||||
# Fix permission during the build to avoid issues at runtime
|
||||
# with volumes (custom templates)
|
||||
|
|
|
@ -25,7 +25,7 @@ RUN apk update \
|
|||
|
||||
FROM alpine:3.16.0
|
||||
|
||||
ARG TARGETARCH
|
||||
ARG TARGET_ARCH
|
||||
ARG VERSION
|
||||
ARG COMMIT_SHA
|
||||
ARG BUILD_ID=UNSET
|
||||
|
@ -64,9 +64,9 @@ COPY --from=chroot /chroot /chroot
|
|||
|
||||
COPY --chown=www-data:www-data etc /chroot/etc
|
||||
|
||||
COPY --chown=www-data:www-data bin/${TARGETARCH}/dbg /
|
||||
COPY --chown=www-data:www-data bin/${TARGETARCH}/nginx-ingress-controller /
|
||||
COPY --chown=www-data:www-data bin/${TARGETARCH}/wait-shutdown /
|
||||
COPY --chown=www-data:www-data bin/${TARGET_ARCH}/dbg /
|
||||
COPY --chown=www-data:www-data bin/${TARGET_ARCH}/nginx-ingress-controller /
|
||||
COPY --chown=www-data:www-data bin/${TARGET_ARCH}/wait-shutdown /
|
||||
COPY --chown=www-data:www-data nginx-chroot-wrapper.sh /usr/bin/nginx
|
||||
|
||||
WORKDIR /chroot/etc/nginx
|
|
@ -1,4 +1,5 @@
|
|||
FROM registry.k8s.io/ingress-nginx/e2e-test-runner:v20220624-g3348cd71e@sha256:2a34e322b7ff89abdfa0b6202f903bf5618578b699ff609a3ddabac0aae239c8 AS BASE
|
||||
ARG E2E_BASE_IMAGE
|
||||
FROM ${E2E_BASE_IMAGE} AS BASE
|
||||
|
||||
FROM alpine:3.16.0
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||
E2E_BASE_IMAGE="k8s.gcr.io/ingress-nginx/e2e-test-runner:v20220110-gfd820db46@sha256:273f7d9b1b2297cd96b4d51600e45d932186a1cc79d00d179dfb43654112fe8f"
|
||||
|
||||
image:
|
||||
echo "..entered Makefile in /test/e2e-image"
|
||||
|
@ -15,6 +16,7 @@ image:
|
|||
cp -R $(DIR)/../../test/e2e/settings/ocsp/* .
|
||||
|
||||
docker build \
|
||||
--build-arg E2E_BASE_IMAGE=$(E2E_BASE_IMAGE) \
|
||||
--tag nginx-ingress-controller:e2e .
|
||||
|
||||
clean:
|
||||
|
|
|
@ -18,6 +18,8 @@ package framework
|
|||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/onsi/ginkgo"
|
||||
|
@ -37,13 +39,11 @@ const SlowEchoService = "slow-echo"
|
|||
// HTTPBinService name of the deployment for the httpbin app
|
||||
const HTTPBinService = "httpbin"
|
||||
|
||||
// NginxBaseImage use for testing
|
||||
const NginxBaseImage = "registry.k8s.io/ingress-nginx/nginx:0ff500c23f34e939305de709cb6d47da34b66611@sha256:15f91034a03550dfab6ec50a7be4abbb683d087e234ad7fef5adedef54e46a5a"
|
||||
|
||||
type deploymentOptions struct {
|
||||
namespace string
|
||||
name string
|
||||
replicas int
|
||||
image string
|
||||
}
|
||||
|
||||
// WithDeploymentNamespace allows configuring the deployment's namespace
|
||||
|
@ -150,6 +150,16 @@ http {
|
|||
f.NGINXWithConfigDeployment(SlowEchoService, cfg)
|
||||
}
|
||||
|
||||
func (f *Framework) GetNginxBaseImage() string {
|
||||
nginxBaseImage := os.Getenv("NGINX_BASE_IMAGE")
|
||||
|
||||
if nginxBaseImage == "" {
|
||||
assert.NotEmpty(ginkgo.GinkgoT(), errors.New("NGINX_BASE_IMAGE not defined"), "NGINX_BASE_IMAGE not defined")
|
||||
}
|
||||
|
||||
return nginxBaseImage
|
||||
}
|
||||
|
||||
// NGINXDeployment creates a new simple NGINX Deployment using NGINX base image
|
||||
// and passing the desired configuration
|
||||
func (f *Framework) NGINXDeployment(name string, cfg string, waitendpoint bool) {
|
||||
|
@ -166,7 +176,7 @@ func (f *Framework) NGINXDeployment(name string, cfg string, waitendpoint bool)
|
|||
}, metav1.CreateOptions{})
|
||||
assert.Nil(ginkgo.GinkgoT(), err, "creating configmap")
|
||||
|
||||
deployment := newDeployment(name, f.Namespace, NginxBaseImage, 80, 1,
|
||||
deployment := newDeployment(name, f.Namespace, f.GetNginxBaseImage(), 80, 1,
|
||||
nil,
|
||||
[]corev1.VolumeMount{
|
||||
{
|
||||
|
|
|
@ -50,6 +50,13 @@ export TAG=1.0.0-dev
|
|||
export ARCH=${ARCH:-amd64}
|
||||
export REGISTRY=ingress-controller
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
NGINX_BASE_IMAGE=$(cat $BASEDIR/../../NGINX_BASE)
|
||||
|
||||
echo "Running e2e with nginx base image ${NGINX_BASE_IMAGE}"
|
||||
|
||||
export NGINX_BASE_IMAGE=$NGINX_BASE_IMAGE
|
||||
|
||||
export KUBECONFIG="${KUBECONFIG:-$HOME/.kube/kind-config-$KIND_CLUSTER_NAME}"
|
||||
|
||||
if [ "${SKIP_CLUSTER_CREATION:-false}" = "false" ]; then
|
||||
|
|
|
@ -51,6 +51,12 @@ export TAG=1.0.0-dev
|
|||
export ARCH=${ARCH:-amd64}
|
||||
export REGISTRY=ingress-controller
|
||||
|
||||
NGINX_BASE_IMAGE=$(cat $DIR/../../NGINX_BASE)
|
||||
|
||||
echo "Running e2e with nginx base image ${NGINX_BASE_IMAGE}"
|
||||
|
||||
export NGINX_BASE_IMAGE=$NGINX_BASE_IMAGE
|
||||
|
||||
export DOCKER_CLI_EXPERIMENTAL=enabled
|
||||
|
||||
export KUBECONFIG="${KUBECONFIG:-$HOME/.kube/kind-config-$KIND_CLUSTER_NAME}"
|
||||
|
|
Loading…
Reference in a new issue