v1alpha1

package
v0.6.0-RC1 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2020 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package v1alpha1 is the API version +groupName=zfs.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:   "zfs.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 MountInfo

type MountInfo struct {
	// FSType of a volume will specify the
	// format type - ext4(default), xfs of PV
	FSType string `json:"fsType"`

	// AccessMode of a volume will hold the
	// access mode of the volume
	AccessModes []string `json:"accessModes"`

	// MountPath of the volume will hold the
	// path on which the volume is mounted
	// on that node
	MountPath string `json:"mountPath"`

	// ReadOnly specifies if the volume needs
	// to be mounted in ReadOnly mode
	ReadOnly bool `json:"readOnly"`

	// MountOptions specifies the options with
	// which mount needs to be attempted
	MountOptions []string `json:"mountOptions"`
}

MountInfo contains the volume related info for all types of volumes in ZFSVolume

func (*MountInfo) DeepCopy

func (in *MountInfo) DeepCopy() *MountInfo

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

func (*MountInfo) DeepCopyInto

func (in *MountInfo) DeepCopyInto(out *MountInfo)

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

type SnapStatus

type SnapStatus struct {
	State string `json:"state,omitempty"`
}

func (*SnapStatus) DeepCopy

func (in *SnapStatus) DeepCopy() *SnapStatus

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

func (*SnapStatus) DeepCopyInto

func (in *SnapStatus) DeepCopyInto(out *SnapStatus)

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

type VolumeInfo

type VolumeInfo struct {

	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Required
	OwnerNodeID string `json:"ownerNodeID"`

	// poolName specifies the name of the
	// pool where this volume should be created
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	PoolName string `json:"poolName"`

	// SnapName specifies the name of the
	// snapshot where this volume should be cloned
	SnapName string `json:"snapname,omitempty"`

	// Capacity of the volume
	// +kubebuilder:validation:MinLength=1
	Capacity string `json:"capacity"`

	// RecordSize specifies the record size
	// for the zfs dataset
	// +kubebuilder:validation:MinLength=1
	RecordSize string `json:"recordsize,omitempty"`

	// VolBlockSize specifies the block size for the zvol
	// +kubebuilder:validation:MinLength=1
	VolBlockSize string `json:"volblocksize,omitempty"`

	// Controls the compression algorithm used for this dataset. Compression
	// specifies if the it should enabled on the zvol. Setting compression to on
	// indicates that the current default compression algorithm should be used.
	// The current default compression algorithm is either lzjb or, if the lz4_compress
	// feature is enabled, lz4.
	// Changing this property affects only newly-written data.
	// +kubebuilder:validation:Pattern="^(on|off|lzjb|gzip|gzip-[1-9]|zle|lz4)$"
	Compression string `json:"compression,omitempty"`

	// Deduplication is the process for removing redundant data at the block level,
	// reducing the total amount of data stored. If a file system has the dedup property
	// enabled, duplicate data blocks are removed synchronously.
	// The result is that only unique data is stored and common components are shared among files.
	// Deduplication can consume significant processing power (CPU) and memory as well as generate additional disk IO.
	// Before creating a pool with deduplication enabled, ensure that you have planned your hardware
	// requirements appropriately and implemented appropriate recovery practices, such as regular backups.
	// As an alternative to deduplication consider using compression=lz4, as a less resource-intensive alternative.
	// should be enabled on the zvol
	// +kubebuilder:validation:Enum=on;off
	Dedup string `json:"dedup,omitempty"`

	// Enabling the encryption feature allows for the creation of
	// encrypted filesystems and volumes. ZFS will encrypt file and zvol data,
	// file attributes, ACLs, permission bits, directory listings, FUID mappings,
	// and userused / groupused data. ZFS will not encrypt metadata related to the
	// pool structure, including dataset and snapshot names, dataset hierarchy,
	// properties, file size, file holes, and deduplication tables
	// (though the deduplicated data itself is encrypted).
	// +kubebuilder:validation:Pattern="^(on|off|aes-128-[c,g]cm|aes-192-[c,g]cm|aes-256-[c,g]cm)$"
	Encryption string `json:"encryption,omitempty"`

	// KeyLocation is the location of key for the encryption
	KeyLocation string `json:"keylocation,omitempty"`

	// KeyFormat specifies format of the encryption key
	KeyFormat string `json:"keyformat,omitempty"`

	// Thinprovision specifies if we should
	// thin provisioned the volume or not
	// +kubebuilder:validation:Enum=Yes;no
	ThinProvision string `json:"thinProvision,omitempty"`

	// volumeType determines whether the volume is of type "DATASET" or "ZVOL".
	// if fsttype provided in the storageclass is "zfs", then it will create a
	// volume of type "DATASET". If "ext4", "ext3", "ext2" or "xfs" is mentioned as fstype
	// in the storageclass, it will create a volume of type "ZVOL" so that it can be
	// further formatted with the fstype provided in the storageclass.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=ZVOL;DATASET
	VolumeType string `json:"volumeType"`

	// FsType specifies filesystem type for the
	// zfs volume/dataset
	FsType string `json:"fsType,omitempty"`
}

VolumeInfo contains the volume related info for all types of volumes in ZFSVolume

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.

type ZFSSnapshot

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

	Spec   VolumeInfo `json:"spec"`
	Status SnapStatus `json:"status"`
}

ZFSSnapshot represents a ZFS Snapshot of the zfsvolume +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced,shortName=zfssnap

func (*ZFSSnapshot) DeepCopy

func (in *ZFSSnapshot) DeepCopy() *ZFSSnapshot

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

func (*ZFSSnapshot) DeepCopyInto

func (in *ZFSSnapshot) DeepCopyInto(out *ZFSSnapshot)

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

func (*ZFSSnapshot) DeepCopyObject

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

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

type ZFSSnapshotList

type ZFSSnapshotList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []ZFSSnapshot `json:"items"`
}

ZFSSnapshotList is a list of ZFSSnapshot resources

func (*ZFSSnapshotList) DeepCopy

func (in *ZFSSnapshotList) DeepCopy() *ZFSSnapshotList

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

func (*ZFSSnapshotList) DeepCopyInto

func (in *ZFSSnapshotList) DeepCopyInto(out *ZFSSnapshotList)

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

func (*ZFSSnapshotList) DeepCopyObject

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

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

type ZFSVolume

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

	Spec VolumeInfo `json:"spec"`
}

ZFSVolume represents a ZFS based volume +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced,shortName=zfsvol;zv +kubebuilder:printcolumn:name="ZPool",type=string,JSONPath=`.spec.poolName`,description="ZFS Pool 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="volblocksize",type=string,JSONPath=`.spec.volblocksize`,description="volblocksize of volume" +kubebuilder:printcolumn:name="recordsize",type=string,JSONPath=`.spec.recordsize`,description="recordsize of created zfs dataset" +kubebuilder:printcolumn:name="Filesystem",type=string,JSONPath=`.spec.fsType`,description="filesystem created on the volume" +kubebuilder:printcolumn:name="CreationTime",type=date,JSONPath=`.status.creationTime`,description="Timestamp when the volume has been created." +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`

func (*ZFSVolume) DeepCopy

func (in *ZFSVolume) DeepCopy() *ZFSVolume

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

func (*ZFSVolume) DeepCopyInto

func (in *ZFSVolume) DeepCopyInto(out *ZFSVolume)

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

func (*ZFSVolume) DeepCopyObject

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

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

type ZFSVolumeList

type ZFSVolumeList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []ZFSVolume `json:"items"`
}

ZFSVolumeList is a list of ZFSVolume resources

func (*ZFSVolumeList) DeepCopy

func (in *ZFSVolumeList) DeepCopy() *ZFSVolumeList

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

func (*ZFSVolumeList) DeepCopyInto

func (in *ZFSVolumeList) DeepCopyInto(out *ZFSVolumeList)

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

func (*ZFSVolumeList) DeepCopyObject

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

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

Jump to

Keyboard shortcuts

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