Help us shape the future of Go! Take the 2026 Go Developer Survey

v1

package
v0.4.13 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2023 License: Apache-2.0 Imports: 13 Imported by: 9

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"

	// ConditionVersionMismatch type indicates that there is a mismatch in the storagecluster
	// and the operator version
	ConditionVersionMismatch conditionsv1.ConditionType = "VersionMismatch"
)
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 BackingStorageClass added in v0.4.12

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 added in v0.4.12

func (in *BackingStorageClass) DeepCopy() *BackingStorageClass

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

func (*BackingStorageClass) DeepCopyInto added in v0.4.12

func (in *BackingStorageClass) DeepCopyInto(out *BackingStorageClass)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BlockPoolConfigurationSpec added in v0.4.12

type BlockPoolConfigurationSpec struct {
	Parameters map[string]string `json:"parameters,omitempty"`
}

func (*BlockPoolConfigurationSpec) DeepCopy added in v0.4.12

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

func (*BlockPoolConfigurationSpec) DeepCopyInto added in v0.4.12

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 {
	// 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"`
	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 ExternalStorageKind added in v0.4.10

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 added in v0.4.11

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 added in v0.4.11

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

func (*KMSServerConnectionStatus) DeepCopyInto added in v0.4.11

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 ManageCephCluster

type ManageCephCluster struct {
	ReconcileStrategy string `json:"reconcileStrategy,omitempty"`
}

ManageCephCluster defines how to reconcile the Ceph cluster definition

func (*ManageCephCluster) DeepCopy

func (in *ManageCephCluster) DeepCopy() *ManageCephCluster

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

func (*ManageCephCluster) DeepCopyInto

func (in *ManageCephCluster) DeepCopyInto(out *ManageCephCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManageCephConfig

type ManageCephConfig struct {
	ReconcileStrategy string `json:"reconcileStrategy,omitempty"`
}

ManageCephConfig defines how to reconcile the Ceph configuration

func (*ManageCephConfig) DeepCopy

func (in *ManageCephConfig) DeepCopy() *ManageCephConfig

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

func (*ManageCephConfig) DeepCopyInto

func (in *ManageCephConfig) DeepCopyInto(out *ManageCephConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManageCephDashboard

type ManageCephDashboard struct {
	Enable bool `json:"enable,omitempty"`
	// serve the dashboard using SSL
	SSL bool `json:"ssl,omitempty"`
}

ManageCephDashboard defines how to reconcile Ceph dashboard

func (*ManageCephDashboard) DeepCopy

func (in *ManageCephDashboard) DeepCopy() *ManageCephDashboard

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

func (*ManageCephDashboard) DeepCopyInto

func (in *ManageCephDashboard) DeepCopyInto(out *ManageCephDashboard)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManageCephFilesystems

type ManageCephFilesystems struct {
	ReconcileStrategy    string `json:"reconcileStrategy,omitempty"`
	DisableStorageClass  bool   `json:"disableStorageClass,omitempty"`
	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 ManageCephNonResilientPools added in v0.4.12

type ManageCephNonResilientPools struct {
	Enable bool `json:"enable,omitempty"`
}

ManageCephNonResilientPools defines how to reconcile ceph non-resilient pools

func (*ManageCephNonResilientPools) DeepCopy added in v0.4.12

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

func (*ManageCephNonResilientPools) DeepCopyInto added in v0.4.12

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"`
	DisableRoute        bool   `json:"disableRoute,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 ManageCephRBDMirror added in v0.4.13

type ManageCephRBDMirror struct {
	ReconcileStrategy string `json:"reconcileStrategy,omitempty"`
}

ManageCephRBDMirror defines how to reconcile Ceph RBDMirror

func (*ManageCephRBDMirror) DeepCopy added in v0.4.13

func (in *ManageCephRBDMirror) DeepCopy() *ManageCephRBDMirror

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

func (*ManageCephRBDMirror) DeepCopyInto added in v0.4.13

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 added in v0.4.11

type ManageCephToolbox struct {
	ReconcileStrategy string `json:"reconcileStrategy,omitempty"`
}

ManageCephToolbox defines how to reconcile Ceph toolbox

func (*ManageCephToolbox) DeepCopy added in v0.4.11

func (in *ManageCephToolbox) DeepCopy() *ManageCephToolbox

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

func (*ManageCephToolbox) DeepCopyInto added in v0.4.11

func (in *ManageCephToolbox) DeepCopyInto(out *ManageCephToolbox)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedResourcesSpec

type ManagedResourcesSpec struct {
	CephCluster           ManageCephCluster           `json:"cephCluster,omitempty"`
	CephConfig            ManageCephConfig            `json:"cephConfig,omitempty"`
	CephDashboard         ManageCephDashboard         `json:"cephDashboard,omitempty"`
	CephBlockPools        ManageCephBlockPools        `json:"cephBlockPools,omitempty"`
	CephNonResilientPools ManageCephNonResilientPools `json:"cephNonResilientPools,omitempty"`
	CephFilesystems       ManageCephFilesystems       `json:"cephFilesystems,omitempty"`
	CephObjectStores      ManageCephObjectStores      `json:"cephObjectStores,omitempty"`
	CephObjectStoreUsers  ManageCephObjectStoreUsers  `json:"cephObjectStoreUsers,omitempty"`
	CephToolbox           ManageCephToolbox           `json:"cephToolbox,omitempty"`
	CephRBDMirror         ManageCephRBDMirror         `json:"cephRBDMirror,omitempty"`
}

ManagedResourcesSpec defines how to reconcile auxiliary resources

func (*ManagedResourcesSpec) DeepCopy

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

func (*ManagedResourcesSpec) DeepCopyInto

func (in *ManagedResourcesSpec) DeepCopyInto(out *ManagedResourcesSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MgrSpec added in v0.4.13

type MgrSpec struct {
	// EnableActivePassive can be set as true to deploy 2 ceph manager pods, one active and one standby
	// Ceph will promote the standby mgr when the active mgr goes down due to any reason
	EnableActivePassive bool `json:"enableActivePassive,omitempty"`
}

MgrSpec defines the settings for the Ceph Manager

func (*MgrSpec) DeepCopy added in v0.4.13

func (in *MgrSpec) DeepCopy() *MgrSpec

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

func (*MgrSpec) DeepCopyInto added in v0.4.13

func (in *MgrSpec) DeepCopyInto(out *MgrSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MirroringSpec

type MirroringSpec struct {
	// If true, data mirroring is enabled for the StorageCluster.
	// This configuration will only be applied to resources (such as CephBlockPool)
	// managed by the operator.
	// It is optional and defaults to false.
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// PeerSecretNames represents the Kubernetes Secret names of rbd-mirror peers tokens
	// +optional
	PeerSecretNames []string `json:"peerSecretNames,omitempty"`
}

func (*MirroringSpec) DeepCopy

func (in *MirroringSpec) DeepCopy() *MirroringSpec

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

func (*MirroringSpec) DeepCopyInto

func (in *MirroringSpec) DeepCopyInto(out *MirroringSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MonitoringSpec

type MonitoringSpec struct {
	ReconcileStrategy string `json:"reconcileStrategy,omitempty"`
	// Labels to add to monitoring resources created by operator.
	// These labels are used as LabelSelector for Prometheus
	Labels map[string]string `json:"labels,omitempty"`
}

MonitoringSpec controls the configuration of resources for exposing OCS metrics

func (*MonitoringSpec) DeepCopy

func (in *MonitoringSpec) DeepCopy() *MonitoringSpec

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

func (*MonitoringSpec) DeepCopyInto

func (in *MonitoringSpec) DeepCopyInto(out *MonitoringSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MultiCloudGatewaySpec

type MultiCloudGatewaySpec struct {
	// ReconcileStrategy specifies whether to reconcile NooBaa CRs. Valid
	// values are "manage", "standalone", "ignore" (same as "standalone"),
	// and "" (same as "manage").
	ReconcileStrategy string `json:"reconcileStrategy,omitempty"`

	// DbStorageClassName specifies the default storage class
	// for nooba-db pods
	// +optional
	DbStorageClassName string `json:"dbStorageClassName,omitempty"`
	// Endpoints (optional) sets configuration info for the noobaa endpoint
	// deployment.
	// +optional
	Endpoints *nbv1.EndpointsSpec `json:"endpoints,omitempty"`

	// DisableLoadBalancerService (optional) sets the service type to ClusterIP instead of LoadBalancer
	// +nullable
	// +optional
	DisableLoadBalancerService bool `json:"disableLoadBalancerService,omitempty"`
}

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 NFSSpec added in v0.4.11

type NFSSpec struct {
	// Enable specifies whether to enable NFS.
	// +optional
	Enable bool `json:"enable,omitempty"`
}

NFSSpec defines specific nfs configuration options

func (*NFSSpec) DeepCopy added in v0.4.11

func (in *NFSSpec) DeepCopy() *NFSSpec

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

func (*NFSSpec) DeepCopyInto added in v0.4.11

func (in *NFSSpec) DeepCopyInto(out *NFSSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeTopologyMap

type NodeTopologyMap struct {
	// Labels is a map of topology label keys
	// (e.g. "failure-domain.kubernetes.io") to a set of values for those
	// keys.
	// +optional
	// +nullable
	Labels map[string]TopologyLabelValues `json:"labels,omitempty"`

	// ArbiterLocation is the chosen location in the failure domain for placing the arbiter resources.
	// When the failure domain is not provided as an input, ocs-operator determines the failure domain.
	ArbiterLocation string `json:"arbiterLocation,omitempty"`
}

NodeTopologyMap represents the list of all values of all topology labels across all nodes in the StorageCluster

func NewNodeTopologyMap

func NewNodeTopologyMap() *NodeTopologyMap

NewNodeTopologyMap returns an initialized NodeTopologyMap

func (*NodeTopologyMap) Add

func (m *NodeTopologyMap) Add(topologyKey string, value string)

Add adds a new value to the NodeTopologyMap under the specified key USe it with Contains() to not allow duplicate values

func (*NodeTopologyMap) Contains

func (m *NodeTopologyMap) Contains(topologyKey string, value string) bool

Contains checks whether the NodeTopologyMap contains a specific value for the specified key

func (*NodeTopologyMap) ContainsKey

func (m *NodeTopologyMap) ContainsKey(topologyKey string) bool

ContainsKey checks whether the NodeTopologyMap contains any value for the specified key

func (*NodeTopologyMap) DeepCopy

func (in *NodeTopologyMap) DeepCopy() *NodeTopologyMap

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

func (*NodeTopologyMap) DeepCopyInto

func (in *NodeTopologyMap) DeepCopyInto(out *NodeTopologyMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeTopologyMap) GetKeyValues

func (m *NodeTopologyMap) GetKeyValues(topologyKey string) (string, []string)

GetKeyValues returns a node label matching the topologyKey and all values for that label across all storage nodes

type OCSInitialization

type OCSInitialization struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   OCSInitializationSpec   `json:"spec,omitempty"`
	Status OCSInitializationStatus `json:"status,omitempty"`
}

OCSInitialization represents the initial data to be created when the operator is installed.

func (*OCSInitialization) DeepCopy

func (in *OCSInitialization) DeepCopy() *OCSInitialization

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

func (*OCSInitialization) DeepCopyInto

func (in *OCSInitialization) DeepCopyInto(out *OCSInitialization)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OCSInitialization) DeepCopyObject

func (in *OCSInitialization) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OCSInitializationList

type OCSInitializationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OCSInitialization `json:"items"`
}

OCSInitializationList contains a list of OCSInitialization

func (*OCSInitializationList) DeepCopy

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"`

	// Tolerations if specified set toolbox ceph tools pod tolerations
	// Defaults to empty
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,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"`
	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 SharedFilesystemConfigurationSpec added in v0.4.12

type SharedFilesystemConfigurationSpec struct {
	Parameters map[string]string `json:"parameters,omitempty"`
}

func (*SharedFilesystemConfigurationSpec) DeepCopy added in v0.4.12

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

func (*SharedFilesystemConfigurationSpec) DeepCopyInto added in v0.4.12

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StorageCluster

type StorageCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   StorageClusterSpec   `json:"spec,omitempty"`
	Status StorageClusterStatus `json:"status,omitempty"`
}

StorageCluster represents a cluster including Ceph Cluster, NooBaa and all the storage and compute resources required.

func (*StorageCluster) DeepCopy

func (in *StorageCluster) DeepCopy() *StorageCluster

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

func (*StorageCluster) DeepCopyInto

func (in *StorageCluster) DeepCopyInto(out *StorageCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StorageCluster) DeepCopyObject

func (in *StorageCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*StorageCluster) NewToolsDeployment added in v0.4.11

func (r *StorageCluster) NewToolsDeployment(tolerations []corev1.Toleration) *appsv1.Deployment

type StorageClusterList

type StorageClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []StorageCluster `json:"items"`
}

StorageClusterList contains a list of StorageCluster

func (*StorageClusterList) DeepCopy

func (in *StorageClusterList) DeepCopy() *StorageClusterList

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

func (*StorageClusterList) DeepCopyInto

func (in *StorageClusterList) DeepCopyInto(out *StorageClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StorageClusterList) DeepCopyObject

func (in *StorageClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type StorageClusterSpec

type StorageClusterSpec struct {
	ManageNodes  bool   `json:"manageNodes,omitempty"`
	InstanceType string `json:"instanceType,omitempty"`
	// LabelSelector is used to specify custom labels of nodes to run OCS on
	LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`
	// ExternalStorage is optional and defaults to false. When set to true, OCS will
	// connect to an external OCS Storage Cluster instead of provisioning one locally.
	ExternalStorage ExternalStorageClusterSpec `json:"externalStorage,omitempty"`
	// HostNetwork defaults to false
	HostNetwork bool `json:"hostNetwork,omitempty"`
	// Placement is optional and used to specify placements of OCS components explicitly
	Placement rookCephv1.PlacementSpec `json:"placement,omitempty"`
	// Resources follows the conventions of and is mapped to CephCluster.Spec.Resources
	Resources          map[string]corev1.ResourceRequirements `json:"resources,omitempty"`
	Encryption         EncryptionSpec                         `json:"encryption,omitempty"`
	StorageDeviceSets  []StorageDeviceSet                     `json:"storageDeviceSets,omitempty"`
	MonPVCTemplate     *corev1.PersistentVolumeClaim          `json:"monPVCTemplate,omitempty"`
	MonDataDirHostPath string                                 `json:"monDataDirHostPath,omitempty"`
	Mgr                *MgrSpec                               `json:"mgr,omitempty"`
	MultiCloudGateway  *MultiCloudGatewaySpec                 `json:"multiCloudGateway,omitempty"`
	NFS                *NFSSpec                               `json:"nfs,omitempty"`
	// Monitoring controls the configuration of resources for exposing OCS metrics
	Monitoring *MonitoringSpec `json:"monitoring,omitempty"`
	// Version specifies the version of StorageCluster
	// +kubebuilder:deprecatedversion:warning="This field has been deprecated and will be removed in future versions. Use `StorageCluster.Status.Version` instead."
	Version string `json:"version,omitempty"`
	// Network represents cluster network settings
	Network *rookCephv1.NetworkSpec `json:"network,omitempty"`
	// ManagedResources specifies how to deal with auxiliary resources reconciled
	// with the StorageCluster
	ManagedResources ManagedResourcesSpec `json:"managedResources,omitempty"`
	// If enabled, sets the failureDomain to host, allowing devices to be
	// distributed evenly across all nodes, regardless of distribution in zones
	// or racks.
	FlexibleScaling bool `json:"flexibleScaling,omitempty"`
	// NodeTopologies specifies the nodes available for the storage cluster,
	// preferred failure domain and location for the arbiter resources. This is
	// optional for non-arbiter clusters. For arbiter clusters, the
	// arbiterLocation is required; failure domain and the node labels are
	// optional. When the failure domain and the node labels are missing, the
	// ocs-operator makes a best effort to determine them automatically.
	NodeTopologies *NodeTopologyMap `json:"nodeTopologies,omitempty"`
	// ArbiterSpec specifies the storage cluster options related to arbiter.
	// If Arbiter is enabled, ArbiterLocation in the NodeTopologies must be specified.
	Arbiter ArbiterSpec `json:"arbiter,omitempty"`
	// Mirroring specifies data mirroring configuration for the storage cluster.
	// This configuration will only be applied to resources managed by the operator.
	Mirroring MirroringSpec `json:"mirroring,omitempty"`
	// OverprovisionControl specifies the allowed hard-limit PVs overprovisioning relative to
	// the effective usable storage capacity.
	OverprovisionControl []OverprovisionControlSpec `json:"overprovisionControl,omitempty"`

	// AllowRemoteStorageConsumers Indicates that the OCS cluster should deploy the needed
	// components to enable connections from remote consumers.
	AllowRemoteStorageConsumers bool `json:"allowRemoteStorageConsumers,omitempty"`
	// EnableCephTools toggles on whether or not the ceph tools pod
	// should be deployed.
	// Defaults to false
	// +optional
	EnableCephTools bool `json:"enableCephTools,omitempty"`

	// Logging represents loggings settings
	// +optional
	// +nullable
	LogCollector *rookCephv1.LogCollectorSpec `json:"logCollector,omitempty"`

	// BackingStorageClasses is a list of storage classes that will be
	// provisioned by the storagecluster controller to be used in
	// storageDeviceSets section of the CR.
	BackingStorageClasses []BackingStorageClass `json:"backingStorageClasses,omitempty"`
	// DefaultStorageProfile is the default storage profile to use for
	// the storageclassrequest as StorageProfile is optional.
	DefaultStorageProfile string `json:"defaultStorageProfile,omitempty"`

	StorageProfiles []StorageProfile `json:"storageProfiles,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"`

	// 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"`

	// KMSServerConnection holds the connection state to the KMS server.
	KMSServerConnection KMSServerConnectionStatus `json:"kmsServerConnection,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

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 StorageProfile added in v0.4.12

type StorageProfile struct {
	// +kubebuilder:validation:Required
	// Name of the storage profile.
	Name string `json:"name"`
	// +kubebuilder:validation:Required
	// DeviceClass is the deviceclass name.
	DeviceClass string `json:"deviceClass"`
	// configurations to use for cephfilesystem.
	SharedFilesystemConfiguration SharedFilesystemConfigurationSpec `json:"sharedFilesystemConfiguration,omitempty"`
	// configurations to use for  profile specific blockpool.
	BlockPoolConfiguration BlockPoolConfigurationSpec `json:"blockPoolConfiguration,omitempty"`
}

StorageProfile is the storage profile to use for the storageclassrequest.

func (*StorageProfile) DeepCopy added in v0.4.12

func (in *StorageProfile) DeepCopy() *StorageProfile

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

func (*StorageProfile) DeepCopyInto added in v0.4.12

func (in *StorageProfile) DeepCopyInto(out *StorageProfile)

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

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