Bypass PreFilter in ServiceAfffinity if AffinityLabels arg is not present

This commit is contained in:
Wei Huang 2020-07-05 23:37:04 -07:00
parent 865cbf0bdf
commit 07583bf95b
No known key found for this signature in database
GPG Key ID: BE5E9752F8B6E005
2 changed files with 10 additions and 1 deletions

View File

@ -127,10 +127,13 @@ func (pl *ServiceAffinity) createPreFilterState(pod *v1.Pod) (*preFilterState, e
// PreFilter invoked at the prefilter extension point.
func (pl *ServiceAffinity) PreFilter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod) *framework.Status {
if len(pl.args.AffinityLabels) == 0 {
return nil
}
s, err := pl.createPreFilterState(pod)
if err != nil {
return framework.NewStatus(framework.Error, fmt.Sprintf("could not create preFilterState: %v", err))
}
cycleState.Write(preFilterStateKey, s)
return nil
@ -138,6 +141,9 @@ func (pl *ServiceAffinity) PreFilter(ctx context.Context, cycleState *framework.
// PreFilterExtensions returns prefilter extensions, pod add and remove.
func (pl *ServiceAffinity) PreFilterExtensions() framework.PreFilterExtensions {
if len(pl.args.AffinityLabels) == 0 {
return nil
}
return pl
}

View File

@ -500,6 +500,9 @@ func TestPreFilterStateAddRemovePod(t *testing.T) {
p := &ServiceAffinity{
sharedLister: snapshot,
serviceLister: fakeframework.ServiceLister(test.services),
args: config.ServiceAffinityArgs{
AffinityLabels: []string{"region", "zone"},
},
}
cycleState := framework.NewCycleState()
preFilterStatus := p.PreFilter(context.Background(), cycleState, test.pendingPod)