func DecodeInto(obj runtime.Object, into interface{}) error
DecodeInto decodes configuration whose type is *runtime.Unknown to the interface into.
func NewFramework(ctx context.Context, r Registry, profile *config.KubeSchedulerProfile, opts ...Option) (framework.Framework, error)
NewFramework initializes plugins given the configuration and the registry.
CaptureProfile is a callback to capture a finalized profile.
type CaptureProfile func(config.KubeSchedulerProfile)
Option for the frameworkImpl.
type Option func(*frameworkOptions)
func WithCaptureProfile(c CaptureProfile) Option
WithCaptureProfile sets a callback to capture the finalized profile.
func WithClientSet(clientSet clientset.Interface) Option
WithClientSet sets clientSet for the scheduling frameworkImpl.
func WithComponentConfigVersion(componentConfigVersion string) Option
WithComponentConfigVersion sets the component config version to the KubeSchedulerConfiguration version used. The string should be the full scheme group/version of the external type we converted from (for example "kubescheduler.config.k8s.io/v1")
func WithEventRecorder(recorder events.EventRecorder) Option
WithEventRecorder sets clientSet for the scheduling frameworkImpl.
func WithExtenders(extenders []framework.Extender) Option
WithExtenders sets extenders for the scheduling frameworkImpl.
func WithInformerFactory(informerFactory informers.SharedInformerFactory) Option
WithInformerFactory sets informer factory for the scheduling frameworkImpl.
func WithKubeConfig(kubeConfig *restclient.Config) Option
WithKubeConfig sets kubeConfig for the scheduling frameworkImpl.
func WithLogger(logger klog.Logger) Option
WithLogger overrides the default logger from k8s.io/klog.
func WithMetricsRecorder(r *metrics.MetricAsyncRecorder) Option
WithMetricsRecorder sets metrics recorder for the scheduling frameworkImpl.
func WithParallelism(parallelism int) Option
WithParallelism sets parallelism for the scheduling frameworkImpl.
func WithPodNominator(nominator framework.PodNominator) Option
WithPodNominator sets podNominator for the scheduling frameworkImpl.
func WithSnapshotSharedLister(snapshotSharedLister framework.SharedLister) Option
WithSnapshotSharedLister sets the SharedLister of the snapshot.
PluginFactory is a function that builds a plugin.
type PluginFactory = func(ctx context.Context, configuration runtime.Object, f framework.Handle) (framework.Plugin, error)
func FactoryAdapter(fts plfeature.Features, withFts PluginFactoryWithFts) PluginFactory
FactoryAdapter can be used to inject feature gates for a plugin that needs them when the caller expects the older PluginFactory method.
PluginFactoryWithFts is a function that builds a plugin with certain feature gates.
type PluginFactoryWithFts func(context.Context, runtime.Object, framework.Handle, plfeature.Features) (framework.Plugin, error)
Registry is a collection of all available plugins. The framework uses a registry to enable and initialize configured plugins. All plugins must be in the registry before initializing the framework.
type Registry map[string]PluginFactory
func (r Registry) Merge(in Registry) error
Merge merges the provided registry to the current one.
func (r Registry) Register(name string, factory PluginFactory) error
Register adds a new plugin to the registry. If a plugin with the same name exists, it returns an error.
func (r Registry) Unregister(name string) error
Unregister removes an existing plugin from the registry. If no plugin with the provided name exists, it returns an error.