driver

package
v1.9.3 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2021 License: Apache-2.0 Imports: 45 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 pool
	VolumeWeighted = "VolumeWeighted"

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

scheduling algorithm constants

Variables

View Source
var SupportedVolumeCapabilityAccessModes = []*csi.VolumeCapability_AccessMode{
	{
		Mode: csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER,
	},
}

SupportedVolumeCapabilityAccessModes contains the list of supported access modes for the volume

Functions

func CreateSnapClone added in v1.1.0

func CreateSnapClone(ctx context.Context, req *csi.CreateVolumeRequest, snapshot string) (string, error)

CreateSnapClone creates the clone from a snapshot

func CreateVolClone added in v1.1.0

func CreateVolClone(ctx context.Context, req *csi.CreateVolumeRequest, srcVol string) (string, error)

CreateVolClone creates the clone from a volume

func CreateZFSVolume

func CreateZFSVolume(ctx context.Context, req *csi.CreateVolumeRequest) (string, error)

CreateZFSVolume create new zfs volume from csi volume request

func GetVolAndMountInfo

func GetVolAndMountInfo(
	req *csi.NodePublishVolumeRequest,
) (*apis.ZFSVolume, *zfs.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 added in v1.8.0

func LabelIndexFunc(label string) cache.IndexFunc

LabelIndexFunc defines index values for given label.

func LabelIndexName added in v1.8.0

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

Jump to

Keyboard shortcuts

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