From 488d7650f410e19ce23aa2021ed6c0c2f64a5b75 Mon Sep 17 00:00:00 2001 From: kidddddddddddddddddddddd <1062602710@qq.com> Date: Tue, 14 Mar 2023 09:42:41 +0800 Subject: [PATCH] update description --- pkg/apis/networking/validation/validation.go | 2 +- pkg/apis/networking/validation/validation_test.go | 2 +- pkg/registry/networking/ingress/strategy.go | 5 +++-- pkg/registry/networking/ingress/strategy_test.go | 11 +++-------- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/pkg/apis/networking/validation/validation.go b/pkg/apis/networking/validation/validation.go index cf1d171db3b..309c9ba61d5 100644 --- a/pkg/apis/networking/validation/validation.go +++ b/pkg/apis/networking/validation/validation.go @@ -278,7 +278,7 @@ func ValidateIngressCreate(ingress *networking.Ingress) field.ErrorList { annotationVal, annotationIsSet := ingress.Annotations[annotationIngressClass] if annotationIsSet && ingress.Spec.IngressClassName != nil && annotationVal != *ingress.Spec.IngressClassName { annotationPath := field.NewPath("annotations").Child(annotationIngressClass) - allErrs = append(allErrs, field.Invalid(annotationPath, annotationVal, "ingressClass annotation and IngressClassName should have the same value")) + allErrs = append(allErrs, field.Invalid(annotationPath, annotationVal, "must match `ingressClassName` when both are specified")) } return allErrs } diff --git a/pkg/apis/networking/validation/validation_test.go b/pkg/apis/networking/validation/validation_test.go index a702c8513a0..9e1497b3b40 100644 --- a/pkg/apis/networking/validation/validation_test.go +++ b/pkg/apis/networking/validation/validation_test.go @@ -1005,7 +1005,7 @@ func TestValidateIngressCreate(t *testing.T) { ingress.Spec.IngressClassName = utilpointer.String("bar") ingress.Annotations = map[string]string{annotationIngressClass: "foo"} }, - expectedErrs: field.ErrorList{field.Invalid(field.NewPath("annotations").Child(annotationIngressClass), "foo", "ingressClass annotation and IngressClassName should have the same value")}, + expectedErrs: field.ErrorList{field.Invalid(field.NewPath("annotations").Child(annotationIngressClass), "foo", "must match `ingressClassName` when both are specified")}, }, "valid regex path": { tweakIngress: func(ingress *networking.Ingress) { diff --git a/pkg/registry/networking/ingress/strategy.go b/pkg/registry/networking/ingress/strategy.go index b9706397d1a..a23763b9f3d 100644 --- a/pkg/registry/networking/ingress/strategy.go +++ b/pkg/registry/networking/ingress/strategy.go @@ -18,6 +18,7 @@ package ingress import ( "context" + "fmt" apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/runtime" @@ -101,8 +102,8 @@ func (ingressStrategy) WarningsOnCreate(ctx context.Context, obj runtime.Object) var warnings []string ingress := obj.(*networking.Ingress) _, annotationIsSet := ingress.Annotations[annotationIngressClass] - if annotationIsSet && ingress.Spec.IngressClassName != nil { - warnings = append(warnings, "ingressClass annotation and IngressClassName should not be set at the same time") + if annotationIsSet && ingress.Spec.IngressClassName == nil { + warnings = append(warnings, fmt.Sprintf("annotation %q is deprecated, please use 'spec.ingressClassName' instead", annotationIngressClass)) } return warnings } diff --git a/pkg/registry/networking/ingress/strategy_test.go b/pkg/registry/networking/ingress/strategy_test.go index bb783935c81..082eda85487 100644 --- a/pkg/registry/networking/ingress/strategy_test.go +++ b/pkg/registry/networking/ingress/strategy_test.go @@ -17,6 +17,7 @@ limitations under the License. package ingress import ( + "fmt" "testing" "github.com/google/go-cmp/cmp" @@ -175,17 +176,11 @@ func TestWarningsOnCreate(t *testing.T) { tweakIngress func(ingress *networking.Ingress) expectedWarnings []string }{ - "ingressClass annotation and IngressClassName set": { - tweakIngress: func(ingress *networking.Ingress) { - ingress.Spec.IngressClassName = utilpointer.String("foo") - ingress.Annotations = map[string]string{annotationIngressClass: "foo"} - }, - expectedWarnings: []string{"ingressClass annotation and IngressClassName should not be set at the same time"}, - }, - "ingressClass annotation set": { + "ingressClass annotation set, IngressClassName not set": { tweakIngress: func(ingress *networking.Ingress) { ingress.Annotations = map[string]string{annotationIngressClass: "foo"} }, + expectedWarnings: []string{fmt.Sprintf("annotation %q is deprecated, please use 'spec.ingressClassName' instead", annotationIngressClass)}, }, "IngressClassName set": { tweakIngress: func(ingress *networking.Ingress) {