Documentation ¶
Index ¶
- Constants
- Variables
- func CreateSnapClone(ctx context.Context, req *csi.CreateVolumeRequest, snapshot string) (string, error)
- func CreateVolClone(ctx context.Context, req *csi.CreateVolumeRequest, srcVol string) (string, error)
- func CreateZFSVolume(ctx context.Context, req *csi.CreateVolumeRequest) (string, error)
- func GetVolAndMountInfo(req *csi.NodePublishVolumeRequest) (*apis.ZFSVolume, *zfs.MountInfo, error)
- func GetVolumeCapabilityAccessModes() []*csi.VolumeCapability_AccessMode
- func IsSupportedVolumeCapabilityAccessMode(accessMode csi.VolumeCapability_AccessMode_Mode) bool
- func LabelIndexFunc(label string) cache.IndexFunc
- func LabelIndexName(label string) string
- func NewController(d *CSIDriver) csi.ControllerServer
- func NewIdentity(d *CSIDriver) csi.IdentityServer
- func NewNode(d *CSIDriver) csi.NodeServer
- type CSIDriver
- type NonBlockingGRPCServer
Constants ¶
const ( MB = 1000 * 1000 GB = 1000 * 1000 * 1000 Mi = 1024 * 1024 Gi = 1024 * 1024 * 1024 )
size constants
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 ¶
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 ¶
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
LabelIndexFunc defines index values for given label.
func LabelIndexName ¶ added in v1.8.0
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
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