Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the csi v1 API group. +kubebuilder:object:generate=true +groupName=csi.ceph.io
Index ¶
- Variables
- type BlockPoolIdPair
- type CephConnection
- type CephConnectionList
- type CephConnectionSpec
- type CephConnectionStatus
- type CephCsiSecretsSpec
- type CephFsClientType
- type CephFsConfigSpec
- type ClientProfile
- type ClientProfileList
- type ClientProfileMapping
- type ClientProfileMappingList
- type ClientProfileMappingSpec
- type ClientProfileMappingStatus
- type ClientProfileSpec
- type ClientProfileStatus
- type ControllerPluginResourcesSpec
- type ControllerPluginSpec
- type Driver
- type DriverList
- type DriverSpec
- type DriverStatus
- type EncryptionSpec
- type LeaderElectionSpec
- type LivenessSpec
- type LogRotationSpec
- type LogSpec
- type MappingsSpec
- type NfsConfigSpec
- type NodePluginResourcesSpec
- type NodePluginSpec
- type NvmeofConfigSpec
- type OperatorConfig
- type OperatorConfigList
- type OperatorConfigSpec
- type OperatorConfigStatus
- type OperatorLogSpec
- type PeriodicityType
- type PodCommonSpec
- type RbdConfigSpec
- type ReadAffinitySpec
- type SnapshotPolicyType
- type TopologySpec
- type VolumeSpec
Constants ¶
This section is empty.
Variables ¶
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 ¶
func (in *CephConnectionStatus) DeepCopy() *CephConnectionStatus
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 ¶
func (in *ClientProfileMapping) DeepCopy() *ClientProfileMapping
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 ¶
func (in *ClientProfileMappingList) DeepCopy() *ClientProfileMappingList
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 ¶
func (in *ClientProfileMappingSpec) DeepCopy() *ClientProfileMappingSpec
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 ¶
func (in *ClientProfileMappingStatus) DeepCopy() *ClientProfileMappingStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientProfileMappingStatus.
func (*ClientProfileMappingStatus) DeepCopyInto ¶
func (in *ClientProfileMappingStatus) DeepCopyInto(out *ClientProfileMappingStatus)
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 ¶
func (in *ControllerPluginResourcesSpec) DeepCopy() *ControllerPluginResourcesSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerPluginResourcesSpec.
func (*ControllerPluginResourcesSpec) DeepCopyInto ¶
func (in *ControllerPluginResourcesSpec) DeepCopyInto(out *ControllerPluginResourcesSpec)
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 ¶
func (in *ControllerPluginSpec) DeepCopy() *ControllerPluginSpec
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Driver.
func (*Driver) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Driver) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogSpec.
func (*LogSpec) DeepCopyInto ¶
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 ¶
func (in *NodePluginResourcesSpec) DeepCopy() *NodePluginResourcesSpec
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 ¶
func (in *OperatorConfigStatus) DeepCopy() *OperatorConfigStatus
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.