...
1
16
17 package plugins
18
19 import (
20 "k8s.io/apiserver/pkg/util/feature"
21 "k8s.io/kubernetes/pkg/features"
22 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder"
23 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpreemption"
24 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/dynamicresources"
25 plfeature "k8s.io/kubernetes/pkg/scheduler/framework/plugins/feature"
26 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/imagelocality"
27 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity"
28 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeaffinity"
29 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodename"
30 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeports"
31 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources"
32 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeunschedulable"
33 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodevolumelimits"
34 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread"
35 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/queuesort"
36 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/schedulinggates"
37 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/tainttoleration"
38 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumebinding"
39 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumerestrictions"
40 "k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumezone"
41 "k8s.io/kubernetes/pkg/scheduler/framework/runtime"
42 )
43
44
45
46
47 func NewInTreeRegistry() runtime.Registry {
48 fts := plfeature.Features{
49 EnableDynamicResourceAllocation: feature.DefaultFeatureGate.Enabled(features.DynamicResourceAllocation),
50 EnableVolumeCapacityPriority: feature.DefaultFeatureGate.Enabled(features.VolumeCapacityPriority),
51 EnableNodeInclusionPolicyInPodTopologySpread: feature.DefaultFeatureGate.Enabled(features.NodeInclusionPolicyInPodTopologySpread),
52 EnableMatchLabelKeysInPodTopologySpread: feature.DefaultFeatureGate.Enabled(features.MatchLabelKeysInPodTopologySpread),
53 EnablePodDisruptionConditions: feature.DefaultFeatureGate.Enabled(features.PodDisruptionConditions),
54 EnableInPlacePodVerticalScaling: feature.DefaultFeatureGate.Enabled(features.InPlacePodVerticalScaling),
55 EnableSidecarContainers: feature.DefaultFeatureGate.Enabled(features.SidecarContainers),
56 }
57
58 registry := runtime.Registry{
59 dynamicresources.Name: runtime.FactoryAdapter(fts, dynamicresources.New),
60 imagelocality.Name: imagelocality.New,
61 tainttoleration.Name: tainttoleration.New,
62 nodename.Name: nodename.New,
63 nodeports.Name: nodeports.New,
64 nodeaffinity.Name: nodeaffinity.New,
65 podtopologyspread.Name: runtime.FactoryAdapter(fts, podtopologyspread.New),
66 nodeunschedulable.Name: nodeunschedulable.New,
67 noderesources.Name: runtime.FactoryAdapter(fts, noderesources.NewFit),
68 noderesources.BalancedAllocationName: runtime.FactoryAdapter(fts, noderesources.NewBalancedAllocation),
69 volumebinding.Name: runtime.FactoryAdapter(fts, volumebinding.New),
70 volumerestrictions.Name: runtime.FactoryAdapter(fts, volumerestrictions.New),
71 volumezone.Name: volumezone.New,
72 nodevolumelimits.CSIName: runtime.FactoryAdapter(fts, nodevolumelimits.NewCSI),
73 nodevolumelimits.EBSName: runtime.FactoryAdapter(fts, nodevolumelimits.NewEBS),
74 nodevolumelimits.GCEPDName: runtime.FactoryAdapter(fts, nodevolumelimits.NewGCEPD),
75 nodevolumelimits.AzureDiskName: runtime.FactoryAdapter(fts, nodevolumelimits.NewAzureDisk),
76 nodevolumelimits.CinderName: runtime.FactoryAdapter(fts, nodevolumelimits.NewCinder),
77 interpodaffinity.Name: interpodaffinity.New,
78 queuesort.Name: queuesort.New,
79 defaultbinder.Name: defaultbinder.New,
80 defaultpreemption.Name: runtime.FactoryAdapter(fts, defaultpreemption.New),
81 schedulinggates.Name: schedulinggates.New,
82 }
83
84 return registry
85 }
86
View as plain text