# Functions
NewBatchScheduler is a factory function to instantiate a new batch scheduler.
NewBinPackIterator returns a BinPackIterator which tries to fit tasks potentially evicting other tasks based on a given priority.
NewConstraintIterator creates a ConstraintIterator from a source and set of constraints.
NewDriverIterator creates a DriverIterator from a source and set of drivers.
NewEvalContext constructs a new EvalContext.
NewFeasibleRankIterator is used to return a new FeasibleRankIterator from a FeasibleIterator source.
NewGenericStack constructs a stack used for selecting service placements.
NewJobAntiAffinityIterator is used to create a JobAntiAffinityIterator that applies the given penalty for co-placement with allocs from this job.
NewLimitIterator is returns a LimitIterator with a fixed limit of returned options.
MaxScoreIterator returns a MaxScoreIterator over the given source.
NewProposedAllocConstraintIterator creates a ProposedAllocConstraintIterator from a source.
NewRandomIterator constructs a static iterator from a list of nodes after applying the Fisher-Yates algorithm for a random shuffle.
NewScheduler is used to instantiate and return a new scheduler given the scheduler name, initial state, and planner.
NewServiceScheduler is a factory function to instantiate a new service scheduler.
NewStaticIterator constructs a random iterator from a list of nodes.
NewStaticRankIterator returns a new static rank iterator over the given nodes.
NewSystemScheduler is a factory function to instantiate a new system scheduler.
NewSystemStack constructs a stack used for selecting service placements.
# Variables
BuiltinSchedulers contains the built in registered schedulers which are available.
# Structs
BinPackIterator is a RankIterator that scores potential options based on a bin-packing algorithm.
ConstraintIterator is a FeasibleIterator which returns nodes that match a given set of constraints.
DriverIterator is a FeasibleIterator which returns nodes that have the drivers necessary to scheduler a task group.
EvalCache is used to cache certain things during an evaluation.
EvalContext is a Context used during an Evaluation.
FeasibleRankIterator is used to consume from a FeasibleIterator and return an unranked node with base ranking.
GenericScheduler is used for 'service' and 'batch' type jobs.
GenericStack is the Stack used for the Generic scheduler.
JobAntiAffinityIterator is used to apply an anti-affinity to allocating along side other allocations from this job.
LimitIterator is a RankIterator used to limit the number of options that are returned before we artifically end the stream.
MaxScoreIterator is a RankIterator used to return only a single result of the item with the highest score.
ProposedAllocConstraintIterator is a FeasibleIterator which returns nodes that match constraints that are not static such as Node attributes but are effected by proposed alloc placements.
Rank is used to provide a score and various ranking metadata along with a node when iterating.
SetStatusError is used to set the status of the evaluation to the given error.
StaticIterator is a FeasibleIterator which returns nodes in a static order.
StaticRankIterator is a RankIterator that returns a static set of results.
SystemScheduler is used for 'system' jobs.
SystemStack is the Stack used for the System scheduler.
# Interfaces
Context is used to track contextual information used for placement.
FeasibleIterator is used to iteratively yield nodes that match feasibility constraints.
Planner interface is used to submit a task allocation plan.
RankFeasibleIterator is used to iteratively yield nodes along with ranking metadata.
Scheduler is the top level instance for a scheduler.
Stack is a chained collection of iterators.
State is an immutable view of the global state.
# Type aliases
Factory is used to instantiate a new Scheduler.