Documentation
¶
Index ¶
- type Disk
- type DiskManager
- type DiskStatus
- type LocalDiskNodesManager
- func (ldn *LocalDiskNodesManager) ClaimDisk(disk *Disk) error
- func (ldn *LocalDiskNodesManager) GetClusterDisks() (map[string][]*Disk, error)
- func (ldn *LocalDiskNodesManager) GetNodeDisks(node string) ([]*Disk, error)
- func (ldn *LocalDiskNodesManager) PreSelectFreeDisks(reqDisks []Disk) (bool, error)
- func (ldn *LocalDiskNodesManager) ReleaseDisk(diskName string) error
- func (ldn *LocalDiskNodesManager) ReserveDisk(disk *Disk) error
- func (ldn *LocalDiskNodesManager) SelectFreeDisk(reqDisk Disk) (selDisk *Disk, err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Disk ¶
type Disk struct {
// AttachNode represent where disk is attached
AttachNode string `json:"attachNode,omitempty"`
// Name unique identification for a disk
Name string `json:"name,omitempty"`
// DevPath
DevPath string `json:"devPath,omitempty"`
// Capacity
Capacity int64 `json:"capacity,omitempty"`
// DiskType SSD/HDD/NVME...
DiskType string `json:"diskType,omitempty"`
// Status
Status DiskStatus `json:"status,omitempty"`
}
Disk all disk info about a disk
type DiskManager ¶
type DiskManager interface {
// GetClusterDisks list all disks by node
GetClusterDisks() (map[string][]*Disk, error)
// GetNodeDisks list all disk located on the node
GetNodeDisks(node string) ([]*Disk, error)
// ClaimDisk UpdateDiskStatus mark disk to TobeMount/Free/InUse... status
ClaimDisk(*Disk) error
// ReleaseDisk update disk to release status
ReleaseDisk(diskName string) error
// SelectFreeDisk use a disk and bind it to a volume
SelectFreeDisk(Disk) (*Disk, error)
// PreSelectFreeDisks only reserve disks, but not use
PreSelectFreeDisks([]Disk) (bool, error)
}
DiskManager manage all disks in cluster The operation here needs to ensure thread safety
type DiskStatus ¶
type DiskStatus = string
const ( DiskStatusInUse DiskStatus = "InUse" DiskStatusFree DiskStatus = "Free" DiskStatusReserved DiskStatus = "Reserved" DiskStatusUnclaimed DiskStatus = "Unclaimed" DiskStatusReleased DiskStatus = "Released" )
type LocalDiskNodesManager ¶
type LocalDiskNodesManager struct {
// GetClient for query LocalDiskNode resources from k8s
GetClient func() (*localdisknode.Kubeclient, error)
// DiskHandler manage LD resources in cluster
DiskHandler *localdisk.LocalDiskHandler
// contains filtered or unexported fields
}
LocalDiskNodesManager manage all disks in the cluster by interacting with LocalDisk resources
func NewLocalDiskManager ¶
func NewLocalDiskManager() *LocalDiskNodesManager
func (*LocalDiskNodesManager) ClaimDisk ¶
func (ldn *LocalDiskNodesManager) ClaimDisk(disk *Disk) error
ClaimDisk claim a LocalDisk by update LocalDisk status to InUse
func (*LocalDiskNodesManager) GetClusterDisks ¶
func (ldn *LocalDiskNodesManager) GetClusterDisks() (map[string][]*Disk, error)
GetClusterDisks Here is just a simple implementation
func (*LocalDiskNodesManager) GetNodeDisks ¶
func (ldn *LocalDiskNodesManager) GetNodeDisks(node string) ([]*Disk, error)
GetNodeDisks get disks which attached on the node
func (*LocalDiskNodesManager) PreSelectFreeDisks ¶
func (ldn *LocalDiskNodesManager) PreSelectFreeDisks(reqDisks []Disk) (bool, error)
func (*LocalDiskNodesManager) ReleaseDisk ¶
func (ldn *LocalDiskNodesManager) ReleaseDisk(diskName string) error
func (*LocalDiskNodesManager) ReserveDisk ¶
func (ldn *LocalDiskNodesManager) ReserveDisk(disk *Disk) error
ReserveDisk reserve a LocalDisk by update LocalDisk status to Reserved
func (*LocalDiskNodesManager) SelectFreeDisk ¶
func (ldn *LocalDiskNodesManager) SelectFreeDisk(reqDisk Disk) (selDisk *Disk, err error)
Click to show internal directories.
Click to hide internal directories.