Help us shape the future of Go! Take the 2026 Go Developer Survey

scheduler

package
v1.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 26, 2016 License: Apache-2.0 Imports: 13 Imported by: 0

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) SetTask

func (f *ConstraintFilter) SetTask(t *api.Task) bool

SetTask returns true when the filter is enable for a given task.

type Expr

type Expr struct {
	Key string
	// contains filtered or unexported fields
}

Expr defines a constraint

func ParseExprs

func ParseExprs(env []string) ([]Expr, error)

ParseExprs parses list of constraints into Expr list

func (*Expr) Match

func (e *Expr) Match(whats ...string) bool

Match checks if the Expr matches the target strings.

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
}

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
	AvailableResources api.Resources
}

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.

func (*Pipeline) Process

func (p *Pipeline) Process(n *NodeInfo) bool

Process a node through the filter pipeline. Returns true if all filters pass, false otherwise.

func (*Pipeline) SetTask

func (p *Pipeline) SetTask(t *api.Task)

SetTask sets up the filters to process a new task. Once this is called, Process can be called repeatedly to try to assign the task various nodes.

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) SetTask

func (f *PluginFilter) SetTask(t *api.Task) bool

SetTask returns true when the filter is enabled for a given task.

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) SetTask

func (f *ReadyFilter) SetTask(_ *api.Task) bool

SetTask returns true when the filter is enabled for a given task.

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) SetTask

func (f *ResourceFilter) SetTask(t *api.Task) bool

SetTask returns true when the filter is enabled for a given task.

type Scheduler

type Scheduler struct {
	// contains filtered or unexported fields
}

Scheduler assigns tasks to nodes.

func New

func New(store *store.MemoryStore) *Scheduler

New creates a new scheduler.

func (*Scheduler) Run

func (s *Scheduler) Run(ctx context.Context) error

Run is the scheduler event loop.

func (*Scheduler) Stop

func (s *Scheduler) Stop()

Stop causes the scheduler event loop to stop running.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL