v1

package
Version: v0.0.1-master Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2021 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
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"
)
View Source
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

View Source
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

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

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

func (*ExternalStorageClusterSpec) DeepCopyInto

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

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

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

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

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

func (*ManageCephObjectStoreUsers) DeepCopyInto

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

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

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

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

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

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

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

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

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

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

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL