Merge pull request #92815 from Huang-Wei/bypass-prefilter-svcaffinity

Bypass PreFilter in ServiceAfffinity if AffinityLabels arg is not present
This commit is contained in:
Kubernetes Prow Robot 2020-07-10 15:43:11 -07:00 committed by GitHub
commit 36b4c2942b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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)