kubernetesk8s.io/kubernetes/plugin/pkg/scheduler/factory Index | Files

package factory

import "k8s.io/kubernetes/plugin/pkg/scheduler/factory"

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

Index

Constants

const (
	DefaultProvider = "DefaultProvider"
)

Variables

Functions

func IsFitPredicateRegistered

func IsFitPredicateRegistered(name string) bool

This check is useful for testing providers.

func IsPriorityFunctionRegistered

func IsPriorityFunctionRegistered(name string) bool

This check is useful for testing providers.

func RegisterAlgorithmProvider

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

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

func RegisterCustomFitPredicate

func RegisterCustomFitPredicate(policy schedulerapi.PredicatePolicy) string

Registers a custom fit predicate with the algorithm registry. Returns the name, with which the predicate was registered.

func RegisterCustomPriorityFunction

func RegisterCustomPriorityFunction(policy schedulerapi.PriorityPolicy) string

Registers a custom priority function with the algorithm registry. Returns the name, with which the priority function was registered.

func RegisterFitPredicate

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

Registers a fit predicate with the algorithm registry. Returns the name, with which the predicate was registered.

func RegisterPriorityFunction

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

Registers a priority function with the algorithm registry. Returns the name, with which the function was registered.

func SetPriorityFunctionWeight

func SetPriorityFunctionWeight(name string, weight int)

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)

This function 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

Initializes the factory.

func (*ConfigFactory) Create

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

Create creates a scheduler with the default algorithm provider.

func (*ConfigFactory) CreateFromConfig

func (f *ConfigFactory) CreateFromConfig(policy schedulerapi.Policy) (*scheduler.Config, error)

Creates a scheduler from the configuration file

func (*ConfigFactory) CreateFromKeys

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

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)

Creates a scheduler from the name of a registered algorithm provider.

Source Files

factory.go plugins.go

Version
v0.13.0
Published
Mar 16, 2015
Platform
js/wasm
Imports
15 packages
Last checked
10 seconds ago

Tools for package owners.