@@ -38,54 +38,7 @@ const (
38
38
DefaultExtenderTimeout = 5 * time .Second
39
39
)
40
40
41
- // SchedulerExtender is an interface for external processes to influence scheduling
42
- // decisions made by Kubernetes. This is typically needed for resources not directly
43
- // managed by Kubernetes.
44
- type SchedulerExtender interface {
45
- // Name returns a unique name that identifies the extender.
46
- Name () string
47
-
48
- // Filter based on extender-implemented predicate functions. The filtered list is
49
- // expected to be a subset of the supplied list. failedNodesMap optionally contains
50
- // the list of failed nodes and failure reasons.
51
- Filter (pod * v1.Pod , nodes []* v1.Node ) (filteredNodes []* v1.Node , failedNodesMap extenderv1.FailedNodesMap , err error )
52
-
53
- // Prioritize based on extender-implemented priority functions. The returned scores & weight
54
- // are used to compute the weighted score for an extender. The weighted scores are added to
55
- // the scores computed by Kubernetes scheduler. The total scores are used to do the host selection.
56
- Prioritize (pod * v1.Pod , nodes []* v1.Node ) (hostPriorities * extenderv1.HostPriorityList , weight int64 , err error )
57
-
58
- // Bind delegates the action of binding a pod to a node to the extender.
59
- Bind (binding * v1.Binding ) error
60
-
61
- // IsBinder returns whether this extender is configured for the Bind method.
62
- IsBinder () bool
63
-
64
- // IsInterested returns true if at least one extended resource requested by
65
- // this pod is managed by this extender.
66
- IsInterested (pod * v1.Pod ) bool
67
-
68
- // ProcessPreemption returns nodes with their victim pods processed by extender based on
69
- // given:
70
- // 1. Pod to schedule
71
- // 2. Candidate nodes and victim pods (nodeToVictims) generated by previous scheduling process.
72
- // The possible changes made by extender may include:
73
- // 1. Subset of given candidate nodes after preemption phase of extender.
74
- // 2. A different set of victim pod for every given candidate node after preemption phase of extender.
75
- ProcessPreemption (
76
- pod * v1.Pod ,
77
- nodeToVictims map [string ]* extenderv1.Victims ,
78
- nodeInfos framework.NodeInfoLister ) (map [string ]* extenderv1.Victims , error )
79
-
80
- // SupportsPreemption returns if the scheduler extender support preemption or not.
81
- SupportsPreemption () bool
82
-
83
- // IsIgnorable returns true indicates scheduling should not fail when this extender
84
- // is unavailable. This gives scheduler ability to fail fast and tolerate non-critical extenders as well.
85
- IsIgnorable () bool
86
- }
87
-
88
- // HTTPExtender implements the SchedulerExtender interface.
41
+ // HTTPExtender implements the Extender interface.
89
42
type HTTPExtender struct {
90
43
extenderURL string
91
44
preemptVerb string
@@ -130,7 +83,7 @@ func makeTransport(config *schedulerapi.Extender) (http.RoundTripper, error) {
130
83
}
131
84
132
85
// NewHTTPExtender creates an HTTPExtender object.
133
- func NewHTTPExtender (config * schedulerapi.Extender ) (SchedulerExtender , error ) {
86
+ func NewHTTPExtender (config * schedulerapi.Extender ) (framework. Extender , error ) {
134
87
if config .HTTPTimeout .Nanoseconds () == 0 {
135
88
config .HTTPTimeout = time .Duration (DefaultExtenderTimeout )
136
89
}
0 commit comments