factory

package
v0.8.1-0...-b1f5b3f Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2015 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package factory can set up a scheduler. This code is here instead of plugin/cmd/scheduler for both testability and reuse.

Index

Constants

View Source
const (
	DefaultProvider = "default"
)

Variables

Functions

func IsFitPredicateRegistered

func IsFitPredicateRegistered(key string) bool

IsFitPredicateRegistered check is useful for testing providers.

func IsPriorityFunctionRegistered

func IsPriorityFunctionRegistered(key string) bool

IsPriorityFunctionRegistered check is useful for testing providers.

func RegisterAlgorithmProvider

func RegisterAlgorithmProvider(name string, predicateKeys, priorityKeys util.StringSet) string

RegisterAlgorithmProvider registers a new algorithm provider with the algorithm registry. This should be called from the init function in a provider plugin.

func RegisterFitPredicate

func RegisterFitPredicate(key string, predicate algorithm.FitPredicate) string

RegisterFitPredicate registers a fit predicate with the algorithm registry. Returns the key, with which the predicate was registered.

func RegisterPriorityFunction

func RegisterPriorityFunction(key string, function algorithm.PriorityFunction, weight int) string

RegisterFitPredicate registers a priority function with the algorithm registry. Returns the key, with which the function was registered.

func SetPriorityFunctionWeight

func SetPriorityFunctionWeight(key string, weight int)

SetPriorityFunctionWeight sets the weight of an already registered priority function.

Types

type AlgorithmProviderConfig

type AlgorithmProviderConfig struct {
	FitPredicateKeys     util.StringSet
	PriorityFunctionKeys util.StringSet
}

func GetAlgorithmProvider

func GetAlgorithmProvider(name string) (*AlgorithmProviderConfig, error)

GetAlgorithmProvider should not be used to modify providers. It is publicly visible for testing.

type ConfigFactory

type ConfigFactory struct {
	Client *client.Client
	// queue for pods that need scheduling
	PodQueue *cache.FIFO
	// a means to list all scheduled pods
	PodLister *cache.StoreToPodLister
	// a means to list all minions
	MinionLister *cache.StoreToNodeLister
	// a means to list all services
	ServiceLister *cache.StoreToServiceLister
}

ConfigFactory knows how to fill out a scheduler config with its support functions.

func NewConfigFactory

func NewConfigFactory(client *client.Client) *ConfigFactory

NewConfigFactory initializes the factory.

func (*ConfigFactory) Create

func (f *ConfigFactory) Create() (*scheduler.Config, error)

Create creates a scheduler with the default algorithm provider.

func (*ConfigFactory) CreateFromKeys

func (f *ConfigFactory) CreateFromKeys(predicateKeys, priorityKeys util.StringSet) (*scheduler.Config, error)

CreateFromKeys creates a scheduler from a set of registered fit predicate keys and priority keys.

func (*ConfigFactory) CreateFromProvider

func (f *ConfigFactory) CreateFromProvider(providerName string) (*scheduler.Config, error)

CreateFromProvider creates a scheduler from the name of a registered algorithm provider.

Jump to

Keyboard shortcuts

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