client

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2022 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

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)

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() error

type APIProvider

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

type Clients

type Clients struct {
	// configs
	Conf *conf.SchedulerConf

	// client apis
	KubeClient   KubeClient
	SchedulerAPI api.SchedulerAPI
	AppClient    appclient.Interface

	// 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
	NamespaceInformer coreInformerV1.NamespaceInformer
	AppInformer       v1alpha1.ApplicationInformer

	// volume binder handles PV/PVC related operations
	VolumeBinder scheduling.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(interval time.Duration, timeout time.Duration) error

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 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
}

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(showError 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) GetClientSet

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

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) UpdateStatus

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

type MockedAPIProvider

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

func NewMockedAPIProvider

func NewMockedAPIProvider(showError bool) *MockedAPIProvider

func (*MockedAPIProvider) AddEventHandler

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

func (*MockedAPIProvider) GetAPIs

func (m *MockedAPIProvider) GetAPIs() *Clients

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) SetNodeLister

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

func (*MockedAPIProvider) SetPodLister

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

func (*MockedAPIProvider) Start

func (m *MockedAPIProvider) Start()

func (*MockedAPIProvider) Stop

func (m *MockedAPIProvider) Stop()

func (*MockedAPIProvider) WaitForSync

func (m *MockedAPIProvider) WaitForSync() error

type MockedPersistentVolumeClaimInformer

type MockedPersistentVolumeClaimInformer struct{}

MockedPersistentVolumeClaimInformer implements PersistentVolumeClaimInformer interface

func (*MockedPersistentVolumeClaimInformer) Informer

func (*MockedPersistentVolumeClaimInformer) Lister

type MockedPersistentVolumeInformer

type MockedPersistentVolumeInformer struct{}

MockedPersistentVolumeInformer implements PersistentVolumeInformer interface

func (*MockedPersistentVolumeInformer) Informer

func (*MockedPersistentVolumeInformer) Lister

type MockedStorageClassInformer

type MockedStorageClassInformer struct{}

MockedStorageClassInformer implements StorageClassInformer interface

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) GetConfigs

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

func (SchedulerKubeClient) UpdateStatus

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

type Type

type Type int
const (
	PodInformerHandlers Type = iota
	NodeInformerHandlers
	ConfigMapInformerHandlers
	StorageInformerHandlers
	PVInformerHandlers
	PVCInformerHandlers
	ApplicationInformerHandlers
)

Directories

Path Synopsis
clientset
versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
versioned/typed/yunikorn.apache.org/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
versioned/typed/yunikorn.apache.org/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
informers
listers

Jump to

Keyboard shortcuts

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