...

Package runtime

import "k8s.io/kubernetes/pkg/scheduler/framework/runtime"
Overview
Index

Overview ▾

func DecodeInto

func DecodeInto(obj runtime.Object, into interface{}) error

DecodeInto decodes configuration whose type is *runtime.Unknown to the interface into.

func NewFramework

func NewFramework(ctx context.Context, r Registry, profile *config.KubeSchedulerProfile, opts ...Option) (framework.Framework, error)

NewFramework initializes plugins given the configuration and the registry.

type CaptureProfile

CaptureProfile is a callback to capture a finalized profile.

type CaptureProfile func(config.KubeSchedulerProfile)

type Option

Option for the frameworkImpl.

type Option func(*frameworkOptions)

func WithCaptureProfile

func WithCaptureProfile(c CaptureProfile) Option

WithCaptureProfile sets a callback to capture the finalized profile.

func WithClientSet

func WithClientSet(clientSet clientset.Interface) Option

WithClientSet sets clientSet for the scheduling frameworkImpl.

func WithComponentConfigVersion

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

func WithEventRecorder(recorder events.EventRecorder) Option

WithEventRecorder sets clientSet for the scheduling frameworkImpl.

func WithExtenders

func WithExtenders(extenders []framework.Extender) Option

WithExtenders sets extenders for the scheduling frameworkImpl.

func WithInformerFactory

func WithInformerFactory(informerFactory informers.SharedInformerFactory) Option

WithInformerFactory sets informer factory for the scheduling frameworkImpl.

func WithKubeConfig

func WithKubeConfig(kubeConfig *restclient.Config) Option

WithKubeConfig sets kubeConfig for the scheduling frameworkImpl.

func WithLogger

func WithLogger(logger klog.Logger) Option

WithLogger overrides the default logger from k8s.io/klog.

func WithMetricsRecorder

func WithMetricsRecorder(r *metrics.MetricAsyncRecorder) Option

WithMetricsRecorder sets metrics recorder for the scheduling frameworkImpl.

func WithParallelism

func WithParallelism(parallelism int) Option

WithParallelism sets parallelism for the scheduling frameworkImpl.

func WithPodNominator

func WithPodNominator(nominator framework.PodNominator) Option

WithPodNominator sets podNominator for the scheduling frameworkImpl.

func WithSnapshotSharedLister

func WithSnapshotSharedLister(snapshotSharedLister framework.SharedLister) Option

WithSnapshotSharedLister sets the SharedLister of the snapshot.

type PluginFactory

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

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.

type PluginFactoryWithFts

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)

type Registry

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 (Registry) Merge

func (r Registry) Merge(in Registry) error

Merge merges the provided registry to the current one.

func (Registry) Register

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 (Registry) Unregister

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.