driver

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2023 License: Apache-2.0 Imports: 47 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MB = 1000 * 1000
	GB = 1000 * 1000 * 1000
	Mi = 1024 * 1024
	Gi = 1024 * 1024 * 1024
)

size constants

View Source
const (
	// pick the node where less volumes are provisioned for the given device name
	VolumeWeighted = "VolumeWeighted"

	// pick the node where total provisioned volumes have occupied less capacity from the given device name
	// this will be the default scheduler when none provided
	CapacityWeighted = "CapacityWeighted"
)

scheduling algorithm constants

Variables

SupportedVolumeCapabilityAccessModes contains the list of supported access modes for the volume

Functions

func CreateDeviceVolume

func CreateDeviceVolume(ctx context.Context, req *csi.CreateVolumeRequest,
	params *VolumeParams) (*apis.DeviceVolume, error)

CreateDeviceVolume create new device volume for csi volume request

func GetVolAndMountInfo

func GetVolAndMountInfo(
	req *csi.NodePublishVolumeRequest,
) (*apis.DeviceVolume, *device.MountInfo, error)

GetVolAndMountInfo get volume and mount info from node csi volume request

func GetVolumeCapabilityAccessModes

func GetVolumeCapabilityAccessModes() []*csi.VolumeCapability_AccessMode

GetVolumeCapabilityAccessModes fetches the access modes on which the volume can be exposed

func IsSupportedVolumeCapabilityAccessMode

func IsSupportedVolumeCapabilityAccessMode(
	accessMode csi.VolumeCapability_AccessMode_Mode,
) bool

IsSupportedVolumeCapabilityAccessMode valides the requested access mode

func LabelIndexFunc

func LabelIndexFunc(label string) cache.IndexFunc

LabelIndexFunc defines index values for given label.

func LabelIndexName

func LabelIndexName(label string) string

LabelIndexName add prefix for label index.

func NewController

func NewController(d *CSIDriver) csi.ControllerServer

NewController returns a new instance of CSI controller

func NewIdentity

func NewIdentity(d *CSIDriver) csi.IdentityServer

NewIdentity returns a new instance of CSI IdentityServer

func NewNode

func NewNode(d *CSIDriver) csi.NodeServer

NewNode returns a new instance of CSI NodeServer

Types

type CSIDriver

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

CSIDriver defines a common data structure for drivers TODO check if this can be renamed to Base

func New

func New(config *config.Config) *CSIDriver

New returns a new driver instance

func (*CSIDriver) Run

func (d *CSIDriver) Run() error

Run starts the CSI plugin by communicating over the given endpoint

type NonBlockingGRPCServer

type NonBlockingGRPCServer interface {
	// Start services at the endpoint
	Start()

	// Waits for the service to stop
	Wait()

	// Stops the service gracefully
	Stop()

	// Stops the service forcefully
	ForceStop()
}

NonBlockingGRPCServer defines Non blocking GRPC server interfaces

func NewNonBlockingGRPCServer

func NewNonBlockingGRPCServer(ep string, ids csi.IdentityServer, cs csi.ControllerServer, ns csi.NodeServer) NonBlockingGRPCServer

NewNonBlockingGRPCServer returns a new instance of NonBlockingGRPCServer

type VolumeParams

type VolumeParams struct {
	// DeviceName specifies device name /  meta partition name to use for
	// provisioning logical volumes.
	DeviceName string

	Scheduler string
	Shared    string

	// extra optional metadata passed by external provisioner
	// if enabled. See --extra-create-metadata flag for more details.
	// https://github.com/kubernetes-csi/external-provisioner#recommended-optional-arguments
	PVCName      string
	PVCNamespace string
	PVName       string
}

VolumeParams holds collection of supported settings that can be configured in storage class.

func NewVolumeParams

func NewVolumeParams(m map[string]string) (*VolumeParams, error)

NewVolumeParams parses the input params and instantiates new VolumeParams.

Jump to

Keyboard shortcuts

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