Documentation ¶
Overview ¶
Package v1alpha1 is the API version +groupName=local.openebs.io
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // SchemeBuilder is the scheme builder // with scheme init functions to run // for this API package SchemeBuilder runtime.SchemeBuilder // AddToScheme is a global function that // registers this API group & version to // a scheme AddToScheme = localSchemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{
Group: "local.openebs.io",
Version: "v1alpha1",
}
SchemeGroupVersion is group version used to register custom resources
NOTE:
This variable name should not be changed
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type LVMNode ¶ added in v0.3.0
type LVMNode struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` VolumeGroups []VolumeGroup `json:"volumeGroups"` }
LVMNode records information about all lvm volume groups available in a node. In general, the openebs node-agent creates the LVMNode object & periodically synchronizing the volume groups available in the node. LVMNode has an owner reference pointing to the corresponding node object. +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced,shortName=lvmnode
func (*LVMNode) DeepCopy ¶ added in v0.3.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LVMNode.
func (*LVMNode) DeepCopyInto ¶ added in v0.3.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LVMNode) DeepCopyObject ¶ added in v0.3.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LVMNodeList ¶ added in v0.3.0
type LVMNodeList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []LVMNode `json:"items"` }
LVMNodeList is a collection of LVMNode resources +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +resource:path=lvmnodes
func (*LVMNodeList) DeepCopy ¶ added in v0.3.0
func (in *LVMNodeList) DeepCopy() *LVMNodeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LVMNodeList.
func (*LVMNodeList) DeepCopyInto ¶ added in v0.3.0
func (in *LVMNodeList) DeepCopyInto(out *LVMNodeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LVMNodeList) DeepCopyObject ¶ added in v0.3.0
func (in *LVMNodeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LVMSnapshot ¶ added in v0.2.0
type LVMSnapshot struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec LVMSnapshotSpec `json:"spec"` Status SnapStatus `json:"status"` }
LVMSnapshot represents an LVM Snapshot of the lvm volume
func (*LVMSnapshot) DeepCopy ¶ added in v0.2.0
func (in *LVMSnapshot) DeepCopy() *LVMSnapshot
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LVMSnapshot.
func (*LVMSnapshot) DeepCopyInto ¶ added in v0.2.0
func (in *LVMSnapshot) DeepCopyInto(out *LVMSnapshot)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LVMSnapshot) DeepCopyObject ¶ added in v0.2.0
func (in *LVMSnapshot) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LVMSnapshotList ¶ added in v0.2.0
type LVMSnapshotList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []LVMSnapshot `json:"items"` }
LVMSnapshotList is a list of LVMSnapshot resources
func (*LVMSnapshotList) DeepCopy ¶ added in v0.2.0
func (in *LVMSnapshotList) DeepCopy() *LVMSnapshotList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LVMSnapshotList.
func (*LVMSnapshotList) DeepCopyInto ¶ added in v0.2.0
func (in *LVMSnapshotList) DeepCopyInto(out *LVMSnapshotList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LVMSnapshotList) DeepCopyObject ¶ added in v0.2.0
func (in *LVMSnapshotList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LVMSnapshotSpec ¶ added in v0.7.0
type LVMSnapshotSpec struct { // OwnerNodeID is the Node ID where the volume group is present which is where // the snapshot has been provisioned. // OwnerNodeID can not be edited after the snapshot has been provisioned. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:Required OwnerNodeID string `json:"ownerNodeID"` // VolGroup specifies the name of the volume group where the snapshot has been created. // +kubebuilder:validation:Required VolGroup string `json:"volGroup"` // SnapSize specifies the space reserved for the snapshot // +kubebuilder:validation:Required SnapSize string `json:"snapSize,omitempty"` }
LVMSnapshotSpec defines LVMSnapshot spec
func (*LVMSnapshotSpec) DeepCopy ¶ added in v0.7.0
func (in *LVMSnapshotSpec) DeepCopy() *LVMSnapshotSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LVMSnapshotSpec.
func (*LVMSnapshotSpec) DeepCopyInto ¶ added in v0.7.0
func (in *LVMSnapshotSpec) DeepCopyInto(out *LVMSnapshotSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LVMVolume ¶
type LVMVolume struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VolumeInfo `json:"spec"` Status VolStatus `json:"status,omitempty"` }
LVMVolume represents a LVM based volume +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced,shortName=lvmvol +kubebuilder:printcolumn:name="VolGroup",type=string,JSONPath=`.spec.volGroup`,description="volume group where the volume is created" +kubebuilder:printcolumn:name="Node",type=string,JSONPath=`.spec.ownerNodeID`,description="Node where the volume is created" +kubebuilder:printcolumn:name="Size",type=string,JSONPath=`.spec.capacity`,description="Size of the volume" +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.state`,description="Status of the volume" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Age of the volume"
func (*LVMVolume) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LVMVolume.
func (*LVMVolume) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LVMVolume) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LVMVolumeList ¶
type LVMVolumeList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []LVMVolume `json:"items"` }
LVMVolumeList is a list of LVMVolume resources +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +resource:path=lvmvolumes
func (*LVMVolumeList) DeepCopy ¶
func (in *LVMVolumeList) DeepCopy() *LVMVolumeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LVMVolumeList.
func (*LVMVolumeList) DeepCopyInto ¶
func (in *LVMVolumeList) DeepCopyInto(out *LVMVolumeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LVMVolumeList) DeepCopyObject ¶
func (in *LVMVolumeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SnapStatus ¶ added in v0.2.0
type SnapStatus struct {
State string `json:"state,omitempty"`
}
SnapStatus string that reflects if the snapshot was created successfully
func (*SnapStatus) DeepCopy ¶ added in v0.2.0
func (in *SnapStatus) DeepCopy() *SnapStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnapStatus.
func (*SnapStatus) DeepCopyInto ¶ added in v0.2.0
func (in *SnapStatus) DeepCopyInto(out *SnapStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolStatus ¶
type VolStatus struct { // State specifies the current state of the volume provisioning request. // The state "Pending" means that the volume creation request has not // processed yet. The state "Ready" means that the volume has been created // and it is ready for the use. "Failed" means that volume provisioning // has been failed and will not be retried by node agent controller. // +kubebuilder:validation:Enum=Pending;Ready;Failed State string `json:"state,omitempty"` // Error denotes the error occurred during provisioning/expanding a volume. // Error field should only be set when State becomes Failed. Error *VolumeError `json:"error,omitempty"` }
VolStatus string that specifies the current state of the volume provisioning request.
func (*VolStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolStatus.
func (*VolStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeError ¶ added in v0.3.0
type VolumeError struct { Code VolumeErrorCode `json:"code,omitempty"` Message string `json:"message,omitempty"` }
VolumeError specifies the error occurred during volume provisioning.
func (*VolumeError) DeepCopy ¶ added in v0.3.0
func (in *VolumeError) DeepCopy() *VolumeError
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeError.
func (*VolumeError) DeepCopyInto ¶ added in v0.3.0
func (in *VolumeError) DeepCopyInto(out *VolumeError)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeErrorCode ¶ added in v0.3.0
type VolumeErrorCode string
VolumeErrorCode represents the error code to represent specific class of errors.
const ( // Internal represents system internal error. Internal VolumeErrorCode = "Internal" // InsufficientCapacity represent lvm vg doesn't // have enough capacity to fit the lv request. InsufficientCapacity VolumeErrorCode = "InsufficientCapacity" )
type VolumeGroup ¶ added in v0.3.0
type VolumeGroup struct { // Name of the lvm volume group. // +kubebuilder:validation:Required // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // UUID denotes a unique identity of a lvm volume group. // +kubebuilder:validation:Required // +kubebuilder:validation:MinLength=1 UUID string `json:"uuid"` // Size specifies the total size of volume group. // +kubebuilder:validation:Required Size resource.Quantity `json:"size"` // Free specifies the available capacity of volume group. // +kubebuilder:validation:Required Free resource.Quantity `json:"free"` // LVCount denotes total number of logical volumes in // volume group. // +kubebuilder:validation:Required // +kubebuilder:validation:Minimum=0 LVCount int32 `json:"lvCount"` // PVCount denotes total number of physical volumes // constituting the volume group. // +kubebuilder:validation:Required // +kubebuilder:validation:Minimum=0 PVCount int32 `json:"pvCount"` // MaxLV denotes maximum number of logical volumes allowed // in volume group or 0 if unlimited. MaxLV int32 `json:"maxLv"` // MaxPV denotes maximum number of physical volumes allowed // in volume group or 0 if unlimited. MaxPV int32 `json:"maxPv"` // SnapCount denotes number of snapshots in volume group. SnapCount int32 `json:"snapCount"` // MissingPVCount denotes number of physical volumes in // volume group which are missing. MissingPVCount int32 `json:"missingPvCount"` // MetadataCount denotes number of metadata areas on the // volume group. MetadataCount int32 `json:"metadataCount"` // MetadataUsedCount denotes number of used metadata areas in // volume group MetadataUsedCount int32 `json:"metadataUsedCount"` // MetadataFree specifies the available metadata area space // for the volume group MetadataFree resource.Quantity `json:"metadataFree"` // MetadataSize specifies size of smallest metadata area // for the volume group MetadataSize resource.Quantity `json:"metadataSize"` // Permission indicates the volume group permission // which can be writable or read-only. // Permission has the following mapping between // int and string for its value: // [-1: "", 0: "writeable", 1: "read-only"] Permission int `json:"permissions"` // AllocationPolicy indicates the volume group allocation // policy. // AllocationPolicy has the following mapping between // int and string for its value: // [-1: "", 0: "normal", 1: "contiguous", 2: "cling", 3: "anywhere", 4: "inherited"] AllocationPolicy int `json:"allocationPolicy"` }
VolumeGroup specifies attributes of a given vg exists on node.
func (*VolumeGroup) DeepCopy ¶ added in v0.3.0
func (in *VolumeGroup) DeepCopy() *VolumeGroup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeGroup.
func (*VolumeGroup) DeepCopyInto ¶ added in v0.3.0
func (in *VolumeGroup) DeepCopyInto(out *VolumeGroup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeInfo ¶
type VolumeInfo struct { // OwnerNodeID is the Node ID where the volume group is present which is where // the volume has been provisioned. // OwnerNodeID can not be edited after the volume has been provisioned. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:Required OwnerNodeID string `json:"ownerNodeID"` // VolGroup specifies the name of the volume group where the volume has been created. // +kubebuilder:validation:Required VolGroup string `json:"volGroup"` // VgPattern specifies the regex to choose volume groups where volume // needs to be created. // +kubebuilder:validation:Required VgPattern string `json:"vgPattern"` // Capacity of the volume // +kubebuilder:validation:Required // +kubebuilder:validation:MinLength=1 Capacity string `json:"capacity"` // If it is not set to "yes", then the LVM LocalPV Driver will not allow // the volumes to be mounted by more than one pods. // +kubebuilder:validation:Required // +kubebuilder:validation:Enum=yes;no Shared string `json:"shared,omitempty"` // ThinProvision specifies whether logical volumes can be thinly provisioned. // If it is set to "yes", then the LVM LocalPV Driver will create // thinProvision i.e. logical volumes that are larger than the available extents. // +kubebuilder:validation:Required // +kubebuilder:validation:Enum=yes;no ThinProvision string `json:"thinProvision,omitempty"` }
VolumeInfo defines LVM info
func (*VolumeInfo) DeepCopy ¶
func (in *VolumeInfo) DeepCopy() *VolumeInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeInfo.
func (*VolumeInfo) DeepCopyInto ¶
func (in *VolumeInfo) DeepCopyInto(out *VolumeInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.