csi

package
v1.28.0-alpha.3...-059ce4e Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2023 License: Apache-2.0 Imports: 44 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

View Source
var PluginHandler = &RegistrationHandler{}

PluginHandler is the plugin registration handler interface passed to the pluginwatcher module in kubelet

Functions

func GetCSIDriverName

func GetCSIDriverName(spec *volume.Spec) (string, error)

GetCSIDriverName returns the csi driver name

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) volume.MetricsProvider

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

func ProbeVolumePlugins

func ProbeVolumePlugins() []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 endpoint 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 MetricsManager

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

MetricsManager defines the metrics manager for CSI operation

func NewCSIMetricsManager

func NewCSIMetricsManager(driverName string) *MetricsManager

NewCSIMetricsManager creates a CSIMetricsManager object

func (*MetricsManager) RecordMetricsInterceptor

func (cmm *MetricsManager) RecordMetricsInterceptor(
	ctx context.Context,
	method string,
	req, reply interface{},
	cc *grpc.ClientConn,
	invoker grpc.UnaryInvoker,
	opts ...grpc.CallOption) error

RecordMetricsInterceptor is a grpc interceptor that is used to record CSI operation

type RegistrationHandler

type RegistrationHandler struct {
}

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.

Directories

Path Synopsis
Package nodeinfomanager includes internal functions used to add/delete labels to kubernetes nodes for corresponding CSI drivers
Package nodeinfomanager includes internal functions used to add/delete labels to kubernetes nodes for corresponding CSI drivers

Jump to

Keyboard shortcuts

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