schedulingtypes

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2022 License: Apache-2.0 Imports: 25 Imported by: 3

Documentation

Index

Constants

View Source
const (
	RSPKind = "ReplicaSchedulingPreference"
)

Variables

View Source
var PodResource = &metav1.APIResource{
	Name:       GetPluralName(Pod),
	Group:      corev1.SchemeGroupVersion.Group,
	Version:    corev1.SchemeGroupVersion.Version,
	Kind:       Pod,
	Namespaced: true,
}

Functions

func GetPluralName

func GetPluralName(name string) string

func GetResourceKind

func GetResourceKind(obj runtimeclient.Object) string

func OverrideUpdateNeeded added in v0.0.4

func OverrideUpdateNeeded(overridesMap util.OverridesMap, result map[string]int64) bool

func PlacementUpdateNeeded added in v0.0.4

func PlacementUpdateNeeded(names, newNames []string) bool

These assume that there would be no duplicate clusternames

func RegisterSchedulingType

func RegisterSchedulingType(kind string, schedulingType SchedulingType)

func SchedulingTypes

func SchedulingTypes() map[string]SchedulingType

Types

type Plugin

type Plugin struct {
	// contains filtered or unexported fields
}

func NewPlugin

func NewPlugin(controllerConfig *util.ControllerConfig, eventHandlers SchedulerEventHandlers, typeConfig typeconfig.Interface, nsAPIResource *metav1.APIResource) (*Plugin, error)

func (*Plugin) FederatedTypeExists added in v0.0.6

func (p *Plugin) FederatedTypeExists(key string) bool

func (*Plugin) GetResourceClusters added in v0.8.0

func (p *Plugin) GetResourceClusters(qualifiedName util.QualifiedName, clusters []*fedv1b1.KubeFedCluster) (selectedClusters sets.String, err error)

func (*Plugin) HasSynced

func (p *Plugin) HasSynced() bool

func (*Plugin) Reconcile added in v0.0.6

func (p *Plugin) Reconcile(qualifiedName util.QualifiedName, result map[string]int64) error

func (*Plugin) Start

func (p *Plugin) Start()

func (*Plugin) Stop

func (p *Plugin) Stop()

type ReplicaScheduler

type ReplicaScheduler struct {
	// contains filtered or unexported fields
}

func (*ReplicaScheduler) GetSchedulingResult

func (s *ReplicaScheduler) GetSchedulingResult(rsp *fedschedulingv1a1.ReplicaSchedulingPreference,
	qualifiedName ctlutil.QualifiedName, clusterNames []string) (map[string]int64, ctlutil.ReconciliationStatus, error)

func (*ReplicaScheduler) HasSynced

func (s *ReplicaScheduler) HasSynced() bool

func (*ReplicaScheduler) ObjectType

func (s *ReplicaScheduler) ObjectType() runtimeclient.Object

func (*ReplicaScheduler) Reconcile

func (*ReplicaScheduler) SchedulingKind added in v0.0.8

func (s *ReplicaScheduler) SchedulingKind() string

func (*ReplicaScheduler) Start

func (s *ReplicaScheduler) Start()

func (*ReplicaScheduler) StartPlugin added in v0.0.3

func (s *ReplicaScheduler) StartPlugin(typeConfig typeconfig.Interface, nsAPIResource *metav1.APIResource) error

func (*ReplicaScheduler) Stop

func (s *ReplicaScheduler) Stop()

func (*ReplicaScheduler) StopPlugin added in v0.0.5

func (s *ReplicaScheduler) StopPlugin(kind string)

type Scheduler

type Scheduler interface {
	SchedulingKind() string
	ObjectType() runtimeclient.Object

	Start()
	HasSynced() bool
	Stop()
	Reconcile(obj runtimeclient.Object, qualifiedName util.QualifiedName) util.ReconciliationStatus

	StartPlugin(typeConfig typeconfig.Interface, nsAPIResource *metav1.APIResource) error
	StopPlugin(kind string)
}

func NewReplicaScheduler

func NewReplicaScheduler(controllerConfig *ctlutil.ControllerConfig, eventHandlers SchedulerEventHandlers) (Scheduler, error)

type SchedulerEventHandlers added in v0.0.4

type SchedulerEventHandlers struct {
	KubeFedEventHandler      func(runtimeclient.Object)
	ClusterEventHandler      func(runtimeclient.Object)
	ClusterLifecycleHandlers *util.ClusterLifecycleHandlerFuncs
}

type SchedulerFactory

type SchedulerFactory func(controllerConfig *util.ControllerConfig, eventHandlers SchedulerEventHandlers) (Scheduler, error)

type SchedulingType

type SchedulingType struct {
	Kind             string
	SchedulerFactory SchedulerFactory
}

func GetSchedulingType added in v0.0.4

func GetSchedulingType(kind string) *SchedulingType

Jump to

Keyboard shortcuts

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