client

package
v1.6.1 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2025 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Add operation = iota
	Update
	Delete
)

Variables

This section is empty.

Functions

func CreateRestConfig added in v1.2.0

func CreateRestConfig(kc string) (*rest.Config, error)

func CreateRestConfigOrDie added in v1.2.0

func CreateRestConfigOrDie(kc string) *rest.Config

func LoadBootstrapConfigMaps added in v1.2.0

func LoadBootstrapConfigMaps() ([]*v1.ConfigMap, error)

Types

type APIFactory

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

API factory maintains shared clients which can be used to access other external components e.g K8s api-server, or scheduler-core.

func NewAPIFactory

func NewAPIFactory(scheduler api.SchedulerAPI, informerFactory informers.SharedInformerFactory, configs *conf.SchedulerConf, testMode bool) *APIFactory

func (*APIFactory) AddEventHandler

func (s *APIFactory) AddEventHandler(handlers *ResourceEventHandlers) error

func (*APIFactory) GetAPIs

func (s *APIFactory) GetAPIs() *Clients

func (*APIFactory) IsTestingMode

func (s *APIFactory) IsTestingMode() bool

func (*APIFactory) Start

func (s *APIFactory) Start()

func (*APIFactory) Stop

func (s *APIFactory) Stop()

func (*APIFactory) WaitForSync

func (s *APIFactory) WaitForSync()

type APIProvider

type APIProvider interface {
	GetAPIs() *Clients
	AddEventHandler(handlers *ResourceEventHandlers) error
	Start()
	Stop()
	WaitForSync()
	IsTestingMode() bool
}

type BindStats added in v1.3.0

type BindStats struct {
	First    time.Time
	Last     time.Time
	FirstPod string
	LastPod  string
	Success  int64
	Errors   int64
}

BindStats statistics about KubeClientMock.Bind() calls

type BoundPod added in v1.5.0

type BoundPod struct {
	Pod  string
	Host string
}

type Clients

type Clients struct {
	// client apis
	KubeClient   KubeClient
	SchedulerAPI api.SchedulerAPI

	// informer factory
	InformerFactory informers.SharedInformerFactory

	// resource informers
	PodInformer                   coreInformerV1.PodInformer
	NodeInformer                  coreInformerV1.NodeInformer
	ConfigMapInformer             coreInformerV1.ConfigMapInformer
	PVInformer                    coreInformerV1.PersistentVolumeInformer
	PVCInformer                   coreInformerV1.PersistentVolumeClaimInformer
	StorageInformer               storageInformerV1.StorageClassInformer
	CSINodeInformer               storageInformerV1.CSINodeInformer
	CSIDriverInformer             storageInformerV1.CSIDriverInformer
	CSIStorageCapacityInformer    storageInformerV1.CSIStorageCapacityInformer
	NamespaceInformer             coreInformerV1.NamespaceInformer
	PriorityClassInformer         schedulingInformerV1.PriorityClassInformer
	ServiceInformer               coreInformerV1.ServiceInformer
	ReplicationControllerInformer coreInformerV1.ReplicationControllerInformer
	ReplicaSetInformer            appsInformerV1.ReplicaSetInformer
	StatefulSetInformer           appsInformerV1.StatefulSetInformer

	// volume binder handles PV/PVC related operations
	VolumeBinder volumebinding.SchedulerVolumeBinder
}

clients encapsulates a set of useful client APIs that can be shared by callers when talking to K8s api-server, or the scheduler core.

func (*Clients) Run

func (c *Clients) Run(stopCh <-chan struct{})

func (*Clients) WaitForSync

func (c *Clients) WaitForSync()

type KubeClient

type KubeClient interface {
	// bind a pod to a specific host
	Bind(pod *v1.Pod, hostID string) error

	// Create a pod
	Create(pod *v1.Pod) (*v1.Pod, error)

	// Delete a pod from a host
	Delete(pod *v1.Pod) error

	// Update a pod
	UpdatePod(pod *v1.Pod, podMutator func(pod *v1.Pod)) (*v1.Pod, error)

	// Update the status of a pod
	UpdateStatus(pod *v1.Pod) (*v1.Pod, error)

	// Get a pod
	Get(podNamespace string, podName string) (*v1.Pod, error)

	// minimal expose this, only informers factory needs it
	GetClientSet() kubernetes.Interface

	GetConfigs() *rest.Config

	GetConfigMap(namespace string, name string) (*v1.ConfigMap, error)
}

func NewBootstrapKubeClient added in v1.2.0

func NewBootstrapKubeClient(kc string) KubeClient

func NewKubeClient

func NewKubeClient(kc string) KubeClient

type KubeClientMock

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

KubeClientMock allows us to inject customized bind/delete pod functions

func NewKubeClientMock

func NewKubeClientMock(err bool) *KubeClientMock

func (*KubeClientMock) Bind

func (c *KubeClientMock) Bind(pod *v1.Pod, hostID string) error

func (*KubeClientMock) Create

func (c *KubeClientMock) Create(pod *v1.Pod) (*v1.Pod, error)

func (*KubeClientMock) Delete

func (c *KubeClientMock) Delete(pod *v1.Pod) error

func (*KubeClientMock) Get

func (c *KubeClientMock) Get(podNamespace string, podName string) (*v1.Pod, error)

func (*KubeClientMock) GetBindStats added in v1.3.0

func (c *KubeClientMock) GetBindStats() BindStats

func (*KubeClientMock) GetBoundPods added in v1.5.0

func (c *KubeClientMock) GetBoundPods(clear bool) []BoundPod

func (*KubeClientMock) GetClientSet

func (c *KubeClientMock) GetClientSet() kubernetes.Interface

func (*KubeClientMock) GetConfigMap added in v1.2.0

func (c *KubeClientMock) GetConfigMap(namespace string, name string) (*v1.ConfigMap, error)

func (*KubeClientMock) GetConfigs

func (c *KubeClientMock) GetConfigs() *rest.Config

func (*KubeClientMock) MockBindFn

func (c *KubeClientMock) MockBindFn(bfn func(pod *v1.Pod, hostID string) error)

func (*KubeClientMock) MockCreateFn

func (c *KubeClientMock) MockCreateFn(cfn func(pod *v1.Pod) (*v1.Pod, error))

func (*KubeClientMock) MockDeleteFn

func (c *KubeClientMock) MockDeleteFn(dfn func(pod *v1.Pod) error)

func (*KubeClientMock) UpdatePod added in v1.2.0

func (c *KubeClientMock) UpdatePod(pod *v1.Pod, podMutator func(pod *v1.Pod)) (*v1.Pod, error)

func (*KubeClientMock) UpdateStatus

func (c *KubeClientMock) UpdateStatus(pod *v1.Pod) (*v1.Pod, error)

type MockedAPIProvider

type MockedAPIProvider struct {
	locking.Mutex
	// contains filtered or unexported fields
}

func NewMockedAPIProvider

func NewMockedAPIProvider(showError bool) *MockedAPIProvider

func (*MockedAPIProvider) AddConfigMap added in v1.3.0

func (m *MockedAPIProvider) AddConfigMap(obj *v1.ConfigMap)

func (*MockedAPIProvider) AddEventHandler

func (m *MockedAPIProvider) AddEventHandler(handlers *ResourceEventHandlers) error

func (*MockedAPIProvider) AddNode added in v1.3.0

func (m *MockedAPIProvider) AddNode(obj *v1.Node)

func (*MockedAPIProvider) AddPod added in v1.3.0

func (m *MockedAPIProvider) AddPod(obj *v1.Pod)

func (*MockedAPIProvider) AddPriorityClass added in v1.3.0

func (m *MockedAPIProvider) AddPriorityClass(obj *schedv1.PriorityClass)

func (*MockedAPIProvider) DeleteConfigMap added in v1.3.0

func (m *MockedAPIProvider) DeleteConfigMap(obj *v1.ConfigMap)

func (*MockedAPIProvider) DeleteNode added in v1.3.0

func (m *MockedAPIProvider) DeleteNode(obj *v1.Node)

func (*MockedAPIProvider) DeletePod added in v1.3.0

func (m *MockedAPIProvider) DeletePod(obj *v1.Pod)

func (*MockedAPIProvider) DeletePriorityClass added in v1.3.0

func (m *MockedAPIProvider) DeletePriorityClass(obj *schedv1.PriorityClass)

func (*MockedAPIProvider) GetAPIs

func (m *MockedAPIProvider) GetAPIs() *Clients

func (*MockedAPIProvider) GetBoundPods added in v1.5.0

func (m *MockedAPIProvider) GetBoundPods(clear bool) []BoundPod

func (*MockedAPIProvider) GetNodeListerMock added in v1.4.0

func (m *MockedAPIProvider) GetNodeListerMock() *test.NodeListerMock

func (*MockedAPIProvider) GetPodBindStats added in v1.3.0

func (m *MockedAPIProvider) GetPodBindStats() BindStats

func (*MockedAPIProvider) GetPodListerMock added in v1.4.0

func (m *MockedAPIProvider) GetPodListerMock() *test.PodListerMock

func (*MockedAPIProvider) GetSchedulerAPIRegisterCount

func (m *MockedAPIProvider) GetSchedulerAPIRegisterCount() int32

func (*MockedAPIProvider) GetSchedulerAPIUpdateAllocationCount

func (m *MockedAPIProvider) GetSchedulerAPIUpdateAllocationCount() int32

func (*MockedAPIProvider) GetSchedulerAPIUpdateApplicationCount

func (m *MockedAPIProvider) GetSchedulerAPIUpdateApplicationCount() int32

func (*MockedAPIProvider) GetSchedulerAPIUpdateNodeCount

func (m *MockedAPIProvider) GetSchedulerAPIUpdateNodeCount() int32

func (*MockedAPIProvider) IsTestingMode

func (m *MockedAPIProvider) IsTestingMode() bool

func (*MockedAPIProvider) MockBindFn

func (m *MockedAPIProvider) MockBindFn(bfn func(pod *v1.Pod, hostID string) error)

func (*MockedAPIProvider) MockCreateFn

func (m *MockedAPIProvider) MockCreateFn(cfn func(pod *v1.Pod) (*v1.Pod, error))

func (*MockedAPIProvider) MockDeleteFn

func (m *MockedAPIProvider) MockDeleteFn(dfn func(pod *v1.Pod) error)

func (*MockedAPIProvider) MockGetFn

func (m *MockedAPIProvider) MockGetFn(cfn func(podName string) (*v1.Pod, error))

func (*MockedAPIProvider) MockSchedulerAPIUpdateAllocationFn

func (m *MockedAPIProvider) MockSchedulerAPIUpdateAllocationFn(ufn func(request *si.AllocationRequest) error)

func (*MockedAPIProvider) MockSchedulerAPIUpdateApplicationFn

func (m *MockedAPIProvider) MockSchedulerAPIUpdateApplicationFn(ufn func(request *si.ApplicationRequest) error)

func (*MockedAPIProvider) MockSchedulerAPIUpdateNodeFn

func (m *MockedAPIProvider) MockSchedulerAPIUpdateNodeFn(ufn func(request *si.NodeRequest) error)

func (*MockedAPIProvider) MockUpdateStatusFn

func (m *MockedAPIProvider) MockUpdateStatusFn(cfn func(pod *v1.Pod) (*v1.Pod, error))

func (*MockedAPIProvider) RunEventHandler added in v1.3.0

func (m *MockedAPIProvider) RunEventHandler()

func (*MockedAPIProvider) SetNodeLister

func (m *MockedAPIProvider) SetNodeLister(lister corev1.NodeLister)

func (*MockedAPIProvider) SetPodLister

func (m *MockedAPIProvider) SetPodLister(lister corev1.PodLister)

func (*MockedAPIProvider) SetVolumeBinder added in v1.5.1

func (m *MockedAPIProvider) SetVolumeBinder(binder volumebinding.SchedulerVolumeBinder)

func (*MockedAPIProvider) Start

func (m *MockedAPIProvider) Start()

func (*MockedAPIProvider) Stop

func (m *MockedAPIProvider) Stop()

func (*MockedAPIProvider) UpdateConfigMap added in v1.3.0

func (m *MockedAPIProvider) UpdateConfigMap(oldObj *v1.ConfigMap, newObj *v1.ConfigMap)

func (*MockedAPIProvider) UpdateNode added in v1.3.0

func (m *MockedAPIProvider) UpdateNode(oldObj *v1.Node, newObj *v1.Node)

func (*MockedAPIProvider) UpdatePod added in v1.3.0

func (m *MockedAPIProvider) UpdatePod(oldObj *v1.Pod, newObj *v1.Pod)

func (*MockedAPIProvider) UpdatePriorityClass added in v1.3.0

func (m *MockedAPIProvider) UpdatePriorityClass(oldObj *schedv1.PriorityClass, newObj *schedv1.PriorityClass)

func (*MockedAPIProvider) WaitForSync

func (m *MockedAPIProvider) WaitForSync()

type MockedCSIDriverInformer added in v1.6.0

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

func NewMockedCSIDriverInformer added in v1.6.0

func NewMockedCSIDriverInformer() *MockedCSIDriverInformer

func (*MockedCSIDriverInformer) Informer added in v1.6.0

func (*MockedCSIDriverInformer) Lister added in v1.6.0

type MockedCSINodeInformer added in v1.6.0

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

func NewMockedCSINodeInformer added in v1.6.0

func NewMockedCSINodeInformer() *MockedCSINodeInformer

func (*MockedCSINodeInformer) Informer added in v1.6.0

func (*MockedCSINodeInformer) Lister added in v1.6.0

type MockedCSIStorageCapacityInformer added in v1.6.0

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

func NewMockedCSIStorageCapacityInformer added in v1.6.0

func NewMockedCSIStorageCapacityInformer() *MockedCSIStorageCapacityInformer

func (*MockedCSIStorageCapacityInformer) Informer added in v1.6.0

func (*MockedCSIStorageCapacityInformer) Lister added in v1.6.0

type MockedPersistentVolumeClaimInformer

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

MockedPersistentVolumeClaimInformer implements PersistentVolumeClaimInformer interface

func NewMockedPersistentVolumeClaimInformer added in v1.6.0

func NewMockedPersistentVolumeClaimInformer() *MockedPersistentVolumeClaimInformer

func (*MockedPersistentVolumeClaimInformer) Informer

func (*MockedPersistentVolumeClaimInformer) Lister

type MockedPersistentVolumeInformer

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

MockedPersistentVolumeInformer implements PersistentVolumeInformer interface

func NewMockedPersistentVolumeInformer added in v1.6.0

func NewMockedPersistentVolumeInformer() *MockedPersistentVolumeInformer

func (*MockedPersistentVolumeInformer) Informer

func (*MockedPersistentVolumeInformer) Lister

type MockedReplicaSetInformer added in v1.6.0

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

func NewMockedReplicaSetInformer added in v1.6.0

func NewMockedReplicaSetInformer() *MockedReplicaSetInformer

func (*MockedReplicaSetInformer) Informer added in v1.6.0

func (*MockedReplicaSetInformer) Lister added in v1.6.0

type MockedReplicationControllerInformer added in v1.6.0

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

func NewMockedReplicationControllerInformer added in v1.6.0

func NewMockedReplicationControllerInformer() *MockedReplicationControllerInformer

func (*MockedReplicationControllerInformer) Informer added in v1.6.0

func (*MockedReplicationControllerInformer) Lister added in v1.6.0

type MockedServiceInformer added in v1.6.0

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

func NewMockedServiceInformer added in v1.6.0

func NewMockedServiceInformer() *MockedServiceInformer

func (*MockedServiceInformer) Informer added in v1.6.0

func (*MockedServiceInformer) Lister added in v1.6.0

type MockedStatefulSetInformer added in v1.6.0

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

func NewMockedStatefulSetInformer added in v1.6.0

func NewMockedStatefulSetInformer() *MockedStatefulSetInformer

func (*MockedStatefulSetInformer) Informer added in v1.6.0

func (*MockedStatefulSetInformer) Lister added in v1.6.0

type MockedStorageClassInformer

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

MockedStorageClassInformer implements StorageClassInformer interface

func NewMockedStorageClassInformer added in v1.6.0

func NewMockedStorageClassInformer() *MockedStorageClassInformer

func (*MockedStorageClassInformer) Informer

func (*MockedStorageClassInformer) Lister

type ResourceEventHandlers

type ResourceEventHandlers struct {
	Type
	FilterFn func(obj interface{}) bool
	AddFn    func(obj interface{})
	UpdateFn func(old, new interface{})
	DeleteFn func(obj interface{})
}

resource handlers defines add/update/delete operations in response to the corresponding resources updates. The associated the type field points the handler functions to the correct receiver.

type SchedulerKubeClient

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

func (SchedulerKubeClient) Bind

func (nc SchedulerKubeClient) Bind(pod *v1.Pod, hostID string) error

func (SchedulerKubeClient) Create

func (nc SchedulerKubeClient) Create(pod *v1.Pod) (*v1.Pod, error)

func (SchedulerKubeClient) Delete

func (nc SchedulerKubeClient) Delete(pod *v1.Pod) error

func (SchedulerKubeClient) Get

func (nc SchedulerKubeClient) Get(podNamespace string, podName string) (*v1.Pod, error)

func (SchedulerKubeClient) GetClientSet

func (nc SchedulerKubeClient) GetClientSet() kubernetes.Interface

func (SchedulerKubeClient) GetConfigMap added in v1.2.0

func (nc SchedulerKubeClient) GetConfigMap(namespace string, name string) (*v1.ConfigMap, error)

func (SchedulerKubeClient) GetConfigs

func (nc SchedulerKubeClient) GetConfigs() *rest.Config

func (SchedulerKubeClient) UpdatePod added in v1.2.0

func (nc SchedulerKubeClient) UpdatePod(pod *v1.Pod, podMutator func(pod *v1.Pod)) (*v1.Pod, error)

func (SchedulerKubeClient) UpdateStatus

func (nc SchedulerKubeClient) UpdateStatus(pod *v1.Pod) (*v1.Pod, error)

type Type

type Type int
const (
	PodInformerHandlers Type = iota
	NodeInformerHandlers
	ConfigMapInformerHandlers
	PVInformerHandlers
	PVCInformerHandlers
	StorageInformerHandlers
	CSINodeInformerHandlers
	CSIDriverInformerHandlers
	CSIStorageCapacityInformerHandlers
	NamespaceInformerHandlers
	PriorityClassInformerHandlers
	ServiceInformerHandlers
	ReplicationControllerInformerHandlers
	ReplicaSetInformerHandlers
	StatefulSetInformerHandlers
)

func (Type) String added in v1.3.0

func (t Type) String() string

Jump to

Keyboard shortcuts

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