From 06696befdbd8cc781b3659d18e461921db846456 Mon Sep 17 00:00:00 2001 From: irbekrm Date: Thu, 25 Nov 2021 08:44:40 +0000 Subject: [PATCH] Installs v1 ingress-nginx for e2e tests against kube 1.23 Also bumps the versions of ingress dependency used in tests Signed-off-by: irbekrm --- devel/addon/ingressnginx/BUILD.bazel | 14 ++++++++------ devel/addon/ingressnginx/install.sh | 22 +++++++++++++--------- test/e2e/images.bzl | 8 ++++---- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/devel/addon/ingressnginx/BUILD.bazel b/devel/addon/ingressnginx/BUILD.bazel index 2091c5099..b9fe34d37 100644 --- a/devel/addon/ingressnginx/BUILD.bazel +++ b/devel/addon/ingressnginx/BUILD.bazel @@ -1,19 +1,21 @@ load("@io_bazel_rules_docker//container:bundle.bzl", "container_bundle") -# Ingress image that works on Kubernetes v1.16 - v1.20 +# Ingress image that works on Kubernetes older than v1.22 +# Image version can be bumped in test/e2e/images.bzl container_bundle( - name = "bundle_v0.48.1", + name = "bundle_pre_networking_v1", images = { - "k8s.gcr.io/ingress-nginx/controller:v0.48.1": "@io_kubernetes_ingress-nginx_old//image", + "k8s.gcr.io/ingress-nginx/controller:v0.49.3": "@io_kubernetes_ingress-nginx_old//image", }, tags = ["manual"], ) -# Ingress image that works on Kubernetes v1.19 -> (including v1.22) +# Ingress image that works on Kubernetes v1.19+ +# Image version can be bumped in test/e2e/images.bzl container_bundle( - name = "bundle_v1.0.2", + name = "bundle", images = { - "k8s.gcr.io/ingress-nginx/controller:v1.0.2": "@io_kubernetes_ingress-nginx_new//image", + "k8s.gcr.io/ingress-nginx/controller:v1.1.0": "@io_kubernetes_ingress-nginx_new//image", }, tags = ["manual"], ) diff --git a/devel/addon/ingressnginx/install.sh b/devel/addon/ingressnginx/install.sh index c79a17c21..7aeafd82b 100755 --- a/devel/addon/ingressnginx/install.sh +++ b/devel/addon/ingressnginx/install.sh @@ -52,10 +52,18 @@ export PATH="${bindir}/hack/bin/:$PATH" # This allows running ./devel/setup-e2e-deps.sh locally against Kubernetes v1.22 # without passing the K8S_VERSION env var. k8s_version=$(kubectl version -oyaml | yq e '.serverVersion | .major +"."+ .minor' -) -if [[ $k8s_version =~ 1\.22 ]]; then - # Deploy a v1 NGINX-Ingress when on Kubernetes 1.22 (only v1+ NGINX-Ingress versions support networking.k8s.io/v1 API) - IMAGE_TAG="v1.0.2" - HELM_CHART="4.0.3" +if [[ $k8s_version =~ 1\.18 ]]; then + # Ingress v1+ versions only support Kubernetes v1 networking API which is only + # available from Kubernetes v1.19 onwards. + # TODO: remove this if statement once the oldest version of Kubernetes + # supported by cert-manager is v1.19 + IMAGE_TAG="v0.49.3" + HELM_CHART="3.40.0" + INGRESS_WITHOUT_CLASS="false" + require_image "k8s.gcr.io/ingress-nginx/controller:${IMAGE_TAG}" "//devel/addon/ingressnginx:bundle_pre_networking_v1" +else + IMAGE_TAG="v1.1.0" + HELM_CHART="4.0.10" # v1 NGINX-Ingress by default only watches Ingresses with Ingress class # defined. When configuring solver block for ACME HTTTP01 challenge on an ACME # issuer, cert-manager users can currently specify either an Ingress name or a @@ -64,12 +72,8 @@ if [[ $k8s_version =~ 1\.22 ]]; then # have a class, we pass a --watch-ingress-without-class flag # https://github.com/kubernetes/ingress-nginx/blob/main/charts/ingress-nginx/values.yaml#L64-L67 INGRESS_WITHOUT_CLASS="true" -else - IMAGE_TAG="v0.48.1" - HELM_CHART="3.34.0" - INGRESS_WITHOUT_CLASS="false" + require_image "k8s.gcr.io/ingress-nginx/controller:${IMAGE_TAG}" "//devel/addon/ingressnginx:bundle" fi -require_image "k8s.gcr.io/ingress-nginx/controller:${IMAGE_TAG}" "//devel/addon/ingressnginx:bundle_${IMAGE_TAG}" # Ensure the ingress-nginx namespace exists kubectl get namespace "${NAMESPACE}" || kubectl create namespace "${NAMESPACE}" diff --git a/test/e2e/images.bzl b/test/e2e/images.bzl index b6e9fbcb1..17dae04bc 100644 --- a/test/e2e/images.bzl +++ b/test/e2e/images.bzl @@ -42,15 +42,15 @@ def install(): name = "io_kubernetes_ingress-nginx_old", registry = "k8s.gcr.io", repository = "ingress-nginx/controller", - tag = "v0.48.1", - digest = "sha256:dcc2d529a9cb95408ba9896639382793fb84361ef43cee9195f264c321e6b638", + tag = "v0.49.3", + digest = "sha256:c47ed90d1685cb6e3b556353d7afb2aced2be7095066edfc90dd81f3e9014747" ) container_pull( name = "io_kubernetes_ingress-nginx_new", registry = "k8s.gcr.io", repository = "ingress-nginx/controller", - tag = "v1.0.2", - digest = "sha256:8c0abb209aaef63631d1c85add422ca51848ccee2f87aea06558d37bda1c8e91", + tag = "v1.1.0", + digest = "sha256:7464dc90abfaa084204176bcc0728f182b0611849395787143f6854dc6c38c85" ) container_pull(