Documentation ¶
Overview ¶
Package flexvolume to manage Kubernetes storage attach events.
Package flexvolume to manage Kubernetes storage attach events.
Index ¶
- Constants
- type AttachOptions
- type FlexvolumeController
- func (c *FlexvolumeController) Attach(attachOpts AttachOptions, devicePath *string) error
- func (c *FlexvolumeController) Detach(detachOpts AttachOptions, _ *struct{}) error
- func (c *FlexvolumeController) DetachForce(detachOpts AttachOptions, _ *struct{}) error
- func (c *FlexvolumeController) GetAttachInfoFromMountDir(mountDir string, attachOptions *AttachOptions) error
- func (c *FlexvolumeController) GetClientAccessInfo(clusterName string, clientAccessInfo *model.ClientAccessInfo) error
- func (c *FlexvolumeController) GetGlobalMountPath(volumeName string, globalMountPath *string) error
- func (c *FlexvolumeController) GetKernelVersion(_ *struct{}, kernelVersion *string) error
- func (c *FlexvolumeController) Log(message LogMessage, _ *struct{}) error
- func (c *FlexvolumeController) RemoveAttachmentObject(detachOpts AttachOptions, safeToDetach *bool) error
- type FlexvolumeServer
- type LogMessage
- type MockFlexvolumeController
- func (m *MockFlexvolumeController) Attach(attachOpts AttachOptions, devicePath *string) error
- func (m *MockFlexvolumeController) Detach(detachOpts AttachOptions, _ *struct{}) error
- func (m *MockFlexvolumeController) DetachForce(detachOpts AttachOptions, _ *struct{}) error
- func (m *MockFlexvolumeController) GetAttachInfoFromMountDir(mountDir string, attachOptions *AttachOptions) error
- func (m *MockFlexvolumeController) Log(message LogMessage, _ *struct{}) error
- func (m *MockFlexvolumeController) RemoveAttachmentObject(detachOpts AttachOptions, safeToDetach *bool) error
- type VolumeController
- type VolumeManager
Constants ¶
const ( StorageClassKey = "storageClass" PoolKey = "pool" ImageKey = "image" )
const ( UnixSocketName = ".rook.sock" FlexvolumeVendor = "rook.io" FlexvolumeDriver = "rook" )
const ( ReadOnly = "ro" ReadWrite = "rw" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AttachOptions ¶
type AttachOptions struct { Image string `json:"image"` Pool string `json:"pool"` ClusterName string `json:"clusterName"` StorageClass string `json:"storageClass"` MountDir string `json:"mountDir"` FsName string `json:"fsName"` Path string `json:"path"` // Path within the CephFS to mount RW string `json:"kubernetes.io/readwrite"` FsType string `json:"kubernetes.io/fsType"` VolumeName string `json:"kubernetes.io/pvOrVolumeName"` // only available on 1.7 Pod string `json:"kubernetes.io/pod.name"` PodID string `json:"kubernetes.io/pod.uid"` PodNamespace string `json:"kubernetes.io/pod.namespace"` }
type FlexvolumeController ¶
type FlexvolumeController struct {
// contains filtered or unexported fields
}
FlexvolumeController handles all events from the Flexvolume driver
func NewFlexvolumeController ¶
func NewFlexvolumeController(context *clusterd.Context, controller crd.VolumeAttachmentController, manager VolumeManager) *FlexvolumeController
func (*FlexvolumeController) Attach ¶
func (c *FlexvolumeController) Attach(attachOpts AttachOptions, devicePath *string) error
Attach attaches rook volume to the node
func (*FlexvolumeController) Detach ¶
func (c *FlexvolumeController) Detach(detachOpts AttachOptions, _ *struct{}) error
Detach detaches a rook volume to the node
func (*FlexvolumeController) DetachForce ¶
func (c *FlexvolumeController) DetachForce(detachOpts AttachOptions, _ *struct{}) error
func (*FlexvolumeController) GetAttachInfoFromMountDir ¶
func (c *FlexvolumeController) GetAttachInfoFromMountDir(mountDir string, attachOptions *AttachOptions) error
GetAttachInfoFromMountDir obtain pod and volume information from the mountDir. K8s does not provide all necessary information to detach a volume (https://github.com/kubernetes/kubernetes/issues/52590). So we are hacking a bit and by parsing it from mountDir
func (*FlexvolumeController) GetClientAccessInfo ¶
func (c *FlexvolumeController) GetClientAccessInfo(clusterName string, clientAccessInfo *model.ClientAccessInfo) error
GetClientAccessInfo obtains the cluster monitor endpoints, username and secret
func (*FlexvolumeController) GetGlobalMountPath ¶
func (c *FlexvolumeController) GetGlobalMountPath(volumeName string, globalMountPath *string) error
GetGlobalMountPath generate the global mount path where the device path is mounted. It is based on the kubelet root dir, which defaults to /var/lib/kubelet
func (*FlexvolumeController) GetKernelVersion ¶
func (c *FlexvolumeController) GetKernelVersion(_ *struct{}, kernelVersion *string) error
GetKernelVersion returns the kernel version of the current node.
func (*FlexvolumeController) Log ¶
func (c *FlexvolumeController) Log(message LogMessage, _ *struct{}) error
Log logs messages from the driver
func (*FlexvolumeController) RemoveAttachmentObject ¶
func (c *FlexvolumeController) RemoveAttachmentObject(detachOpts AttachOptions, safeToDetach *bool) error
RemoveAttachmentObject removes the attachment from the VolumeAttachment CRD and returns whether the volume is safe to detach
type FlexvolumeServer ¶
type FlexvolumeServer struct {
// contains filtered or unexported fields
}
FlexvolumeServer start a unix domain socket server to interact with the flexvolume driver
func NewFlexvolumeServer ¶
func NewFlexvolumeServer(context *clusterd.Context, controller *FlexvolumeController, manager VolumeManager) *FlexvolumeServer
NewFlexvolumeServer creates an Flexvolume server
func (*FlexvolumeServer) Start ¶
func (s *FlexvolumeServer) Start() error
Start configures the flexvolume driver on the host and starts the unix domain socket server to communicate with the driver
func (*FlexvolumeServer) Stop ¶
func (s *FlexvolumeServer) Stop()
Stop the unix domain socket server and deletes the socket file
type LogMessage ¶
type MockFlexvolumeController ¶
type MockFlexvolumeController struct { MockAttach func(attachOpts AttachOptions, devicePath *string) error MockDetach func(detachOpts AttachOptions, _ *struct{}) error MockDetachForce func(detachOpts AttachOptions, _ *struct{}) error MockRemoveAttachmentObject func(detachOpts AttachOptions, safeToDetach *bool) error MockLog func(message LogMessage, _ *struct{}) error MockGetAttachInfoFromMountDir func(mountDir string, attachOptions *AttachOptions) error }
func (*MockFlexvolumeController) Attach ¶
func (m *MockFlexvolumeController) Attach(attachOpts AttachOptions, devicePath *string) error
func (*MockFlexvolumeController) Detach ¶
func (m *MockFlexvolumeController) Detach(detachOpts AttachOptions, _ *struct{}) error
func (*MockFlexvolumeController) DetachForce ¶
func (m *MockFlexvolumeController) DetachForce(detachOpts AttachOptions, _ *struct{}) error
func (*MockFlexvolumeController) GetAttachInfoFromMountDir ¶
func (m *MockFlexvolumeController) GetAttachInfoFromMountDir(mountDir string, attachOptions *AttachOptions) error
func (*MockFlexvolumeController) Log ¶
func (m *MockFlexvolumeController) Log(message LogMessage, _ *struct{}) error
func (*MockFlexvolumeController) RemoveAttachmentObject ¶
func (m *MockFlexvolumeController) RemoveAttachmentObject(detachOpts AttachOptions, safeToDetach *bool) error
type VolumeController ¶
type VolumeController interface { Attach(attachOpts AttachOptions, devicePath *string) error Detach(detachOpts AttachOptions, _ *struct{}) error DetachForce(detachOpts AttachOptions, _ *struct{}) error RemoveAttachmentObject(detachOpts AttachOptions, safeToDetach *bool) error Log(message LogMessage, _ *struct{}) error GetAttachInfoFromMountDir(mountDir string, attachOptions *AttachOptions) error }