From d2117c014881886e731776ffb630cd9178cde35e Mon Sep 17 00:00:00 2001 From: Avesh Agarwal Date: Tue, 11 Apr 2017 17:27:14 -0400 Subject: [PATCH] Fix to not allow when the feature AffinityInAnnotations is disabled. https://github.com/kubernetes/kubernetes/issues/44360 --- pkg/api/validation/BUILD | 1 + pkg/api/validation/validation.go | 3 +++ 2 files changed, 4 insertions(+) diff --git a/pkg/api/validation/BUILD b/pkg/api/validation/BUILD index b524bd28eb9..d6a819b4474 100644 --- a/pkg/api/validation/BUILD +++ b/pkg/api/validation/BUILD @@ -85,6 +85,7 @@ go_test( "//vendor:k8s.io/apimachinery/pkg/util/sets", "//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/yaml", + "//vendor:k8s.io/apiserver/pkg/util/feature", ], ) diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index 4dc0ce0aa18..09fd8a864f3 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -2213,6 +2213,9 @@ func ValidatePreferredSchedulingTerms(terms []api.PreferredSchedulingTerm, fldPa // validatePodAffinityTerm tests that the specified podAffinityTerm fields have valid data func validatePodAffinityTerm(podAffinityTerm api.PodAffinityTerm, allowEmptyTopologyKey bool, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} + if !utilfeature.DefaultFeatureGate.Enabled(features.AffinityInAnnotations) && len(podAffinityTerm.TopologyKey) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("topologyKey"), "can not be empty")) + } allErrs = append(allErrs, unversionedvalidation.ValidateLabelSelector(podAffinityTerm.LabelSelector, fldPath.Child("matchExpressions"))...) for _, name := range podAffinityTerm.Namespaces { for _, msg := range ValidateNamespaceName(name, false) {