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 CSIDriverSpec
- type ComponentImageStatus
- type EncryptionSpec
- type ExcludedAlert
- type ExternalPGSpec
- type ExternalStorageClusterSpec
- type ExternalStorageKind
- type ImagesStatus
- type KMSServerConnectionStatus
- type KeyManagementServiceSpec
- type KeyRotationSpec
- type LastExpansionStatus
- type ManageCephBlockPools
- type ManageCephCluster
- type ManageCephConfig
- type ManageCephDashboard
- type ManageCephFilesystems
- type ManageCephNonResilientPools
- type ManageCephObjectStoreUsers
- type ManageCephObjectStores
- type ManageCephRBDMirror
- type ManageCephToolbox
- type ManagedResourcesSpec
- 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 StorageAutoScaler
- type StorageAutoScalerList
- type StorageAutoScalerPhase
- type StorageAutoScalerSpec
- type StorageAutoScalerStatus
- type StorageCluster
- type StorageClusterList
- type StorageClusterPeer
- type StorageClusterPeerFailureReason
- type StorageClusterPeerList
- type StorageClusterPeerSpec
- type StorageClusterPeerState
- type StorageClusterPeerStatus
- type StorageClusterSpec
- type StorageClusterStatus
- type StorageDeviceSet
- type StorageDeviceSetConfig
- type TimestampedError
- 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.
const ( StorageClusterPeerStateInitializing StorageClusterPeerState = "Initializing" StorageClusterPeerStatePending StorageClusterPeerState = "Pending" StorageClusterPeerStatePeered StorageClusterPeerState = "Peered" StorageClusterPeerStateFailed StorageClusterPeerState = "Failed" StorageClusterPeerFailureReasonClusterNotFound StorageClusterPeerFailureReason = "CLUSTER_NOT_FOUND" StorageClusterPeerFailureReasonInvalidOnboardingTicket StorageClusterPeerFailureReason = "INVALID_ONBOARDING_TICKET" StorageClusterPeerFailureReasonConnectionFailed StorageClusterPeerFailureReason = "CONNECTION_FAILED" )
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 )
var ( // PhaseIgnored is used when a resource is ignored PhaseIgnored = "Ignored" // PhaseProgressing is used when SetProgressingCondition is called PhaseProgressing = "Progressing" // PhaseError is used when SetErrorCondition is called PhaseError = "Error" // PhaseReady is used when SetCompleteCondition is called PhaseReady = "Ready" // PhaseNotReady is used when waiting for system to be ready // after reconcile is successful PhaseNotReady = "Not Ready" // PhaseClusterExpanding is used when cluster is expanding capacity PhaseClusterExpanding = "Expanding Capacity" // PhaseDeleting is used when cluster is deleting PhaseDeleting = "Deleting" // PhaseConnecting is used when cluster is connecting to external cluster PhaseConnecting = "Connecting" // PhaseOnboarding is used when consumer is Onboarding PhaseOnboarding = "Onboarding" )
These constants represent the overall Phase as used by .Status.Phase
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 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 ExcludedAlert ¶
type ExcludedAlert struct {
// AlertName is the name of the alert to exclude
AlertName string `json:"alertName"`
// ExcludedAt is the timestamp when the alert was excluded
ExcludedAt metav1.Time `json:"excludedAt"`
// Severity is the severity of the alert to exclude. Valid
// values are "critical", "warning", and "info".
Severity string `json:"severity,omitempty"`
}
ExcludedAlert represents an alert that has been excluded
func (*ExcludedAlert) DeepCopy ¶
func (in *ExcludedAlert) DeepCopy() *ExcludedAlert
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExcludedAlert.
func (*ExcludedAlert) DeepCopyInto ¶
func (in *ExcludedAlert) DeepCopyInto(out *ExcludedAlert)
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 LastExpansionStatus ¶
type LastExpansionStatus struct {
// StartTime is the time stamp of the last run start of the storage scaling
// +optional
StartTime metav1.Time `json:"startTime,omitempty"`
// CompletionTime is the time stamp of the last run completion of the storage scaling
// +optional
CompletionTime metav1.Time `json:"completionTime,omitempty"`
// The start OSD size is the original size of the OSDs before the expansion in progress is completed.
// After the expansion is completed, this would be updated to the expected OSD size.
// Used for vertical scaling of OSDs.
// +optional
StartOsdSize resource.Quantity `json:"startOsdSize,omitempty"`
// The ExpectedOsdSize is the size that the auto-expansion has decided to set.
// This will be set on the storageCLuster CR as the desired size of the OSDs.
// Used for vertical scaling of OSDs.
// +optional
ExpectedOsdSize resource.Quantity `json:"expectedOsdSize,omitempty"`
// The start OSD count is the original count of the OSDs before the expansion in progress is completed.
// After the expansion is completed, this would be updated to the expected OSD count.
// Used for horizontal scaling of OSDs.
// +optional
StartOsdCount uint16 `json:"startOsdCount,omitempty"`
// The Expected OSD count is the count that the auto-expansion has decided to set.
// This will be set on the storageCluster CR as the desired count of the OSDs.
// Used for horizontal scaling of OSDs.
// +optional
ExpectedOsdCount uint16 `json:"expectedOsdCount,omitempty"`
// StartStorageCapacity is the original storage capacity of the storage cluster before the expansion in progress is completed.
StartStorageCapacity resource.Quantity `json:"startStorageCapacity,omitempty"`
// ExpectedStorageCapacity is the expected storage capacity of the storage cluster after the expansion in progress is completed.
ExpectedStorageCapacity resource.Quantity `json:"expectedStorageCapacity,omitempty"`
}
func (*LastExpansionStatus) DeepCopy ¶
func (in *LastExpansionStatus) DeepCopy() *LastExpansionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LastExpansionStatus.
func (*LastExpansionStatus) DeepCopyInto ¶
func (in *LastExpansionStatus) DeepCopyInto(out *LastExpansionStatus)
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"`
// 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"`
// if set to true, the virtualization storageClass will be annotated as the default for kubevirt workloads
DefaultVirtualizationStorageClass bool `json:"defaultVirtualizationStorageClass,omitempty"`
// PoolSpec specifies the pool specification for the default cephBlockPool
PoolSpec *rookCephv1.PoolSpec `json:"poolSpec,omitempty"`
// ErasureCodedMetadataPool specifies the metadata pool for erasure coded pools if the pool is erasure coded
// it has to be unique pool name and the operator will create the pool with replica 3.
// This is required as rbd needs a separate metadata pool when using erasure coding for data pool.
// +kubebuilder:validation:XValidation:message="erasureCodedMetadataPool is immutable once set",rule="oldSelf == ” || self == oldSelf"
// +optional
ErasureCodedMetadataPool string `json:"erasureCodedMetadataPool,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"`
// CephClusterHealthCheckSpec represent the healthcheck for Ceph daemons
HealthCheck *rookCephv1.CephClusterHealthCheckSpec `json:"healthCheck,omitempty"`
// Ceph Config options
CephConfig map[string]map[string]string `json:"cephConfig,omitempty"`
// CleanupPolicy defines the cleanup policy for the Rook Ceph cluster.
// +optional
CleanupPolicy *rookCephv1.CleanupPolicySpec `json:"cleanupPolicy,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"`
ActiveMetadataServers int `json:"activeMetadataServers,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"`
// MetadataPoolSpec specifies the pool specification for the default cephFS metadata pool
MetadataPoolSpec *rookCephv1.PoolSpec `json:"metadataPoolSpec,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"`
// DefaultStorageClassDataPoolName specifies the name of the data pool which will be used in the storage class if multiple data pools are defined
// It is used to distinguish between the ec and replicated data pools when both are defined in the same filesystem
// if not specified, the operator will use the replicated pool as the default data pool for the storage class
// can't be changed after creation, if not specified, the operator will use the first data pool in the list of additional data pools as the default data pool for the storage class
// +kubebuilder:validation:XValidation:message="defaultStorageClassDataPoolName is immutable",rule="self == oldSelf"
// +optional
DefaultStorageClassDataPoolName string `json:"defaultStorageClassDataPoolName,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
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"`
// Parameters is a list of properties to enable on the non-resilient cephBlockPools
// +kubebuilder:pruning:PreserveUnknownFields
// +optional
// +nullable
Parameters map[string]string `json:"parameters,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"`
GatewayInstances int `json:"gatewayInstances,omitempty"`
DisableRoute bool `json:"disableRoute,omitempty"`
// DisableHttp, if true, will prevent creation of insecure ceph RGW http route. It will also delete any
// existing insecure ceph RGW http route.
DisableHttp bool `json:"disableHttp,omitempty"`
HostNetwork *bool `json:"hostNetwork,omitempty"`
GatewayPort int `json:"gatewayPort,omitempty"`
GatewaySecurePort int `json:"gatewaySecurePort,omitempty"`
// Enables STS authentication for RGW
// +kubebuilder:default=true
EnableSTS bool `json:"enableSTS,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"`
// MetadataPoolSpec specifies the pool specification for the default cephObjectStore metadata pool
MetadataPoolSpec *rookCephv1.PoolSpec `json:"metadataPoolSpec,omitempty"`
// DataPoolSpec specifies the pool specification for the default cephObjectStore data pool
DataPoolSpec *rookCephv1.PoolSpec `json:"dataPoolSpec,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: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"`
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 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"`
// DisableBlackboxExporter disables deployment of Blackbox Exporter for network health checks
// +optional
DisableBlackboxExporter bool `json:"disableBlackboxExporter,omitempty"`
// ExcludedAlerts lists alerts to exclude from ODF health score calculation.
// Alerts still fire in Prometheus but are excluded from health score.
// +optional
ExcludedAlerts []ExcludedAlert `json:"excludedAlerts,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"`
// DBBackup (optional) configure automatic scheduled backups of noobaa database volume.
// +optional
DbBackup *nbv1.DBBackupSpec `json:"dbBackup,omitempty"`
// DBRecovery (optional) configure database recovery from snapshot
// +optional
DbRecovery *nbv1.DBRecoverySpec `json:"dbRecovery,omitempty"`
// Endpoints (optional) sets configuration info for the noobaa endpoint
// deployment.
// +optional
Endpoints *nbv1.EndpointsSpec `json:"endpoints,omitempty"`
// Autoscaler (optional) sets configuration for NooBaa endpoint autoscaling.
// +optional
Autoscaler *nbv1.AutoscalerSpec `json:"autoscaler,omitempty"`
// DisableLoadBalancerService (optional) sets the service type to ClusterIP instead of LoadBalancer
// +nullable
// +optional
DisableLoadBalancerService bool `json:"disableLoadBalancerService,omitempty"`
// DisableRoutes (optional) disables the reconciliation of openshift route resources in the cluster
// +nullable
// +optional
DisableRoutes bool `json:"disableRoutes,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"`
// PerformanceProfile (optional) selects a bundle of resource and count
// settings for the NooBaa core, db and endpoint components.
// When unset, defaults to "default".
// Explicit per-component resources in StorageClusterSpec.Resources take precedence over the profile.
// +optional
// +kubebuilder:validation:Enum=default;mixed-workload;small-objects
PerformanceProfile nbv1.PerformanceProfileType `json:"performanceProfile,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"`
// ExternalEndpoint specifies the externally resolvable IP or the DNS name to use
// for NFS Ganesha server in NFS StorageClass. If specified, internal client will
// also use this same address.
// +optional
ExternalEndpoint string `json:"externalEndpoint,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"`
// LogLevel set logging level
// Log levels: NIV_NULL | NIV_FATAL | NIV_MAJ | NIV_CRIT | NIV_WARN | NIV_EVENT | NIV_INFO | NIV_DEBUG | NIV_MID_DEBUG | NIV_FULL_DEBUG | NB_LOG_LEVEL
// +optional
LogLevel string `json:"logLevel,omitempty"`
ReconcileStrategy string `json:"reconcileStrategy,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. "topology.kubernetes.io/zone") 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 supported 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{}
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"`
}
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 StorageAutoScaler ¶
type StorageAutoScaler struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec StorageAutoScalerSpec `json:"spec,omitempty"`
Status StorageAutoScalerStatus `json:"status,omitempty"`
}
StorageAutoScaler represents the automatic storage scaling for storage cluster.
func (*StorageAutoScaler) DeepCopy ¶
func (in *StorageAutoScaler) DeepCopy() *StorageAutoScaler
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageAutoScaler.
func (*StorageAutoScaler) DeepCopyInto ¶
func (in *StorageAutoScaler) DeepCopyInto(out *StorageAutoScaler)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StorageAutoScaler) DeepCopyObject ¶
func (in *StorageAutoScaler) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StorageAutoScalerList ¶
type StorageAutoScalerList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []StorageAutoScaler `json:"items"`
}
StorageAutoScalerList contains a list of StorageAutoScaler
func (*StorageAutoScalerList) DeepCopy ¶
func (in *StorageAutoScalerList) DeepCopy() *StorageAutoScalerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageAutoScalerList.
func (*StorageAutoScalerList) DeepCopyInto ¶
func (in *StorageAutoScalerList) DeepCopyInto(out *StorageAutoScalerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StorageAutoScalerList) DeepCopyObject ¶
func (in *StorageAutoScalerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StorageAutoScalerPhase ¶
type StorageAutoScalerPhase string
const ( StorageAutoScalerPhaseInvalid StorageAutoScalerPhase = "Invalid" StorageAutoScalerPhaseNotStarted StorageAutoScalerPhase = "NotStarted" StorageAutoScalerPhaseInProgress StorageAutoScalerPhase = "InProgress" StorageAutoScalerPhaseSucceeded StorageAutoScalerPhase = "Succeeded" StorageAutoScalerPhaseFailed StorageAutoScalerPhase = "Failed" )
type StorageAutoScalerSpec ¶
type StorageAutoScalerSpec struct {
// StorageCluster is the name of the storage cluster for which the storage scaling is to be done.
// +kubebuilder:validation:Required
StorageCluster corev1.LocalObjectReference `json:"storageCluster,omitempty"`
// DeviceClass is the name of the device class for which the storage scaling is to be done.
// +kubebuilder:validation:Optional
// +kubebuilder:default="ssd"
DeviceClass string `json:"deviceClass,omitempty"`
// StorageCapacityLimit is the total aggregate capacity limit for the storage scaling for the specific deviceClass and storagecluster.
// +kubebuilder:validation:Required
StorageCapacityLimit resource.Quantity `json:"storageCapacityLimit,omitempty"`
// MaxOsdSize is the maximum size that Osd disk can be expanded to.
// +kubebuilder:validation:Optional
// +kubebuilder:default="8Ti"
MaxOsdSize resource.Quantity `json:"maxOsdSize,omitempty"`
// StorageScalingThresholdPercent is the threshold percentage of the storage capacity that triggers the auto-scaling of the OSDs.
// Should be less than the OsdNearFullThresholdPercentage.
// +kubebuilder:validation:Optional
// +kubebuilder:default=70
StorageScalingThresholdPercent int `json:"storageScalingThresholdPercent,omitempty"`
// TimeoutSeconds is the time in seconds after which the storage auto-scaler will alert the user that the scaling operation has been failed.
// +kubebuilder:validation:Optional
// +kubebuilder:default=1800
TimeoutSeconds int `json:"timeoutSeconds,omitempty"`
}
StorageAutoScalerSpec defines the desired state of StorageAutoScaler
func (*StorageAutoScalerSpec) DeepCopy ¶
func (in *StorageAutoScalerSpec) DeepCopy() *StorageAutoScalerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageAutoScalerSpec.
func (*StorageAutoScalerSpec) DeepCopyInto ¶
func (in *StorageAutoScalerSpec) DeepCopyInto(out *StorageAutoScalerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageAutoScalerStatus ¶
type StorageAutoScalerStatus struct {
// Phase describes the Phase of StorageAutoScaler
// +optional
Phase StorageAutoScalerPhase `json:"phase,omitempty"`
// Error is the error message in case the storage scaling operation has failed.
// +optional
// +nullable
Error *TimestampedError `json:"error,omitempty"`
// +optional
// +nullable
LastExpansion *LastExpansionStatus `json:"lastExpansion,omitempty"`
// StorageCapacityLimitReached is the flag that indicates if the storage capacity limit has been reached.
// +optional
// +nullable
StorageCapacityLimitReached *bool `json:"storageCapacityLimitReached,omitempty"`
}
StorageAutoScalerStatus defines the observed state of StorageAutoScaler
func (*StorageAutoScalerStatus) DeepCopy ¶
func (in *StorageAutoScalerStatus) DeepCopy() *StorageAutoScalerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageAutoScalerStatus.
func (*StorageAutoScalerStatus) DeepCopyInto ¶
func (in *StorageAutoScalerStatus) DeepCopyInto(out *StorageAutoScalerStatus)
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.
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 StorageClusterPeerFailureReason ¶
type StorageClusterPeerFailureReason string
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
type StorageClusterPeerStatus ¶
type StorageClusterPeerStatus struct {
State StorageClusterPeerState `json:"state,omitempty"`
FailureReason StorageClusterPeerFailureReason `json:"failureReason,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 {
// 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.
// Deprecated: This field is deprecated and will be removed in a future release.
// Use spec.network.hostNetwork instead.
HostNetwork bool `json:"hostNetwork,omitempty"`
// Placement is optional and used to specify placements of OCS components(except csi) explicitly
// The specified placement here will be selectively merged with the default placement for the components
// For example, if only tolerations are specified, the default node affinity or TSC etc will be applied if applicable
Placement rookCephv1.PlacementSpec `json:"placement,omitempty"`
// Resources is optional and used to specify resource requirements for the OCS components(except csi) explicitly
// The specified resource requirements will be selectively merged according to the type, with the defaults for the components
// For example, if requests/limits only for CPU are specified, default limits & requests for memory would be applied to the component
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"`
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"`
// 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"`
// ProviderAPIServerServiceType Indicates the ServiceType for OCS Provider API Server Service.
// The default ServiceType is derived from hostNetwork field.
// +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer
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"`
}
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 {
Name string `json:"name"`
// 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"`
// 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"`
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 TimestampedError ¶
type TimestampedError struct {
// Message is the error message in case the storage scaling operation has failed.
Message string `json:"message,omitempty"`
// Timestamp is the time stamp when the error occurred.
Timestamp metav1.Time `json:"timestamp,omitempty"`
}
TimestampedError is the error message with the time stamp.
func (*TimestampedError) DeepCopy ¶
func (in *TimestampedError) DeepCopy() *TimestampedError
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimestampedError.
func (*TimestampedError) DeepCopyInto ¶
func (in *TimestampedError) DeepCopyInto(out *TimestampedError)
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.