Documentation
¶
Index ¶
- Constants
- Variables
- type Args
- type ControllerServer
- func (s *ControllerServer) ControllerExpandVolume(ctx context.Context, req *csi.ControllerExpandVolumeRequest) (*csi.ControllerExpandVolumeResponse, error)
- func (s *ControllerServer) ControllerGetCapabilities(ctx context.Context, req *csi.ControllerGetCapabilitiesRequest) (*csi.ControllerGetCapabilitiesResponse, error)
- func (s *ControllerServer) ControllerGetVolume(ctx context.Context, req *csi.ControllerGetVolumeRequest) (*csi.ControllerGetVolumeResponse, error)
- func (s *ControllerServer) ControllerPublishVolume(ctx context.Context, req *csi.ControllerPublishVolumeRequest) (*csi.ControllerPublishVolumeResponse, error)
- func (s *ControllerServer) ControllerUnpublishVolume(ctx context.Context, req *csi.ControllerUnpublishVolumeRequest) (*csi.ControllerUnpublishVolumeResponse, error)
- func (s *ControllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateSnapshotRequest) (*csi.CreateSnapshotResponse, error)
- func (s *ControllerServer) CreateSnapshotOnNS(nsProvider ns.ProviderInterface, volumePath, snapName string) (snapshot ns.Snapshot, err error)
- func (s *ControllerServer) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest) (res *csi.CreateVolumeResponse, err error)
- func (s *ControllerServer) DeleteSnapshot(ctx context.Context, req *csi.DeleteSnapshotRequest) (*csi.DeleteSnapshotResponse, error)
- func (s *ControllerServer) DeleteVolume(ctx context.Context, req *csi.DeleteVolumeRequest) (*csi.DeleteVolumeResponse, error)
- func (s *ControllerServer) GetCapacity(ctx context.Context, req *csi.GetCapacityRequest) (*csi.GetCapacityResponse, error)
- func (s *ControllerServer) ListSnapshots(ctx context.Context, req *csi.ListSnapshotsRequest) (*csi.ListSnapshotsResponse, error)
- func (s *ControllerServer) ListVolumes(ctx context.Context, req *csi.ListVolumesRequest) (*csi.ListVolumesResponse, error)
- func (s *ControllerServer) ValidateVolumeCapabilities(ctx context.Context, req *csi.ValidateVolumeCapabilitiesRequest) (*csi.ValidateVolumeCapabilitiesResponse, error)
- type Driver
- type IdentityServer
- func (ids *IdentityServer) GetPluginCapabilities(ctx context.Context, req *csi.GetPluginCapabilitiesRequest) (*csi.GetPluginCapabilitiesResponse, error)
- func (ids *IdentityServer) GetPluginInfo(ctx context.Context, req *csi.GetPluginInfoRequest) (*csi.GetPluginInfoResponse, error)
- func (ids *IdentityServer) Probe(ctx context.Context, req *csi.ProbeRequest) (*csi.ProbeResponse, error)
- type NodeServer
- func (s *NodeServer) GetMountPointPermissions(volumeContext map[string]string) (os.FileMode, error)
- func (s *NodeServer) GetV13CompatibleConfigName() (string, error)
- func (s *NodeServer) NodeExpandVolume(ctx context.Context, req *csi.NodeExpandVolumeRequest) (*csi.NodeExpandVolumeResponse, error)
- func (s *NodeServer) NodeGetCapabilities(ctx context.Context, req *csi.NodeGetCapabilitiesRequest) (*csi.NodeGetCapabilitiesResponse, error)
- func (s *NodeServer) NodeGetInfo(ctx context.Context, req *csi.NodeGetInfoRequest) (*csi.NodeGetInfoResponse, error)
- func (s *NodeServer) NodeGetVolumeStats(ctx context.Context, req *csi.NodeGetVolumeStatsRequest) (*csi.NodeGetVolumeStatsResponse, error)
- func (s *NodeServer) NodePublishVolume(ctx context.Context, req *csi.NodePublishVolumeRequest) (*csi.NodePublishVolumeResponse, error)
- func (s *NodeServer) NodeStageVolume(ctx context.Context, req *csi.NodeStageVolumeRequest) (*csi.NodeStageVolumeResponse, error)
- func (s *NodeServer) NodeUnpublishVolume(ctx context.Context, req *csi.NodeUnpublishVolumeRequest) (*csi.NodeUnpublishVolumeResponse, error)
- func (s *NodeServer) NodeUnstageVolume(ctx context.Context, req *csi.NodeUnstageVolumeRequest) (*csi.NodeUnstageVolumeResponse, error)
- type ResolveNSParams
- type ResolveNSResponse
- type Role
- type VolumeInfo
Constants ¶
const DefaultMountPointPermissions = 0777
const TopologyKeyZone = "topology.kubernetes.io/zone"
Variables ¶
var Commit string
Commit - driver last commit, to set commit set flags: go build -ldflags "-X github.com/Nexenta/nexentastor-csi-driver/pkg/driver.Commit=..."
var DateTime string
DateTime - driver build datetime, to set commit set flags: go build -ldflags "-X github.com/Nexenta/nexentastor-csi-driver/pkg/driver.DateTime=..."
var Name = "nexentastor-csi-driver.nexenta.com"
Name - driver name
var Roles = []Role{RoleAll, RoleController, RoleNode}
Roles - list of the driver roles
var Version string
Version - driver version, to set version set flags: go build -ldflags "-X github.com/Nexenta/nexentastor-csi-driver/pkg/driver.Version=0.0.1"
Functions ¶
This section is empty.
Types ¶
type Args ¶
type Args struct { Role Role NodeID string Endpoint string Config *config.Config Log *logrus.Entry }
Args - params to crete new driver
type ControllerServer ¶
type ControllerServer struct {
// contains filtered or unexported fields
}
ControllerServer - k8s csi driver controller server
func NewControllerServer ¶
func NewControllerServer(driver *Driver) (*ControllerServer, error)
NewControllerServer - create an instance of controller service
func (*ControllerServer) ControllerExpandVolume ¶
func (s *ControllerServer) ControllerExpandVolume(ctx context.Context, req *csi.ControllerExpandVolumeRequest) ( *csi.ControllerExpandVolumeResponse, error, )
func (*ControllerServer) ControllerGetCapabilities ¶
func (s *ControllerServer) ControllerGetCapabilities(ctx context.Context, req *csi.ControllerGetCapabilitiesRequest) ( *csi.ControllerGetCapabilitiesResponse, error, )
ControllerGetCapabilities - controller capabilities
func (*ControllerServer) ControllerGetVolume ¶ added in v1.4.10
func (s *ControllerServer) ControllerGetVolume(ctx context.Context, req *csi.ControllerGetVolumeRequest) ( *csi.ControllerGetVolumeResponse, error, )
func (*ControllerServer) ControllerPublishVolume ¶
func (s *ControllerServer) ControllerPublishVolume(ctx context.Context, req *csi.ControllerPublishVolumeRequest) ( *csi.ControllerPublishVolumeResponse, error, )
ControllerPublishVolume - not supported
func (*ControllerServer) ControllerUnpublishVolume ¶
func (s *ControllerServer) ControllerUnpublishVolume(ctx context.Context, req *csi.ControllerUnpublishVolumeRequest) ( *csi.ControllerUnpublishVolumeResponse, error, )
ControllerUnpublishVolume - not supported
func (*ControllerServer) CreateSnapshot ¶
func (s *ControllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateSnapshotRequest) ( *csi.CreateSnapshotResponse, error, )
CreateSnapshot creates a snapshot of given volume
func (*ControllerServer) CreateSnapshotOnNS ¶ added in v1.3.0
func (s *ControllerServer) CreateSnapshotOnNS(nsProvider ns.ProviderInterface, volumePath, snapName string) ( snapshot ns.Snapshot, err error)
func (*ControllerServer) CreateVolume ¶
func (s *ControllerServer) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest) ( res *csi.CreateVolumeResponse, err error, )
CreateVolume - creates FS on NexentaStor
func (*ControllerServer) DeleteSnapshot ¶
func (s *ControllerServer) DeleteSnapshot(ctx context.Context, req *csi.DeleteSnapshotRequest) ( *csi.DeleteSnapshotResponse, error, )
DeleteSnapshot deletes snapshots
func (*ControllerServer) DeleteVolume ¶
func (s *ControllerServer) DeleteVolume(ctx context.Context, req *csi.DeleteVolumeRequest) ( *csi.DeleteVolumeResponse, error, )
DeleteVolume - destroys FS on NexentaStor
func (*ControllerServer) GetCapacity ¶
func (s *ControllerServer) GetCapacity(ctx context.Context, req *csi.GetCapacityRequest) ( *csi.GetCapacityResponse, error, )
func (*ControllerServer) ListSnapshots ¶
func (s *ControllerServer) ListSnapshots(ctx context.Context, req *csi.ListSnapshotsRequest) ( *csi.ListSnapshotsResponse, error, )
ListSnapshots returns the list of snapshots
func (*ControllerServer) ListVolumes ¶
func (s *ControllerServer) ListVolumes(ctx context.Context, req *csi.ListVolumesRequest) ( *csi.ListVolumesResponse, error, )
ListVolumes - list volumes, shows only volumes created in defaultDataset TODO return only shared fs?
func (*ControllerServer) ValidateVolumeCapabilities ¶
func (s *ControllerServer) ValidateVolumeCapabilities(ctx context.Context, req *csi.ValidateVolumeCapabilitiesRequest) ( *csi.ValidateVolumeCapabilitiesResponse, error, )
ValidateVolumeCapabilities validates volume capabilities Shall return confirmed only if all the volume capabilities specified in the request are supported.
type Driver ¶
type Driver struct {
// contains filtered or unexported fields
}
Driver - K8s CSI driver for NexentaStor
type IdentityServer ¶
type IdentityServer struct {
// contains filtered or unexported fields
}
IdentityServer - k8s csi driver identity server
func NewIdentityServer ¶
func NewIdentityServer(driver *Driver) *IdentityServer
NewIdentityServer - create an instance of identity server
func (*IdentityServer) GetPluginCapabilities ¶
func (ids *IdentityServer) GetPluginCapabilities(ctx context.Context, req *csi.GetPluginCapabilitiesRequest) ( *csi.GetPluginCapabilitiesResponse, error, )
GetPluginCapabilities - get plugin capabilities
func (*IdentityServer) GetPluginInfo ¶
func (ids *IdentityServer) GetPluginInfo(ctx context.Context, req *csi.GetPluginInfoRequest) ( *csi.GetPluginInfoResponse, error, )
GetPluginInfo - return plugin info
func (*IdentityServer) Probe ¶
func (ids *IdentityServer) Probe(ctx context.Context, req *csi.ProbeRequest) (*csi.ProbeResponse, error)
Probe - return driver status (ready or not)
type NodeServer ¶
type NodeServer struct {
// contains filtered or unexported fields
}
NodeServer - k8s csi driver node server
func NewNodeServer ¶
func NewNodeServer(driver *Driver) (*NodeServer, error)
NewNodeServer - create an instance of node service
func (*NodeServer) GetMountPointPermissions ¶ added in v1.4.3
GetMountPointPermissions - check if mountPoint persmissions were set in config or use default
func (*NodeServer) GetV13CompatibleConfigName ¶ added in v1.4.2
func (s *NodeServer) GetV13CompatibleConfigName() (string, error)
func (*NodeServer) NodeExpandVolume ¶
func (s *NodeServer) NodeExpandVolume(ctx context.Context, req *csi.NodeExpandVolumeRequest) ( *csi.NodeExpandVolumeResponse, error, )
NodeExpandVolume - not supported
func (*NodeServer) NodeGetCapabilities ¶
func (s *NodeServer) NodeGetCapabilities(ctx context.Context, req *csi.NodeGetCapabilitiesRequest) ( *csi.NodeGetCapabilitiesResponse, error, )
NodeGetCapabilities - get node capabilities
func (*NodeServer) NodeGetInfo ¶
func (s *NodeServer) NodeGetInfo(ctx context.Context, req *csi.NodeGetInfoRequest) (*csi.NodeGetInfoResponse, error)
NodeGetInfo - get node info
func (*NodeServer) NodeGetVolumeStats ¶
func (s *NodeServer) NodeGetVolumeStats(ctx context.Context, req *csi.NodeGetVolumeStatsRequest) ( *csi.NodeGetVolumeStatsResponse, error, )
NodeGetVolumeStats - volume stats (available capacity) TODO https://github.com/container-storage-interface/spec/blob/master/spec.md#nodegetvolumestats
func (*NodeServer) NodePublishVolume ¶
func (s *NodeServer) NodePublishVolume(ctx context.Context, req *csi.NodePublishVolumeRequest) ( *csi.NodePublishVolumeResponse, error, )
NodePublishVolume - mounts NS fs to the node
func (*NodeServer) NodeStageVolume ¶
func (s *NodeServer) NodeStageVolume(ctx context.Context, req *csi.NodeStageVolumeRequest) ( *csi.NodeStageVolumeResponse, error, )
NodeStageVolume - stage volume TODO use this to mount NFS, then do bind mount?
func (*NodeServer) NodeUnpublishVolume ¶
func (s *NodeServer) NodeUnpublishVolume(ctx context.Context, req *csi.NodeUnpublishVolumeRequest) ( *csi.NodeUnpublishVolumeResponse, error, )
NodeUnpublishVolume - umount NS fs from the node and delete directory if successful
func (*NodeServer) NodeUnstageVolume ¶
func (s *NodeServer) NodeUnstageVolume(ctx context.Context, req *csi.NodeUnstageVolumeRequest) ( *csi.NodeUnstageVolumeResponse, error, )
NodeUnstageVolume - unstage volume TODO use this to umount NFS?
type ResolveNSParams ¶ added in v1.4.0
type ResolveNSParams struct { IsV13Compatible bool // contains filtered or unexported fields }
type ResolveNSResponse ¶ added in v1.4.0
type ResolveNSResponse struct {
// contains filtered or unexported fields
}
type Role ¶
type Role string
Role - role of this instance of driver
const ( // RoleAll - run driver as both controller and node instance RoleAll Role = "all" // RoleController - run driver as a controller instance (Identity server + Controller server) // This role should be used with: // - "csi-provisioner" sidecar container that watches Kubernetes PersistentVolumeClaim objects // and triggers CreateVolume/DeleteVolume against a CSI endpoint // - "csi-attacher" sidecar container that watches Kubernetes VolumeAttachment objects // and triggers ControllerPublish/Unpublish against a CSI endpoint RoleController Role = "controller" // RoleNode - to run driver as a node instance (Identity server + Node server), runs on each K8s node // This role should be used with "driver-registrar", sidecar container that: // 1) registers the CSI driver with kubelet // 2) adds the drivers custom NodeId to a label on the Kubernetes Node API Object RoleNode Role = "node" )
func (Role) IsController ¶
IsController - is this a controller role
type VolumeInfo ¶ added in v1.4.2
func ParseVolumeID ¶ added in v1.4.2
func ParseVolumeID(volumeID string) (VolumeInfo, error)