diff --git a/plugin/pkg/admission/antiaffinity/admission.go b/plugin/pkg/admission/antiaffinity/admission.go index 832351c3974..00c2ac71b16 100644 --- a/plugin/pkg/admission/antiaffinity/admission.go +++ b/plugin/pkg/admission/antiaffinity/admission.go @@ -20,6 +20,7 @@ import ( "fmt" "io" + "github.com/golang/glog" "k8s.io/kubernetes/pkg/admission" "k8s.io/kubernetes/pkg/api" apierrors "k8s.io/kubernetes/pkg/api/errors" @@ -59,7 +60,8 @@ func (p *plugin) Admit(attributes admission.Attributes) (err error) { } affinity, err := api.GetAffinityFromPodAnnotations(pod.Annotations) if err != nil { - return err + glog.V(5).Infof("Invalid Affinity detected, but we will leave handling of this to validation phase") + return nil } if affinity.PodAntiAffinity != nil { var podAntiAffinityTerms []api.PodAffinityTerm diff --git a/plugin/pkg/admission/antiaffinity/admission_test.go b/plugin/pkg/admission/antiaffinity/admission_test.go index bded0340b61..3073d6d81c6 100644 --- a/plugin/pkg/admission/antiaffinity/admission_test.go +++ b/plugin/pkg/admission/antiaffinity/admission_test.go @@ -200,6 +200,16 @@ func TestInterPodAffinityAdmission(t *testing.T) { }, errorExpected: true, }, + { + affinity: map[string]string{ + api.AffinityAnnotationKey: ` + {"podAntiAffinity": { + "thisIsAInvalidAffinity": [{} + }}`, + }, + // however, we should not got error here + errorExpected: false, + }, } for _, test := range tests { pod.ObjectMeta.Annotations = test.affinity