feat: skipping Ingress indexer setup for deprecated APIs

Starting from Kubernetes v1.22+, networking.k8s.io/v1beta1 and
extensions/v1beta1 are no more supported and indexers must not be
started, otherwise the manager would panic.
This commit is contained in:
Dario Tranchitella
2021-08-10 15:39:43 +02:00
parent bb58e90f5d
commit 57bf3d1c1b
2 changed files with 19 additions and 16 deletions
+10 -8
View File
@@ -53,7 +53,7 @@ var _ = Describe("when Tenant handles Ingress classes with extensions/v1beta1",
It("should block a non allowed class for extensions/v1beta1", func() {
maj, min, v := GetKubernetesSemVer()
if maj == 1 && min > 22 {
if maj == 1 && min >= 22 {
Skip("Running test on Kubernetes " + v + ", extensions/v1beta1 has been deprecated")
}
@@ -123,7 +123,7 @@ var _ = Describe("when Tenant handles Ingress classes with extensions/v1beta1",
It("should allow enabled class using the deprecated annotation", func() {
maj, min, v := GetKubernetesSemVer()
if maj == 1 && min > 22 {
if maj == 1 && min >= 22 {
Skip("Running test on Kubernetes " + v + ", extensions/v1beta1 has been deprecated")
}
@@ -158,8 +158,11 @@ var _ = Describe("when Tenant handles Ingress classes with extensions/v1beta1",
It("should allow enabled class using the ingressClassName field", func() {
maj, min, v := GetKubernetesSemVer()
if maj == 1 && min < 18 {
switch {
case maj == 1 && min < 18:
Skip("Running test on Kubernetes " + v + ", doesn't provide .spec.ingressClassName")
case maj == 1 && min >= 22:
Skip("Running test on Kubernetes " + v + ", extensions/v1beta1 has been deprecated")
}
ns := NewNamespace("ingress-class-allowed-annotation-extensions-v1beta1")
@@ -191,7 +194,7 @@ var _ = Describe("when Tenant handles Ingress classes with extensions/v1beta1",
It("should allow enabled Ingress by regex using the deprecated annotation", func() {
maj, min, v := GetKubernetesSemVer()
if maj == 1 && min > 22 {
if maj == 1 && min >= 22 {
Skip("Running test on Kubernetes " + v + ", extensions/v1beta1 has been deprecated")
}
@@ -225,11 +228,10 @@ var _ = Describe("when Tenant handles Ingress classes with extensions/v1beta1",
It("should allow enabled Ingress by regex using the ingressClassName field", func() {
maj, min, v := GetKubernetesSemVer()
if maj == 1 && min > 22 {
switch {
case maj == 1 && min >= 22:
Skip("Running test on Kubernetes " + v + ", extensions/v1beta1 has been deprecated")
}
if maj == 1 && min < 18 {
case maj == 1 && min < 18:
Skip("Running test on Kubernetes " + v + ", doesn't provide .spec.ingressClassName")
}
+9 -8
View File
@@ -13,13 +13,14 @@ import (
)
func init() {
AddToIndexerFuncs = append(AddToIndexerFuncs, ingress.Hostname{Obj: &extensionsv1beta1.Ingress{}})
// ingresses.networking.k8s.io/v1 introduced by 1.19
{
majorVer, minorVer, _, _ := utils.GetK8sVersion()
if majorVer == 1 && minorVer >= 19 {
AddToIndexerFuncs = append(AddToIndexerFuncs, ingress.Hostname{Obj: &networkingv1.Ingress{}})
}
majorVer, minorVer, _, _ := utils.GetK8sVersion()
switch {
case majorVer == 1 && minorVer >= 19:
AddToIndexerFuncs = append(AddToIndexerFuncs, ingress.Hostname{Obj: &networkingv1.Ingress{}})
case majorVer == 1 && (minorVer >= 19 && minorVer < 22):
AddToIndexerFuncs = append(AddToIndexerFuncs, ingress.Hostname{Obj: &networkingv1beta1.Ingress{}})
case majorVer == 1 && minorVer < 22:
AddToIndexerFuncs = append(AddToIndexerFuncs, ingress.Hostname{Obj: &extensionsv1beta1.Ingress{}})
}
AddToIndexerFuncs = append(AddToIndexerFuncs, ingress.Hostname{Obj: &networkingv1beta1.Ingress{}})
}