From 99cb5d2f217ed5fa6af9e597f402e911672b23c0 Mon Sep 17 00:00:00 2001 From: Andrew Sy Kim Date: Wed, 8 Sep 2021 14:01:05 -0400 Subject: [PATCH] core/v1: add unit tests that allow internalTrafficPolicy field when type is ExternalName Signed-off-by: Andrew Sy Kim --- pkg/apis/core/validation/validation_test.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index a32e3761f8d..695d38f1dc2 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -12291,6 +12291,21 @@ func TestValidateServiceCreate(t *testing.T) { featureGates: []featuregate.Feature{features.ServiceInternalTrafficPolicy}, numErrs: 0, }, + { + // Typically this should fail validation, but in v1.22 we have existing clusters + // that may have allowed internalTrafficPolicy when Type=ExternalName. + // This test case ensures we don't break compatibility for internalTrafficPolicy + // when Type=ExternalName + name: "internalTrafficPolicy field is set when type is ExternalName", + tweakSvc: func(s *core.Service) { + cluster := core.ServiceInternalTrafficPolicyCluster + s.Spec.InternalTrafficPolicy = &cluster + s.Spec.Type = core.ServiceTypeExternalName + s.Spec.ExternalName = "foo.bar.com" + }, + featureGates: []featuregate.Feature{features.ServiceInternalTrafficPolicy}, + numErrs: 0, + }, { name: "invalid internalTraffic field", tweakSvc: func(s *core.Service) {