Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConstraintFilter ¶
type ConstraintFilter struct {
// contains filtered or unexported fields
}
ConstraintFilter selects only nodes that match certain labels.
func (*ConstraintFilter) Check ¶
func (f *ConstraintFilter) Check(n *NodeInfo) bool
Check returns true if the task's constraint is supported by the given node.
func (*ConstraintFilter) Explain ¶
func (f *ConstraintFilter) Explain(nodes int) string
Explain returns an explanation of a failure.
type Filter ¶
type Filter interface { // SetTask returns true when the filter is enabled for a given task // and assigns the task to the filter. It returns false if the filter // isn't applicable to this task. For instance, a constraints filter // would return `false` if the task doesn't contain any constraints. SetTask(*api.Task) bool // Check returns true if the task assigned by SetTask can be scheduled // into the given node. This function should not be called if SetTask // returned false. Check(*NodeInfo) bool // Explain what a failure of this filter means Explain(nodes int) string }
Filter checks whether the given task can run on the given node. A filter may only operate
type NodeInfo ¶
type NodeInfo struct { *api.Node Tasks map[string]*api.Task ActiveTasksCount int ActiveTasksCountByService map[string]int AvailableResources api.Resources // contains filtered or unexported fields }
NodeInfo contains a node and some additional metadata.
type Pipeline ¶
type Pipeline struct {
// contains filtered or unexported fields
}
Pipeline runs a set of filters against nodes.
func NewPipeline ¶
func NewPipeline() *Pipeline
NewPipeline returns a pipeline with the default set of filters.
type PluginFilter ¶
type PluginFilter struct {
// contains filtered or unexported fields
}
PluginFilter checks that the node has a specific volume plugin installed
func (*PluginFilter) Check ¶
func (f *PluginFilter) Check(n *NodeInfo) bool
Check returns true if the task can be scheduled into the given node. TODO(amitshukla): investigate storing Plugins as a map so it can be easily probed
func (*PluginFilter) Explain ¶
func (f *PluginFilter) Explain(nodes int) string
Explain returns an explanation of a failure.
type ReadyFilter ¶
type ReadyFilter struct { }
ReadyFilter checks that the node is ready to schedule tasks.
func (*ReadyFilter) Check ¶
func (f *ReadyFilter) Check(n *NodeInfo) bool
Check returns true if the task can be scheduled into the given node.
func (*ReadyFilter) Explain ¶
func (f *ReadyFilter) Explain(nodes int) string
Explain returns an explanation of a failure.
type ResourceFilter ¶
type ResourceFilter struct {
// contains filtered or unexported fields
}
ResourceFilter checks that the node has enough resources available to run the task.
func (*ResourceFilter) Check ¶
func (f *ResourceFilter) Check(n *NodeInfo) bool
Check returns true if the task can be scheduled into the given node.
func (*ResourceFilter) Explain ¶
func (f *ResourceFilter) Explain(nodes int) string
Explain returns an explanation of a failure.