From 60377ba1a371f9bb36c76c1cb9d5d675aebadab7 Mon Sep 17 00:00:00 2001 From: Harry Bagdi Date: Mon, 3 May 2021 15:00:40 -0700 Subject: [PATCH 1/2] graduate IngressClassNamespacedParams to beta --- pkg/api/testing/defaulting_test.go | 2 ++ pkg/apis/networking/validation/validation_test.go | 8 +++++--- pkg/features/kube_features.go | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/pkg/api/testing/defaulting_test.go b/pkg/api/testing/defaulting_test.go index b6b0533cdbb..6599a32f8c9 100644 --- a/pkg/api/testing/defaulting_test.go +++ b/pkg/api/testing/defaulting_test.go @@ -151,6 +151,8 @@ func TestDefaulting(t *testing.T) { {Group: "networking.k8s.io", Version: "v1", Kind: "NetworkPolicyList"}: {}, {Group: "networking.k8s.io", Version: "v1beta1", Kind: "Ingress"}: {}, {Group: "networking.k8s.io", Version: "v1beta1", Kind: "IngressList"}: {}, + {Group: "networking.k8s.io", Version: "v1", Kind: "IngressClass"}: {}, + {Group: "networking.k8s.io", Version: "v1", Kind: "IngressClassList"}: {}, {Group: "storage.k8s.io", Version: "v1beta1", Kind: "StorageClass"}: {}, {Group: "storage.k8s.io", Version: "v1beta1", Kind: "StorageClassList"}: {}, {Group: "storage.k8s.io", Version: "v1beta1", Kind: "CSIDriver"}: {}, diff --git a/pkg/apis/networking/validation/validation_test.go b/pkg/apis/networking/validation/validation_test.go index 046a10ea3ba..d941324af08 100644 --- a/pkg/apis/networking/validation/validation_test.go +++ b/pkg/apis/networking/validation/validation_test.go @@ -1884,9 +1884,11 @@ func TestValidateIngressClassUpdate(t *testing.T) { Spec: networking.IngressClassSpec{ Controller: "foo.co/bar", Parameters: &networking.IngressClassParametersReference{ - APIGroup: utilpointer.StringPtr("v1"), - Kind: "ConfigMap", - Name: "foo", + APIGroup: utilpointer.StringPtr("v1"), + Scope: utilpointer.StringPtr("Namespace"), + Kind: "ConfigMap", + Name: "foo", + Namespace: utilpointer.StringPtr("bar"), }, }, }, diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index ec3c7afcbaf..a69a38c42b1 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -692,6 +692,7 @@ const ( // owner: @hbagdi // alpha: v1.21 + // beta: v1.22 // // Enable Scope and Namespace fields on IngressClassParametersReference. IngressClassNamespacedParams featuregate.Feature = "IngressClassNamespacedParams" @@ -830,7 +831,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS PodAffinityNamespaceSelector: {Default: false, PreRelease: featuregate.Alpha}, ServiceLoadBalancerClass: {Default: false, PreRelease: featuregate.Alpha}, LogarithmicScaleDown: {Default: false, PreRelease: featuregate.Alpha}, - IngressClassNamespacedParams: {Default: false, PreRelease: featuregate.Alpha}, + IngressClassNamespacedParams: {Default: true, PreRelease: featuregate.Beta}, ServiceInternalTrafficPolicy: {Default: false, PreRelease: featuregate.Alpha}, SuspendJob: {Default: false, PreRelease: featuregate.Alpha}, KubeletPodResourcesGetAllocatable: {Default: false, PreRelease: featuregate.Alpha}, From f0d917a3caa11aa4d00bb6153c686d7f966c0a76 Mon Sep 17 00:00:00 2001 From: Harry Bagdi Date: Tue, 29 Jun 2021 12:59:59 -0700 Subject: [PATCH 2/2] add fuzzer patch to fix tests --- pkg/apis/networking/fuzzer/fuzzer.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/apis/networking/fuzzer/fuzzer.go b/pkg/apis/networking/fuzzer/fuzzer.go index a9f2f552990..7284773a782 100644 --- a/pkg/apis/networking/fuzzer/fuzzer.go +++ b/pkg/apis/networking/fuzzer/fuzzer.go @@ -20,6 +20,7 @@ import ( fuzz "github.com/google/gofuzz" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/kubernetes/pkg/apis/networking" + utilpointer "k8s.io/utils/pointer" ) // Funcs returns the fuzzer functions for the networking api group. @@ -64,5 +65,14 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { } } }, + func(p *networking.IngressClass, c fuzz.Continue) { + c.FuzzNoCustom(p) // fuzz self without calling this function again + // default Parameters to Cluster + if p.Spec.Parameters == nil || p.Spec.Parameters.Scope == nil { + p.Spec.Parameters = &networking.IngressClassParametersReference{ + Scope: utilpointer.StringPtr(networking.IngressClassParametersReferenceScopeCluster), + } + } + }, } }