From 080b49276ed94d161cbca120dfe447bd44e6792b Mon Sep 17 00:00:00 2001 From: Harry Zhang Date: Sun, 19 Jun 2016 10:59:13 -0400 Subject: [PATCH 1/2] Omit invalid affinity error in admission --- plugin/pkg/admission/antiaffinity/admission.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 From 49fe9d1b413ed396aa1c755a45002f46a88b2721 Mon Sep 17 00:00:00 2001 From: Harry Zhang Date: Tue, 21 Jun 2016 22:23:37 -0400 Subject: [PATCH 2/2] Add unit test to ensure no error thrown --- plugin/pkg/admission/antiaffinity/admission_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) 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