v1

package
v0.0.0-...-bf8653b Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2026 License: Apache-2.0 Imports: 7 Imported by: 8

Documentation

Overview

Package v1 contains API Schema definitions for the csi v1 API group. +kubebuilder:object:generate=true +groupName=csi.ceph.io

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "csi.ceph.io", Version: "v1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type BlockPoolIdPair

type BlockPoolIdPair []string

+kubebuilder:validation:MinItems:=2 +kubebuilder:validation:MaxItems:=2

func (BlockPoolIdPair) DeepCopy

func (in BlockPoolIdPair) DeepCopy() BlockPoolIdPair

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

func (BlockPoolIdPair) DeepCopyInto

func (in BlockPoolIdPair) DeepCopyInto(out *BlockPoolIdPair)

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

type CephConnection

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

	Spec   CephConnectionSpec   `json:"spec,omitempty"`
	Status CephConnectionStatus `json:"status,omitempty"`
}

CephConnection is the Schema for the cephconnections API

func (*CephConnection) DeepCopy

func (in *CephConnection) DeepCopy() *CephConnection

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

func (*CephConnection) DeepCopyInto

func (in *CephConnection) DeepCopyInto(out *CephConnection)

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

func (*CephConnection) DeepCopyObject

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

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

type CephConnectionList

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

CephConnectionList contains a list of CephConnections

func (*CephConnectionList) DeepCopy

func (in *CephConnectionList) DeepCopy() *CephConnectionList

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

func (*CephConnectionList) DeepCopyInto

func (in *CephConnectionList) DeepCopyInto(out *CephConnectionList)

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

func (*CephConnectionList) DeepCopyObject

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

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

type CephConnectionSpec

type CephConnectionSpec struct {
	//+kubebuilder:validation:Required
	//+kubebuilder:validation:MinItems:=1
	Monitors []string `json:"monitors"`

	//+kubebuilder:validation:Optional
	ReadAffinity *ReadAffinitySpec `json:"readAffinity,omitempty"`

	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Minimum:=1
	RbdMirrorDaemonCount int `json:"rbdMirrorDaemonCount,omitempty"`
}

CephConnectionSpec defines the desired state of CephConnection

func (*CephConnectionSpec) DeepCopy

func (in *CephConnectionSpec) DeepCopy() *CephConnectionSpec

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

func (*CephConnectionSpec) DeepCopyInto

func (in *CephConnectionSpec) DeepCopyInto(out *CephConnectionSpec)

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

type CephConnectionStatus

type CephConnectionStatus struct {
}

CephConnectionStatus defines the observed state of CephConnection

func (*CephConnectionStatus) DeepCopy

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

func (*CephConnectionStatus) DeepCopyInto

func (in *CephConnectionStatus) DeepCopyInto(out *CephConnectionStatus)

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

type CephCsiSecretsSpec

type CephCsiSecretsSpec struct {
	//+kubebuilder:validation:Optional
	ControllerPublishSecret corev1.SecretReference `json:"controllerPublishSecret,omitempty"`
}

CephCsiSecretsSpec defines the secrets used by the client profile to access the Ceph cluster and perform operations on volumes.

func (*CephCsiSecretsSpec) DeepCopy

func (in *CephCsiSecretsSpec) DeepCopy() *CephCsiSecretsSpec

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

func (*CephCsiSecretsSpec) DeepCopyInto

func (in *CephCsiSecretsSpec) DeepCopyInto(out *CephCsiSecretsSpec)

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

type CephFsClientType

type CephFsClientType string
const (
	AutoDetectCephFsClient CephFsClientType = "autodetect"
	KernelCephFsClient     CephFsClientType = "kernel"
)

type CephFsConfigSpec

type CephFsConfigSpec struct {
	//+kubebuilder:validation:Optional
	SubVolumeGroup string `json:"subVolumeGroup,omitempty"`

	//+kubebuilder:validation:Optional
	KernelMountOptions map[string]string `json:"kernelMountOptions,omitempty"`

	//+kubebuilder:validation:Optional
	FuseMountOptions map[string]string `json:"fuseMountOptions,omitempty"`

	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="field is immutable"
	//+kubebuilder:validation:Optional
	RadosNamespace *string `json:"radosNamespace,omitempty"`

	//+kubebuilder:validation:Optional
	CephCsiSecrets *CephCsiSecretsSpec `json:"cephCsiSecrets,omitempty"`
}

CephFsConfigSpec defines the desired CephFs configuration

func (*CephFsConfigSpec) DeepCopy

func (in *CephFsConfigSpec) DeepCopy() *CephFsConfigSpec

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

func (*CephFsConfigSpec) DeepCopyInto

func (in *CephFsConfigSpec) DeepCopyInto(out *CephFsConfigSpec)

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

type ClientProfile

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

	Spec   ClientProfileSpec   `json:"spec,omitempty"`
	Status ClientProfileStatus `json:"status,omitempty"`
}

ClientProfile is the Schema for the clientprofiles API

func (*ClientProfile) DeepCopy

func (in *ClientProfile) DeepCopy() *ClientProfile

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

func (*ClientProfile) DeepCopyInto

func (in *ClientProfile) DeepCopyInto(out *ClientProfile)

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

func (*ClientProfile) DeepCopyObject

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

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

type ClientProfileList

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

ClientProfileList contains a list of ClientProfile

func (*ClientProfileList) DeepCopy

func (in *ClientProfileList) DeepCopy() *ClientProfileList

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

func (*ClientProfileList) DeepCopyInto

func (in *ClientProfileList) DeepCopyInto(out *ClientProfileList)

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

func (*ClientProfileList) DeepCopyObject

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

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

type ClientProfileMapping

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

	Spec   ClientProfileMappingSpec   `json:"spec,omitempty"`
	Status ClientProfileMappingStatus `json:"status,omitempty"`
}

ClientProfileMapping is the Schema for the clientprofilemappings API

func (*ClientProfileMapping) DeepCopy

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

func (*ClientProfileMapping) DeepCopyInto

func (in *ClientProfileMapping) DeepCopyInto(out *ClientProfileMapping)

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

func (*ClientProfileMapping) DeepCopyObject

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

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

type ClientProfileMappingList

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

ClientProfileMappingList contains a list of ClientProfileMapping

func (*ClientProfileMappingList) DeepCopy

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

func (*ClientProfileMappingList) DeepCopyInto

func (in *ClientProfileMappingList) DeepCopyInto(out *ClientProfileMappingList)

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

func (*ClientProfileMappingList) DeepCopyObject

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

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

type ClientProfileMappingSpec

type ClientProfileMappingSpec struct {
	//+kubebuilder:validation:Required
	Mappings []MappingsSpec `json:"mappings,omitempty"`
}

ClientProfileMappingSpec defines the desired state of ClientProfileMapping

func (*ClientProfileMappingSpec) DeepCopy

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

func (*ClientProfileMappingSpec) DeepCopyInto

func (in *ClientProfileMappingSpec) DeepCopyInto(out *ClientProfileMappingSpec)

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

type ClientProfileMappingStatus

type ClientProfileMappingStatus struct {
}

ClientProfileMappingStatus defines the observed state of ClientProfileMapping

func (*ClientProfileMappingStatus) DeepCopy

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

func (*ClientProfileMappingStatus) DeepCopyInto

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

type ClientProfileSpec

type ClientProfileSpec struct {
	//+kubebuilder:validation:Required
	//+kubebuilder:validation:XValidation:rule=self.name != "",message="'.name' cannot be empty"
	CephConnectionRef corev1.LocalObjectReference `json:"cephConnectionRef"`

	//+kubebuilder:validation:Optional
	CephFs *CephFsConfigSpec `json:"cephFs,omitempty"`

	//+kubebuilder:validation:Optional
	Rbd *RbdConfigSpec `json:"rbd,omitempty"`

	//+kubebuilder:validation:Optional
	Nfs *NfsConfigSpec `json:"nfs,omitempty"`

	//+kubebuilder:validation:Optional
	Nvmeof *NvmeofConfigSpec `json:"nvmeof,omitempty"`
}

ClientProfileSpec defines the desired state of Ceph CSI configuration for volumes and snapshots configured to use this profile

func (*ClientProfileSpec) DeepCopy

func (in *ClientProfileSpec) DeepCopy() *ClientProfileSpec

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

func (*ClientProfileSpec) DeepCopyInto

func (in *ClientProfileSpec) DeepCopyInto(out *ClientProfileSpec)

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

type ClientProfileStatus

type ClientProfileStatus struct {
}

ClientProfileStatus defines the observed state of Ceph CSI configuration for volumes and snapshots configured to use this profile

func (*ClientProfileStatus) DeepCopy

func (in *ClientProfileStatus) DeepCopy() *ClientProfileStatus

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

func (*ClientProfileStatus) DeepCopyInto

func (in *ClientProfileStatus) DeepCopyInto(out *ClientProfileStatus)

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

type ControllerPluginResourcesSpec

type ControllerPluginResourcesSpec struct {
	//+kubebuilder:validation:Optional
	Attacher *corev1.ResourceRequirements `json:"attacher,omitempty"`

	//+kubebuilder:validation:Optional
	Snapshotter *corev1.ResourceRequirements `json:"snapshotter,omitempty"`

	//+kubebuilder:validation:Optional
	Resizer *corev1.ResourceRequirements `json:"resizer,omitempty"`

	//+kubebuilder:validation:Optional
	Provisioner *corev1.ResourceRequirements `json:"provisioner,omitempty"`

	//+kubebuilder:validation:Optional
	OMapGenerator *corev1.ResourceRequirements `json:"omapGenerator,omitempty"`

	//+kubebuilder:validation:Optional
	Liveness *corev1.ResourceRequirements `json:"liveness,omitempty"`

	//+kubebuilder:validation:Optional
	Addons *corev1.ResourceRequirements `json:"addons,omitempty"`

	//+kubebuilder:validation:Optional
	LogRotator *corev1.ResourceRequirements `json:"logRotator,omitempty"`

	//+kubebuilder:validation:Optional
	Plugin *corev1.ResourceRequirements `json:"plugin,omitempty"`
}

func (*ControllerPluginResourcesSpec) DeepCopy

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

func (*ControllerPluginResourcesSpec) DeepCopyInto

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

type ControllerPluginSpec

type ControllerPluginSpec struct {
	// hostNetwork setting to be propagated to CSI controller plugin pods
	HostNetwork *bool `json:"hostNetwork,omitempty"`
	// Embedded common pods spec
	PodCommonSpec `json:",inline"`

	// DeploymentStrategy describes how to replace existing pods with new ones
	// Default value is Recreate
	//+kubebuilder:validation:Optional
	DeploymentStrategy *appsv1.DeploymentStrategy `json:"deploymentStrategy,omitempty"`

	// Set replicas for controller plugin's deployment. Defaults to 2
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Minimum:=1
	Replicas *int32 `json:"replicas,omitempty"`

	// Resource requirements for controller plugin's containers
	//+kubebuilder:validation:Optional
	Resources ControllerPluginResourcesSpec `json:"resources,omitempty"`

	// To enable logrotation for csi pods,
	// Some platforms require controller plugin to run privileged,
	// For example, OpenShift with SELinux restrictions requires the pod to be privileged to write to hostPath.
	//+kubebuilder:validation:Optional
	Privileged *bool `json:"privileged,omitempty"`
}

func (*ControllerPluginSpec) DeepCopy

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

func (*ControllerPluginSpec) DeepCopyInto

func (in *ControllerPluginSpec) DeepCopyInto(out *ControllerPluginSpec)

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

type Driver

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

	Spec   DriverSpec   `json:"spec,omitempty"`
	Status DriverStatus `json:"status,omitempty"`
}

+kubebuilder:validation:XValidation:rule=self.metadata.name.matches('^(.+\\.)?(rbd|cephfs|nfs|nvmeof)?\\.csi\\.ceph\\.com$'),message=".metadata.name must match: '[<prefix>.](rbd|cephfs|nfs|nvmeof).csi.ceph.com'" Driver is the Schema for the drivers API

func (*Driver) DeepCopy

func (in *Driver) DeepCopy() *Driver

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

func (*Driver) DeepCopyInto

func (in *Driver) DeepCopyInto(out *Driver)

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

func (*Driver) DeepCopyObject

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

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

type DriverList

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

DriverList contains a list of Driver

func (*DriverList) DeepCopy

func (in *DriverList) DeepCopy() *DriverList

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

func (*DriverList) DeepCopyInto

func (in *DriverList) DeepCopyInto(out *DriverList)

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

func (*DriverList) DeepCopyObject

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

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

type DriverSpec

type DriverSpec struct {
	// Logging configuration for driver's pods
	//+kubebuilder:validation:Optional
	Log *LogSpec `json:"log,omitempty"`

	// A reference to a ConfigMap resource holding image overwrite for deployed
	// containers
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:XValidation:rule=self.name != "",message="'.name' cannot be empty"
	ImageSet *corev1.LocalObjectReference `json:"imageSet,omitempty"`

	// Cluster name identifier to set as metadata on the CephFS subvolume and RBD images. This will be useful in cases
	// when two container orchestrator clusters (Kubernetes/OCP) are using a single ceph cluster.
	//+kubebuilder:validation:Optional
	ClusterName *string `json:"clusterName,omitempty"`

	// Deprecated: This field is no longer used by the ceph-csi driver and will be ignored.
	//+kubebuilder:validation:Optional
	EnableMetadata *bool `json:"enableMetadata,omitempty"`

	// Set to true to enable fencing for the driver.
	// Fencing is a feature that allows the driver to fence a node when it is tainted with node.kubernetes.io/out-of-service.
	//+kubebuilder:validation:Optional
	EnableFencing *bool `json:"enableFencing,omitempty"`

	// Set the gRPC timeout for gRPC call issued by the driver components
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Minimum:=0
	GRpcTimeout int `json:"grpcTimeout,omitempty"`

	// Select a policy for snapshot behavior: none, autodetect, snapshot, sanpshotGroup
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Enum:=none;volumeGroupSnapshot;volumeSnapshot
	SnapshotPolicy SnapshotPolicyType `json:"snapshotPolicy,omitempty"`

	// OMAP generator will generate the omap mapping between the PV name and the RBD image.
	// Need to be enabled when we are using rbd mirroring feature.
	// By default OMAP generator sidecar is not deployed with Csi controller plugin pod, to enable
	// it set it to true.
	//+kubebuilder:validation:Optional
	GenerateOMapInfo *bool `json:"generateOMapInfo,omitempty"`

	// Policy for modifying a volume's ownership or permissions when the PVC is being mounted.
	// supported values are documented at https://kubernetes-csi.github.io/docs/support-fsgroup.html
	//+kubebuilder:validation:Optional
	FsGroupPolicy storagev1.FSGroupPolicy `json:"fsGroupPolicy,omitempty"`

	// Driver's encryption settings
	//+kubebuilder:validation:Optional
	Encryption *EncryptionSpec `json:"encryption,omitempty"`

	// Driver's plugin configuration
	//+kubebuilder:validation:Optional
	NodePlugin *NodePluginSpec `json:"nodePlugin,omitempty"`

	// Driver's controller plugin configuration
	//+kubebuilder:validation:Optional
	ControllerPlugin *ControllerPluginSpec `json:"controllerPlugin,omitempty"`

	// Whether to skip any attach operation altogether for CephCsi PVCs.
	// See more details [here](https://kubernetes-csi.github.io/docs/skip-attach.html#skip-attach-with-csi-driver-object).
	// If set to false it skips the volume attachments and makes the creation of pods using the CephCsi PVC fast.
	// **WARNING** It's highly discouraged to use this for RWO volumes. for RBD PVC it can cause data corruption,
	// csi-addons operations like Reclaimspace and PVC Keyrotation will also not be supported if set to false
	// since we'll have no VolumeAttachments to determine which node the PVC is mounted on.
	// Refer to this [issue](https://github.com/kubernetes/kubernetes/issues/103305) for more details.
	//+kubebuilder:validation:Optional
	AttachRequired *bool `json:"attachRequired,omitempty"`

	// Liveness metrics configuration.
	// disabled by default.
	//+kubebuilder:validation:Optional
	Liveness *LivenessSpec `json:"liveness,omitempty"`

	// Leader election setting
	//+kubebuilder:validation:Optional
	LeaderElection *LeaderElectionSpec `json:"leaderElection,omitempty"`

	// TODO: do we want Csi addon specific field? or should we generalize to
	// a list of additional sidecars?
	//+kubebuilder:validation:Optional
	DeployCsiAddons *bool `json:"deployCsiAddons,omitempty"`

	// Select between between cephfs kernel driver and ceph-fuse
	// If you select a non-kernel client, your application may be disrupted during upgrade.
	// See the upgrade guide: https://rook.io/docs/rook/latest/ceph-upgrade.html
	// NOTE! cephfs quota is not supported in kernel version < 4.17
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Enum:=autodetect;kernel
	CephFsClientType CephFsClientType `json:"cephFsClientType,omitempty"`

	// Set mount options to use https://docs.ceph.com/en/latest/man/8/mount.ceph/#options
	// Set to "ms_mode=secure" when connections.encrypted is enabled in Ceph
	//+kubebuilder:validation:Optional
	KernelMountOptions map[string]string `json:"kernelMountOptions,omitempty"`

	// Set mount options to use when using the Fuse client
	//+kubebuilder:validation:Optional
	FuseMountOptions map[string]string `json:"fuseMountOptions,omitempty"`
}

DriverSpec defines the desired state of Driver

func (*DriverSpec) DeepCopy

func (in *DriverSpec) DeepCopy() *DriverSpec

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

func (*DriverSpec) DeepCopyInto

func (in *DriverSpec) DeepCopyInto(out *DriverSpec)

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

type DriverStatus

type DriverStatus struct {
}

DriverStatus defines the observed state of Driver

func (*DriverStatus) DeepCopy

func (in *DriverStatus) DeepCopy() *DriverStatus

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

func (*DriverStatus) DeepCopyInto

func (in *DriverStatus) DeepCopyInto(out *DriverStatus)

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

type EncryptionSpec

type EncryptionSpec struct {
	//+kubebuilder:validation:Required
	//+kubebuilder:validation:XValidation:rule=self.name != "",message="'.name' cannot be empty"
	ConfigMapRef corev1.LocalObjectReference `json:"configMapName,omitempty"`
}

func (*EncryptionSpec) DeepCopy

func (in *EncryptionSpec) DeepCopy() *EncryptionSpec

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

func (*EncryptionSpec) DeepCopyInto

func (in *EncryptionSpec) DeepCopyInto(out *EncryptionSpec)

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

type LeaderElectionSpec

type LeaderElectionSpec struct {
	// Duration in seconds that non-leader candidates will wait to force acquire leadership.
	// Default to 137 seconds.
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Minimum:=0
	LeaseDuration int `json:"leaseDuration,omitempty"`

	// Deadline in seconds that the acting leader will retry refreshing leadership before giving up.
	// Defaults to 107 seconds.
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Minimum:=0
	RenewDeadline int `json:"renewDeadline,omitempty"`

	// Retry Period in seconds the LeaderElector clients should wait between tries of actions.
	// Defaults to 26 seconds.
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Minimum:=0
	RetryPeriod int `json:"retryPeriod,omitempty"`
}

func (*LeaderElectionSpec) DeepCopy

func (in *LeaderElectionSpec) DeepCopy() *LeaderElectionSpec

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

func (*LeaderElectionSpec) DeepCopyInto

func (in *LeaderElectionSpec) DeepCopyInto(out *LeaderElectionSpec)

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

type LivenessSpec

type LivenessSpec struct {
	// Port to expose liveness metrics
	//+kubebuilder:validation:Required
	//+kubebuilder:validation:Minimum:=1024
	//+kubebuilder:validation:Maximum:=65535
	MetricsPort int `json:"metricsPort,omitempty"`
}

func (*LivenessSpec) DeepCopy

func (in *LivenessSpec) DeepCopy() *LivenessSpec

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

func (*LivenessSpec) DeepCopyInto

func (in *LivenessSpec) DeepCopyInto(out *LivenessSpec)

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

type LogRotationSpec

type LogRotationSpec struct {
	// MaxFiles is the number of logrtoate files
	// Default to 7
	//+kubebuilder:validation:Optional
	MaxFiles int `json:"maxFiles,omitempty"`

	// MaxLogSize is the maximum size of the log file per csi pods
	//+kubebuilder:validation:Optional
	MaxLogSize resource.Quantity `json:"maxLogSize,omitempty"`

	// Periodicity is the periodicity of the log rotation.
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Enum:=hourly;daily;weekly;monthly
	Periodicity PeriodicityType `json:"periodicity,omitempty"`

	// LogHostPath is the prefix directory path for the csi log files
	// Default to /var/lib/cephcsi
	//+kubebuilder:validation:Optional
	LogHostPath string `json:"logHostPath,omitempty"`
}

+kubebuilder:validation:XValidation:message="Either maxLogSize or periodicity must be set",rule="(has(self.maxLogSize)) || (has(self.periodicity))"

func (*LogRotationSpec) DeepCopy

func (in *LogRotationSpec) DeepCopy() *LogRotationSpec

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

func (*LogRotationSpec) DeepCopyInto

func (in *LogRotationSpec) DeepCopyInto(out *LogRotationSpec)

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

type LogSpec

type LogSpec struct {
	// Log verbosity level for driver pods,
	// Supported values from 0 to 5. 0 for general useful logs (the default), 5 for trace level verbosity.
	// Default to 0
	//+kubebuilder:validation:Minimum=0
	//+kubebuilder:validation:Maximum=5
	//+kubebuilder:validation:Optional
	Verbosity int `json:"verbosity,omitempty"`

	// log rotation for csi pods
	//+kubebuilder:validation:Optional
	Rotation *LogRotationSpec `json:"rotation,omitempty"`
}

func (*LogSpec) DeepCopy

func (in *LogSpec) DeepCopy() *LogSpec

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

func (*LogSpec) DeepCopyInto

func (in *LogSpec) DeepCopyInto(out *LogSpec)

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

type MappingsSpec

type MappingsSpec struct {
	//+kubebuilder:validation:Required
	LocalClientProfile string `json:"localClientProfile,omitempty"`

	//+kubebuilder:validation:Required
	RemoteClientProfile string `json:"remoteClientProfile,omitempty"`

	//+kubebuilder:validation:Optional
	BlockPoolIdMapping []BlockPoolIdPair `json:"blockPoolIdMapping,omitempty"`
}

MappingsSpec define a mapping between a local and remote profiles

func (*MappingsSpec) DeepCopy

func (in *MappingsSpec) DeepCopy() *MappingsSpec

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

func (*MappingsSpec) DeepCopyInto

func (in *MappingsSpec) DeepCopyInto(out *MappingsSpec)

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

type NfsConfigSpec

type NfsConfigSpec struct {
}

NfsConfigSpec defines the desired NFS configuration

func (*NfsConfigSpec) DeepCopy

func (in *NfsConfigSpec) DeepCopy() *NfsConfigSpec

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

func (*NfsConfigSpec) DeepCopyInto

func (in *NfsConfigSpec) DeepCopyInto(out *NfsConfigSpec)

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

type NodePluginResourcesSpec

type NodePluginResourcesSpec struct {
	//+kubebuilder:validation:Optional
	Registrar *corev1.ResourceRequirements `json:"registrar,omitempty"`

	//+kubebuilder:validation:Optional
	Liveness *corev1.ResourceRequirements `json:"liveness,omitempty"`

	//+kubebuilder:validation:Optional
	Addons *corev1.ResourceRequirements `json:"addons,omitempty"`

	//+kubebuilder:validation:Optional
	LogRotator *corev1.ResourceRequirements `json:"logRotator,omitempty"`

	//+kubebuilder:validation:Optional
	Plugin *corev1.ResourceRequirements `json:"plugin,omitempty"`
}

func (*NodePluginResourcesSpec) DeepCopy

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

func (*NodePluginResourcesSpec) DeepCopyInto

func (in *NodePluginResourcesSpec) DeepCopyInto(out *NodePluginResourcesSpec)

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

type NodePluginSpec

type NodePluginSpec struct {
	// Embedded common pods spec
	PodCommonSpec `json:",inline"`

	// Driver's plugin daemonset update strategy, supported values are OnDelete and RollingUpdate.
	// Default value is RollingUpdate with MaxAvailabile set to 1
	//+kubebuilder:validation:Optional
	UpdateStrategy *appsv1.DaemonSetUpdateStrategy `json:"updateStrategy,omitempty"`

	// Resource requirements for plugin's containers
	//+kubebuilder:validation:Optional
	Resources NodePluginResourcesSpec `json:"resources,omitempty"`

	// kubelet directory path, if kubelet configured to use other than /var/lib/kubelet path.
	//+kubebuilder:validation:Optional
	KubeletDirPath string `json:"kubeletDirPath,omitempty"`

	// Control the host mount of /etc/selinux for csi plugin pods. Defaults to false
	//+kubebuilder:validation:Optional
	EnableSeLinuxHostMount *bool `json:"enableSeLinuxHostMount,omitempty"`
	// Topology settings for the plugin pods
	//+kubebuilder:validation:Optional
	Topology *TopologySpec `json:"topology,omitempty"`
}

func (*NodePluginSpec) DeepCopy

func (in *NodePluginSpec) DeepCopy() *NodePluginSpec

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

func (*NodePluginSpec) DeepCopyInto

func (in *NodePluginSpec) DeepCopyInto(out *NodePluginSpec)

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

type NvmeofConfigSpec

type NvmeofConfigSpec struct {
	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="field is immutable"
	//+kubebuilder:validation:Optional
	RadosNamespace string `json:"radosNamespace,omitempty"`

	//+kubebuilder:validation:Optional
	CephCsiSecrets *CephCsiSecretsSpec `json:"cephCsiSecrets,omitempty"`
}

NvmeofConfigSpec defines the desired NVMe-oF configuration

func (*NvmeofConfigSpec) DeepCopy

func (in *NvmeofConfigSpec) DeepCopy() *NvmeofConfigSpec

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

func (*NvmeofConfigSpec) DeepCopyInto

func (in *NvmeofConfigSpec) DeepCopyInto(out *NvmeofConfigSpec)

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

type OperatorConfig

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

	Spec   OperatorConfigSpec   `json:"spec,omitempty"`
	Status OperatorConfigStatus `json:"status,omitempty"`
}

OperatorConfig is the Schema for the operatorconfigs API

func (*OperatorConfig) DeepCopy

func (in *OperatorConfig) DeepCopy() *OperatorConfig

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

func (*OperatorConfig) DeepCopyInto

func (in *OperatorConfig) DeepCopyInto(out *OperatorConfig)

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

func (*OperatorConfig) DeepCopyObject

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

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

type OperatorConfigList

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

OperatorConfigList contains a list of OperatorConfig

func (*OperatorConfigList) DeepCopy

func (in *OperatorConfigList) DeepCopy() *OperatorConfigList

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

func (*OperatorConfigList) DeepCopyInto

func (in *OperatorConfigList) DeepCopyInto(out *OperatorConfigList)

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

func (*OperatorConfigList) DeepCopyObject

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

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

type OperatorConfigSpec

type OperatorConfigSpec struct {
	//+kubebuilder:validation:Optional
	Log *OperatorLogSpec `json:"log,omitempty"`

	// Allow overwrite of hardcoded defaults for any driver managed by this operator
	//+kubebuilder:validation:Optional
	DriverSpecDefaults *DriverSpec `json:"driverSpecDefaults,omitempty"`
}

OperatorConfigSpec defines the desired state of OperatorConfig

func (*OperatorConfigSpec) DeepCopy

func (in *OperatorConfigSpec) DeepCopy() *OperatorConfigSpec

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

func (*OperatorConfigSpec) DeepCopyInto

func (in *OperatorConfigSpec) DeepCopyInto(out *OperatorConfigSpec)

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

type OperatorConfigStatus

type OperatorConfigStatus struct {
}

OperatorConfigStatus defines the observed state of OperatorConfig

func (*OperatorConfigStatus) DeepCopy

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

func (*OperatorConfigStatus) DeepCopyInto

func (in *OperatorConfigStatus) DeepCopyInto(out *OperatorConfigStatus)

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

type OperatorLogSpec

type OperatorLogSpec struct {
	// Operator's log level
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:Minimum=0
	//+kubebuilder:validation:Maximum=3
	Verbosity int `json:"verbosity,omitempty"`
}

OperatorLogSpec provide log related settings for the operator

func (*OperatorLogSpec) DeepCopy

func (in *OperatorLogSpec) DeepCopy() *OperatorLogSpec

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

func (*OperatorLogSpec) DeepCopyInto

func (in *OperatorLogSpec) DeepCopyInto(out *OperatorLogSpec)

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

type PeriodicityType

type PeriodicityType string
const (
	HourlyPeriod  PeriodicityType = "hourly"
	DailyPeriod   PeriodicityType = "daily"
	WeeklyPeriod  PeriodicityType = "weekly"
	MonthlyPeriod PeriodicityType = "monthly"
)

type PodCommonSpec

type PodCommonSpec struct {
	// Service account name to be used for driver's pods
	//+kubebuilder:validation:Optional
	ServiceAccountName *string `json:"serviceAccountName,omitempty"`

	// Pod's user defined priority class name
	//+kubebuilder:validation:Optional
	PrioritylClassName *string `json:"priorityClassName,omitempty"`

	// Pod's labels
	//+kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// Pod's annotations
	//+kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Pod's affinity settings
	//+kubebuilder:validation:Optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// Pod's tolerations list
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:minItems:=1
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Volume and volume mount definitions to attach to the pod
	//+kubebuilder:validation:Optional
	//+kubebuilder:validation:minItems:=1
	Volumes []VolumeSpec `json:"volumes,omitempty"`

	// To indicate the image pull policy to be applied to all the containers in the csi driver pods.
	//+kubebuilder:validation:Optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy"`
}

func (*PodCommonSpec) DeepCopy

func (in *PodCommonSpec) DeepCopy() *PodCommonSpec

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

func (*PodCommonSpec) DeepCopyInto

func (in *PodCommonSpec) DeepCopyInto(out *PodCommonSpec)

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

type RbdConfigSpec

type RbdConfigSpec struct {
	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="field is immutable"
	//+kubebuilder:validation:Optional
	RadosNamespace string `json:"radosNamespace,omitempty"`

	//+kubebuilder:validation:Optional
	CephCsiSecrets *CephCsiSecretsSpec `json:"cephCsiSecrets,omitempty"`
}

RbdConfigSpec defines the desired RBD configuration

func (*RbdConfigSpec) DeepCopy

func (in *RbdConfigSpec) DeepCopy() *RbdConfigSpec

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

func (*RbdConfigSpec) DeepCopyInto

func (in *RbdConfigSpec) DeepCopyInto(out *RbdConfigSpec)

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

type ReadAffinitySpec

type ReadAffinitySpec struct {
	//+kubebuilder:validation:Required
	//+kubebuilder:validation:MinItems:=1
	CrushLocationLabels []string `json:"crushLocationLabels,omitempty"`
}

ReadAffinitySpec capture Ceph CSI read affinity settings

func (*ReadAffinitySpec) DeepCopy

func (in *ReadAffinitySpec) DeepCopy() *ReadAffinitySpec

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

func (*ReadAffinitySpec) DeepCopyInto

func (in *ReadAffinitySpec) DeepCopyInto(out *ReadAffinitySpec)

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

type SnapshotPolicyType

type SnapshotPolicyType string
const (
	// Disables the feature and remove the snapshotter sidercar
	NoneSnapshotPolicy SnapshotPolicyType = "none"

	// Enable the volumegroupsnapshot feature (will results in deployment of a snapshotter sidecar)
	VolumeGroupSnapshotPolicy SnapshotPolicyType = "volumeGroupSnapshot"

	// Enable the volumesnapshot feature (will results in deployment of a snapshotter sidecar)
	VolumeSnapshotSnapshotPolicy SnapshotPolicyType = "volumeSnapshot"
)

type TopologySpec

type TopologySpec struct {
	// Domain labels define which node labels to use as domains for CSI nodeplugins to advertise their domains
	//+kubebuilder:validation:Required
	DomainLabels []string `json:"domainLabels,omitempty"`
}

TopologySpec defines the topology settings for the plugin pods

func (*TopologySpec) DeepCopy

func (in *TopologySpec) DeepCopy() *TopologySpec

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

func (*TopologySpec) DeepCopyInto

func (in *TopologySpec) DeepCopyInto(out *TopologySpec)

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

type VolumeSpec

type VolumeSpec struct {
	//+kubebuilder:validation:Optional
	Volume corev1.Volume `json:"volume,omitempty"`

	//+kubebuilder:validation:Optional
	Mount corev1.VolumeMount `json:"mount,omitempty"`
}

func (*VolumeSpec) DeepCopy

func (in *VolumeSpec) DeepCopy() *VolumeSpec

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

func (*VolumeSpec) DeepCopyInto

func (in *VolumeSpec) DeepCopyInto(out *VolumeSpec)

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