Documentation
¶
Index ¶
- Constants
- type DiskType
- type LocalDiskVolumeManager
- func (vm *LocalDiskVolumeManager) CreateVolume(name string, parameters interface{}) (*Volume, error)
- func (vm *LocalDiskVolumeManager) DeleteVolume(ctx context.Context, name string) error
- func (vm *LocalDiskVolumeManager) GetVolumeCapacities() interface{}
- func (vm *LocalDiskVolumeManager) GetVolumeInfo(name string) (*Volume, error)
- func (vm *LocalDiskVolumeManager) NodePublishVolume(ctx context.Context, volumeReq interface{}) error
- func (vm *LocalDiskVolumeManager) NodeUnpublishVolume(ctx context.Context, name, targetPath string) error
- func (vm *LocalDiskVolumeManager) ParseVolumeRequest(parameters interface{}) (*VolumeRequest, error)
- func (vm *LocalDiskVolumeManager) UpdateVolume(name string, parameters interface{}) (*Volume, error)
- func (vm *LocalDiskVolumeManager) VolumeIsExist(name string) (bool, error)
- func (vm *LocalDiskVolumeManager) VolumeIsReady(name string) (bool, error)
- type Volume
- type VolumeManager
- type VolumeRequest
Constants ¶
View Source
const ( VolumeParameterDiskTypeKey = "diskType" VolumeParameterMinCapacityKey = "minCap" VolumeParameterPVCNameKey = "csi.storage.k8s.io/pvc/name" VolumeParameterPVCNameSpaceKey = "csi.storage.k8s.io/pvc/namespace" VolumeSelectedNodeKey = "volume.kubernetes.io/selected-node" )
consts
View Source
const (
TopologyNodeKey = "topology.disk.hwameistor.io/node"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LocalDiskVolumeManager ¶
type LocalDiskVolumeManager struct {
// SupportVolumeCapacities
SupportVolumeCapacities []*csi.VolumeCapability
// GetClient for query LocalDiskVolume resources from k8s
GetClient func() (*localdiskvolume.Kubeclient, error)
// volume
// The handler cannot be placed here directly as an object because thread safety cannot be guaranteed
GetVolumeHandler func() (*volumectr.DiskVolumeHandler, error)
// contains filtered or unexported fields
}
LocalDiskVolumeManager manage the allocation, deletion and query of local disk data volumes. Internally, the reasonable allocation of data volumes will be realized by tuning the LocalDiskNode resources
func NewLocalDiskVolumeManager ¶
func NewLocalDiskVolumeManager() *LocalDiskVolumeManager
NewLocalDiskVolumeManager
func (*LocalDiskVolumeManager) CreateVolume ¶
func (vm *LocalDiskVolumeManager) CreateVolume(name string, parameters interface{}) (*Volume, error)
func (*LocalDiskVolumeManager) DeleteVolume ¶
func (vm *LocalDiskVolumeManager) DeleteVolume(ctx context.Context, name string) error
func (*LocalDiskVolumeManager) GetVolumeCapacities ¶
func (vm *LocalDiskVolumeManager) GetVolumeCapacities() interface{}
func (*LocalDiskVolumeManager) GetVolumeInfo ¶
func (vm *LocalDiskVolumeManager) GetVolumeInfo(name string) (*Volume, error)
func (*LocalDiskVolumeManager) NodePublishVolume ¶
func (vm *LocalDiskVolumeManager) NodePublishVolume(ctx context.Context, volumeReq interface{}) error
func (*LocalDiskVolumeManager) NodeUnpublishVolume ¶
func (vm *LocalDiskVolumeManager) NodeUnpublishVolume(ctx context.Context, name, targetPath string) error
func (*LocalDiskVolumeManager) ParseVolumeRequest ¶
func (vm *LocalDiskVolumeManager) ParseVolumeRequest(parameters interface{}) (*VolumeRequest, error)
ParseVolumeRequest ParseParams
func (*LocalDiskVolumeManager) UpdateVolume ¶
func (vm *LocalDiskVolumeManager) UpdateVolume(name string, parameters interface{}) (*Volume, error)
func (*LocalDiskVolumeManager) VolumeIsExist ¶
func (vm *LocalDiskVolumeManager) VolumeIsExist(name string) (bool, error)
func (*LocalDiskVolumeManager) VolumeIsReady ¶
func (vm *LocalDiskVolumeManager) VolumeIsReady(name string) (bool, error)
type Volume ¶
type Volume struct {
// Name
Name string `json:"name"`
// Ready
Ready bool `json:"ready"`
// Exist
Exist bool `json:"exist"`
// Capacity
Capacity int64 `json:"capacity"`
// VolumeContext
VolumeContext map[string]string
// AttachNode
AttachNode string `json:"attachNode"`
}
Volume
type VolumeManager ¶
type VolumeManager interface {
// CreateVolume when volume is not exist
CreateVolume(name string, volumeRequest interface{}) (*Volume, error)
// UpdateVolume
UpdateVolume(name string, volumeRequest interface{}) (*Volume, error)
// NodePublishVolume
NodePublishVolume(ctx context.Context, volumeRequest interface{}) error
// NodeUnpublishVolume
NodeUnpublishVolume(ctx context.Context, name, targetPath string) error
// DeleteVolume
DeleteVolume(ctx context.Context, name string) error
// GetVolumeInfo
GetVolumeInfo(name string) (*Volume, error)
// GetVolumeCapacities
GetVolumeCapacities() interface{}
// VolumeIsReady
VolumeIsReady(name string) (bool, error)
// VolumeIsExist
VolumeIsExist(name string) (bool, error)
}
type VolumeRequest ¶
type VolumeRequest struct {
// RequireCapacity
RequireCapacity int64 `json:"capacity"`
// VolumeContext
VolumeContext map[string]string `json:"volumeContext"`
// DiskType represents which disk type is this volume provisioned from
DiskType DiskType `json:"diskType"`
// DevPath
DevPath string `json:"devPath"`
// PVCName
PVCName string `json:"pvcName"`
// PVCNameSpace
PVCNameSpace string `json:"pvcNameSpace"`
// OwnerNodeName represents where this disk volume located
OwnerNodeName string `json:"ownerNodeName"`
// VolumeCap
VolumeCap *csi.VolumeCapability
// VolumeContentSource
// this field may be needed for volume clone from another disk volume
// for now, we don't support this
VolumeContentSource *csi.VolumeContentSource `json:"volumeContentSource"`
}
VolumeRequest
func NewVolumeRequest ¶
func NewVolumeRequest() *VolumeRequest
func (*VolumeRequest) SetDiskType ¶
func (r *VolumeRequest) SetDiskType(diskType string)
func (*VolumeRequest) SetNodeName ¶
func (r *VolumeRequest) SetNodeName(nodeName string)
func (*VolumeRequest) SetPVCName ¶
func (r *VolumeRequest) SetPVCName(pvc string)
func (*VolumeRequest) SetPVCNameSpace ¶
func (r *VolumeRequest) SetPVCNameSpace(ns string)
func (*VolumeRequest) SetRequireCapacity ¶
func (r *VolumeRequest) SetRequireCapacity(cap int64)
func (*VolumeRequest) Valid ¶
func (r *VolumeRequest) Valid() error
Click to show internal directories.
Click to hide internal directories.