Skip to content

Commit 42cfda2

Browse files
committed
Remove pvcLister from genericScheduler
PVCLister can be fetched from sharedInformerFactory.
1 parent 1b8c758 commit 42cfda2

File tree

6 files changed

+23
-25
lines changed

6 files changed

+23
-25
lines changed

pkg/scheduler/core/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ go_test(
4848
"//pkg/scheduler/framework/plugins/selectorspread:go_default_library",
4949
"//pkg/scheduler/framework/runtime:go_default_library",
5050
"//pkg/scheduler/framework/v1alpha1:go_default_library",
51-
"//pkg/scheduler/framework/v1alpha1/fake:go_default_library",
5251
"//pkg/scheduler/internal/cache:go_default_library",
5352
"//pkg/scheduler/internal/queue:go_default_library",
5453
"//pkg/scheduler/profile:go_default_library",

pkg/scheduler/core/extender_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
272272
fwk, err := st.NewFramework(
273273
test.registerPlugins,
274274
runtime.WithClientSet(client),
275+
runtime.WithInformerFactory(informerFactory),
275276
runtime.WithPodNominator(internalqueue.NewPodNominator()),
276277
)
277278
if err != nil {
@@ -285,7 +286,6 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
285286
cache,
286287
emptySnapshot,
287288
extenders,
288-
informerFactory.Core().V1().PersistentVolumeClaims().Lister(),
289289
schedulerapi.DefaultPercentageOfNodesToScore)
290290
podIgnored := &v1.Pod{}
291291
result, err := scheduler.Schedule(context.Background(), prof, framework.NewCycleState(), podIgnored)

pkg/scheduler/core/generic_scheduler.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ type genericScheduler struct {
119119
cache internalcache.Cache
120120
extenders []framework.Extender
121121
nodeInfoSnapshot *internalcache.Snapshot
122-
pvcLister corelisters.PersistentVolumeClaimLister
123122
percentageOfNodesToScore int32
124123
nextStartNodeIndex int
125124
}
@@ -138,7 +137,8 @@ func (g *genericScheduler) Schedule(ctx context.Context, prof *profile.Profile,
138137
trace := utiltrace.New("Scheduling", utiltrace.Field{Key: "namespace", Value: pod.Namespace}, utiltrace.Field{Key: "name", Value: pod.Name})
139138
defer trace.LogIfLong(100 * time.Millisecond)
140139

141-
if err := podPassesBasicChecks(pod, g.pvcLister); err != nil {
140+
pvcLister := prof.SharedInformerFactory().Core().V1().PersistentVolumeClaims().Lister()
141+
if err := podPassesBasicChecks(pod, pvcLister); err != nil {
142142
return result, err
143143
}
144144
trace.Step("Basic checks done")
@@ -628,13 +628,11 @@ func NewGenericScheduler(
628628
cache internalcache.Cache,
629629
nodeInfoSnapshot *internalcache.Snapshot,
630630
extenders []framework.Extender,
631-
pvcLister corelisters.PersistentVolumeClaimLister,
632631
percentageOfNodesToScore int32) ScheduleAlgorithm {
633632
return &genericScheduler{
634633
cache: cache,
635634
extenders: extenders,
636635
nodeInfoSnapshot: nodeInfoSnapshot,
637-
pvcLister: pvcLister,
638636
percentageOfNodesToScore: percentageOfNodesToScore,
639637
}
640638
}

pkg/scheduler/core/generic_scheduler_test.go

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"context"
2121
"fmt"
2222
"math"
23-
"reflect"
2423
"strconv"
2524
"testing"
2625
"time"
@@ -42,7 +41,6 @@ import (
4241
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/selectorspread"
4342
frameworkruntime "k8s.io/kubernetes/pkg/scheduler/framework/runtime"
4443
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
45-
fakeframework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1/fake"
4644
internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache"
4745
internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue"
4846
"k8s.io/kubernetes/pkg/scheduler/profile"
@@ -422,9 +420,9 @@ func TestGenericScheduler(t *testing.T) {
422420
st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New),
423421
},
424422
nodes: []string{"machine1", "machine2"},
425-
pvcs: []v1.PersistentVolumeClaim{{ObjectMeta: metav1.ObjectMeta{Name: "existingPVC"}}},
423+
pvcs: []v1.PersistentVolumeClaim{{ObjectMeta: metav1.ObjectMeta{Name: "existingPVC", UID: types.UID("existingPVC"), Namespace: v1.NamespaceDefault}}},
426424
pod: &v1.Pod{
427-
ObjectMeta: metav1.ObjectMeta{Name: "ignore", UID: types.UID("ignore")},
425+
ObjectMeta: metav1.ObjectMeta{Name: "ignore", UID: types.UID("ignore"), Namespace: v1.NamespaceDefault},
428426
Spec: v1.PodSpec{
429427
Volumes: []v1.Volume{
430428
{
@@ -474,9 +472,9 @@ func TestGenericScheduler(t *testing.T) {
474472
st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New),
475473
},
476474
nodes: []string{"machine1", "machine2"},
477-
pvcs: []v1.PersistentVolumeClaim{{ObjectMeta: metav1.ObjectMeta{Name: "existingPVC", DeletionTimestamp: &metav1.Time{}}}},
475+
pvcs: []v1.PersistentVolumeClaim{{ObjectMeta: metav1.ObjectMeta{Name: "existingPVC", UID: types.UID("existingPVC"), Namespace: v1.NamespaceDefault, DeletionTimestamp: &metav1.Time{}}}},
478476
pod: &v1.Pod{
479-
ObjectMeta: metav1.ObjectMeta{Name: "ignore", UID: types.UID("ignore")},
477+
ObjectMeta: metav1.ObjectMeta{Name: "ignore", UID: types.UID("ignore"), Namespace: v1.NamespaceDefault},
480478
Spec: v1.PodSpec{
481479
Volumes: []v1.Volume{
482480
{
@@ -728,10 +726,16 @@ func TestGenericScheduler(t *testing.T) {
728726
cache.AddNode(node)
729727
}
730728

729+
cs := clientsetfake.NewSimpleClientset()
730+
informerFactory := informers.NewSharedInformerFactory(cs, 0)
731+
for i := range test.pvcs {
732+
informerFactory.Core().V1().PersistentVolumeClaims().Informer().GetStore().Add(&test.pvcs[i])
733+
}
731734
snapshot := internalcache.NewSnapshot(test.pods, nodes)
732735
fwk, err := st.NewFramework(
733736
test.registerPlugins,
734737
frameworkruntime.WithSnapshotSharedLister(snapshot),
738+
frameworkruntime.WithInformerFactory(informerFactory),
735739
frameworkruntime.WithPodNominator(internalqueue.NewPodNominator()),
736740
)
737741
if err != nil {
@@ -741,19 +745,14 @@ func TestGenericScheduler(t *testing.T) {
741745
Framework: fwk,
742746
}
743747

744-
var pvcs []v1.PersistentVolumeClaim
745-
pvcs = append(pvcs, test.pvcs...)
746-
pvcLister := fakeframework.PersistentVolumeClaimLister(pvcs)
747-
748748
scheduler := NewGenericScheduler(
749749
cache,
750750
snapshot,
751751
[]framework.Extender{},
752-
pvcLister,
753752
schedulerapi.DefaultPercentageOfNodesToScore)
754753
result, err := scheduler.Schedule(context.Background(), prof, framework.NewCycleState(), test.pod)
755-
if !reflect.DeepEqual(err, test.wErr) {
756-
t.Errorf("want: %v, got: %v", test.wErr, err)
754+
if err != test.wErr && err.Error() != test.wErr.Error() {
755+
t.Errorf("Unexpected error: %v, expected: %v", err.Error(), test.wErr)
757756
}
758757
if test.expectedHosts != nil && !test.expectedHosts.Has(result.SuggestedHost) {
759758
t.Errorf("Expected: %s, got: %s", test.expectedHosts, result.SuggestedHost)
@@ -775,7 +774,7 @@ func makeScheduler(nodes []*v1.Node) *genericScheduler {
775774
s := NewGenericScheduler(
776775
cache,
777776
emptySnapshot,
778-
nil, nil,
777+
nil,
779778
schedulerapi.DefaultPercentageOfNodesToScore)
780779
cache.UpdateSnapshot(s.(*genericScheduler).nodeInfoSnapshot)
781780
return s.(*genericScheduler)
@@ -1069,7 +1068,6 @@ func TestZeroRequest(t *testing.T) {
10691068
nil,
10701069
emptySnapshot,
10711070
[]framework.Extender{},
1072-
nil,
10731071
schedulerapi.DefaultPercentageOfNodesToScore).(*genericScheduler)
10741072
scheduler.nodeInfoSnapshot = snapshot
10751073

pkg/scheduler/factory.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ func (c *Configurator) create() (*Scheduler, error) {
180180
c.schedulerCache,
181181
c.nodeInfoSnapshot,
182182
extenders,
183-
c.informerFactory.Core().V1().PersistentVolumeClaims().Lister(),
184183
c.percentageOfNodesToScore,
185184
)
186185

pkg/scheduler/scheduler_test.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -807,7 +807,12 @@ func setupTestScheduler(queuedPodStore *clientcache.FIFO, scache internalcache.C
807807
return true, b, nil
808808
})
809809

810-
fwk, _ := st.NewFramework(fns, frameworkruntime.WithClientSet(client), frameworkruntime.WithPodNominator(internalqueue.NewPodNominator()))
810+
fwk, _ := st.NewFramework(
811+
fns,
812+
frameworkruntime.WithClientSet(client),
813+
frameworkruntime.WithInformerFactory(informerFactory),
814+
frameworkruntime.WithPodNominator(internalqueue.NewPodNominator()),
815+
)
811816
prof := &profile.Profile{
812817
Framework: fwk,
813818
Recorder: &events.FakeRecorder{},
@@ -824,7 +829,6 @@ func setupTestScheduler(queuedPodStore *clientcache.FIFO, scache internalcache.C
824829
scache,
825830
internalcache.NewEmptySnapshot(),
826831
[]framework.Extender{},
827-
informerFactory.Core().V1().PersistentVolumeClaims().Lister(),
828832
schedulerapi.DefaultPercentageOfNodesToScore,
829833
)
830834

@@ -858,6 +862,7 @@ func setupTestSchedulerWithVolumeBinding(volumeBinder scheduling.SchedulerVolume
858862
testPVC := v1.PersistentVolumeClaim{ObjectMeta: metav1.ObjectMeta{Name: "testPVC", Namespace: pod.Namespace, UID: types.UID("testPVC")}}
859863
client := clientsetfake.NewSimpleClientset(&testNode, &testPVC)
860864
informerFactory := informers.NewSharedInformerFactory(client, 0)
865+
informerFactory.Core().V1().PersistentVolumeClaims().Informer().GetStore().Add(&testPVC)
861866

862867
fns := []st.RegisterPluginFunc{
863868
st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New),
@@ -1172,7 +1177,6 @@ func TestSchedulerBinding(t *testing.T) {
11721177
scache,
11731178
nil,
11741179
test.extenders,
1175-
nil,
11761180
0,
11771181
)
11781182
sched := Scheduler{

0 commit comments

Comments
 (0)