@@ -29,12 +29,15 @@ import (
29
29
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
30
30
"k8s.io/apimachinery/pkg/runtime"
31
31
"k8s.io/apimachinery/pkg/util/wait"
32
+ utilfeature "k8s.io/apiserver/pkg/util/feature"
32
33
"k8s.io/client-go/informers"
33
34
coreinformers "k8s.io/client-go/informers/core/v1"
35
+ policyv1beta1informers "k8s.io/client-go/informers/policy/v1beta1"
34
36
clientset "k8s.io/client-go/kubernetes"
35
37
"k8s.io/client-go/tools/cache"
36
38
"k8s.io/client-go/tools/events"
37
39
podutil "k8s.io/kubernetes/pkg/api/v1/pod"
40
+ kubefeatures "k8s.io/kubernetes/pkg/features"
38
41
schedulerapi "k8s.io/kubernetes/pkg/scheduler/api"
39
42
latestschedulerapi "k8s.io/kubernetes/pkg/scheduler/api/latest"
40
43
kubeschedulerconfig "k8s.io/kubernetes/pkg/scheduler/apis/config"
@@ -279,6 +282,11 @@ func New(client clientset.Interface,
279
282
}
280
283
registry .Merge (options .frameworkOutOfTreeRegistry )
281
284
285
+ var pdbInformer policyv1beta1informers.PodDisruptionBudgetInformer
286
+ if utilfeature .DefaultFeatureGate .Enabled (kubefeatures .PodDisruptionBudget ) {
287
+ pdbInformer = informerFactory .Policy ().V1beta1 ().PodDisruptionBudgets ()
288
+ }
289
+
282
290
// Set up the configurator which can create schedulers from configs.
283
291
configurator := NewConfigFactory (& ConfigFactoryArgs {
284
292
Client : client ,
@@ -291,7 +299,7 @@ func New(client clientset.Interface,
291
299
ReplicaSetInformer : informerFactory .Apps ().V1 ().ReplicaSets (),
292
300
StatefulSetInformer : informerFactory .Apps ().V1 ().StatefulSets (),
293
301
ServiceInformer : informerFactory .Core ().V1 ().Services (),
294
- PdbInformer : informerFactory . Policy (). V1beta1 (). PodDisruptionBudgets () ,
302
+ PdbInformer : pdbInformer ,
295
303
StorageClassInformer : informerFactory .Storage ().V1 ().StorageClasses (),
296
304
CSINodeInformer : informerFactory .Storage ().V1beta1 ().CSINodes (),
297
305
VolumeBinder : volumeBinder ,
0 commit comments