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 ComponentImageStatus
- type EncryptionSpec
- type ExternalStorageClusterSpec
- type ImagesStatus
- type KeyManagementServiceSpec
- type ManageCephBlockPools
- type ManageCephConfig
- type ManageCephDashboard
- type ManageCephFilesystems
- type ManageCephObjectStoreUsers
- type ManageCephObjectStores
- type ManagedResourcesSpec
- type MirroringSpec
- type MonitoringSpec
- type MultiCloudGatewaySpec
- 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 StorageCluster
- type StorageClusterList
- type StorageClusterSpec
- type StorageClusterStatus
- type StorageDeviceSet
- type StorageDeviceSetConfig
- 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" )
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 is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.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 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 { // +optional Enable bool `json:"enable,omitempty"` KeyManagementService KeyManagementServiceSpec `json:"kms,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 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 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 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 ManageCephBlockPools ¶
type ManageCephBlockPools struct { ReconcileStrategy string `json:"reconcileStrategy,omitempty"` DisableStorageClass bool `json:"disableStorageClass,omitempty"` DisableSnapshotClass bool `json:"disableSnapshotClass,omitempty"` }
ManageCephBlockPools defines how to reconcilea 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 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"` DisableSnapshotClass bool `json:"disableSnapshotClass,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 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 int32 `json:"gatewayInstances,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 ManagedResourcesSpec ¶
type ManagedResourcesSpec struct { CephConfig ManageCephConfig `json:"cephConfig,omitempty"` CephDashboard ManageCephDashboard `json:"cephDashboard,omitempty"` CephBlockPools ManageCephBlockPools `json:"cephBlockPools,omitempty"` CephFilesystems ManageCephFilesystems `json:"cephFilesystems,omitempty"` CephObjectStores ManageCephObjectStores `json:"cephObjectStores,omitempty"` CephObjectStoreUsers ManageCephObjectStoreUsers `json:"cephObjectStoreUsers,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"` }
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"` }
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 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 is the Schema for the ocsinitialization API
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 EnableCephTools bool `json:"enableCephTools,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"` }
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"` Percentage uint `json:"percentage,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 StorageCluster ¶
type StorageCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec StorageClusterSpec `json:"spec,omitempty"` Status StorageClusterStatus `json:"status,omitempty"` }
StorageCluster is the Schema for the storageclusters API
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 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"` // External Storage 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"` 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"` // Monitoring controls the configuration of resources for exposing OCS metrics Monitoring *MonitoringSpec `json:"monitoring,omitempty"` // Version specifies the version of StorageCluster 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"` }
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 { // 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"` // 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"` }
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. // +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"` }
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 TODO: Fill in the members when the actual configurable options are defined in rook-ceph
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 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.