v1alpha1

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: May 12, 2020 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the openebs v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=openebs.io

Package v1alpha1 contains API Schema definitions for the openebs v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=openebs.io

Index

Constants

View Source
const (
	// BlockDeviceResourceKind is the kind of block device CRD
	BlockDeviceResourceKind = "BlockDevice"
	// BlockDeviceResourceListKind is the list kind for block device
	BlockDeviceResourceListKind = "BlockDeviceList"
	// BlockDeviceResourcePlural is the plural form used for block device
	BlockDeviceResourcePlural = "blockdevices"
	// BlockDeviceResourceShort is the short name used for block device CRD
	BlockDeviceResourceShort = "bd"
	// BlockDeviceResourceName is the name of the block device resource
	BlockDeviceResourceName = BlockDeviceResourcePlural + "." + GroupName

	// BlockDeviceClaimResourceKind is the kind of block device claim CRD
	BlockDeviceClaimResourceKind = "BlockDeviceClaim"
	// BlockDeviceClaimResourceListKind is the list kind for block device claim
	BlockDeviceClaimResourceListKind = "BlockDeviceClaimList"
	// BlockDeviceClaimResourcePlural is the plural form used for block device claim
	BlockDeviceClaimResourcePlural = "blockdeviceclaims"
	// BlockDeviceClaimResourceShort is the short name used for block device claim CRD
	BlockDeviceClaimResourceShort = "bdc"
	// BlockDeviceClaimResourceName is the name of the block device claim resource
	BlockDeviceClaimResourceName = BlockDeviceClaimResourcePlural + "." + GroupName
)
View Source
const (
	// GroupName is the group of apis
	GroupName = "openebs.io"
	// APIVersion is the version for the apis
	APIVersion = "v1alpha1"
)
View Source
const (
	// ResourceStorage defines the storage required as v1.Quantity
	ResourceStorage v1.ResourceName = "storage"
)

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: APIVersion}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
)

Functions

This section is empty.

Types

type BlockDevice

type BlockDevice struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   DeviceSpec   `json:"spec,omitempty"`
	Status DeviceStatus `json:"status,omitempty"`
}

BlockDevice is the Schema used to represent a BlockDevice CR

func (*BlockDevice) DeepCopy

func (in *BlockDevice) DeepCopy() *BlockDevice

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDevice.

func (*BlockDevice) DeepCopyInto

func (in *BlockDevice) DeepCopyInto(out *BlockDevice)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BlockDevice) DeepCopyObject

func (in *BlockDevice) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BlockDeviceClaim

type BlockDeviceClaim struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   DeviceClaimSpec   `json:"spec,omitempty"`
	Status DeviceClaimStatus `json:"status,omitempty"`
}

BlockDeviceClaim is the Schema for the BlockDeviceClaim CR

func (*BlockDeviceClaim) DeepCopy

func (in *BlockDeviceClaim) DeepCopy() *BlockDeviceClaim

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceClaim.

func (*BlockDeviceClaim) DeepCopyInto

func (in *BlockDeviceClaim) DeepCopyInto(out *BlockDeviceClaim)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BlockDeviceClaim) DeepCopyObject

func (in *BlockDeviceClaim) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BlockDeviceClaimList

type BlockDeviceClaimList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []BlockDeviceClaim `json:"items"`
}

BlockDeviceClaimList contains a list of BlockDeviceClaim

func (*BlockDeviceClaimList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceClaimList.

func (*BlockDeviceClaimList) DeepCopyInto

func (in *BlockDeviceClaimList) DeepCopyInto(out *BlockDeviceClaimList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BlockDeviceClaimList) DeepCopyObject

func (in *BlockDeviceClaimList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BlockDeviceList

type BlockDeviceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []BlockDevice `json:"items"`
}

BlockDeviceList contains a list of BlockDevice

func (*BlockDeviceList) DeepCopy

func (in *BlockDeviceList) DeepCopy() *BlockDeviceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceList.

func (*BlockDeviceList) DeepCopyInto

func (in *BlockDeviceList) DeepCopyInto(out *BlockDeviceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BlockDeviceList) DeepCopyObject

func (in *BlockDeviceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BlockDeviceNodeAttributes added in v0.4.2

type BlockDeviceNodeAttributes struct {
	// NodeName represents the name of the Kubernetes node resource
	// where the BD should be present
	NodeName string `json:"nodeName,omitempty"`

	// HostName represents the hostname of the Kubernetes node resource
	// where the BD should be present
	HostName string `json:"hostName,omitempty"`
}

BlockDeviceNodeAttributes contains the attributes of the node from which the BD should be selected for claiming. A BDC can specify one or more attributes. When multiple values are specified, the NDM Operator will claim a Block Device that matches all the requested attributes.

func (*BlockDeviceNodeAttributes) DeepCopy added in v0.4.2

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceNodeAttributes.

func (*BlockDeviceNodeAttributes) DeepCopyInto added in v0.4.2

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BlockDeviceState added in v0.4.2

type BlockDeviceState string

BlockDeviceState defines the observed state of the disk

const (
	// BlockDeviceActive is the state for a block device that is connected to the node
	BlockDeviceActive BlockDeviceState = "Active"

	// BlockDeviceInactive is the state for a block device that is disconnected from a node
	BlockDeviceInactive BlockDeviceState = "Inactive"

	// BlockDeviceUnknown is the state for a block device whose state (attached/detached) cannot
	// be determined at this time.
	BlockDeviceUnknown BlockDeviceState = "Unknown"
)

type BlockDeviceVolumeMode

type BlockDeviceVolumeMode string

BlockDeviceVolumeMode specifies the type in which the BlockDevice can be used

const (
	// VolumeModeBlock specifies that the block device needs to be used as a raw block
	VolumeModeBlock BlockDeviceVolumeMode = "Block"

	// VolumeModeFileSystem specifies that block device will be used with a filesystem
	// already existing
	VolumeModeFileSystem BlockDeviceVolumeMode = "FileSystem"
)

type DeviceCapacity

type DeviceCapacity struct {
	// Storage is the blockdevice capacity in bytes
	Storage uint64 `json:"storage"`

	// PhysicalSectorSize is blockdevice physical-Sector size in bytes
	PhysicalSectorSize uint32 `json:"physicalSectorSize"`

	// LogicalSectorSize is blockdevice logical-sector size in bytes
	LogicalSectorSize uint32 `json:"logicalSectorSize"`
}

DeviceCapacity defines the physical and logical size of the block device

func (*DeviceCapacity) DeepCopy

func (in *DeviceCapacity) DeepCopy() *DeviceCapacity

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceCapacity.

func (*DeviceCapacity) DeepCopyInto

func (in *DeviceCapacity) DeepCopyInto(out *DeviceCapacity)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceClaimDetails

type DeviceClaimDetails struct {
	// BlockVolumeMode represents whether to claim a device in Block mode or Filesystem mode.
	// These are use cases of BlockVolumeMode:
	// 1) Not specified: VolumeMode check will not be effective
	// 2) VolumeModeBlock: BD should not have any filesystem or mountpoint
	// 3) VolumeModeFileSystem: BD should have a filesystem and mountpoint. If DeviceFormat is
	//    specified then the format should match with the FSType in BD
	BlockVolumeMode BlockDeviceVolumeMode `json:"blockVolumeMode,omitempty"`

	//Format of the device required, eg:ext4, xfs
	DeviceFormat string `json:"formatType,omitempty"`

	//AllowPartition represents whether to claim a full block device or a device that is a partition
	AllowPartition bool `json:"allowPartition,omitempty"`
}

DeviceClaimDetails defines the details of the block device that should be claimed

func (*DeviceClaimDetails) DeepCopy

func (in *DeviceClaimDetails) DeepCopy() *DeviceClaimDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClaimDetails.

func (*DeviceClaimDetails) DeepCopyInto

func (in *DeviceClaimDetails) DeepCopyInto(out *DeviceClaimDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceClaimPhase

type DeviceClaimPhase string

DeviceClaimPhase is a typed string for phase field of BlockDeviceClaim.

const (
	// BlockDeviceClaimStatusEmpty represents that the BlockDeviceClaim was just created.
	BlockDeviceClaimStatusEmpty DeviceClaimPhase = ""

	// BlockDeviceClaimStatusPending represents BlockDeviceClaim has not been assigned devices yet. Rather
	// search is going on for matching devices.
	BlockDeviceClaimStatusPending DeviceClaimPhase = "Pending"

	// BlockDeviceClaimStatusInvalidCapacity represents BlockDeviceClaim has invalid capacity request i.e. 0/-1
	BlockDeviceClaimStatusInvalidCapacity DeviceClaimPhase = "Invalid Capacity Request"

	// BlockDeviceClaimStatusDone represents BlockDeviceClaim has been assigned backing blockdevice and ready for use.
	BlockDeviceClaimStatusDone DeviceClaimPhase = "Bound"
)

BlockDeviceClaim CR, when created pass through phases before it got some Devices Assigned. Given below table, have all phases which BlockDeviceClaim CR can go before it is marked done.

type DeviceClaimResources

type DeviceClaimResources struct {
	// Requests describes the minimum resources required. eg: if storage resource of 10G is
	// requested minimum capacity of 10G should be available
	Requests v1.ResourceList `json:"requests"`
}

DeviceClaimResources defines the request by the claim, eg, Capacity, IOPS

func (*DeviceClaimResources) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClaimResources.

func (*DeviceClaimResources) DeepCopyInto

func (in *DeviceClaimResources) DeepCopyInto(out *DeviceClaimResources)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceClaimSpec

type DeviceClaimSpec struct {

	// Selector is used to find block devices to be considered for claiming
	Selector *metav1.LabelSelector `json:"selector,omitempty"`

	// Resources will help with placing claims on Capacity, IOPS
	Resources DeviceClaimResources `json:"resources"`

	// DeviceType represents the type of drive like SSD, HDD etc.,
	DeviceType string `json:"deviceType"`

	// Node name from where blockdevice has to be claimed.
	// TODO @akhilerm to be deprecated. Use NodeAttributes.HostName instead
	HostName string `json:"hostName"`

	// Details of the device to be claimed
	Details DeviceClaimDetails `json:"deviceClaimDetails,omitempty"`

	// BlockDeviceName is the reference to the block-device backing this claim
	BlockDeviceName string `json:"blockDeviceName,omitempty"`

	// BlockDeviceNodeAttributes is the attributes on the node from which a BD should
	// be selected for this claim. It can include nodename, failure domain etc.
	BlockDeviceNodeAttributes BlockDeviceNodeAttributes `json:"blockDeviceNodeAttributes,omitempty"`
}

DeviceClaimSpec defines the request details for a BlockDevice

func (*DeviceClaimSpec) DeepCopy

func (in *DeviceClaimSpec) DeepCopy() *DeviceClaimSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClaimSpec.

func (*DeviceClaimSpec) DeepCopyInto

func (in *DeviceClaimSpec) DeepCopyInto(out *DeviceClaimSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceClaimState

type DeviceClaimState string

DeviceClaimState defines the observed state of BlockDevice

const (
	// BlockDeviceUnclaimed represents that the block device is not bound to any BDC,
	// all cleanup jobs have been completed and is available for claiming.
	BlockDeviceUnclaimed DeviceClaimState = "Unclaimed"

	// BlockDeviceReleased represents that the block device is released from the BDC,
	// pending cleanup jobs
	BlockDeviceReleased DeviceClaimState = "Released"

	// BlockDeviceClaimed represents that the block device is bound to a BDC
	BlockDeviceClaimed DeviceClaimState = "Claimed"
)

type DeviceClaimStatus

type DeviceClaimStatus struct {
	// Phase represents the current phase of the claim
	Phase DeviceClaimPhase `json:"phase"`
}

DeviceClaimStatus defines the observed state of BlockDeviceClaim

func (*DeviceClaimStatus) DeepCopy

func (in *DeviceClaimStatus) DeepCopy() *DeviceClaimStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClaimStatus.

func (*DeviceClaimStatus) DeepCopyInto

func (in *DeviceClaimStatus) DeepCopyInto(out *DeviceClaimStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceDetails

type DeviceDetails struct {
	// DeviceType represents the type of device like
	// sparse, disk, partition, lvm, raid
	DeviceType string `json:"deviceType"`

	// DriveType is the type of backing drive, HDD/SSD
	DriveType string `json:"driveType"`

	// LogicalBlockSize is the logical block size in bytes
	// reported by /sys/class/block/sda/queue/logical_block_size
	LogicalBlockSize uint32 `json:"logicalBlockSize"`

	// PhysicalBlockSize is the physical block size in bytes
	// reported by /sys/class/block/sda/queue/physical_block_size
	PhysicalBlockSize uint32 `json:"physicalBlockSize"`

	// HardwareSectorSize is the hardware sector size in bytes
	HardwareSectorSize uint32 `json:"hardwareSectorSize"`

	// Model is model of disk
	Model string `json:"model"`

	// Compliance is standards/specifications version implemented by device firmware
	//  such as SPC-1, SPC-2, etc
	Compliance string `json:"compliance"`

	// Serial is serial number of disk
	Serial string `json:"serial"`

	// Vendor is vendor of disk
	Vendor string `json:"vendor"`

	// FirmwareRevision is the disk firmware revision
	FirmwareRevision string `json:"firmwareRevision"`
}

DeviceDetails represent certain hardware/static attributes of the block device

func (*DeviceDetails) DeepCopy

func (in *DeviceDetails) DeepCopy() *DeviceDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceDetails.

func (*DeviceDetails) DeepCopyInto

func (in *DeviceDetails) DeepCopyInto(out *DeviceDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceDevLink struct {
	// Kind is the type of link like by-id or by-path.
	Kind string `json:"kind,omitempty"`

	// Links are the soft links
	Links []string `json:"links,omitempty"`
}

DeviceDevLink holds the mapping between type and links like by-id type or by-path type link

func (*DeviceDevLink) DeepCopy

func (in *DeviceDevLink) DeepCopy() *DeviceDevLink

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceDevLink.

func (*DeviceDevLink) DeepCopyInto

func (in *DeviceDevLink) DeepCopyInto(out *DeviceDevLink)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceInfo

type DeviceInfo struct {
	// DeviceUID is the NDM generated UID of the backed block device
	DeviceUID string `json:"blockDeviceUID"`
}

DeviceInfo contains the info of the block device that is backed by this disk

func (*DeviceInfo) DeepCopy

func (in *DeviceInfo) DeepCopy() *DeviceInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceInfo.

func (*DeviceInfo) DeepCopyInto

func (in *DeviceInfo) DeepCopyInto(out *DeviceInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceSpec

type DeviceSpec struct {
	// NodeAttributes has the details of the node on which BD is attached
	NodeAttributes NodeAttribute `json:"nodeAttributes"`

	// Path contain devpath (e.g. /dev/sdb)
	Path string `json:"path"`

	// Capacity
	Capacity DeviceCapacity `json:"capacity"`

	// Details contain static attributes of BD like model,serial, and so forth
	Details DeviceDetails `json:"details"`

	// ClaimRef is the reference to the BDC which has claimed this BD
	ClaimRef *v1.ObjectReference `json:"claimRef,omitempty"`

	// DevLinks contains soft links of a block device like
	// /dev/by-id/...
	// /dev/by-uuid/...
	DevLinks []DeviceDevLink `json:"devlinks"`

	// FileSystem contains mountpoint and filesystem type
	FileSystem FileSystemInfo `json:"filesystem,omitempty"`

	// Partitioned represents if BlockDevice has partitions or not (Yes/No)
	// Currently always default to No.
	// TODO @kmova to be implemented/deprecated
	Partitioned string `json:"partitioned"`

	// ParentDevice was intended to store the UUID of the parent
	// Block Device as is the case for partitioned block devices.
	//
	// For example:
	// /dev/sda is the parent for /dev/sdap1
	// TODO @kmova to be implemented/deprecated
	ParentDevice string `json:"parentDevice,omitempty"`

	// AggregateDevice was intended to store the hierachical
	// information in cases of LVM. However this is currently
	// not implemented and may need to be re-looked into for
	// better design.
	// TODO @kmova to be implemented/deprecated
	AggregateDevice string `json:"aggregateDevice,omitempty"`
}

DeviceSpec defines the properties and runtime status of a BlockDevice

func (*DeviceSpec) DeepCopy

func (in *DeviceSpec) DeepCopy() *DeviceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSpec.

func (*DeviceSpec) DeepCopyInto

func (in *DeviceSpec) DeepCopyInto(out *DeviceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceStatus

type DeviceStatus struct {
	// ClaimState represents the claim state of the block device
	ClaimState DeviceClaimState `json:"claimState"`

	// State is the current state of the blockdevice (Active/Inactive)
	State BlockDeviceState `json:"state"`
}

DeviceStatus defines the observed state of BlockDevice

func (*DeviceStatus) DeepCopy

func (in *DeviceStatus) DeepCopy() *DeviceStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceStatus.

func (*DeviceStatus) DeepCopyInto

func (in *DeviceStatus) DeepCopyInto(out *DeviceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Disk

type Disk struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   DiskSpec   `json:"spec,omitempty"`
	Status DiskStatus `json:"status,omitempty"`
	Stats  DiskStat   `json:"stats,omitempty"`
	Device DeviceInfo `json:"deviceInfo"`
}

Disk is the Schema for the disks API

func (*Disk) DeepCopy

func (in *Disk) DeepCopy() *Disk

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Disk.

func (*Disk) DeepCopyInto

func (in *Disk) DeepCopyInto(out *Disk)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Disk) DeepCopyObject

func (in *Disk) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DiskCapacity

type DiskCapacity struct {
	// Storage is the disk capacity in bytes
	Storage uint64 `json:"storage"`

	// PhysicalSectorSize is disk physical-Sector size in bytes
	PhysicalSectorSize uint32 `json:"physicalSectorSize"`

	// LogicalSectorSize is disk logical-sector size in bytes
	LogicalSectorSize uint32 `json:"logicalSectorSize"`
}

DiskCapacity defines the physical and logical size of the disk

func (*DiskCapacity) DeepCopy

func (in *DiskCapacity) DeepCopy() *DiskCapacity

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskCapacity.

func (*DiskCapacity) DeepCopyInto

func (in *DiskCapacity) DeepCopyInto(out *DiskCapacity)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DiskDetails

type DiskDetails struct {
	// RotationRate is the rotation rate in RPM of the disk if not an SSD
	RotationRate uint16 `json:"rotationRate"`

	// DriveType represents the type of the drive like SSD, HDD etc.
	DriveType string `json:"driveType"`

	// Model is model of disk
	Model string `json:"model"`

	// Compliance is standards/specifications version implemented by device firmware
	//  such as SPC-1, SPC-2, etc
	Compliance string `json:"compliance"`

	// Serial is serial number of disk
	Serial string `json:"serial"`

	// Vendor is vendor of disk
	Vendor string `json:"vendor"`

	// FirmwareRevision is the disk firmware revision
	FirmwareRevision string `json:"firmwareRevision"`
}

DiskDetails represent certain hardware/static attributes of the disk

func (*DiskDetails) DeepCopy

func (in *DiskDetails) DeepCopy() *DiskDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskDetails.

func (*DiskDetails) DeepCopyInto

func (in *DiskDetails) DeepCopyInto(out *DiskDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DiskDevLink struct {
	// Kind is the type of link like by-id or by-path.
	Kind string `json:"kind"`

	// Links are the soft links
	Links []string `json:"links"`
}

DiskDevLink holds the mapping between type and links like by-id type or by-path type link

func (*DiskDevLink) DeepCopy

func (in *DiskDevLink) DeepCopy() *DiskDevLink

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskDevLink.

func (*DiskDevLink) DeepCopyInto

func (in *DiskDevLink) DeepCopyInto(out *DiskDevLink)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DiskList

type DiskList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Disk `json:"items"`
}

DiskList contains a list of Disk

func (*DiskList) DeepCopy

func (in *DiskList) DeepCopy() *DiskList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskList.

func (*DiskList) DeepCopyInto

func (in *DiskList) DeepCopyInto(out *DiskList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DiskList) DeepCopyObject

func (in *DiskList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DiskSpec

type DiskSpec struct {
	// Path contain devpath (e.g. /dev/sdb)
	Path string `json:"path"`

	// Capacity of the
	Capacity DiskCapacity `json:"capacity"`

	// Details contains static attributes (model, serial ..)
	Details DiskDetails `json:"details"`

	// DevLinks contains soft links of one disk
	DevLinks []DiskDevLink `json:"devlinks"`

	// Contains the data about filesystem on the disk
	FileSystem FileSystemInfo `json:"fileSystem,omitempty"`

	// Details of partitions in the disk (filesystem, partition type)
	PartitionDetails []Partition `json:"partitionDetails,omitempty"`
}

DiskSpec defines the desired state of Disk

func (*DiskSpec) DeepCopy

func (in *DiskSpec) DeepCopy() *DiskSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskSpec.

func (*DiskSpec) DeepCopyInto

func (in *DiskSpec) DeepCopyInto(out *DiskSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DiskStat

type DiskStat struct {
	// TempInfo is the reported temperate of the disk
	TempInfo Temperature `json:"diskTemperature"`

	// TotalBytesRead
	// TODO @akhilerm document on what TotalBytesRead represent in a drive
	TotalBytesRead uint64 `json:"totalBytesRead"`

	// TotalBytesWritten
	// TODO @akhilerm document on what TotalBytesWritten represent in a drive
	TotalBytesWritten uint64 `json:"totalBytesWritten"`

	// DeviceUtilizationRate is utilization rate of the drive
	// ACS4 or SBC4 required for this to be valid
	DeviceUtilizationRate float64 `json:"deviceUtilizationRate"`

	// PercentEnduranceUsed
	// TODO @akhilerm document on what PercentEnduranceUsed represent in a drive
	PercentEnduranceUsed float64 `json:"percentEnduranceUsed"`
}

DiskStat gives variable attributes about the disk

func (*DiskStat) DeepCopy

func (in *DiskStat) DeepCopy() *DiskStat

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskStat.

func (*DiskStat) DeepCopyInto

func (in *DiskStat) DeepCopyInto(out *DiskStat)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DiskState added in v0.4.2

type DiskState string

DiskState defines the observed state of the disk

const (
	// DiskActive is the state for a physical disk that is connected to the node
	DiskActive DiskState = "Active"

	// DiskInactive is the state for a physical disk that is disconnected from a node
	DiskInactive DiskState = "Inactive"

	// DiskUnknown is the state for a physical disk whose state (attached/detached) cannot
	// be determined at this time.
	DiskUnknown DiskState = "Unknown"
)

type DiskStatus

type DiskStatus struct {
	// State is the current state of the disk (Active/Inactive)
	State DiskState `json:"state"`
}

DiskStatus defines the observed state of Disk

func (*DiskStatus) DeepCopy

func (in *DiskStatus) DeepCopy() *DiskStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskStatus.

func (*DiskStatus) DeepCopyInto

func (in *DiskStatus) DeepCopyInto(out *DiskStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FileSystemInfo

type FileSystemInfo struct {
	//Type represents the FileSystem type of the block device
	Type string `json:"fsType,omitempty"`

	//MountPoint represents the mountpoint of the block device.
	Mountpoint string `json:"mountPoint,omitempty"`
}

FileSystemInfo defines the filesystem type and mountpoint of the device if it exists

func (*FileSystemInfo) DeepCopy

func (in *FileSystemInfo) DeepCopy() *FileSystemInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileSystemInfo.

func (*FileSystemInfo) DeepCopyInto

func (in *FileSystemInfo) DeepCopyInto(out *FileSystemInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeAttribute added in v0.4.2

type NodeAttribute struct {
	// NodeName is the name of the Kubernetes node resource on which the device is attached
	NodeName string `json:"nodeName"`
}

NodeAttribute defines the attributes of a node where the block device is attached.

Note: Prior to introducing NodeAttributes, the BD would only support gathering hostname and add it as a label to the BD resource.

In some use cases, the caller has access only to node name, not the hostname. node name and hostname are different in certain Kubernetes clusters.

NodeAttributes is added to contain attributes that are not available on the labels like - node name, uuid, etc.

The node attributes are helpful in querying for block devices based on node attributes. Also, adding this in the spec allows for displaying in node name in the `kubectl get bd`

TODO @kmova @akhilerm Capture and add nodeUUID to BD, that can help in determining if the node was recreated with same node name.

func (*NodeAttribute) DeepCopy added in v0.4.2

func (in *NodeAttribute) DeepCopy() *NodeAttribute

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAttribute.

func (*NodeAttribute) DeepCopyInto added in v0.4.2

func (in *NodeAttribute) DeepCopyInto(out *NodeAttribute)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Partition

type Partition struct {
	// PartitionType is the partition type of this partition.
	// LinuxLVM, SWAP, EFI are all partition types. They will be represented by
	// their corresponding code depending on the Partition table.
	//
	// Depending on the partition table on parent disk:
	// 1. For DOS partition table, two hexadecimal digits will be
	//    used for partition type
	// 2. For GPT partition table, a GUID will be present which corresponds to
	//    partition type in the format of `00000000-0000-0000-0000-000000000000`
	PartitionType string `json:"partitionType"`

	// FileSystem contains mountpoint and filesystem type
	FileSystem FileSystemInfo `json:"fileSystem,omitempty"`
}

Partition represents the partition information of the disk

func (*Partition) DeepCopy

func (in *Partition) DeepCopy() *Partition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Partition.

func (*Partition) DeepCopyInto

func (in *Partition) DeepCopyInto(out *Partition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Temperature

type Temperature struct {
	// CurrentTemperature is the current reported temperature of the drive
	CurrentTemperature int16 `json:"currentTemperature"`

	// HighestTemperature is the highest measured temperature of the drive in its lifetime
	HighestTemperature int16 `json:"highestTemperature"`

	// LowestTemperature is the lowest measured temperature of the drive in its lifetime
	LowestTemperature int16 `json:"lowestTemperature"`
}

Temperature is the various temperature info reported by seachest about a physical disk. All info are in degree celsius

func (*Temperature) DeepCopy

func (in *Temperature) DeepCopy() *Temperature

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Temperature.

func (*Temperature) DeepCopyInto

func (in *Temperature) DeepCopyInto(out *Temperature)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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