driver

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 37 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultDriverName defines the name that is used in Kubernetes and the CSI
	// system for the canonical, official name of this plugin
	DefaultDriverName = "yandex.csi.flant.com"
	// DefaultAddress is the default address that the csi plugin will serve its
	// http handler on.
	DefaultAddress     = "127.0.0.1:12302"
	DefaultClusterUUID = "default"
)

Variables

This section is empty.

Functions

func GetCommit

func GetCommit() string

func GetTreeState

func GetTreeState() string

func GetVersion

func GetVersion() string

func NewMountError added in v0.9.12

func NewMountError(mountErrorValue MountErrorType, format string, args ...interface{}) error

Types

type Driver

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

Driver implements the following CSI interfaces:

csi.IdentityServer
csi.ControllerServer
csi.NodeServer

func NewDriver

func NewDriver(ep, authKeysStr, folderID, driverName, address, clusterUUID string) (*Driver, error)

NewDriver returns a CSI plugin that contains the necessary gRPC interfaces to interact with Kubernetes over unix domain sockets for managaing Yandex Disks

func (*Driver) ControllerExpandVolume

ControllerExpandVolume is called from the resizer to increase the volume size.

func (*Driver) ControllerGetCapabilities

ControllerGetCapabilities returns the capabilities of the controller service.

func (*Driver) ControllerPublishVolume

ControllerPublishVolume attaches the given volume to the node

func (*Driver) ControllerUnpublishVolume

ControllerUnpublishVolume deattaches the given volume from the node

func (*Driver) CreateVolume

func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest) (*csi.CreateVolumeResponse, error)

CreateVolume creates a new volume from the given request. The function is idempotent.

func (*Driver) DeleteVolume

func (d *Driver) DeleteVolume(ctx context.Context, req *csi.DeleteVolumeRequest) (*csi.DeleteVolumeResponse, error)

DeleteVolume deletes the given volume. The function is idempotent.

func (*Driver) GetCapacity

GetCapacity returns the capacity of the storage pool

func (*Driver) GetPluginCapabilities

GetPluginCapabilities returns available capabilities of the plugin

func (*Driver) GetPluginInfo

GetPluginInfo returns metadata of the plugin

func (*Driver) ListVolumes

func (d *Driver) ListVolumes(ctx context.Context, req *csi.ListVolumesRequest) (*csi.ListVolumesResponse, error)

ListVolumes returns a list of all requested volumes

func (*Driver) NodeExpandVolume

func (*Driver) NodeGetCapabilities

NodeGetCapabilities returns the supported capabilities of the node server

func (*Driver) NodeGetInfo

NodeGetInfo returns the supported capabilities of the node server. This should eventually return the droplet ID if possible. This is used so the CO knows where to place the workload. The result of this function will be used by the CO in ControllerPublishVolume.

func (*Driver) NodeGetVolumeStats

NodeGetVolumeStats returns the volume capacity statistics available for the the given volume.

func (*Driver) NodePublishVolume

NodePublishVolume mounts the volume mounted to the staging path to the target path

func (*Driver) NodeStageVolume

NodeStageVolume mounts the volume to a staging path on the node. This is called by the CO before NodePublishVolume and is used to temporary mount the volume to a staging path. Once mounted, NodePublishVolume will make sure to mount it to the appropriate path

func (*Driver) NodeUnpublishVolume

NodeUnpublishVolume unmounts the volume from the target path

func (*Driver) NodeUnstageVolume

NodeUnstageVolume unstages the volume from the staging path

func (*Driver) Probe

Probe returns the health and readiness of the plugin

func (*Driver) Run

func (d *Driver) Run(ctx context.Context) error

Run starts the CSI plugin by communication over the given endpoint

func (*Driver) ValidateVolumeCapabilities

ValidateVolumeCapabilities checks whether the volume capabilities requested are supported.

type HealthCheck

type HealthCheck interface {
	Name() string
	Check(context.Context) error
}

HealthCheck is the interface that must be implemented to be compatible with `HealthChecker`.

type HealthChecker

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

HealthChecker helps with writing multi component health checkers.

func NewHealthChecker

func NewHealthChecker(checks ...HealthCheck) *HealthChecker

NewHealthChecker configures a new health checker with the passed in checks.

func (*HealthChecker) Check

func (c *HealthChecker) Check(ctx context.Context) error

Check runs all configured health checks and return an error if any of the checks fail.

type MountError added in v0.9.12

type MountError struct {
	Type    MountErrorType
	Message string
}

func (MountError) Error added in v0.9.12

func (mountError MountError) Error() string

func (MountError) String added in v0.9.12

func (mountError MountError) String() string

type MountErrorType added in v0.9.12

type MountErrorType string
const (
	HasFilesystemErrors MountErrorType = "HasFilesystemErrors"
)

type Mounter

type Mounter interface {
	// Format formats the source with the given filesystem type
	Format(source, fsType string) error

	// Mount mounts source to target with the given fstype and options.
	Mount(source, target, fsType string, options ...string) error

	// Unmount unmounts the given target
	Unmount(target string) error

	// IsFormatted checks whether the source device is formatted or not. It
	// returns true if the source device is already formatted.
	IsFormatted(source string) (bool, error)

	// IsMounted checks whether the target path is a correct mount (i.e:
	// propagated). It returns true if it's mounted. An error is returned in
	// case of system errors or if it's mounted incorrectly.
	IsMounted(target string) (bool, error)

	// GetStatistics returns capacity-related volume statistics for the given
	// volume path.
	GetStatistics(volumePath string) (volumeStatistics, error)

	// IsBlockDevice checks whether the device at the path is a block device
	IsBlockDevice(volumePath string) (bool, error)
}

Mounter is responsible for formatting and mounting volumes

type RwMap

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

func NewRwMap

func NewRwMap() *RwMap

func (*RwMap) PutVolId

func (rwMap *RwMap) PutVolId(volID string)

func (*RwMap) RemoveVolId

func (rwMap *RwMap) RemoveVolId(volID string)

func (*RwMap) VolIdExists

func (rwMap *RwMap) VolIdExists(volID string) bool

Jump to

Keyboard shortcuts

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