v1alpha1

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2024 License: Apache-2.0 Imports: 4 Imported by: 1

Documentation

Overview

Package v1alpha1 is the API version +groupName=local.openebs.io

Index

Constants

This section is empty.

Variables

View Source
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
)
View Source
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

func (in *LVMNode) DeepCopy() *LVMNode

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

func (*LVMNode) DeepCopyInto added in v0.3.0

func (in *LVMNode) DeepCopyInto(out *LVMNode)

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

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

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

func (in *LVMVolume) DeepCopy() *LVMVolume

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

func (*LVMVolume) DeepCopyInto

func (in *LVMVolume) DeepCopyInto(out *LVMVolume)

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

func (*LVMVolume) DeepCopyObject

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

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

func (in *VolStatus) DeepCopy() *VolStatus

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

func (*VolStatus) DeepCopyInto

func (in *VolStatus) DeepCopyInto(out *VolStatus)

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"`

	// Shared specifies whether the volume can be shared among multiple pods.
	// 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.

Jump to

Keyboard shortcuts

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