Documentation ¶
Overview ¶
Package v1 contains API Schema definitions for the ocs v1 API group +kubebuilder:object:generate=true +groupName=ocs.openshift.io
Index ¶
- Constants
- Variables
- type ArbiterSpec
- type BackingStorageClass
- type BlockPoolConfigurationSpec
- type CSIDriverSpec
- type ComponentImageStatus
- type EncryptionSpec
- type ExternalPGSpec
- type ExternalStorageClusterSpec
- type ExternalStorageKind
- type ImagesStatus
- type KMSServerConnectionStatus
- type KeyManagementServiceSpec
- type KeyRotationSpec
- type ManageCephBlockPools
- type ManageCephCluster
- type ManageCephConfig
- type ManageCephDashboard
- type ManageCephFilesystems
- type ManageCephNonResilientPools
- type ManageCephObjectStoreUsers
- type ManageCephObjectStores
- type ManageCephRBDMirror
- type ManageCephToolbox
- type ManagedResourcesSpec
- type MgrSpec
- type MirroringSpec
- type MonitoringSpec
- type MultiCloudGatewaySpec
- type NFSSpec
- type NodeTopologyMap
- func (m *NodeTopologyMap) Add(topologyKey string, value string)
- func (m *NodeTopologyMap) Contains(topologyKey string, value string) bool
- func (m *NodeTopologyMap) ContainsKey(topologyKey string) bool
- func (in *NodeTopologyMap) DeepCopy() *NodeTopologyMap
- func (in *NodeTopologyMap) DeepCopyInto(out *NodeTopologyMap)
- func (m *NodeTopologyMap) GetKeyValues(topologyKey string) (string, []string)
- type OCSInitialization
- type OCSInitializationList
- type OCSInitializationSpec
- type OCSInitializationStatus
- type OverprovisionControlSpec
- type PeerInfo
- type RookCephOperatorConfigStatus
- type SharedFilesystemConfigurationSpec
- type StorageCluster
- func (in *StorageCluster) DeepCopy() *StorageCluster
- func (in *StorageCluster) DeepCopyInto(out *StorageCluster)
- func (in *StorageCluster) DeepCopyObject() runtime.Object
- func (r *StorageCluster) NewToolsDeployment(tolerations []corev1.Toleration, nodeAffinity *corev1.NodeAffinity) *appsv1.Deployment
- type StorageClusterList
- type StorageClusterPeer
- type StorageClusterPeerList
- type StorageClusterPeerSpec
- type StorageClusterPeerState
- type StorageClusterPeerStatus
- type StorageClusterSpec
- type StorageClusterStatus
- type StorageDeviceSet
- type StorageDeviceSetConfig
- type StorageProfile
- type StorageProfileList
- type StorageProfilePhase
- type StorageProfileSpec
- type StorageProfileStatus
- type TopologyLabelValues
Constants ¶
const ( // ConditionReconcileComplete communicates the status of the StorageCluster resource's // reconcile functionality. Basically, is the Reconcile function running to completion. ConditionReconcileComplete conditionsv1.ConditionType = "ReconcileComplete" // ConditionExternalClusterConnected condition type indicates // the successful connection to an external cluster ConditionExternalClusterConnected conditionsv1.ConditionType = "ExternalClusterConnected" // ConditionExternalClusterConnecting type indicates that rook is still trying for // an external connection ConditionExternalClusterConnecting conditionsv1.ConditionType = "ExternalClusterConnecting" // ConditionVersionMismatch type indicates that there is a mismatch in the storagecluster // and the operator version ConditionVersionMismatch conditionsv1.ConditionType = "VersionMismatch" )
const ( ReconcileFailed = "ReconcileFailed" ReconcileInit = "Init" ReconcileCompleted = "ReconcileCompleted" ReconcileCompletedMessage = "Reconcile completed successfully" ExternalClusterConnected = "ExternalClusterConnected" ExternalClusterConnectedMessage = "Connected successfully to an external cluster" )
List of constants to show different different reconciliation messages and statuses.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "ocs.openshift.io", Version: "v1"} // SchemeBuilder points to a list of functions added to Scheme. SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme. AddToScheme = localSchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type ArbiterSpec ¶
type ArbiterSpec struct { Enable bool `json:"enable,omitempty"` // DisableMasterNodeToleration can be used to turn off the arbiter mon toleration for the master node taint. DisableMasterNodeToleration bool `json:"disableMasterNodeToleration,omitempty"` ArbiterMonPVCTemplate *corev1.PersistentVolumeClaim `json:"arbiterMonPVCTemplate,omitempty"` }
ArbiterSpec defines if arbiter should be enabled for the Ceph Cluster. It is optional and defaults to false. If set to true, ArbiterLocation must be set in the NodeTopologies.
func (*ArbiterSpec) DeepCopy ¶
func (in *ArbiterSpec) DeepCopy() *ArbiterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArbiterSpec.
func (*ArbiterSpec) DeepCopyInto ¶
func (in *ArbiterSpec) DeepCopyInto(out *ArbiterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackingStorageClass ¶
type BackingStorageClass struct { metav1.ObjectMeta `json:"metadata,omitempty"` // Provisioner indicates the type of the provisioner. // +optional Provisioner string `json:"provisioner,omitempty"` // Parameters holds the parameters for the provisioner that should // create volumes of this storage class. // +optional Parameters map[string]string `json:"parameters,omitempty"` }
BackingStorageClass defines the backing storageclass for StorageDeviceSet
func (*BackingStorageClass) DeepCopy ¶
func (in *BackingStorageClass) DeepCopy() *BackingStorageClass
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackingStorageClass.
func (*BackingStorageClass) DeepCopyInto ¶
func (in *BackingStorageClass) DeepCopyInto(out *BackingStorageClass)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlockPoolConfigurationSpec ¶
type BlockPoolConfigurationSpec struct { // +kubebuilder:validation:Optional Parameters map[string]string `json:"parameters,omitempty"` }
func (*BlockPoolConfigurationSpec) DeepCopy ¶
func (in *BlockPoolConfigurationSpec) DeepCopy() *BlockPoolConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockPoolConfigurationSpec.
func (*BlockPoolConfigurationSpec) DeepCopyInto ¶
func (in *BlockPoolConfigurationSpec) DeepCopyInto(out *BlockPoolConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CSIDriverSpec ¶
type CSIDriverSpec struct { // ReadAffinity defines the read affinity settings for CSI driver. // +kubebuilder:validation:Optional ReadAffinity *rookCephv1.ReadAffinitySpec `json:"readAffinity,omitempty"` }
CSIDriverSpec defines the CSI driver settings for the StorageCluster.
func (*CSIDriverSpec) DeepCopy ¶
func (in *CSIDriverSpec) DeepCopy() *CSIDriverSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriverSpec.
func (*CSIDriverSpec) DeepCopyInto ¶
func (in *CSIDriverSpec) DeepCopyInto(out *CSIDriverSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentImageStatus ¶
type ComponentImageStatus struct { DesiredImage string `json:"desiredImage,omitempty"` ActualImage string `json:"actualImage,omitempty"` }
ComponentImageStatus holds image status information for a specific component image
func (*ComponentImageStatus) DeepCopy ¶
func (in *ComponentImageStatus) DeepCopy() *ComponentImageStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentImageStatus.
func (*ComponentImageStatus) DeepCopyInto ¶
func (in *ComponentImageStatus) DeepCopyInto(out *ComponentImageStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EncryptionSpec ¶
type EncryptionSpec struct { // deprecated from OCS 4.10 onwards, acting as a dummy, // UI will keep sending this flag for backward compatibility (OCP 4.10 + OCS 4.9) // +optional Enable bool `json:"enable,omitempty"` // +optional ClusterWide bool `json:"clusterWide,omitempty"` // +optional StorageClass bool `json:"storageClass,omitempty"` // StorageClassName specifies the name of the storage class created for ceph encrypted block pools // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ StorageClassName string `json:"storageClassName,omitempty"` KeyManagementService KeyManagementServiceSpec `json:"kms,omitempty"` // KeyRotation defines options for Key Rotation. // +optional KeyRotation KeyRotationSpec `json:"keyRotation,omitempty"` }
EncryptionSpec defines if encryption should be enabled for the Storage Cluster It is optional and defaults to false.
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 ExternalPGSpec ¶
type ExternalPGSpec struct { // PGSecret stores the secret name which contains connection string of the Postgres server // +optional PGSecretName string `json:"pgSecretName,omitempty"` // AllowSelfSignedCerts will allow the Postgres server to use self signed certificates to authenticate // +optional AllowSelfSignedCerts bool `json:"allowSelfSignedCerts,omitempty"` // EnableTLS will allow the postgres server to connect via TLS/SSL // +optional EnableTLS bool `json:"enableTls,omitempty"` // TLSSecret stores the secret name which contains the client side certificates if enabled // +optional TLSSecretName string `json:"tlsSecretName,omitempty"` }
func (*ExternalPGSpec) DeepCopy ¶
func (in *ExternalPGSpec) DeepCopy() *ExternalPGSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalPGSpec.
func (*ExternalPGSpec) DeepCopyInto ¶
func (in *ExternalPGSpec) DeepCopyInto(out *ExternalPGSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalStorageClusterSpec ¶
type ExternalStorageClusterSpec struct { // +optional Enable bool `json:"enable,omitempty"` }
ExternalStorageClusterSpec defines the spec of the external Storage Cluster to be connected to the local cluster
func (*ExternalStorageClusterSpec) DeepCopy ¶
func (in *ExternalStorageClusterSpec) DeepCopy() *ExternalStorageClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalStorageClusterSpec.
func (*ExternalStorageClusterSpec) DeepCopyInto ¶
func (in *ExternalStorageClusterSpec) DeepCopyInto(out *ExternalStorageClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalStorageKind ¶
type ExternalStorageKind string
ExternalStorageKind specifies a kind of the external storage
const ( // KindOCS specifies a "ocs" kind of the external storage KindOCS ExternalStorageKind = "ocs" // KindRHCS specifies a "rhcs" kind of the external storage KindRHCS ExternalStorageKind = "rhcs" )
type ImagesStatus ¶
type ImagesStatus struct { Ceph *ComponentImageStatus `json:"ceph,omitempty"` NooBaaCore *ComponentImageStatus `json:"noobaaCore,omitempty"` NooBaaDB *ComponentImageStatus `json:"noobaaDB,omitempty"` }
ImagesStatus maps every component image name it's reconciliation status information
func (*ImagesStatus) DeepCopy ¶
func (in *ImagesStatus) DeepCopy() *ImagesStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagesStatus.
func (*ImagesStatus) DeepCopyInto ¶
func (in *ImagesStatus) DeepCopyInto(out *ImagesStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KMSServerConnectionStatus ¶
type KMSServerConnectionStatus struct { KMSServerAddress string `json:"kmsServerAddress,omitempty"` KMSServerConnectionError string `json:"kmsServerConnectionError,omitempty"` }
KMSServerConnectionStatus defines the observed connection state to the KMS server.
func (*KMSServerConnectionStatus) DeepCopy ¶
func (in *KMSServerConnectionStatus) DeepCopy() *KMSServerConnectionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KMSServerConnectionStatus.
func (*KMSServerConnectionStatus) DeepCopyInto ¶
func (in *KMSServerConnectionStatus) DeepCopyInto(out *KMSServerConnectionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KeyManagementServiceSpec ¶
type KeyManagementServiceSpec struct { // +optional Enable bool `json:"enable,omitempty"` }
KeyManagementServiceSpec provides a way to enable KMS
func (*KeyManagementServiceSpec) DeepCopy ¶
func (in *KeyManagementServiceSpec) DeepCopy() *KeyManagementServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyManagementServiceSpec.
func (*KeyManagementServiceSpec) DeepCopyInto ¶
func (in *KeyManagementServiceSpec) DeepCopyInto(out *KeyManagementServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KeyRotationSpec ¶
type KeyRotationSpec struct { // Enable represents whether the key rotation is enabled. // +optional Enable *bool `json:"enable,omitempty"` // Schedule represents the cron schedule for key rotation. // +optional // +kubebuilder:default="@weekly" Schedule string `json:"schedule,omitempty"` }
KeyRotationSpec represents the settings for Key Rotation.
func (*KeyRotationSpec) DeepCopy ¶
func (in *KeyRotationSpec) DeepCopy() *KeyRotationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyRotationSpec.
func (*KeyRotationSpec) DeepCopyInto ¶
func (in *KeyRotationSpec) DeepCopyInto(out *KeyRotationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManageCephBlockPools ¶
type ManageCephBlockPools struct { ReconcileStrategy string `json:"reconcileStrategy,omitempty"` DisableStorageClass bool `json:"disableStorageClass,omitempty"` DisableSnapshotClass bool `json:"disableSnapshotClass,omitempty"` // if set to true, the storageClass created for cephBlockPools will be annotated as the default for the whole cluster DefaultStorageClass bool `json:"defaultStorageClass,omitempty"` // StorageClassName specifies the name of the storage class created for ceph block pools // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ StorageClassName string `json:"storageClassName,omitempty"` // VirtualizationStorageClassName specifies the name of the storage class created for ceph block pools // for virtualization environment // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ VirtualizationStorageClassName string `json:"virtualizationStorageClassName,omitempty"` }
ManageCephBlockPools defines how to reconcile CephBlockPools
func (*ManageCephBlockPools) DeepCopy ¶
func (in *ManageCephBlockPools) DeepCopy() *ManageCephBlockPools
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManageCephBlockPools.
func (*ManageCephBlockPools) DeepCopyInto ¶
func (in *ManageCephBlockPools) DeepCopyInto(out *ManageCephBlockPools)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManageCephCluster ¶
type ManageCephCluster struct { ReconcileStrategy string `json:"reconcileStrategy,omitempty"` // +kubebuilder:validation:Enum=1;2 MgrCount int `json:"mgrCount,omitempty"` // +kubebuilder:validation:Enum=3;5 MonCount int `json:"monCount,omitempty"` // WaitTimeoutForHealthyOSDInMinutes defines the time the operator would wait before an OSD can be stopped for upgrade or restart. // If `continueUpgradeAfterChecksEvenIfNotHealthy` is `false` and the timeout exceeds and OSD is not ok to stop, then the operator // would skip upgrade for the current OSD and proceed with the next one. // If `continueUpgradeAfterChecksEvenIfNotHealthy` is `true`, then operator would continue with the upgrade of an OSD even if its // not ok to stop after the timeout. // This timeout won't be applied if `skipUpgradeChecks` is `true`. // The default wait timeout is 10 minutes. WaitTimeoutForHealthyOSDInMinutes time.Duration `json:"waitTimeoutForHealthyOSDInMinutes,omitempty"` // Whether or not upgrade should continue even if a check fails // This means Ceph's status could be degraded and we don't recommend upgrading but you might decide otherwise // Use at your OWN risk SkipUpgradeChecks bool `json:"skipUpgradeChecks,omitempty"` // Whether or not continue if PGs are not clean during an upgrade ContinueUpgradeAfterChecksEvenIfNotHealthy *bool `json:"continueUpgradeAfterChecksEvenIfNotHealthy,omitempty"` // Whether or not requires PGs are clean before an OSD upgrade. If set to `true` OSD upgrade process won't start until PGs are healthy. // This configuration will be ignored if `skipUpgradeChecks` is `true`. UpgradeOSDRequiresHealthyPGs bool `json:"upgradeOSDRequiresHealthyPGs,omitempty"` // A duration in minutes that determines how long an entire failureDomain like `region/zone/host` will be held in `noout` (in addition to the // default DOWN/OUT interval) when it is draining. This is only relevant when `managePodBudgets` is `true` in cephCluster CR. // The default value is `30` minutes. OsdMaintenanceTimeout time.Duration `json:"osdMaintenanceTimeout,omitempty"` // NearFullRatio is the ratio at which the cluster is considered nearly full and will raise a ceph health warning. Default is 0.75. // +kubebuilder:validation:Minimum=0.0 // +kubebuilder:validation:Maximum=1.0 // +nullable NearFullRatio *float64 `json:"nearFullRatio,omitempty"` // BackfillFullRatio is the ratio at which the cluster is too full for backfill. Backfill will be disabled if above this threshold. Default is 0.80. // +kubebuilder:validation:Minimum=0.0 // +kubebuilder:validation:Maximum=1.0 // +nullable BackfillFullRatio *float64 `json:"backfillFullRatio,omitempty"` // FullRatio is the ratio at which the cluster is considered full and ceph will stop accepting writes. Default is 0.85. // +kubebuilder:validation:Minimum=0.0 // +kubebuilder:validation:Maximum=1.0 // +nullable FullRatio *float64 `json:"fullRatio,omitempty"` // Whether to allow updating the device class after the OSD is initially provisioned AllowDeviceClassUpdate bool `json:"allowDeviceClassUpdate,omitempty"` }
ManageCephCluster defines how to reconcile the Ceph cluster definition
func (*ManageCephCluster) DeepCopy ¶
func (in *ManageCephCluster) DeepCopy() *ManageCephCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManageCephCluster.
func (*ManageCephCluster) DeepCopyInto ¶
func (in *ManageCephCluster) DeepCopyInto(out *ManageCephCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManageCephConfig ¶
type ManageCephConfig struct {
ReconcileStrategy string `json:"reconcileStrategy,omitempty"`
}
ManageCephConfig defines how to reconcile the Ceph configuration
func (*ManageCephConfig) DeepCopy ¶
func (in *ManageCephConfig) DeepCopy() *ManageCephConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManageCephConfig.
func (*ManageCephConfig) DeepCopyInto ¶
func (in *ManageCephConfig) DeepCopyInto(out *ManageCephConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManageCephDashboard ¶
type ManageCephDashboard struct { Enable bool `json:"enable,omitempty"` // serve the dashboard using SSL SSL bool `json:"ssl,omitempty"` }
ManageCephDashboard defines how to reconcile Ceph dashboard
func (*ManageCephDashboard) DeepCopy ¶
func (in *ManageCephDashboard) DeepCopy() *ManageCephDashboard
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManageCephDashboard.
func (*ManageCephDashboard) DeepCopyInto ¶
func (in *ManageCephDashboard) DeepCopyInto(out *ManageCephDashboard)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManageCephFilesystems ¶
type ManageCephFilesystems struct { ReconcileStrategy string `json:"reconcileStrategy,omitempty"` DisableStorageClass bool `json:"disableStorageClass,omitempty"` ActiveMetadataServers int `json:"activeMetadataServers,omitempty"` DisableSnapshotClass bool `json:"disableSnapshotClass,omitempty"` // StorageClassName specifies the name of the storage class created for cephfs // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ StorageClassName string `json:"storageClassName,omitempty"` // DataPoolSpec specifies the pool specification for the default cephfs data pool DataPoolSpec rookCephv1.PoolSpec `json:"dataPoolSpec,omitempty"` // AdditionalDataPools specifies list of additional named cephfs data pools AdditionalDataPools []rookCephv1.NamedPoolSpec `json:"additionalDataPools,omitempty"` }
ManageCephFilesystems defines how to reconcile CephFilesystems
func (*ManageCephFilesystems) DeepCopy ¶
func (in *ManageCephFilesystems) DeepCopy() *ManageCephFilesystems
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManageCephFilesystems.
func (*ManageCephFilesystems) DeepCopyInto ¶
func (in *ManageCephFilesystems) DeepCopyInto(out *ManageCephFilesystems)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManageCephNonResilientPools ¶
type ManageCephNonResilientPools struct { Enable bool `json:"enable,omitempty"` // Count is the number of devices in this set // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=1 Count int `json:"count,omitempty"` // ResourceRequirements (requests/limits) for the devices Resources corev1.ResourceRequirements `json:"resources,omitempty"` // VolumeClaimTemplates is a PVC template for the underlying storage devices VolumeClaimTemplate corev1.PersistentVolumeClaim `json:"volumeClaimTemplate,omitempty"` // StorageClassName specifies the name of the storage class created for ceph non-resilient pools // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ StorageClassName string `json:"storageClassName,omitempty"` }
ManageCephNonResilientPools defines how to reconcile ceph non-resilient pools
func (*ManageCephNonResilientPools) DeepCopy ¶
func (in *ManageCephNonResilientPools) DeepCopy() *ManageCephNonResilientPools
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManageCephNonResilientPools.
func (*ManageCephNonResilientPools) DeepCopyInto ¶
func (in *ManageCephNonResilientPools) DeepCopyInto(out *ManageCephNonResilientPools)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManageCephObjectStoreUsers ¶
type ManageCephObjectStoreUsers struct {
ReconcileStrategy string `json:"reconcileStrategy,omitempty"`
}
ManageCephObjectStoreUsers defines how to reconcile CephObjectStoreUsers
func (*ManageCephObjectStoreUsers) DeepCopy ¶
func (in *ManageCephObjectStoreUsers) DeepCopy() *ManageCephObjectStoreUsers
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManageCephObjectStoreUsers.
func (*ManageCephObjectStoreUsers) DeepCopyInto ¶
func (in *ManageCephObjectStoreUsers) DeepCopyInto(out *ManageCephObjectStoreUsers)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManageCephObjectStores ¶
type ManageCephObjectStores struct { ReconcileStrategy string `json:"reconcileStrategy,omitempty"` DisableStorageClass bool `json:"disableStorageClass,omitempty"` GatewayInstances int `json:"gatewayInstances,omitempty"` DisableRoute bool `json:"disableRoute,omitempty"` HostNetwork *bool `json:"hostNetwork,omitempty"` // StorageClassName specifies the name of the storage class created for ceph obc's // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ StorageClassName string `json:"storageClassName,omitempty"` }
ManageCephObjectStores defines how to reconcile CephObjectStores
func (*ManageCephObjectStores) DeepCopy ¶
func (in *ManageCephObjectStores) DeepCopy() *ManageCephObjectStores
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManageCephObjectStores.
func (*ManageCephObjectStores) DeepCopyInto ¶
func (in *ManageCephObjectStores) DeepCopyInto(out *ManageCephObjectStores)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManageCephRBDMirror ¶
type ManageCephRBDMirror struct { ReconcileStrategy string `json:"reconcileStrategy,omitempty"` // +kubebuilder:default=1 // +kubebuilder:validation:Minimum=1 DaemonCount int `json:"daemonCount,omitempty"` }
ManageCephRBDMirror defines how to reconcile Ceph RBDMirror
func (*ManageCephRBDMirror) DeepCopy ¶
func (in *ManageCephRBDMirror) DeepCopy() *ManageCephRBDMirror
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManageCephRBDMirror.
func (*ManageCephRBDMirror) DeepCopyInto ¶
func (in *ManageCephRBDMirror) DeepCopyInto(out *ManageCephRBDMirror)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManageCephToolbox ¶
type ManageCephToolbox struct {
ReconcileStrategy string `json:"reconcileStrategy,omitempty"`
}
ManageCephToolbox defines how to reconcile Ceph toolbox
func (*ManageCephToolbox) DeepCopy ¶
func (in *ManageCephToolbox) DeepCopy() *ManageCephToolbox
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManageCephToolbox.
func (*ManageCephToolbox) DeepCopyInto ¶
func (in *ManageCephToolbox) DeepCopyInto(out *ManageCephToolbox)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManagedResourcesSpec ¶
type ManagedResourcesSpec struct { CephCluster ManageCephCluster `json:"cephCluster,omitempty"` CephConfig ManageCephConfig `json:"cephConfig,omitempty"` CephDashboard ManageCephDashboard `json:"cephDashboard,omitempty"` CephBlockPools ManageCephBlockPools `json:"cephBlockPools,omitempty"` CephNonResilientPools ManageCephNonResilientPools `json:"cephNonResilientPools,omitempty"` CephFilesystems ManageCephFilesystems `json:"cephFilesystems,omitempty"` CephObjectStores ManageCephObjectStores `json:"cephObjectStores,omitempty"` CephObjectStoreUsers ManageCephObjectStoreUsers `json:"cephObjectStoreUsers,omitempty"` CephToolbox ManageCephToolbox `json:"cephToolbox,omitempty"` CephRBDMirror ManageCephRBDMirror `json:"cephRBDMirror,omitempty"` }
ManagedResourcesSpec defines how to reconcile auxiliary resources
func (*ManagedResourcesSpec) DeepCopy ¶
func (in *ManagedResourcesSpec) DeepCopy() *ManagedResourcesSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedResourcesSpec.
func (*ManagedResourcesSpec) DeepCopyInto ¶
func (in *ManagedResourcesSpec) DeepCopyInto(out *ManagedResourcesSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MgrSpec ¶
type MgrSpec struct { // EnableActivePassive can be set as true to deploy 2 ceph manager pods, one active and one standby // Ceph will promote the standby mgr when the active mgr goes down due to any reason // +kubebuilder:deprecatedversion:warning="This field has been deprecated and will be removed in future. By default we now have 2 ceph manager pods, one active and one standby." EnableActivePassive bool `json:"enableActivePassive,omitempty"` }
MgrSpec defines the settings for the Ceph Manager
func (*MgrSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MgrSpec.
func (*MgrSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MirroringSpec ¶
type MirroringSpec struct { // If true, data mirroring is enabled for the StorageCluster. // This configuration will only be applied to resources (such as CephBlockPool) // managed by the operator. // It is optional and defaults to false. // +optional Enabled bool `json:"enabled,omitempty"` // PeerSecretNames represents the Kubernetes Secret names of rbd-mirror peers tokens // +optional PeerSecretNames []string `json:"peerSecretNames,omitempty"` }
func (*MirroringSpec) DeepCopy ¶
func (in *MirroringSpec) DeepCopy() *MirroringSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MirroringSpec.
func (*MirroringSpec) DeepCopyInto ¶
func (in *MirroringSpec) DeepCopyInto(out *MirroringSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MonitoringSpec ¶
type MonitoringSpec struct { ReconcileStrategy string `json:"reconcileStrategy,omitempty"` // Labels to add to monitoring resources created by operator. // These labels are used as LabelSelector for Prometheus Labels map[string]string `json:"labels,omitempty"` }
MonitoringSpec controls the configuration of resources for exposing OCS metrics
func (*MonitoringSpec) DeepCopy ¶
func (in *MonitoringSpec) DeepCopy() *MonitoringSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitoringSpec.
func (*MonitoringSpec) DeepCopyInto ¶
func (in *MonitoringSpec) DeepCopyInto(out *MonitoringSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MultiCloudGatewaySpec ¶
type MultiCloudGatewaySpec struct { // ReconcileStrategy specifies whether to reconcile NooBaa CRs. Valid // values are "manage", "standalone", "ignore" (same as "standalone"), // and "" (same as "manage"). ReconcileStrategy string `json:"reconcileStrategy,omitempty"` // DbStorageClassName specifies the default storage class // for nooba-db pods // +optional DbStorageClassName string `json:"dbStorageClassName,omitempty"` // Endpoints (optional) sets configuration info for the noobaa endpoint // deployment. // +optional Endpoints *nbv1.EndpointsSpec `json:"endpoints,omitempty"` // DisableLoadBalancerService (optional) sets the service type to ClusterIP instead of LoadBalancer // +nullable // +optional DisableLoadBalancerService bool `json:"disableLoadBalancerService,omitempty"` // Allows Noobaa to connect to an external Postgres server // +optional ExternalPgConfig *ExternalPGSpec `json:"externalPgConfig,omitempty"` // DenyHTTP (optional) if given will deny access to the NooBaa S3 service using HTTP (only HTTPS) // +optional DenyHTTP bool `json:"denyHTTP,omitempty"` }
MultiCloudGatewaySpec defines specific multi-cloud gateway configuration options
func (*MultiCloudGatewaySpec) DeepCopy ¶
func (in *MultiCloudGatewaySpec) DeepCopy() *MultiCloudGatewaySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MultiCloudGatewaySpec.
func (*MultiCloudGatewaySpec) DeepCopyInto ¶
func (in *MultiCloudGatewaySpec) DeepCopyInto(out *MultiCloudGatewaySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NFSSpec ¶
type NFSSpec struct { // Enable specifies whether to enable NFS. // +optional Enable bool `json:"enable,omitempty"` // StorageClassName specifies the name of the storage class created for NFS // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ StorageClassName string `json:"storageClassName,omitempty"` }
NFSSpec defines specific nfs configuration options
func (*NFSSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSSpec.
func (*NFSSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeTopologyMap ¶
type NodeTopologyMap struct { // Labels is a map of topology label keys // (e.g. "failure-domain.kubernetes.io") to a set of values for those // keys. // +optional // +nullable Labels map[string]TopologyLabelValues `json:"labels,omitempty"` // ArbiterLocation is the chosen location in the failure domain for placing the arbiter resources. // When the failure domain is not provided as an input, ocs-operator determines the failure domain. ArbiterLocation string `json:"arbiterLocation,omitempty"` }
NodeTopologyMap represents the list of all values of all topology labels across all nodes in the StorageCluster
func NewNodeTopologyMap ¶
func NewNodeTopologyMap() *NodeTopologyMap
NewNodeTopologyMap returns an initialized NodeTopologyMap
func (*NodeTopologyMap) Add ¶
func (m *NodeTopologyMap) Add(topologyKey string, value string)
Add adds a new value to the NodeTopologyMap under the specified key USe it with Contains() to not allow duplicate values
func (*NodeTopologyMap) Contains ¶
func (m *NodeTopologyMap) Contains(topologyKey string, value string) bool
Contains checks whether the NodeTopologyMap contains a specific value for the specified key
func (*NodeTopologyMap) ContainsKey ¶
func (m *NodeTopologyMap) ContainsKey(topologyKey string) bool
ContainsKey checks whether the NodeTopologyMap contains any value for the specified key
func (*NodeTopologyMap) DeepCopy ¶
func (in *NodeTopologyMap) DeepCopy() *NodeTopologyMap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeTopologyMap.
func (*NodeTopologyMap) DeepCopyInto ¶
func (in *NodeTopologyMap) DeepCopyInto(out *NodeTopologyMap)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeTopologyMap) GetKeyValues ¶
func (m *NodeTopologyMap) GetKeyValues(topologyKey string) (string, []string)
GetKeyValues returns a node label matching the topologyKey and all values for that label across all storage nodes
type OCSInitialization ¶
type OCSInitialization struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec OCSInitializationSpec `json:"spec,omitempty"` Status OCSInitializationStatus `json:"status,omitempty"` }
OCSInitialization represents the initial data to be created when the operator is installed.
func (*OCSInitialization) DeepCopy ¶
func (in *OCSInitialization) DeepCopy() *OCSInitialization
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OCSInitialization.
func (*OCSInitialization) DeepCopyInto ¶
func (in *OCSInitialization) DeepCopyInto(out *OCSInitialization)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OCSInitialization) DeepCopyObject ¶
func (in *OCSInitialization) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OCSInitializationList ¶
type OCSInitializationList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []OCSInitialization `json:"items"` }
OCSInitializationList contains a list of OCSInitialization
func (*OCSInitializationList) DeepCopy ¶
func (in *OCSInitializationList) DeepCopy() *OCSInitializationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OCSInitializationList.
func (*OCSInitializationList) DeepCopyInto ¶
func (in *OCSInitializationList) DeepCopyInto(out *OCSInitializationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OCSInitializationList) DeepCopyObject ¶
func (in *OCSInitializationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OCSInitializationSpec ¶
type OCSInitializationSpec struct { // EnableCephTools toggles on whether or not the ceph tools pod // should be deployed. // Defaults to false // +optional // +kubebuilder:deprecatedversion:warning="This field doesn't work anymore and will be removed in future. The ceph tool box can be enabled by setting the spec.enableCephTools field in the storage cluster CR" EnableCephTools bool `json:"enableCephTools,omitempty"` // Tolerations if specified set toolbox ceph tools pod tolerations // Defaults to empty // +optional // +kubebuilder:deprecatedversion:warning="This field doesn't work anymore and will be removed in future. The tolerations along with any other placement spec are now set by adding them in the storage cluster CR under spec.placement[toolbox]" Tolerations []corev1.Toleration `json:"tolerations,omitempty"` }
OCSInitializationSpec defines the desired state of OCSInitialization
func (*OCSInitializationSpec) DeepCopy ¶
func (in *OCSInitializationSpec) DeepCopy() *OCSInitializationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OCSInitializationSpec.
func (*OCSInitializationSpec) DeepCopyInto ¶
func (in *OCSInitializationSpec) DeepCopyInto(out *OCSInitializationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OCSInitializationStatus ¶
type OCSInitializationStatus struct { // Phase describes the Phase of OCSInitialization // This is used by OLM UI to provide status information // to the user Phase string `json:"phase,omitempty"` // Conditions describes the state of the OCSInitialization resource. // +optional Conditions []conditionsv1.Condition `json:"conditions,omitempty"` // RelatedObjects is a list of objects created and maintained by this // operator. Object references will be added to this list after they have // been created AND found in the cluster. // +optional RelatedObjects []corev1.ObjectReference `json:"relatedObjects,omitempty"` ErrorMessage string `json:"errorMessage,omitempty"` SCCsCreated bool `json:"sCCsCreated,omitempty"` RookCephOperatorConfigCreated bool `json:"rookCephOperatorConfigCreated,omitempty"` RookCephOperatorConfig RookCephOperatorConfigStatus `json:"rookCephOperatorConfig,omitempty"` }
OCSInitializationStatus defines the observed state of OCSInitialization
func (*OCSInitializationStatus) DeepCopy ¶
func (in *OCSInitializationStatus) DeepCopy() *OCSInitializationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OCSInitializationStatus.
func (*OCSInitializationStatus) DeepCopyInto ¶
func (in *OCSInitializationStatus) DeepCopyInto(out *OCSInitializationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OverprovisionControlSpec ¶
type OverprovisionControlSpec struct { StorageClassName string `json:"storageClassName,omitempty"` QuotaName string `json:"quotaName,omitempty"` Capacity resource.Quantity `json:"capacity,omitempty"` Selector quotav1.ClusterResourceQuotaSelector `json:"selector,omitempty"` }
OverprovisionControlSpec defines the allowed overprovisioning PVC consumption from the underlying cluster. This may be an absolute value or as a percentage of the overall effective capacity. One, and only one of those two (Capacity and Percentage) may be defined.
func (*OverprovisionControlSpec) DeepCopy ¶
func (in *OverprovisionControlSpec) DeepCopy() *OverprovisionControlSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverprovisionControlSpec.
func (*OverprovisionControlSpec) DeepCopyInto ¶
func (in *OverprovisionControlSpec) DeepCopyInto(out *OverprovisionControlSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PeerInfo ¶
type PeerInfo struct {
StorageClusterUid string `json:"storageClusterUid,omitempty"`
}
func (*PeerInfo) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeerInfo.
func (*PeerInfo) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RookCephOperatorConfigStatus ¶
type RookCephOperatorConfigStatus struct { // CsiPluginTolerationsModified indicates if CsiPluginTolerations are added to the configmap via controller CsiPluginTolerationsModified bool `json:"csiPluginTolerationsModified,omitempty"` // CsiProvisionerTolerationsModified indicates if CsiProvisionerTolerations are added to the configmap via controller CsiProvisionerTolerationsModified bool `json:"csiProvisionerTolerationsModified,omitempty"` }
func (*RookCephOperatorConfigStatus) DeepCopy ¶
func (in *RookCephOperatorConfigStatus) DeepCopy() *RookCephOperatorConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RookCephOperatorConfigStatus.
func (*RookCephOperatorConfigStatus) DeepCopyInto ¶
func (in *RookCephOperatorConfigStatus) DeepCopyInto(out *RookCephOperatorConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SharedFilesystemConfigurationSpec ¶
type SharedFilesystemConfigurationSpec struct { string]string `json:"parameters,omitempty"` }Parameters map[
func (*SharedFilesystemConfigurationSpec) DeepCopy ¶
func (in *SharedFilesystemConfigurationSpec) DeepCopy() *SharedFilesystemConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SharedFilesystemConfigurationSpec.
func (*SharedFilesystemConfigurationSpec) DeepCopyInto ¶
func (in *SharedFilesystemConfigurationSpec) DeepCopyInto(out *SharedFilesystemConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageCluster ¶
type StorageCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec StorageClusterSpec `json:"spec,omitempty"` Status StorageClusterStatus `json:"status,omitempty"` }
StorageCluster represents a cluster including Ceph Cluster, NooBaa and all the storage and compute resources required.
func (*StorageCluster) DeepCopy ¶
func (in *StorageCluster) DeepCopy() *StorageCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageCluster.
func (*StorageCluster) DeepCopyInto ¶
func (in *StorageCluster) DeepCopyInto(out *StorageCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StorageCluster) DeepCopyObject ¶
func (in *StorageCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*StorageCluster) NewToolsDeployment ¶
func (r *StorageCluster) NewToolsDeployment(tolerations []corev1.Toleration, nodeAffinity *corev1.NodeAffinity) *appsv1.Deployment
type StorageClusterList ¶
type StorageClusterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []StorageCluster `json:"items"` }
StorageClusterList contains a list of StorageCluster
func (*StorageClusterList) DeepCopy ¶
func (in *StorageClusterList) DeepCopy() *StorageClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClusterList.
func (*StorageClusterList) DeepCopyInto ¶
func (in *StorageClusterList) DeepCopyInto(out *StorageClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StorageClusterList) DeepCopyObject ¶
func (in *StorageClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StorageClusterPeer ¶
type StorageClusterPeer struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:Required Spec StorageClusterPeerSpec `json:"spec,omitempty"` Status StorageClusterPeerStatus `json:"status,omitempty"` }
StorageClusterPeer is the Schema for the storageclusterpeers API
func (*StorageClusterPeer) DeepCopy ¶
func (in *StorageClusterPeer) DeepCopy() *StorageClusterPeer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClusterPeer.
func (*StorageClusterPeer) DeepCopyInto ¶
func (in *StorageClusterPeer) DeepCopyInto(out *StorageClusterPeer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StorageClusterPeer) DeepCopyObject ¶
func (in *StorageClusterPeer) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StorageClusterPeerList ¶
type StorageClusterPeerList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []StorageClusterPeer `json:"items"` }
StorageClusterPeerList contains a list of StorageClusterPeer
func (*StorageClusterPeerList) DeepCopy ¶
func (in *StorageClusterPeerList) DeepCopy() *StorageClusterPeerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClusterPeerList.
func (*StorageClusterPeerList) DeepCopyInto ¶
func (in *StorageClusterPeerList) DeepCopyInto(out *StorageClusterPeerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StorageClusterPeerList) DeepCopyObject ¶
func (in *StorageClusterPeerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StorageClusterPeerSpec ¶
type StorageClusterPeerSpec struct { // ApiEndpoint is the URI of the ODF api server ApiEndpoint string `json:"apiEndpoint"` // OnboardingToken holds an identity information required by the local ODF cluster to onboard. OnboardingToken string `json:"onboardingToken"` }
StorageClusterPeerSpec defines the desired state of StorageClusterPeer
func (*StorageClusterPeerSpec) DeepCopy ¶
func (in *StorageClusterPeerSpec) DeepCopy() *StorageClusterPeerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClusterPeerSpec.
func (*StorageClusterPeerSpec) DeepCopyInto ¶
func (in *StorageClusterPeerSpec) DeepCopyInto(out *StorageClusterPeerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageClusterPeerState ¶
type StorageClusterPeerState string
const ( StorageClusterPeerStateInitializing StorageClusterPeerState = "Initializing" StorageClusterPeerStatePending StorageClusterPeerState = "Pending" StorageClusterPeerStatePeered StorageClusterPeerState = "Peered" StorageClusterPeerStateFailed StorageClusterPeerState = "Failed" )
type StorageClusterPeerStatus ¶
type StorageClusterPeerStatus struct { State StorageClusterPeerState `json:"state,omitempty"` PeerInfo *PeerInfo `json:"peerInfo"` }
StorageClusterPeerStatus defines the observed state of StorageClusterPeer
func (*StorageClusterPeerStatus) DeepCopy ¶
func (in *StorageClusterPeerStatus) DeepCopy() *StorageClusterPeerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClusterPeerStatus.
func (*StorageClusterPeerStatus) DeepCopyInto ¶
func (in *StorageClusterPeerStatus) DeepCopyInto(out *StorageClusterPeerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageClusterSpec ¶
type StorageClusterSpec struct { ManageNodes bool `json:"manageNodes,omitempty"` InstanceType string `json:"instanceType,omitempty"` // LabelSelector is used to specify custom labels of nodes to run OCS on LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"` // ExternalStorage is optional and defaults to false. When set to true, OCS will // connect to an external OCS Storage Cluster instead of provisioning one locally. ExternalStorage ExternalStorageClusterSpec `json:"externalStorage,omitempty"` // HostNetwork defaults to false HostNetwork bool `json:"hostNetwork,omitempty"` // Placement is optional and used to specify placements of OCS components explicitly Placement rookCephv1.PlacementSpec `json:"placement,omitempty"` // Resources follows the conventions of and is mapped to CephCluster.Spec.Resources Resources map[string]corev1.ResourceRequirements `json:"resources,omitempty"` // Resource Profile can be used to choose from a set of predefined resource profiles for the ceph daemons. // We have 3 profiles // lean: suitable for clusters with limited resources, // balanced: suitable for most use cases, // performance: suitable for clusters with high amount of resources. // +kubebuilder:validation:Enum=lean;Lean;balanced;Balanced;performance;Performance ResourceProfile string `json:"resourceProfile,omitempty"` Encryption EncryptionSpec `json:"encryption,omitempty"` StorageDeviceSets []StorageDeviceSet `json:"storageDeviceSets,omitempty"` MonPVCTemplate *corev1.PersistentVolumeClaim `json:"monPVCTemplate,omitempty"` MonDataDirHostPath string `json:"monDataDirHostPath,omitempty"` Mgr *MgrSpec `json:"mgr,omitempty"` MultiCloudGateway *MultiCloudGatewaySpec `json:"multiCloudGateway,omitempty"` NFS *NFSSpec `json:"nfs,omitempty"` CSI *CSIDriverSpec `json:"csi,omitempty"` // Monitoring controls the configuration of resources for exposing OCS metrics Monitoring *MonitoringSpec `json:"monitoring,omitempty"` // Version specifies the version of StorageCluster // +kubebuilder:deprecatedversion:warning="This field has been deprecated and will be removed in future versions. Use `StorageCluster.Status.Version` instead." Version string `json:"version,omitempty"` // Network represents cluster network settings Network *rookCephv1.NetworkSpec `json:"network,omitempty"` // ManagedResources specifies how to deal with auxiliary resources reconciled // with the StorageCluster ManagedResources ManagedResourcesSpec `json:"managedResources,omitempty"` // If enabled, sets the failureDomain to host, allowing devices to be // distributed evenly across all nodes, regardless of distribution in zones // or racks. FlexibleScaling bool `json:"flexibleScaling,omitempty"` // NodeTopologies specifies the nodes available for the storage cluster, // preferred failure domain and location for the arbiter resources. This is // optional for non-arbiter clusters. For arbiter clusters, the // arbiterLocation is required; failure domain and the node labels are // optional. When the failure domain and the node labels are missing, the // ocs-operator makes a best effort to determine them automatically. NodeTopologies *NodeTopologyMap `json:"nodeTopologies,omitempty"` // ArbiterSpec specifies the storage cluster options related to arbiter. // If Arbiter is enabled, ArbiterLocation in the NodeTopologies must be specified. Arbiter ArbiterSpec `json:"arbiter,omitempty"` // Mirroring specifies data mirroring configuration for the storage cluster. // This configuration will only be applied to resources managed by the operator. Mirroring *MirroringSpec `json:"mirroring,omitempty"` // OverprovisionControl specifies the allowed hard-limit PVs overprovisioning relative to // the effective usable storage capacity. OverprovisionControl []OverprovisionControlSpec `json:"overprovisionControl,omitempty"` // AllowRemoteStorageConsumers Indicates that the OCS cluster should deploy the needed // components to enable connections from remote consumers. AllowRemoteStorageConsumers bool `json:"allowRemoteStorageConsumers,omitempty"` // ProviderAPIServerServiceType Indicates the ServiceType for OCS Provider API Server Service. // The supported values are NodePort or LoadBalancer. The default ServiceType is NodePort if the value is empty. // This will only be used when AllowRemoteStorageConsumers is set to true ProviderAPIServerServiceType corev1.ServiceType `json:"providerAPIServerServiceType,omitempty"` // EnableCephTools toggles on whether or not the ceph tools pod // should be deployed. // Defaults to false // +optional EnableCephTools bool `json:"enableCephTools,omitempty"` // Logging represents loggings settings // +optional // +nullable LogCollector *rookCephv1.LogCollectorSpec `json:"logCollector,omitempty"` // BackingStorageClasses is a list of storage classes that will be // provisioned by the storagecluster controller to be used in // storageDeviceSets section of the CR. BackingStorageClasses []BackingStorageClass `json:"backingStorageClasses,omitempty"` // DefaultStorageProfile is the default storage profile to use for // the storagerequest as StorageProfile is optional. DefaultStorageProfile string `json:"defaultStorageProfile,omitempty"` }
StorageClusterSpec defines the desired state of StorageCluster
func (*StorageClusterSpec) DeepCopy ¶
func (in *StorageClusterSpec) DeepCopy() *StorageClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClusterSpec.
func (*StorageClusterSpec) DeepCopyInto ¶
func (in *StorageClusterSpec) DeepCopyInto(out *StorageClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageClusterStatus ¶
type StorageClusterStatus struct { // Version specifies the version of StorageCluster Version string `json:"version,omitempty"` // Phase describes the Phase of StorageCluster // This is used by OLM UI to provide status information // to the user Phase string `json:"phase,omitempty"` // Conditions describes the state of the StorageCluster resource. // +optional Conditions []conditionsv1.Condition `json:"conditions,omitempty"` // RelatedObjects is a list of objects created and maintained by this // operator. Object references will be added to this list after they have // been created AND found in the cluster. // +optional RelatedObjects []corev1.ObjectReference `json:"relatedObjects,omitempty"` // NodeTopologies is a list of topology labels on all nodes matching // the StorageCluster's placement selector. // +optional NodeTopologies *NodeTopologyMap `json:"nodeTopologies,omitempty"` // FailureDomain is the base CRUSH element Ceph will use to distribute // its data replicas for the default CephBlockPool // +optional FailureDomain string `json:"failureDomain,omitempty"` // FailureDomainKey is the specific key used to find the locations available // under a failure domain. For example topology.kubernetes.io/zone // +optional FailureDomainKey string `json:"failureDomainKey,omitempty"` // FailureDomainValues is the list of locations available for a failure // domain under the failure domain key. // +optional FailureDomainValues []string `json:"failureDomainValues,omitempty"` // LastAppliedResourceProfile is the resource profile that was last applied successfully & is currently in use. LastAppliedResourceProfile string `json:"lastAppliedResourceProfile,omitempty"` // StorageProviderEndpoint holds endpoint info on Provider cluster which is required // for consumer to establish connection with the storage providing cluster. StorageProviderEndpoint string `json:"storageProviderEndpoint,omitempty"` // ExternalSecretHash holds the checksum value of external secret data. ExternalSecretHash string `json:"externalSecretHash,omitempty"` // Images holds the image reconcile status for all images reconciled by the operator Images ImagesStatus `json:"images,omitempty"` // DefaultCephDeviceClass holds the default ceph device class to be used for the pools DefaultCephDeviceClass string `json:"defaultCephDeviceClass,omitempty"` // KMSServerConnection holds the connection state to the KMS server. KMSServerConnection KMSServerConnectionStatus `json:"kmsServerConnection,omitempty"` // CurrentMonCount holds the value of ceph mons configured in ceph cluster. CurrentMonCount int `json:"currentMonCount,omitempty"` }
StorageClusterStatus defines the observed state of StorageCluster
func (*StorageClusterStatus) DeepCopy ¶
func (in *StorageClusterStatus) DeepCopy() *StorageClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClusterStatus.
func (*StorageClusterStatus) DeepCopyInto ¶
func (in *StorageClusterStatus) DeepCopyInto(out *StorageClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageDeviceSet ¶
type StorageDeviceSet struct { // Count is the number of devices in each StorageClassDeviceSet // +kubebuilder:validation:Minimum=1 Count int `json:"count"` // Replica is the number of StorageClassDeviceSets for this // StorageDeviceSet // +kubebuilder:validation:Minimum=1 // +optional Replica int `json:"replica,omitempty"` // DeviceType is the value of device type in // this StorageDeviceSet. It can have one of the // three values (SSD, HDD, NVMe) // +kubebuilder:validation:Enum=SSD;ssd;HDD;hdd;NVMe;NVME;nvme // +optional DeviceType string `json:"deviceType,omitempty"` // DeviceClass is an optional, fine-grained property of DeviceType. // If non empty, it defines the 'crushDeviceClass' value as used by ceph's // CRUSH map. If empty, then operator will set 'crushDeviceClass' to SSD and // 'TuneFastDeviceClass' to true // +optional DeviceClass string `json:"deviceClass,omitempty"` // InitialWeight is an optional explicit OSD weight value in TiB units. // If non empty, it defines the 'CrushInitialWeight' value which is // assigned to ceph OSD upon init // +kubebuilder:validation:Pattern=`^([0-9]*[.])?[0-9]+(Ti[B])$` // +optional InitialWeight string `json:"initialWeight,omitempty"` // PrimaryAffinity is an optional OSD primary-affinity value within the // range [0,1). This value influence the way Ceph's CRUSH selection of // primary OSDs. Lower value reduce performance bottlenecks (especially // on read operations). If not set, default value is 1. // https://docs.ceph.com/en/latest/rados/operations/crush-map/#primary-affinity // +kubebuilder:validation:Pattern=`^0.[0-9]+$` // +optional PrimaryAffinity string `json:"primaryAffinity,omitempty"` // TopologyKey is the Kubernetes topology label that the // StorageClassDeviceSets will be distributed across. Ignored if // Placement is set // +optional TopologyKey string `json:"topologyKey,omitempty"` // Portable says whether the OSDs in this device set can move between // nodes. This is ignored if Placement is not set // +optional Portable bool `json:"portable,omitempty"` Name string `json:"name"` Resources corev1.ResourceRequirements `json:"resources,omitempty"` PreparePlacement rookCephv1.Placement `json:"preparePlacement,omitempty"` Placement rookCephv1.Placement `json:"placement,omitempty"` Config StorageDeviceSetConfig `json:"config,omitempty"` DataPVCTemplate corev1.PersistentVolumeClaim `json:"dataPVCTemplate"` MetadataPVCTemplate *corev1.PersistentVolumeClaim `json:"metadataPVCTemplate,omitempty"` WalPVCTemplate *corev1.PersistentVolumeClaim `json:"walPVCTemplate,omitempty"` // Whether to encrypt the deviceSet or not // +optional Encrypted *bool `json:"encrypted,omitempty"` }
StorageDeviceSet defines a set of storage devices. It configures the StorageClassDeviceSets field in Rook-Ceph.
func (*StorageDeviceSet) DeepCopy ¶
func (in *StorageDeviceSet) DeepCopy() *StorageDeviceSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageDeviceSet.
func (*StorageDeviceSet) DeepCopyInto ¶
func (in *StorageDeviceSet) DeepCopyInto(out *StorageDeviceSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageDeviceSetConfig ¶
type StorageDeviceSetConfig struct { // TuneSlowDeviceClass tunes the OSD when running on a slow Device Class // +optional TuneSlowDeviceClass bool `json:"tuneSlowDeviceClass,omitempty"` // TuneFastDeviceClass tunes the OSD when running on a fast Device Class // +optional TuneFastDeviceClass bool `json:"tuneFastDeviceClass,omitempty"` }
StorageDeviceSetConfig defines Ceph OSD specific config options for the StorageDeviceSet
func (*StorageDeviceSetConfig) DeepCopy ¶
func (in *StorageDeviceSetConfig) DeepCopy() *StorageDeviceSetConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageDeviceSetConfig.
func (*StorageDeviceSetConfig) DeepCopyInto ¶
func (in *StorageDeviceSetConfig) DeepCopyInto(out *StorageDeviceSetConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StorageDeviceSetConfig) ToMap ¶
func (c *StorageDeviceSetConfig) ToMap() map[string]string
ToMap converts a StorageDeviceSetConfig object to a map[string]string that can be set in a Rook StorageClassDeviceSet object This functions just returns `nil` right now as the StorageDeviceSetConfig struct itself is empty. It will be updated to perform actual conversion and return a proper map when the StorageDeviceSetConfig struct is updated. TODO: Do actual conversion to map when StorageDeviceSetConfig has defined members
type StorageProfile ¶
type StorageProfile struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:Required // +kubebuilder:validation:XValidation:rule="oldSelf == self",message="spec is immutable" Spec StorageProfileSpec `json:"spec"` Status StorageProfileStatus `json:"status,omitempty"` }
StorageProfile is the Schema for the storageprofiles API
func (*StorageProfile) DeepCopy ¶
func (in *StorageProfile) DeepCopy() *StorageProfile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageProfile.
func (*StorageProfile) DeepCopyInto ¶
func (in *StorageProfile) DeepCopyInto(out *StorageProfile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StorageProfile) DeepCopyObject ¶
func (in *StorageProfile) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*StorageProfile) GetSpecHash ¶
func (sp *StorageProfile) GetSpecHash() string
type StorageProfileList ¶
type StorageProfileList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []StorageProfile `json:"items"` }
StorageProfileList contains a list of StorageProfile
func (*StorageProfileList) DeepCopy ¶
func (in *StorageProfileList) DeepCopy() *StorageProfileList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageProfileList.
func (*StorageProfileList) DeepCopyInto ¶
func (in *StorageProfileList) DeepCopyInto(out *StorageProfileList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StorageProfileList) DeepCopyObject ¶
func (in *StorageProfileList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StorageProfilePhase ¶
type StorageProfilePhase string
StorageProfilePhase stores a StorageProfile reconciliation phase
const (
StorageProfilePhaseRejected StorageProfilePhase = "Rejected"
)
type StorageProfileSpec ¶
type StorageProfileSpec struct { // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=512 // DeviceClass is the deviceclass name. DeviceClass string `json:"deviceClass"` // configurations to use for cephfilesystem. SharedFilesystemConfiguration SharedFilesystemConfigurationSpec `json:"sharedFilesystemConfiguration,omitempty"` // +kubebuilder:validation:Optional // configurations to use for profile specific blockpool. BlockPoolConfiguration BlockPoolConfigurationSpec `json:"blockPoolConfiguration,omitempty"` }
StorageProfileSpec defines the desired state of StorageProfile
func (*StorageProfileSpec) DeepCopy ¶
func (in *StorageProfileSpec) DeepCopy() *StorageProfileSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageProfileSpec.
func (*StorageProfileSpec) DeepCopyInto ¶
func (in *StorageProfileSpec) DeepCopyInto(out *StorageProfileSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageProfileStatus ¶
type StorageProfileStatus struct { // Phase describes the Phase of StorageProfile // This is used by OLM UI to provide status information // to the user Phase StorageProfilePhase `json:"phase,omitempty"` }
StorageProfileStatus defines the observed state of StorageProfile
func (*StorageProfileStatus) DeepCopy ¶
func (in *StorageProfileStatus) DeepCopy() *StorageProfileStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageProfileStatus.
func (*StorageProfileStatus) DeepCopyInto ¶
func (in *StorageProfileStatus) DeepCopyInto(out *StorageProfileStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TopologyLabelValues ¶
type TopologyLabelValues []string
TopologyLabelValues is a list of values for a topology label
func (TopologyLabelValues) DeepCopy ¶
func (in TopologyLabelValues) DeepCopy() TopologyLabelValues
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologyLabelValues.
func (TopologyLabelValues) DeepCopyInto ¶
func (in TopologyLabelValues) DeepCopyInto(out *TopologyLabelValues)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.