package csi

import "k8s.io/kubernetes/pkg/volume/csi"

Index

Constants

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

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 NewCSINodeUpdater

func NewCSINodeUpdater(driverInformer cache.SharedIndexInformer) (*csiNodeUpdater, error)

NewCSINodeUpdater creates a new csiNodeUpdater

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 {
	// contains filtered or unexported fields
}

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

func (*RegistrationHandler) DeRegisterPlugin

func (h *RegistrationHandler) DeRegisterPlugin(pluginName, endpoint 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, pluginClientTimeout *time.Duration) 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.

Source Files

csi_attacher.go csi_block.go csi_client.go csi_drivers_store.go csi_metrics.go csi_mounter.go csi_node_updater.go csi_plugin.go csi_util.go expander.go

Directories

PathSynopsis
pkg/volume/csi/fake
pkg/volume/csi/nodeinfomanagerPackage nodeinfomanager includes internal functions used to add/delete labels to kubernetes nodes for corresponding CSI drivers
pkg/volume/csi/testing
Version
v1.33.0 (latest)
Published
Apr 23, 2025
Platform
linux/amd64
Imports
45 packages
Last checked
3 hours ago

Tools for package owners.