csi

package
v0.0.0-...-735b8cc Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2022 License: Apache-2.0 Imports: 41 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// CSIPluginName is the name of the in-tree CSI Plugin
	CSIPluginName = "kubernetes.io/csi"

	// CsiResyncPeriod is default resync period duration
	// TODO: increase to something useful
	CsiResyncPeriod = time.Minute
)
View Source
const (
	// TestInformerSyncPeriod is informer sync period duration for testing
	TestInformerSyncPeriod = 100 * time.Millisecond
	// TestInformerSyncTimeout is informer timeout duration for testing
	TestInformerSyncTimeout = 30 * time.Second
)

Variables

This section is empty.

Functions

func GetCSIMounterPath

func GetCSIMounterPath(path string) string

GetCSIMounterPath returns the mounter path given the base path.

func NewMetricsCsi

func NewMetricsCsi(volumeID string, targetPath string, driverName csiDriverName, csiDrivers *DriversStore) volume.MetricsProvider

NewMetricsCsi creates a new metricsCsi with the Volume ID and path.

func ProbeVolumePlugins

func ProbeVolumePlugins(nim nodeinfomanager.Interface, l *kubehelper.CSIDriverLister, csiDrivers *DriversStore) []volume.VolumePlugin

ProbeVolumePlugins returns implemented plugins

Types

type Driver

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

driver is a description of a CSI driver, defined by an enpoint and the highest CSI version supported

type DriversStore

type DriversStore struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

DriversStore holds a list of CSI Drivers

func (*DriversStore) Clear

func (s *DriversStore) Clear()

Clear deletes all entries in the store. This methiod is protected by a mutex.

func (*DriversStore) Delete

func (s *DriversStore) Delete(driverName string)

Delete lets you delete a CSI driver by name. This method is protected by a mutex.

func (*DriversStore) Get

func (s *DriversStore) Get(driverName string) (Driver, bool)

Get lets you retrieve a CSI driver by name. This method is protected by a mutex.

func (*DriversStore) Set

func (s *DriversStore) Set(driverName string, driver Driver)

Set lets you save a CSI driver to the list and give it a specific name. This method is protected by a mutex.

type RegistrationHandler

type RegistrationHandler struct {
	NodeInfoManager nodeinfomanager.Interface
	CSIDrivers      *DriversStore
}

RegistrationHandler is the handler which is fed to the pluginwatcher API.

func (*RegistrationHandler) DeRegisterPlugin

func (h *RegistrationHandler) DeRegisterPlugin(pluginName string)

DeRegisterPlugin is called when a plugin removed its socket, signaling it is no longer available

func (*RegistrationHandler) RegisterPlugin

func (h *RegistrationHandler) RegisterPlugin(pluginName string, endpoint string, versions []string) error

RegisterPlugin is called when a plugin can be registered

func (*RegistrationHandler) ValidatePlugin

func (h *RegistrationHandler) ValidatePlugin(pluginName string, endpoint string, versions []string) error

ValidatePlugin is called by kubelet's plugin watcher upon detection of a new registration socket opened by CSI driver registrar side car.

type VolumeHost

type VolumeHost interface {

	// SetKubeletError lets plugins set an error on the Kubelet runtime status
	// that will cause the Kubelet to post NotReady status with the error message provided
	SetKubeletError(err error)
	// GetInformerFactory returns the informer factory for CSIDriverLister
	GetInformerFactory() informers.SharedInformerFactory
	// CSIDriverLister returns the informer lister for the CSIDriver API Object
	CSIDriverLister() *kubehelper.CSIDriverLister
	// CSIDriverSynced returns the informer synced for the CSIDriver API Object
	CSIDriversSynced() cache.InformerSynced
	// WaitForCacheSync is a helper function that waits for cache sync for CSIDriverLister
	WaitForCacheSync() error
	// Returns hostutil.HostUtils
	GetHostUtil() hostutil.HostUtils

	volume.VolumeHost
}

VolumeHost is a AttachDetach Controller specific interface that plugins can use to access methods on the Attach Detach Controller.

Jump to

Keyboard shortcuts

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