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
- func IsFitPredicateRegistered(name string) bool
- func IsPriorityFunctionRegistered(name string) bool
- func ListAlgorithmProviders() string
- func RegisterAlgorithmProvider(name string, predicateKeys, priorityKeys sets.String) string
- func RegisterCustomFitPredicate(policy schedulerapi.PredicatePolicy) string
- func RegisterCustomPriorityFunction(policy schedulerapi.PriorityPolicy) string
- func RegisterFitPredicate(name string, predicate algorithm.FitPredicate) string
- func RegisterFitPredicateFactory(name string, predicateFactory FitPredicateFactory) string
- func RegisterPriorityConfigFactory(name string, pcf PriorityConfigFactory) string
- func RegisterPriorityFunction(name string, function algorithm.PriorityFunction, weight int) string
- type AlgorithmProviderConfig
- type ConfigFactory
- func (f *ConfigFactory) Create() (*scheduler.Config, error)
- func (f *ConfigFactory) CreateFromConfig(policy schedulerapi.Policy) (*scheduler.Config, error)
- func (f *ConfigFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String, ...) (*scheduler.Config, error)
- func (f *ConfigFactory) CreateFromProvider(providerName string) (*scheduler.Config, error)
- type FitPredicateFactory
- type PluginFactoryArgs
- type PriorityConfigFactory
- type PriorityFunctionFactory
Constants ¶
const (
DefaultProvider = "DefaultProvider"
)
const (
SchedulerAnnotationKey = "scheduler.alpha.kubernetes.io/name"
)
Variables ¶
This section is empty.
Functions ¶
func IsFitPredicateRegistered ¶
This check is useful for testing providers.
func IsPriorityFunctionRegistered ¶
This check is useful for testing providers.
func ListAlgorithmProviders ¶
func ListAlgorithmProviders() string
ListAlgorithmProviders is called when listing all available algortihm providers in `kube-scheduler --help`
func RegisterAlgorithmProvider ¶
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
RegisterFitPredicate registers a fit predicate with the algorithm registry. Returns the name with which the predicate was registered.
func RegisterFitPredicateFactory ¶
func RegisterFitPredicateFactory(name string, predicateFactory FitPredicateFactory) string
RegisterFitPredicateFactory registers a fit predicate factory with the algorithm registry. Returns the name with which the predicate was registered.
func RegisterPriorityConfigFactory ¶
func RegisterPriorityConfigFactory(name string, pcf PriorityConfigFactory) string
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.
Types ¶
type AlgorithmProviderConfig ¶
type AlgorithmProviderConfig struct { FitPredicateKeys sets.String PriorityFunctionKeys sets.String }
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 known scheduled pods. ScheduledPodLister *cache.StoreToPodLister // a means to list all known scheduled pods and pods assumed to have been scheduled. PodLister algorithm.PodLister // a means to list all nodes NodeLister *cache.StoreToNodeLister // a means to list all PersistentVolumes PVLister *cache.StoreToPVFetcher // a means to list all PersistentVolumeClaims PVCLister *cache.StoreToPVCFetcher // a means to list all services ServiceLister *cache.StoreToServiceLister // a means to list all controllers ControllerLister *cache.StoreToReplicationControllerLister // Close this to stop all reflectors StopEverything chan struct{} // SchedulerName of a scheduler is used to select which pods will be // processed by this scheduler, based on pods's annotation key: // 'scheduler.alpha.kubernetes.io/name' SchedulerName string // contains filtered or unexported fields }
ConfigFactory knows how to fill out a scheduler config with its support functions.
func NewConfigFactory ¶
func NewConfigFactory(client *client.Client, schedulerName string) *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 sets.String, extenders []algorithm.SchedulerExtender) (*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.
type FitPredicateFactory ¶
type FitPredicateFactory func(PluginFactoryArgs) algorithm.FitPredicate
A FitPredicateFactory produces a FitPredicate from the given args.
type PluginFactoryArgs ¶
type PluginFactoryArgs struct { PodLister algorithm.PodLister ServiceLister algorithm.ServiceLister ControllerLister algorithm.ControllerLister NodeLister algorithm.NodeLister NodeInfo predicates.NodeInfo PVInfo predicates.PersistentVolumeInfo PVCInfo predicates.PersistentVolumeClaimInfo }
PluginFactoryArgs are passed to all plugin factory functions.
type PriorityConfigFactory ¶
type PriorityConfigFactory struct { Function PriorityFunctionFactory Weight int }
A PriorityConfigFactory produces a PriorityConfig from the given function and weight
type PriorityFunctionFactory ¶
type PriorityFunctionFactory func(PluginFactoryArgs) algorithm.PriorityFunction
A PriorityFunctionFactory produces a PriorityConfig from the given args.