v1

package
v0.0.0-...-1af97d0 Latest Latest
Warning

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

Go to latest
Published: May 3, 2024 License: Apache-2.0 Imports: 21 Imported by: 342

Documentation

Overview

Package v1 is the v1 version of the API. +groupName=ceph.rook.io

Copyright 2018 The Rook Authors. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2018 The Rook Authors. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	// SanitizeDataSourceZero uses /dev/zero as sanitize source
	SanitizeDataSourceZero SanitizeDataSourceProperty = "zero"

	// SanitizeDataSourceRandom uses `shred's default entropy source
	SanitizeDataSourceRandom SanitizeDataSourceProperty = "random"

	// SanitizeMethodComplete will sanitize everything on the disk
	SanitizeMethodComplete SanitizeMethodProperty = "complete"

	// SanitizeMethodQuick will sanitize metadata only on the disk
	SanitizeMethodQuick SanitizeMethodProperty = "quick"

	// DeleteDataDirOnHostsConfirmation represents the validation to destroy dataDirHostPath
	DeleteDataDirOnHostsConfirmation CleanupConfirmationProperty = "yes-really-destroy-data"
)
View Source
const (
	CustomResourceGroup = "ceph.rook.io"
	Version             = "v1"
)
View Source
const (
	// ResourcesKeyMon represents the name of resource in the CR for a mon
	ResourcesKeyMon = "mon"
	// ResourcesKeyMgr represents the name of resource in the CR for a mgr
	ResourcesKeyMgr = "mgr"
	// ResourcesKeyMgrSidecar represents the name of resource in the CR for a mgr
	ResourcesKeyMgrSidecar = "mgr-sidecar"
	// ResourcesKeyOSD represents the name of a resource in the CR for all OSDs
	ResourcesKeyOSD = "osd"
	// ResourcesKeyPrepareOSD represents the name of resource in the CR for the osd prepare job
	ResourcesKeyPrepareOSD = "prepareosd"
	// ResourcesKeyMDS represents the name of resource in the CR for the mds
	ResourcesKeyMDS = "mds"
	// ResourcesKeyCrashCollector represents the name of resource in the CR for the crash
	ResourcesKeyCrashCollector = "crashcollector"
	// ResourcesKeyLogCollector represents the name of resource in the CR for the log
	ResourcesKeyLogCollector = "logcollector"
	// ResourcesKeyRBDMirror represents the name of resource in the CR for the rbd mirror
	ResourcesKeyRBDMirror = "rbdmirror"
	// ResourcesKeyFilesystemMirror represents the name of resource in the CR for the filesystem mirror
	ResourcesKeyFilesystemMirror = "fsmirror"
	// ResourcesKeyCleanup represents the name of resource in the CR for the cleanup
	ResourcesKeyCleanup = "cleanup"
	// ResourcesKeyCleanup represents the name of resource in the CR for ceph-exporter
	ResourcesKeyCephExporter = "exporter"
)
View Source
const (
	// DefaultFailureDomain for PoolSpec
	DefaultFailureDomain = "host"
	// DefaultCRUSHRoot is the default name of the CRUSH root bucket
	DefaultCRUSHRoot = "default"
)
View Source
const (
	NetworkProviderDefault = NetworkProviderType("")
	NetworkProviderHost    = NetworkProviderType("host")
	NetworkProviderMultus  = NetworkProviderType("multus")
)
View Source
const (
	CephNetworkPublic  = CephNetworkType("public")
	CephNetworkCluster = CephNetworkType("cluster")
)
View Source
const ServiceServingCertKey = "service.beta.openshift.io/serving-cert-secret-name"
View Source
const (
	// SkipReconcileLabelKey is a label indicating that the pod should not be reconciled
	SkipReconcileLabelKey = "ceph.rook.io/do-not-reconcile"
)

Variables

View Source
var (
	// SchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
	SchemeBuilder runtime.SchemeBuilder

	AddToScheme = localSchemeBuilder.AddToScheme
)

SchemeGroupVersion is group version used to register these objects

View Source
var (
	VaultTLSConnectionDetails = []string{api.EnvVaultCACert, api.EnvVaultClientCert, api.EnvVaultClientKey}
)

Functions

func GetCephExporterPriorityClassName

func GetCephExporterPriorityClassName(p PriorityClassNamesSpec) string

GetCephExporterPriorityClassName returns the priority class name for the ceph-exporter

func GetCephExporterResources

func GetCephExporterResources(p ResourceSpec) v1.ResourceRequirements

GetCephExporterResources returns the placement for the cleanup job

func GetCleanupPriorityClassName

func GetCleanupPriorityClassName(p PriorityClassNamesSpec) string

GetCleanupPriorityClassName returns the priority class name for the cleanup job

func GetCleanupResources

func GetCleanupResources(p ResourceSpec) v1.ResourceRequirements

GetCleanupResources returns the placement for the cleanup job

func GetCrashCollectorPriorityClassName

func GetCrashCollectorPriorityClassName(p PriorityClassNamesSpec) string

GetCrashCollectorPriorityClassName returns the priority class name for the crashcollector

func GetCrashCollectorResources

func GetCrashCollectorResources(p ResourceSpec) v1.ResourceRequirements

GetCrashCollectorResources returns the placement for the crash daemon

func GetLogCollectorResources

func GetLogCollectorResources(p ResourceSpec) v1.ResourceRequirements

GetLogCollectorResources returns the placement for the crash daemon

func GetMgrPriorityClassName

func GetMgrPriorityClassName(p PriorityClassNamesSpec) string

GetMgrPriorityClassName returns the priority class name for the MGR service

func GetMgrResources

func GetMgrResources(p ResourceSpec) v1.ResourceRequirements

GetMgrResources returns the placement for the MGR service

func GetMgrSidecarResources

func GetMgrSidecarResources(p ResourceSpec) v1.ResourceRequirements

GetMgrSidecarResources returns the placement for the MGR sidecar container

func GetMonPriorityClassName

func GetMonPriorityClassName(p PriorityClassNamesSpec) string

GetMonPriorityClassName returns the priority class name for the monitors

func GetMonResources

func GetMonResources(p ResourceSpec) v1.ResourceRequirements

GetMonResources returns the placement for the monitors

func GetOSDPriorityClassName

func GetOSDPriorityClassName(p PriorityClassNamesSpec) string

GetOSDPriorityClassName returns the priority class name for the OSDs

func GetOSDResources

func GetOSDResources(p ResourceSpec, deviceClass string) v1.ResourceRequirements

GetOSDResources returns the placement for all OSDs or for OSDs of specified device class (hdd, nvme, ssd)

func GetPrepareOSDResources

func GetPrepareOSDResources(p ResourceSpec) v1.ResourceRequirements

GetPrepareOSDResources returns the placement for the OSDs prepare job

func NetworkSelectionsToAnnotationValue

func NetworkSelectionsToAnnotationValue(selections ...*nadv1.NetworkSelectionElement) (string, error)

NetworkSelectionsToAnnotationValue converts NetworkAttachmentDefinition network selection elements to an annotation value for the "k8s.v1.cni.cncf.io/networks" annotation key.

func NewSecurityContextConstraints

func NewSecurityContextConstraints(name string, namespaces ...string) *secv1.SecurityContextConstraints

NewSecurityContextConstraints returns a new SecurityContextConstraints for Rook-Ceph to run on OpenShift.

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

func SetStatusCondition

func SetStatusCondition(conditions *[]Condition, newCondition Condition)

SetStatusCondition sets the corresponding condition in conditions to newCondition. conditions must be non-nil.

  1. if the condition of the specified type already exists (all fields of the existing condition are updated to newCondition, LastTransitionTime is set to now if the new status differs from the old status)
  2. if a condition of the specified type does not exist (LastTransitionTime is set to now() if unset, and newCondition is appended)

func ValidateAMQPSpec

func ValidateAMQPSpec(s *AMQPEndpointSpec) error

func ValidateCephBlockPool

func ValidateCephBlockPool(p *CephBlockPool) error

ValidateCephBlockPool validates specifically a CephBlockPool's spec (not just any NamedPoolSpec)

func ValidateHTTPSpec

func ValidateHTTPSpec(s *HTTPEndpointSpec) error

func ValidateKafkaSpec

func ValidateKafkaSpec(s *KafkaEndpointSpec) error

func ValidateNetworkSpec

func ValidateNetworkSpec(clusterNamespace string, spec NetworkSpec) error

func ValidateNetworkSpecUpdate

func ValidateNetworkSpecUpdate(clusterNamespace string, oldSpec, newSpec NetworkSpec) error

func ValidateObjectSpec

func ValidateObjectSpec(gs *CephObjectStore) error

ValidateObjectSpec validate the object store arguments

Types

type AMQPEndpointSpec

type AMQPEndpointSpec struct {
	// The URI of the AMQP endpoint to push notification to
	// +kubebuilder:validation:MinLength=1
	URI string `json:"uri"`
	// Name of the exchange that is used to route messages based on topics
	// +kubebuilder:validation:MinLength=1
	Exchange string `json:"exchange"`
	// Indicate whether the server certificate is validated by the client or not
	// +optional
	DisableVerifySSL bool `json:"disableVerifySSL,omitempty"`
	// The ack level required for this topic (none/broker/routeable)
	// +kubebuilder:validation:Enum=none;broker;routeable
	// +kubebuilder:default=broker
	// +optional
	AckLevel string `json:"ackLevel,omitempty"`
}

AMQPEndpointSpec represent the spec of an AMQP endpoint of a Bucket Topic

func (*AMQPEndpointSpec) DeepCopy

func (in *AMQPEndpointSpec) DeepCopy() *AMQPEndpointSpec

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

func (*AMQPEndpointSpec) DeepCopyInto

func (in *AMQPEndpointSpec) DeepCopyInto(out *AMQPEndpointSpec)

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

type AddressRangesSpec

type AddressRangesSpec struct {
	// Public defines a list of CIDRs to use for Ceph public network communication.
	// +optional
	Public CIDRList `json:"public"`

	// Cluster defines a list of CIDRs to use for Ceph cluster network communication.
	// +optional
	Cluster CIDRList `json:"cluster"`
}

func (*AddressRangesSpec) DeepCopy

func (in *AddressRangesSpec) DeepCopy() *AddressRangesSpec

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

func (*AddressRangesSpec) DeepCopyInto

func (in *AddressRangesSpec) DeepCopyInto(out *AddressRangesSpec)

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

func (*AddressRangesSpec) IsEmpty

func (n *AddressRangesSpec) IsEmpty() bool

func (*AddressRangesSpec) Validate

func (n *AddressRangesSpec) Validate() error

type Annotations

type Annotations map[string]string

Annotations are annotations

func GetCephExporterAnnotations

func GetCephExporterAnnotations(a AnnotationsSpec) Annotations

GetCephExporterAnnotations returns the Annotations for the MGR service

func GetCleanupAnnotations

func GetCleanupAnnotations(a AnnotationsSpec) Annotations

GetCleanupAnnotations returns the Annotations for the cleanup job

func GetClusterMetadataAnnotations

func GetClusterMetadataAnnotations(a AnnotationsSpec) Annotations

func GetDashboardAnnotations

func GetDashboardAnnotations(a AnnotationsSpec) Annotations

GetDashboardAnnotations returns the Annotations for the Dashboard service

func GetKeyRotationAnnotations

func GetKeyRotationAnnotations(a AnnotationsSpec) Annotations

GetKeyRotationAnnotations returns the annotations for the key rotation job

func GetMgrAnnotations

func GetMgrAnnotations(a AnnotationsSpec) Annotations

GetMgrAnnotations returns the Annotations for the MGR service

func GetMonAnnotations

func GetMonAnnotations(a AnnotationsSpec) Annotations

GetMonAnnotations returns the Annotations for the MON service

func GetOSDAnnotations

func GetOSDAnnotations(a AnnotationsSpec) Annotations

GetOSDAnnotations returns the annotations for the OSD service

func GetOSDPrepareAnnotations

func GetOSDPrepareAnnotations(a AnnotationsSpec) Annotations

GetOSDPrepareAnnotations returns the annotations for the OSD service

func (Annotations) ApplyToObjectMeta

func (a Annotations) ApplyToObjectMeta(t *metav1.ObjectMeta)

ApplyToObjectMeta adds annotations to object meta unless the keys are already defined.

func (Annotations) DeepCopy

func (in Annotations) DeepCopy() Annotations

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

func (Annotations) DeepCopyInto

func (in Annotations) DeepCopyInto(out *Annotations)

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

func (Annotations) Merge

func (a Annotations) Merge(with map[string]string) Annotations

Merge returns an Annotations which results from merging the attributes of the original Annotations with the attributes of the supplied one. The supplied Annotation attributes will override the original ones if defined.

type AnnotationsSpec

type AnnotationsSpec map[KeyType]Annotations

AnnotationsSpec is the main spec annotation for all daemons +kubebuilder:pruning:PreserveUnknownFields +nullable

func (AnnotationsSpec) All

func (a AnnotationsSpec) All() Annotations

func (AnnotationsSpec) DeepCopy

func (in AnnotationsSpec) DeepCopy() AnnotationsSpec

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

func (AnnotationsSpec) DeepCopyInto

func (in AnnotationsSpec) DeepCopyInto(out *AnnotationsSpec)

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

type BucketNotificationEvent

type BucketNotificationEvent string

BucketNotificationSpec represent the event type of the bucket notification +kubebuilder:validation:Enum="s3:ObjectCreated:*";"s3:ObjectCreated:Put";"s3:ObjectCreated:Post";"s3:ObjectCreated:Copy";"s3:ObjectCreated:CompleteMultipartUpload";"s3:ObjectRemoved:*";"s3:ObjectRemoved:Delete";"s3:ObjectRemoved:DeleteMarkerCreated"

type BucketNotificationSpec

type BucketNotificationSpec struct {
	// The name of the topic associated with this notification
	// +kubebuilder:validation:MinLength=1
	Topic string `json:"topic"`
	// List of events that should trigger the notification
	// +optional
	Events []BucketNotificationEvent `json:"events,omitempty"`
	// Spec of notification filter
	// +optional
	Filter *NotificationFilterSpec `json:"filter,omitempty"`
}

BucketNotificationSpec represent the spec of a Bucket Notification

func (*BucketNotificationSpec) DeepCopy

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

func (*BucketNotificationSpec) DeepCopyInto

func (in *BucketNotificationSpec) DeepCopyInto(out *BucketNotificationSpec)

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

type BucketTopicSpec

type BucketTopicSpec struct {
	// The name of the object store on which to define the topic
	// +kubebuilder:validation:MinLength=1
	ObjectStoreName string `json:"objectStoreName"`
	// The namespace of the object store on which to define the topic
	// +kubebuilder:validation:MinLength=1
	ObjectStoreNamespace string `json:"objectStoreNamespace"`
	// Data which is sent in each event
	// +optional
	OpaqueData string `json:"opaqueData,omitempty"`
	// Indication whether notifications to this endpoint are persistent or not
	// +optional
	Persistent bool `json:"persistent,omitempty"`
	// Contains the endpoint spec of the topic
	Endpoint TopicEndpointSpec `json:"endpoint"`
}

BucketTopicSpec represent the spec of a Bucket Topic

func (*BucketTopicSpec) DeepCopy

func (in *BucketTopicSpec) DeepCopy() *BucketTopicSpec

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

func (*BucketTopicSpec) DeepCopyInto

func (in *BucketTopicSpec) DeepCopyInto(out *BucketTopicSpec)

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

type BucketTopicStatus

type BucketTopicStatus struct {
	// +optional
	Phase string `json:"phase,omitempty"`
	// The ARN of the topic generated by the RGW
	// +optional
	// +nullable
	ARN *string `json:"ARN,omitempty"`
	// ObservedGeneration is the latest generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

BucketTopicStatus represents the Status of a CephBucketTopic

func (*BucketTopicStatus) DeepCopy

func (in *BucketTopicStatus) DeepCopy() *BucketTopicStatus

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

func (*BucketTopicStatus) DeepCopyInto

func (in *BucketTopicStatus) DeepCopyInto(out *BucketTopicStatus)

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

type CIDR

type CIDR string

An IPv4 or IPv6 network CIDR.

This naive kubebuilder regex provides immediate feedback for some typos and for a common problem case where the range spec is forgotten (e.g., /24). Rook does in-depth validation in code. +kubebuilder:validation:Pattern=`^[0-9a-fA-F:.]{2,}\/[0-9]{1,3}$`

type CIDRList

type CIDRList []CIDR

A list of CIDRs.

func (CIDRList) DeepCopy

func (in CIDRList) DeepCopy() CIDRList

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

func (CIDRList) DeepCopyInto

func (in CIDRList) DeepCopyInto(out *CIDRList)

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

func (*CIDRList) String

func (l *CIDRList) String() string

String turns a CIDR list into a comma-delimited string of CIDRs

type COSIDeploymentStrategy

type COSIDeploymentStrategy string

COSIDeploymentStrategy represents the strategy to use to deploy the Ceph COSI driver

const (
	// Never means the Ceph COSI driver will never deployed
	COSIDeploymentStrategyNever COSIDeploymentStrategy = "Never"
	// Auto means the Ceph COSI driver will be deployed automatically if object store is present
	COSIDeploymentStrategyAuto COSIDeploymentStrategy = "Auto"
	// Always means the Ceph COSI driver will be deployed even if the object store is not present
	COSIDeploymentStrategyAlways COSIDeploymentStrategy = "Always"
)

type CSICephFSSpec

type CSICephFSSpec struct {
	// KernelMountOptions defines the mount options for kernel mounter.
	// +optional
	KernelMountOptions string `json:"kernelMountOptions,omitempty"`
	// FuseMountOptions defines the mount options for ceph fuse mounter.
	// +optional
	FuseMountOptions string `json:"fuseMountOptions,omitempty"`
}

CSICephFSSpec defines the settings for CephFS CSI driver.

func (*CSICephFSSpec) DeepCopy

func (in *CSICephFSSpec) DeepCopy() *CSICephFSSpec

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

func (*CSICephFSSpec) DeepCopyInto

func (in *CSICephFSSpec) DeepCopyInto(out *CSICephFSSpec)

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

type CSIDriverSpec

type CSIDriverSpec struct {
	// ReadAffinity defines the read affinity settings for CSI driver.
	// +optional
	ReadAffinity ReadAffinitySpec `json:"readAffinity"`
	// CephFS defines CSI Driver settings for CephFS driver.
	// +optional
	CephFS CSICephFSSpec `json:"cephfs,omitempty"`
}

CSIDriverSpec defines CSI Driver settings applied per cluster.

func (*CSIDriverSpec) DeepCopy

func (in *CSIDriverSpec) DeepCopy() *CSIDriverSpec

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

func (*CSIDriverSpec) DeepCopyInto

func (in *CSIDriverSpec) DeepCopyInto(out *CSIDriverSpec)

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

type Capacity

type Capacity struct {
	TotalBytes     uint64 `json:"bytesTotal,omitempty"`
	UsedBytes      uint64 `json:"bytesUsed,omitempty"`
	AvailableBytes uint64 `json:"bytesAvailable,omitempty"`
	LastUpdated    string `json:"lastUpdated,omitempty"`
}

Capacity is the capacity information of a Ceph Cluster

func (*Capacity) DeepCopy

func (in *Capacity) DeepCopy() *Capacity

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

func (*Capacity) DeepCopyInto

func (in *Capacity) DeepCopyInto(out *Capacity)

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

type CephBlockPool

type CephBlockPool struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              NamedBlockPoolSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	Status *CephBlockPoolStatus `json:"status,omitempty"`
}

CephBlockPool represents a Ceph Storage Pool +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Type",type=string,JSONPath=`.status.info.type` +kubebuilder:printcolumn:name="FailureDomain",type=string,JSONPath=`.status.info.failureDomain` +kubebuilder:printcolumn:name="Replication",type=integer,JSONPath=`.spec.replicated.size`,priority=1 +kubebuilder:printcolumn:name="EC-CodingChunks",type=integer,JSONPath=`.spec.erasureCoded.codingChunks`,priority=1 +kubebuilder:printcolumn:name="EC-DataChunks",type=integer,JSONPath=`.spec.erasureCoded.dataChunks`,priority=1 +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephBlockPool) DeepCopy

func (in *CephBlockPool) DeepCopy() *CephBlockPool

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

func (*CephBlockPool) DeepCopyInto

func (in *CephBlockPool) DeepCopyInto(out *CephBlockPool)

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

func (*CephBlockPool) DeepCopyObject

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

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

func (*CephBlockPool) GetStatusConditions

func (p *CephBlockPool) GetStatusConditions() *[]Condition

func (*CephBlockPool) ToNamedPoolSpec

func (p *CephBlockPool) ToNamedPoolSpec() NamedPoolSpec

type CephBlockPoolList

type CephBlockPoolList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephBlockPool `json:"items"`
}

CephBlockPoolList is a list of Ceph Storage Pools +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CephBlockPoolList) DeepCopy

func (in *CephBlockPoolList) DeepCopy() *CephBlockPoolList

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

func (*CephBlockPoolList) DeepCopyInto

func (in *CephBlockPoolList) DeepCopyInto(out *CephBlockPoolList)

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

func (*CephBlockPoolList) DeepCopyObject

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

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

type CephBlockPoolRadosNamespace

type CephBlockPoolRadosNamespace struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Spec represents the specification of a Ceph BlockPool Rados Namespace
	Spec CephBlockPoolRadosNamespaceSpec `json:"spec"`
	// Status represents the status of a CephBlockPool Rados Namespace
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *CephBlockPoolRadosNamespaceStatus `json:"status,omitempty"`
}

+genclient +genclient:noStatus +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object CephBlockPoolRadosNamespace represents a Ceph BlockPool Rados Namespace +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="BlockPool",type=string,JSONPath=`.spec.blockPoolName`,description="Name of the Ceph BlockPool" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephBlockPoolRadosNamespace) DeepCopy

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

func (*CephBlockPoolRadosNamespace) DeepCopyInto

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

func (*CephBlockPoolRadosNamespace) DeepCopyObject

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

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

type CephBlockPoolRadosNamespaceList

type CephBlockPoolRadosNamespaceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephBlockPoolRadosNamespace `json:"items"`
}

CephBlockPoolRadosNamespaceList represents a list of Ceph BlockPool Rados Namespace

func (*CephBlockPoolRadosNamespaceList) DeepCopy

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

func (*CephBlockPoolRadosNamespaceList) DeepCopyInto

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

func (*CephBlockPoolRadosNamespaceList) DeepCopyObject

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

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

type CephBlockPoolRadosNamespaceSpec

type CephBlockPoolRadosNamespaceSpec struct {
	// The name of the CephBlockPoolRadosNamespaceSpec namespace. If not set, the default is the name of the CR.
	// +kubebuilder:validation:XValidation:message="name is immutable",rule="self == oldSelf"
	// +optional
	Name string `json:"name,omitempty"`
	// BlockPoolName is the name of Ceph BlockPool. Typically it's the name of
	// the CephBlockPool CR.
	// +kubebuilder:validation:XValidation:message="blockPoolName is immutable",rule="self == oldSelf"
	BlockPoolName string `json:"blockPoolName"`
}

CephBlockPoolRadosNamespaceSpec represents the specification of a CephBlockPool Rados Namespace

func (*CephBlockPoolRadosNamespaceSpec) DeepCopy

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

func (*CephBlockPoolRadosNamespaceSpec) DeepCopyInto

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

type CephBlockPoolRadosNamespaceStatus

type CephBlockPoolRadosNamespaceStatus struct {
	// +optional
	Phase ConditionType `json:"phase,omitempty"`
	// +optional
	// +nullable
	Info map[string]string `json:"info,omitempty"`
}

CephBlockPoolRadosNamespaceStatus represents the Status of Ceph BlockPool Rados Namespace

func (*CephBlockPoolRadosNamespaceStatus) DeepCopy

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

func (*CephBlockPoolRadosNamespaceStatus) DeepCopyInto

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

type CephBlockPoolStatus

type CephBlockPoolStatus struct {
	// +optional
	Phase ConditionType `json:"phase,omitempty"`
	// +optional
	MirroringStatus *MirroringStatusSpec `json:"mirroringStatus,omitempty"`
	// +optional
	MirroringInfo *MirroringInfoSpec `json:"mirroringInfo,omitempty"`
	// +optional
	SnapshotScheduleStatus *SnapshotScheduleStatusSpec `json:"snapshotScheduleStatus,omitempty"`
	// +optional
	// +nullable
	Info map[string]string `json:"info,omitempty"`
	// ObservedGeneration is the latest generation observed by the controller.
	// +optional
	ObservedGeneration int64       `json:"observedGeneration,omitempty"`
	Conditions         []Condition `json:"conditions,omitempty"`
}

CephBlockPoolStatus represents the mirroring status of Ceph Storage Pool

func (*CephBlockPoolStatus) DeepCopy

func (in *CephBlockPoolStatus) DeepCopy() *CephBlockPoolStatus

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

func (*CephBlockPoolStatus) DeepCopyInto

func (in *CephBlockPoolStatus) DeepCopyInto(out *CephBlockPoolStatus)

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

type CephBucketNotification

type CephBucketNotification struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              BucketNotificationSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *Status `json:"status,omitempty"`
}

CephBucketNotification represents a Bucket Notifications +kubebuilder:subresource:status

func (*CephBucketNotification) DeepCopy

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

func (*CephBucketNotification) DeepCopyInto

func (in *CephBucketNotification) DeepCopyInto(out *CephBucketNotification)

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

func (*CephBucketNotification) DeepCopyObject

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

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

type CephBucketNotificationList

type CephBucketNotificationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephBucketNotification `json:"items"`
}

CephBucketNotificationList represents a list Ceph Object Store Bucket Notification Topics +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CephBucketNotificationList) DeepCopy

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

func (*CephBucketNotificationList) DeepCopyInto

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

func (*CephBucketNotificationList) DeepCopyObject

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

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

type CephBucketTopic

type CephBucketTopic struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              BucketTopicSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *BucketTopicStatus `json:"status,omitempty"`
}

CephBucketTopic represents a Ceph Object Topic for Bucket Notifications +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephBucketTopic) DeepCopy

func (in *CephBucketTopic) DeepCopy() *CephBucketTopic

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

func (*CephBucketTopic) DeepCopyInto

func (in *CephBucketTopic) DeepCopyInto(out *CephBucketTopic)

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

func (*CephBucketTopic) DeepCopyObject

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

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

func (*CephBucketTopic) ValidateTopicSpec

func (t *CephBucketTopic) ValidateTopicSpec() error

ValidateTopicSpec validate the bucket notification topic arguments

type CephBucketTopicList

type CephBucketTopicList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephBucketTopic `json:"items"`
}

CephBucketTopicList represents a list Ceph Object Store Bucket Notification Topics +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CephBucketTopicList) DeepCopy

func (in *CephBucketTopicList) DeepCopy() *CephBucketTopicList

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

func (*CephBucketTopicList) DeepCopyInto

func (in *CephBucketTopicList) DeepCopyInto(out *CephBucketTopicList)

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

func (*CephBucketTopicList) DeepCopyObject

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

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

type CephCOSIDriver

type CephCOSIDriver struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Spec represents the specification of a Ceph COSI Driver
	Spec CephCOSIDriverSpec `json:"spec"`
}

CephCOSIDriver represents the CRD for the Ceph COSI Driver Deployment +kubebuilder:resource:shortName=cephcosi

func (*CephCOSIDriver) DeepCopy

func (in *CephCOSIDriver) DeepCopy() *CephCOSIDriver

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

func (*CephCOSIDriver) DeepCopyInto

func (in *CephCOSIDriver) DeepCopyInto(out *CephCOSIDriver)

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

func (*CephCOSIDriver) DeepCopyObject

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

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

type CephCOSIDriverList

type CephCOSIDriverList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephCOSIDriver `json:"items"`
}

CephCOSIDriverList represents a list of Ceph COSI Driver +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CephCOSIDriverList) DeepCopy

func (in *CephCOSIDriverList) DeepCopy() *CephCOSIDriverList

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

func (*CephCOSIDriverList) DeepCopyInto

func (in *CephCOSIDriverList) DeepCopyInto(out *CephCOSIDriverList)

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

func (*CephCOSIDriverList) DeepCopyObject

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

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

type CephCOSIDriverSpec

type CephCOSIDriverSpec struct {
	// Image is the container image to run the Ceph COSI driver
	// +optional
	Image string `json:"image,omitempty"`
	// ObjectProvisionerImage is the container image to run the COSI driver sidecar
	// +optional
	ObjectProvisionerImage string `json:"objectProvisionerImage,omitempty"`
	// DeploymentStrategy is the strategy to use to deploy the COSI driver.
	// +optional
	// +kubebuilder:validation:Enum=Never;Auto;Always
	DeploymentStrategy COSIDeploymentStrategy `json:"deploymentStrategy,omitempty"`
	// Placement is the placement strategy to use for the COSI driver
	// +optional
	Placement Placement `json:"placement,omitempty"`
	// Resources is the resource requirements for the COSI driver
	// +optional
	Resources v1.ResourceRequirements `json:"resources,omitempty"`
}

CephCOSIDriverSpec represents the specification of a Ceph COSI Driver

func (*CephCOSIDriverSpec) DeepCopy

func (in *CephCOSIDriverSpec) DeepCopy() *CephCOSIDriverSpec

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

func (*CephCOSIDriverSpec) DeepCopyInto

func (in *CephCOSIDriverSpec) DeepCopyInto(out *CephCOSIDriverSpec)

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

type CephClient

type CephClient struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Spec represents the specification of a Ceph Client
	Spec ClientSpec `json:"spec"`
	// Status represents the status of a Ceph Client
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *CephClientStatus `json:"status,omitempty"`
}

CephClient represents a Ceph Client +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephClient) DeepCopy

func (in *CephClient) DeepCopy() *CephClient

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

func (*CephClient) DeepCopyInto

func (in *CephClient) DeepCopyInto(out *CephClient)

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

func (*CephClient) DeepCopyObject

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

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

type CephClientList

type CephClientList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephClient `json:"items"`
}

CephClientList represents a list of Ceph Clients

func (*CephClientList) DeepCopy

func (in *CephClientList) DeepCopy() *CephClientList

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

func (*CephClientList) DeepCopyInto

func (in *CephClientList) DeepCopyInto(out *CephClientList)

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

func (*CephClientList) DeepCopyObject

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

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

type CephClientStatus

type CephClientStatus struct {
	// +optional
	Phase ConditionType `json:"phase,omitempty"`
	// +optional
	// +nullable
	Info map[string]string `json:"info,omitempty"`
	// ObservedGeneration is the latest generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

CephClientStatus represents the Status of Ceph Client

func (*CephClientStatus) DeepCopy

func (in *CephClientStatus) DeepCopy() *CephClientStatus

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

func (*CephClientStatus) DeepCopyInto

func (in *CephClientStatus) DeepCopyInto(out *CephClientStatus)

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

type CephCluster

type CephCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              ClusterSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	// +nullable
	Status ClusterStatus `json:"status,omitempty"`
}

CephCluster is a Ceph storage cluster +kubebuilder:printcolumn:name="DataDirHostPath",type=string,JSONPath=`.spec.dataDirHostPath`,description="Directory used on the K8s nodes" +kubebuilder:printcolumn:name="MonCount",type=string,JSONPath=`.spec.mon.count`,description="Number of MONs" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Message",type=string,JSONPath=`.status.message`,description="Message" +kubebuilder:printcolumn:name="Health",type=string,JSONPath=`.status.ceph.health`,description="Ceph Health" +kubebuilder:printcolumn:name="External",type=boolean,JSONPath=`.spec.external.enable` +kubebuilder:printcolumn:name="FSID",type=string,JSONPath=`.status.ceph.fsid`,description="Ceph FSID" +kubebuilder:subresource:status

func (*CephCluster) DeepCopy

func (in *CephCluster) DeepCopy() *CephCluster

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

func (*CephCluster) DeepCopyInto

func (in *CephCluster) DeepCopyInto(out *CephCluster)

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

func (*CephCluster) DeepCopyObject

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

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

func (*CephCluster) GetStatusConditions

func (c *CephCluster) GetStatusConditions() *[]Condition

type CephClusterHealthCheckSpec

type CephClusterHealthCheckSpec struct {
	// DaemonHealth is the health check for a given daemon
	// +optional
	// +nullable
	DaemonHealth DaemonHealthSpec `json:"daemonHealth,omitempty"`
	// LivenessProbe allows changing the livenessProbe configuration for a given daemon
	// +optional
	LivenessProbe map[KeyType]*ProbeSpec `json:"livenessProbe,omitempty"`
	// StartupProbe allows changing the startupProbe configuration for a given daemon
	// +optional
	StartupProbe map[KeyType]*ProbeSpec `json:"startupProbe,omitempty"`
}

CephClusterHealthCheckSpec represent the healthcheck for Ceph daemons

func (*CephClusterHealthCheckSpec) DeepCopy

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

func (*CephClusterHealthCheckSpec) DeepCopyInto

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

type CephClusterList

type CephClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephCluster `json:"items"`
}

CephClusterList is a list of CephCluster

func (*CephClusterList) DeepCopy

func (in *CephClusterList) DeepCopy() *CephClusterList

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

func (*CephClusterList) DeepCopyInto

func (in *CephClusterList) DeepCopyInto(out *CephClusterList)

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

func (*CephClusterList) DeepCopyObject

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

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

type CephDaemonsVersions

type CephDaemonsVersions struct {
	// Mon shows Mon Ceph version
	// +optional
	Mon map[string]int `json:"mon,omitempty"`
	// Mgr shows Mgr Ceph version
	// +optional
	Mgr map[string]int `json:"mgr,omitempty"`
	// Osd shows Osd Ceph version
	// +optional
	Osd map[string]int `json:"osd,omitempty"`
	// Rgw shows Rgw Ceph version
	// +optional
	Rgw map[string]int `json:"rgw,omitempty"`
	// Mds shows Mds Ceph version
	// +optional
	Mds map[string]int `json:"mds,omitempty"`
	// RbdMirror shows RbdMirror Ceph version
	// +optional
	RbdMirror map[string]int `json:"rbd-mirror,omitempty"`
	// CephFSMirror shows CephFSMirror Ceph version
	// +optional
	CephFSMirror map[string]int `json:"cephfs-mirror,omitempty"`
	// Overall shows overall Ceph version
	// +optional
	Overall map[string]int `json:"overall,omitempty"`
}

CephDaemonsVersions show the current ceph version for different ceph daemons

func (*CephDaemonsVersions) DeepCopy

func (in *CephDaemonsVersions) DeepCopy() *CephDaemonsVersions

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

func (*CephDaemonsVersions) DeepCopyInto

func (in *CephDaemonsVersions) DeepCopyInto(out *CephDaemonsVersions)

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

type CephFilesystem

type CephFilesystem struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              FilesystemSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	Status *CephFilesystemStatus `json:"status,omitempty"`
}

CephFilesystem represents a Ceph Filesystem +kubebuilder:printcolumn:name="ActiveMDS",type=string,JSONPath=`.spec.metadataServer.activeCount`,description="Number of desired active MDS daemons" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:subresource:status

func (*CephFilesystem) DeepCopy

func (in *CephFilesystem) DeepCopy() *CephFilesystem

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

func (*CephFilesystem) DeepCopyInto

func (in *CephFilesystem) DeepCopyInto(out *CephFilesystem)

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

func (*CephFilesystem) DeepCopyObject

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

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

func (*CephFilesystem) GetStatusConditions

func (c *CephFilesystem) GetStatusConditions() *[]Condition

type CephFilesystemList

type CephFilesystemList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephFilesystem `json:"items"`
}

CephFilesystemList represents a list of Ceph Filesystems

func (*CephFilesystemList) DeepCopy

func (in *CephFilesystemList) DeepCopy() *CephFilesystemList

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

func (*CephFilesystemList) DeepCopyInto

func (in *CephFilesystemList) DeepCopyInto(out *CephFilesystemList)

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

func (*CephFilesystemList) DeepCopyObject

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

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

type CephFilesystemMirror

type CephFilesystemMirror struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              FilesystemMirroringSpec `json:"spec"`
	// +optional
	Status *Status `json:"status,omitempty"`
}

CephFilesystemMirror is the Ceph Filesystem Mirror object definition +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephFilesystemMirror) DeepCopy

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

func (*CephFilesystemMirror) DeepCopyInto

func (in *CephFilesystemMirror) DeepCopyInto(out *CephFilesystemMirror)

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

func (*CephFilesystemMirror) DeepCopyObject

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

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

type CephFilesystemMirrorList

type CephFilesystemMirrorList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephFilesystemMirror `json:"items"`
}

CephFilesystemMirrorList is a list of CephFilesystemMirror

func (*CephFilesystemMirrorList) DeepCopy

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

func (*CephFilesystemMirrorList) DeepCopyInto

func (in *CephFilesystemMirrorList) DeepCopyInto(out *CephFilesystemMirrorList)

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

func (*CephFilesystemMirrorList) DeepCopyObject

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

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

type CephFilesystemStatus

type CephFilesystemStatus struct {
	// +optional
	Phase ConditionType `json:"phase,omitempty"`
	// +optional
	SnapshotScheduleStatus *FilesystemSnapshotScheduleStatusSpec `json:"snapshotScheduleStatus,omitempty"`
	// Use only info and put mirroringStatus in it?
	// +optional
	// +nullable
	Info map[string]string `json:"info,omitempty"`
	// MirroringStatus is the filesystem mirroring status
	// +optional
	MirroringStatus *FilesystemMirroringInfoSpec `json:"mirroringStatus,omitempty"`
	Conditions      []Condition                  `json:"conditions,omitempty"`
	// ObservedGeneration is the latest generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

CephFilesystemStatus represents the status of a Ceph Filesystem

func (*CephFilesystemStatus) DeepCopy

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

func (*CephFilesystemStatus) DeepCopyInto

func (in *CephFilesystemStatus) DeepCopyInto(out *CephFilesystemStatus)

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

type CephFilesystemSubVolumeGroup

type CephFilesystemSubVolumeGroup struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Spec represents the specification of a Ceph Filesystem SubVolumeGroup
	Spec CephFilesystemSubVolumeGroupSpec `json:"spec"`
	// Status represents the status of a CephFilesystem SubvolumeGroup
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *CephFilesystemSubVolumeGroupStatus `json:"status,omitempty"`
}

CephFilesystemSubVolumeGroup represents a Ceph Filesystem SubVolumeGroup +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Filesystem",type=string,JSONPath=`.spec.filesystemName`,description="Name of the CephFileSystem" +kubebuilder:printcolumn:name="Quota",type=string,JSONPath=`.spec.quota` +kubebuilder:printcolumn:name="Pinning",type=string,JSONPath=`.status.info.pinning`,priority=1 +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephFilesystemSubVolumeGroup) DeepCopy

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

func (*CephFilesystemSubVolumeGroup) DeepCopyInto

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

func (*CephFilesystemSubVolumeGroup) DeepCopyObject

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

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

type CephFilesystemSubVolumeGroupList

type CephFilesystemSubVolumeGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephFilesystemSubVolumeGroup `json:"items"`
}

CephFilesystemSubVolumeGroup represents a list of Ceph Clients

func (*CephFilesystemSubVolumeGroupList) DeepCopy

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

func (*CephFilesystemSubVolumeGroupList) DeepCopyInto

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

func (*CephFilesystemSubVolumeGroupList) DeepCopyObject

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

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

type CephFilesystemSubVolumeGroupSpec

type CephFilesystemSubVolumeGroupSpec struct {
	// The name of the subvolume group. If not set, the default is the name of the subvolumeGroup CR.
	// +kubebuilder:validation:XValidation:message="name is immutable",rule="self == oldSelf"
	// +optional
	Name string `json:"name,omitempty"`
	// FilesystemName is the name of Ceph Filesystem SubVolumeGroup volume name. Typically it's the name of
	// the CephFilesystem CR. If not coming from the CephFilesystem CR, it can be retrieved from the
	// list of Ceph Filesystem volumes with `ceph fs volume ls`. To learn more about Ceph Filesystem
	// abstractions see https://docs.ceph.com/en/latest/cephfs/fs-volumes/#fs-volumes-and-subvolumes
	// +kubebuilder:validation:XValidation:message="filesystemName is immutable",rule="self == oldSelf"
	FilesystemName string `json:"filesystemName"`
	// Pinning configuration of CephFilesystemSubVolumeGroup,
	// reference https://docs.ceph.com/en/latest/cephfs/fs-volumes/#pinning-subvolumes-and-subvolume-groups
	// only one out of (export, distributed, random) can be set at a time
	// +optional
	Pinning CephFilesystemSubVolumeGroupSpecPinning `json:"pinning,omitempty"`
	// Quota size of the Ceph Filesystem subvolume group.
	// +optional
	Quota *resource.Quantity `json:"quota,omitempty"`
	// The data pool name for the Ceph Filesystem subvolume group layout, if the default CephFS pool is not desired.
	// +optional
	DataPoolName string `json:"dataPoolName"`
}

CephFilesystemSubVolumeGroupSpec represents the specification of a Ceph Filesystem SubVolumeGroup

func (*CephFilesystemSubVolumeGroupSpec) DeepCopy

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

func (*CephFilesystemSubVolumeGroupSpec) DeepCopyInto

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

type CephFilesystemSubVolumeGroupSpecPinning

type CephFilesystemSubVolumeGroupSpecPinning struct {
	// +kubebuilder:validation:Minimum=-1
	// +kubebuilder:validation:Maximum=256
	// +optional
	// +nullable
	Export *int `json:"export,omitempty"`
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=1
	// +optional
	// +nullable
	Distributed *int `json:"distributed,omitempty"`
	// +kubebuilder:validation:Minimum=0.0
	// +kubebuilder:validation:Maximum=1.0
	// +optional
	// +nullable
	Random *float64 `json:"random,,omitempty"`
}

CephFilesystemSubVolumeGroupSpecPinning represents the pinning configuration of SubVolumeGroup +kubebuilder:validation:XValidation:message="only one pinning type should be set",rule="(has(self.export) && !has(self.distributed) && !has(self.random)) || (!has(self.export) && has(self.distributed) && !has(self.random)) || (!has(self.export) && !has(self.distributed) && has(self.random)) || (!has(self.export) && !has(self.distributed) && !has(self.random))"

func (*CephFilesystemSubVolumeGroupSpecPinning) DeepCopy

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

func (*CephFilesystemSubVolumeGroupSpecPinning) DeepCopyInto

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

type CephFilesystemSubVolumeGroupStatus

type CephFilesystemSubVolumeGroupStatus struct {
	// +optional
	Phase ConditionType `json:"phase,omitempty"`
	// +optional
	// +nullable
	Info map[string]string `json:"info,omitempty"`
	// ObservedGeneration is the latest generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

CephFilesystemSubVolumeGroupStatus represents the Status of Ceph Filesystem SubVolumeGroup

func (*CephFilesystemSubVolumeGroupStatus) DeepCopy

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

func (*CephFilesystemSubVolumeGroupStatus) DeepCopyInto

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

type CephHealthMessage

type CephHealthMessage struct {
	Severity string `json:"severity"`
	Message  string `json:"message"`
}

CephHealthMessage represents the health message of a Ceph Cluster

func (*CephHealthMessage) DeepCopy

func (in *CephHealthMessage) DeepCopy() *CephHealthMessage

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

func (*CephHealthMessage) DeepCopyInto

func (in *CephHealthMessage) DeepCopyInto(out *CephHealthMessage)

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

type CephNFS

type CephNFS struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              NFSGaneshaSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *Status `json:"status,omitempty"`
}

CephNFS represents a Ceph NFS +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:subresource:status

func (*CephNFS) DeepCopy

func (in *CephNFS) DeepCopy() *CephNFS

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

func (*CephNFS) DeepCopyInto

func (in *CephNFS) DeepCopyInto(out *CephNFS)

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

func (*CephNFS) DeepCopyObject

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

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

func (*CephNFS) IsHostNetwork

func (n *CephNFS) IsHostNetwork(c *ClusterSpec) bool

type CephNFSList

type CephNFSList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephNFS `json:"items"`
}

CephNFSList represents a list Ceph NFSes +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CephNFSList) DeepCopy

func (in *CephNFSList) DeepCopy() *CephNFSList

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

func (*CephNFSList) DeepCopyInto

func (in *CephNFSList) DeepCopyInto(out *CephNFSList)

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

func (*CephNFSList) DeepCopyObject

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

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

type CephNetworkType

type CephNetworkType string

CephNetworkType should be "public" or "cluster". Allow any string so that over-specified legacy clusters do not break on CRD update.

type CephObjectRealm

type CephObjectRealm struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// +nullable
	// +optional
	Spec ObjectRealmSpec `json:"spec,omitempty"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *Status `json:"status,omitempty"`
}

CephObjectRealm represents a Ceph Object Store Gateway Realm +kubebuilder:subresource:status

func (*CephObjectRealm) DeepCopy

func (in *CephObjectRealm) DeepCopy() *CephObjectRealm

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

func (*CephObjectRealm) DeepCopyInto

func (in *CephObjectRealm) DeepCopyInto(out *CephObjectRealm)

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

func (*CephObjectRealm) DeepCopyObject

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

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

type CephObjectRealmList

type CephObjectRealmList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephObjectRealm `json:"items"`
}

CephObjectRealmList represents a list Ceph Object Store Gateway Realms +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CephObjectRealmList) DeepCopy

func (in *CephObjectRealmList) DeepCopy() *CephObjectRealmList

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

func (*CephObjectRealmList) DeepCopyInto

func (in *CephObjectRealmList) DeepCopyInto(out *CephObjectRealmList)

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

func (*CephObjectRealmList) DeepCopyObject

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

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

type CephObjectStore

type CephObjectStore struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              ObjectStoreSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	Status *ObjectStoreStatus `json:"status,omitempty"`
}

CephObjectStore represents a Ceph Object Store Gateway +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Endpoint",type=string,JSONPath=`.status.info.endpoint` +kubebuilder:printcolumn:name="SecureEndpoint",type=string,JSONPath=`.status.info.secureEndpoint` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephObjectStore) DeepCopy

func (in *CephObjectStore) DeepCopy() *CephObjectStore

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

func (*CephObjectStore) DeepCopyInto

func (in *CephObjectStore) DeepCopyInto(out *CephObjectStore)

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

func (*CephObjectStore) DeepCopyObject

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

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

func (*CephObjectStore) GetStatusConditions

func (c *CephObjectStore) GetStatusConditions() *[]Condition

type CephObjectStoreList

type CephObjectStoreList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephObjectStore `json:"items"`
}

CephObjectStoreList represents a Ceph Object Store Gateways

func (*CephObjectStoreList) DeepCopy

func (in *CephObjectStoreList) DeepCopy() *CephObjectStoreList

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

func (*CephObjectStoreList) DeepCopyInto

func (in *CephObjectStoreList) DeepCopyInto(out *CephObjectStoreList)

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

func (*CephObjectStoreList) DeepCopyObject

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

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

type CephObjectStoreUser

type CephObjectStoreUser struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              ObjectStoreUserSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *ObjectStoreUserStatus `json:"status,omitempty"`
}

CephObjectStoreUser represents a Ceph Object Store Gateway User +kubebuilder:resource:shortName=rcou;objectuser +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephObjectStoreUser) DeepCopy

func (in *CephObjectStoreUser) DeepCopy() *CephObjectStoreUser

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

func (*CephObjectStoreUser) DeepCopyInto

func (in *CephObjectStoreUser) DeepCopyInto(out *CephObjectStoreUser)

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

func (*CephObjectStoreUser) DeepCopyObject

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

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

type CephObjectStoreUserList

type CephObjectStoreUserList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephObjectStoreUser `json:"items"`
}

CephObjectStoreUserList represents a list Ceph Object Store Gateway Users

func (*CephObjectStoreUserList) DeepCopy

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

func (*CephObjectStoreUserList) DeepCopyInto

func (in *CephObjectStoreUserList) DeepCopyInto(out *CephObjectStoreUserList)

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

func (*CephObjectStoreUserList) DeepCopyObject

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

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

type CephObjectZone

type CephObjectZone struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              ObjectZoneSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *Status `json:"status,omitempty"`
}

CephObjectZone represents a Ceph Object Store Gateway Zone +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephObjectZone) DeepCopy

func (in *CephObjectZone) DeepCopy() *CephObjectZone

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

func (*CephObjectZone) DeepCopyInto

func (in *CephObjectZone) DeepCopyInto(out *CephObjectZone)

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

func (*CephObjectZone) DeepCopyObject

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

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

func (*CephObjectZone) GetStatusConditions

func (z *CephObjectZone) GetStatusConditions() *[]Condition

type CephObjectZoneGroup

type CephObjectZoneGroup struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              ObjectZoneGroupSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *Status `json:"status,omitempty"`
}

CephObjectZoneGroup represents a Ceph Object Store Gateway Zone Group +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephObjectZoneGroup) DeepCopy

func (in *CephObjectZoneGroup) DeepCopy() *CephObjectZoneGroup

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

func (*CephObjectZoneGroup) DeepCopyInto

func (in *CephObjectZoneGroup) DeepCopyInto(out *CephObjectZoneGroup)

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

func (*CephObjectZoneGroup) DeepCopyObject

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

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

type CephObjectZoneGroupList

type CephObjectZoneGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephObjectZoneGroup `json:"items"`
}

CephObjectZoneGroupList represents a list Ceph Object Store Gateway Zone Groups +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CephObjectZoneGroupList) DeepCopy

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

func (*CephObjectZoneGroupList) DeepCopyInto

func (in *CephObjectZoneGroupList) DeepCopyInto(out *CephObjectZoneGroupList)

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

func (*CephObjectZoneGroupList) DeepCopyObject

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

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

type CephObjectZoneList

type CephObjectZoneList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephObjectZone `json:"items"`
}

CephObjectZoneList represents a list Ceph Object Store Gateway Zones +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CephObjectZoneList) DeepCopy

func (in *CephObjectZoneList) DeepCopy() *CephObjectZoneList

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

func (*CephObjectZoneList) DeepCopyInto

func (in *CephObjectZoneList) DeepCopyInto(out *CephObjectZoneList)

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

func (*CephObjectZoneList) DeepCopyObject

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

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

type CephRBDMirror

type CephRBDMirror struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	Spec              RBDMirroringSpec `json:"spec"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	Status *Status `json:"status,omitempty"`
}

CephRBDMirror represents a Ceph RBD Mirror +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +kubebuilder:subresource:status

func (*CephRBDMirror) DeepCopy

func (in *CephRBDMirror) DeepCopy() *CephRBDMirror

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

func (*CephRBDMirror) DeepCopyInto

func (in *CephRBDMirror) DeepCopyInto(out *CephRBDMirror)

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

func (*CephRBDMirror) DeepCopyObject

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

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

type CephRBDMirrorList

type CephRBDMirrorList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []CephRBDMirror `json:"items"`
}

CephRBDMirrorList represents a list Ceph RBD Mirrors +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CephRBDMirrorList) DeepCopy

func (in *CephRBDMirrorList) DeepCopy() *CephRBDMirrorList

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

func (*CephRBDMirrorList) DeepCopyInto

func (in *CephRBDMirrorList) DeepCopyInto(out *CephRBDMirrorList)

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

func (*CephRBDMirrorList) DeepCopyObject

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

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

type CephStatus

type CephStatus struct {
	Health         string                       `json:"health,omitempty"`
	Details        map[string]CephHealthMessage `json:"details,omitempty"`
	LastChecked    string                       `json:"lastChecked,omitempty"`
	LastChanged    string                       `json:"lastChanged,omitempty"`
	PreviousHealth string                       `json:"previousHealth,omitempty"`
	Capacity       Capacity                     `json:"capacity,omitempty"`
	// +optional
	Versions *CephDaemonsVersions `json:"versions,omitempty"`
	FSID     string               `json:"fsid,omitempty"`
}

CephStatus is the details health of a Ceph Cluster

func (*CephStatus) DeepCopy

func (in *CephStatus) DeepCopy() *CephStatus

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

func (*CephStatus) DeepCopyInto

func (in *CephStatus) DeepCopyInto(out *CephStatus)

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

type CephStorage

type CephStorage struct {
	DeviceClasses []DeviceClasses `json:"deviceClasses,omitempty"`
	OSD           OSDStatus       `json:"osd,omitempty"`
}

CephStorage represents flavors of Ceph Cluster Storage

func (*CephStorage) DeepCopy

func (in *CephStorage) DeepCopy() *CephStorage

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

func (*CephStorage) DeepCopyInto

func (in *CephStorage) DeepCopyInto(out *CephStorage)

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

type CephVersionSpec

type CephVersionSpec struct {
	// Image is the container image used to launch the ceph daemons, such as quay.io/ceph/ceph:<tag>
	// The full list of images can be found at https://quay.io/repository/ceph/ceph?tab=tags
	// +optional
	Image string `json:"image,omitempty"`

	// Whether to allow unsupported versions (do not set to true in production)
	// +optional
	AllowUnsupported bool `json:"allowUnsupported,omitempty"`

	// ImagePullPolicy describes a policy for if/when to pull a container image
	// One of Always, Never, IfNotPresent.
	// +kubebuilder:validation:Enum=IfNotPresent;Always;Never;""
	// +optional
	ImagePullPolicy v1.PullPolicy `json:"imagePullPolicy,omitempty"`
}

CephVersionSpec represents the settings for the Ceph version that Rook is orchestrating.

func (*CephVersionSpec) DeepCopy

func (in *CephVersionSpec) DeepCopy() *CephVersionSpec

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

func (*CephVersionSpec) DeepCopyInto

func (in *CephVersionSpec) DeepCopyInto(out *CephVersionSpec)

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

type CleanupConfirmationProperty

type CleanupConfirmationProperty string

CleanupConfirmationProperty represents the cleanup confirmation +kubebuilder:validation:Pattern=`^$|^yes-really-destroy-data$`

type CleanupPolicySpec

type CleanupPolicySpec struct {
	// Confirmation represents the cleanup confirmation
	// +optional
	// +nullable
	Confirmation CleanupConfirmationProperty `json:"confirmation,omitempty"`
	// SanitizeDisks represents way we sanitize disks
	// +optional
	// +nullable
	SanitizeDisks SanitizeDisksSpec `json:"sanitizeDisks,omitempty"`
	// AllowUninstallWithVolumes defines whether we can proceed with the uninstall if they are RBD images still present
	// +optional
	AllowUninstallWithVolumes bool `json:"allowUninstallWithVolumes,omitempty"`
}

CleanupPolicySpec represents a Ceph Cluster cleanup policy

func (*CleanupPolicySpec) DeepCopy

func (in *CleanupPolicySpec) DeepCopy() *CleanupPolicySpec

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

func (*CleanupPolicySpec) DeepCopyInto

func (in *CleanupPolicySpec) DeepCopyInto(out *CleanupPolicySpec)

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

func (*CleanupPolicySpec) HasDataDirCleanPolicy

func (c *CleanupPolicySpec) HasDataDirCleanPolicy() bool

HasDataDirCleanPolicy returns whether the cluster has a data dir policy

type ClientSpec

type ClientSpec struct {
	// +optional
	Name string `json:"name,omitempty"`
	// +kubebuilder:pruning:PreserveUnknownFields
	Caps map[string]string `json:"caps"`
}

ClientSpec represents the specification of a Ceph Client

func (*ClientSpec) DeepCopy

func (in *ClientSpec) DeepCopy() *ClientSpec

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

func (*ClientSpec) DeepCopyInto

func (in *ClientSpec) DeepCopyInto(out *ClientSpec)

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

type ClusterSpec

type ClusterSpec struct {
	// The version information that instructs Rook to orchestrate a particular version of Ceph.
	// +optional
	// +nullable
	CephVersion CephVersionSpec `json:"cephVersion,omitempty"`

	// A spec for available storage in the cluster and how it should be used
	// +optional
	// +nullable
	Storage StorageScopeSpec `json:"storage,omitempty"`

	// The annotations-related configuration to add/set on each Pod related object.
	// +nullable
	// +optional
	Annotations AnnotationsSpec `json:"annotations,omitempty"`

	// The labels-related configuration to add/set on each Pod related object.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Labels LabelsSpec `json:"labels,omitempty"`

	// The placement-related configuration to pass to kubernetes (affinity, node selector, tolerations).
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Placement PlacementSpec `json:"placement,omitempty"`

	// Network related configuration
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Network NetworkSpec `json:"network,omitempty"`

	// Resources set resource requests and limits
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Resources ResourceSpec `json:"resources,omitempty"`

	// PriorityClassNames sets priority classes on components
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	PriorityClassNames PriorityClassNamesSpec `json:"priorityClassNames,omitempty"`

	// The path on the host where config and data can be persisted
	// +kubebuilder:validation:Pattern=`^/(\S+)`
	// +kubebuilder:validation:XValidation:message="DataDirHostPath is immutable",rule="self == oldSelf"
	// +optional
	DataDirHostPath string `json:"dataDirHostPath,omitempty"`

	// SkipUpgradeChecks defines if an upgrade should be forced even if one of the check fails
	// +optional
	SkipUpgradeChecks bool `json:"skipUpgradeChecks,omitempty"`

	// ContinueUpgradeAfterChecksEvenIfNotHealthy defines if an upgrade should continue even if PGs are not clean
	// +optional
	ContinueUpgradeAfterChecksEvenIfNotHealthy bool `json:"continueUpgradeAfterChecksEvenIfNotHealthy,omitempty"`

	// WaitTimeoutForHealthyOSDInMinutes defines the time the operator would wait before an OSD can be stopped for upgrade or restart.
	// If the timeout exceeds and OSD is not ok to stop, then the operator would skip upgrade for the current OSD and proceed with the next one
	// if `continueUpgradeAfterChecksEvenIfNotHealthy` is `false`. If `continueUpgradeAfterChecksEvenIfNotHealthy` is `true`, then operator would
	// continue with the upgrade of an OSD even if its not ok to stop after the timeout. This timeout won't be applied if `skipUpgradeChecks` is `true`.
	// The default wait timeout is 10 minutes.
	// +optional
	WaitTimeoutForHealthyOSDInMinutes time.Duration `json:"waitTimeoutForHealthyOSDInMinutes,omitempty"`

	// UpgradeOSDRequiresHealthyPGs defines if OSD upgrade requires PGs are clean. If set to `true` OSD upgrade process won't start until PGs are healthy.
	// This configuration will be ignored if `skipUpgradeChecks` is `true`.
	// Default is false.
	// +optional
	UpgradeOSDRequiresHealthyPGs bool `json:"upgradeOSDRequiresHealthyPGs,omitempty"`

	// A spec for configuring disruption management.
	// +nullable
	// +optional
	DisruptionManagement DisruptionManagementSpec `json:"disruptionManagement,omitempty"`

	// A spec for mon related options
	// +optional
	// +nullable
	Mon MonSpec `json:"mon,omitempty"`

	// A spec for the crash controller
	// +optional
	// +nullable
	CrashCollector CrashCollectorSpec `json:"crashCollector,omitempty"`

	// Dashboard settings
	// +optional
	// +nullable
	Dashboard DashboardSpec `json:"dashboard,omitempty"`

	// Prometheus based Monitoring settings
	// +optional
	// +nullable
	Monitoring MonitoringSpec `json:"monitoring,omitempty"`

	// Whether the Ceph Cluster is running external to this Kubernetes cluster
	// mon, mgr, osd, mds, and discover daemons will not be created for external clusters.
	// +optional
	// +nullable
	External ExternalSpec `json:"external,omitempty"`

	// A spec for mgr related options
	// +optional
	// +nullable
	Mgr MgrSpec `json:"mgr,omitempty"`

	// Remove the OSD that is out and safe to remove only if this option is true
	// +optional
	RemoveOSDsIfOutAndSafeToRemove bool `json:"removeOSDsIfOutAndSafeToRemove,omitempty"`

	// Indicates user intent when deleting a cluster; blocks orchestration and should not be set if cluster
	// deletion is not imminent.
	// +optional
	// +nullable
	CleanupPolicy CleanupPolicySpec `json:"cleanupPolicy,omitempty"`

	// Internal daemon healthchecks and liveness probe
	// +optional
	// +nullable
	HealthCheck CephClusterHealthCheckSpec `json:"healthCheck,omitempty"`

	// Security represents security settings
	// +optional
	// +nullable
	Security SecuritySpec `json:"security,omitempty"`

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

	// CSI Driver Options applied per cluster.
	// +optional
	CSI CSIDriverSpec `json:"csi,omitempty"`

	// Ceph Config options
	// +optional
	// +nullable
	CephConfig map[string]map[string]string `json:"cephConfig,omitempty"`
}

ClusterSpec represents the specification of Ceph Cluster

func (*ClusterSpec) DeepCopy

func (in *ClusterSpec) DeepCopy() *ClusterSpec

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

func (*ClusterSpec) DeepCopyInto

func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)

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

func (*ClusterSpec) IsStretchCluster

func (c *ClusterSpec) IsStretchCluster() bool

func (*ClusterSpec) RequireMsgr2

func (c *ClusterSpec) RequireMsgr2() bool

RequireMsgr2 checks if the network settings require the msgr2 protocol

func (*ClusterSpec) ZonesRequired

func (c *ClusterSpec) ZonesRequired() bool

type ClusterState

type ClusterState string

ClusterState represents the state of a Ceph Cluster

const (
	// ClusterStateCreating represents the Creating state of a Ceph Cluster
	ClusterStateCreating ClusterState = "Creating"
	// ClusterStateCreated represents the Created state of a Ceph Cluster
	ClusterStateCreated ClusterState = "Created"
	// ClusterStateUpdating represents the Updating state of a Ceph Cluster
	ClusterStateUpdating ClusterState = "Updating"
	// ClusterStateConnecting represents the Connecting state of a Ceph Cluster
	ClusterStateConnecting ClusterState = "Connecting"
	// ClusterStateConnected represents the Connected state of a Ceph Cluster
	ClusterStateConnected ClusterState = "Connected"
	// ClusterStateError represents the Error state of a Ceph Cluster
	ClusterStateError ClusterState = "Error"
)

type ClusterStatus

type ClusterStatus struct {
	State       ClusterState    `json:"state,omitempty"`
	Phase       ConditionType   `json:"phase,omitempty"`
	Message     string          `json:"message,omitempty"`
	Conditions  []Condition     `json:"conditions,omitempty"`
	CephStatus  *CephStatus     `json:"ceph,omitempty"`
	CephStorage *CephStorage    `json:"storage,omitempty"`
	CephVersion *ClusterVersion `json:"version,omitempty"`
	// ObservedGeneration is the latest generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

ClusterStatus represents the status of a Ceph cluster

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

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

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

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

type ClusterVersion

type ClusterVersion struct {
	Image   string `json:"image,omitempty"`
	Version string `json:"version,omitempty"`
}

ClusterVersion represents the version of a Ceph Cluster

func (*ClusterVersion) DeepCopy

func (in *ClusterVersion) DeepCopy() *ClusterVersion

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

func (*ClusterVersion) DeepCopyInto

func (in *ClusterVersion) DeepCopyInto(out *ClusterVersion)

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

type CompressionSpec

type CompressionSpec struct {
	// Whether to compress the data in transit across the wire.
	// The default is not set.
	// +optional
	Enabled bool `json:"enabled,omitempty"`
}

func (*CompressionSpec) DeepCopy

func (in *CompressionSpec) DeepCopy() *CompressionSpec

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

func (*CompressionSpec) DeepCopyInto

func (in *CompressionSpec) DeepCopyInto(out *CompressionSpec)

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

type Condition

type Condition struct {
	Type               ConditionType      `json:"type,omitempty"`
	Status             v1.ConditionStatus `json:"status,omitempty"`
	Reason             ConditionReason    `json:"reason,omitempty"`
	Message            string             `json:"message,omitempty"`
	LastHeartbeatTime  metav1.Time        `json:"lastHeartbeatTime,omitempty"`
	LastTransitionTime metav1.Time        `json:"lastTransitionTime,omitempty"`
}

Condition represents a status condition on any Rook-Ceph Custom Resource.

func FindStatusCondition

func FindStatusCondition(conditions []Condition, conditionType ConditionType) *Condition

FindStatusCondition finds the conditionType in conditions.

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

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

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

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

type ConditionReason

type ConditionReason string

ConditionReason is a reason for a condition

const (
	// ClusterCreatedReason is cluster created reason
	ClusterCreatedReason ConditionReason = "ClusterCreated"
	// ClusterConnectedReason is cluster connected reason
	ClusterConnectedReason ConditionReason = "ClusterConnected"
	// ClusterProgressingReason is cluster progressing reason
	ClusterProgressingReason ConditionReason = "ClusterProgressing"
	// ClusterDeletingReason is cluster deleting reason
	ClusterDeletingReason ConditionReason = "ClusterDeleting"
	// ClusterConnectingReason is cluster connecting reason
	ClusterConnectingReason ConditionReason = "ClusterConnecting"

	// ReconcileSucceeded represents when a resource reconciliation was successful.
	ReconcileSucceeded ConditionReason = "ReconcileSucceeded"
	// ReconcileFailed represents when a resource reconciliation failed.
	ReconcileFailed ConditionReason = "ReconcileFailed"
	// ReconcileStarted represents when a resource reconciliation started.
	ReconcileStarted ConditionReason = "ReconcileStarted"

	// DeletingReason represents when Rook has detected a resource object should be deleted.
	DeletingReason ConditionReason = "Deleting"
	// ObjectHasDependentsReason represents when a resource object has dependents that are blocking
	// deletion.
	ObjectHasDependentsReason ConditionReason = "ObjectHasDependents"
	// ObjectHasNoDependentsReason represents when a resource object has no dependents that are
	// blocking deletion.
	ObjectHasNoDependentsReason ConditionReason = "ObjectHasNoDependents"
)

type ConditionType

type ConditionType string

ConditionType represent a resource's status

const (
	// ConditionConnecting represents Connecting state of an object
	ConditionConnecting ConditionType = "Connecting"
	// ConditionConnected represents Connected state of an object
	ConditionConnected ConditionType = "Connected"
	// ConditionProgressing represents Progressing state of an object
	ConditionProgressing ConditionType = "Progressing"
	// ConditionReady represents Ready state of an object
	ConditionReady ConditionType = "Ready"
	// ConditionFailure represents Failure state of an object
	ConditionFailure ConditionType = "Failure"
	// ConditionDeleting represents Deleting state of an object
	ConditionDeleting ConditionType = "Deleting"

	// ConditionDeletionIsBlocked represents when deletion of the object is blocked.
	ConditionDeletionIsBlocked ConditionType = "DeletionIsBlocked"
)

type ConfigFileVolumeSource

type ConfigFileVolumeSource struct {
	// hostPath represents a pre-existing file or directory on the host
	// machine that is directly exposed to the container. This is generally
	// used for system agents or other privileged things that are allowed
	// to see the host machine. Most containers will NOT need this.
	// More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
	// ---
	// +optional
	HostPath *v1.HostPathVolumeSource `json:"hostPath,omitempty" protobuf:"bytes,1,opt,name=hostPath"`
	// emptyDir represents a temporary directory that shares a pod's lifetime.
	// More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
	// +optional
	EmptyDir *v1.EmptyDirVolumeSource `json:"emptyDir,omitempty" protobuf:"bytes,2,opt,name=emptyDir"`
	// secret represents a secret that should populate this volume.
	// More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
	// +optional
	Secret *v1.SecretVolumeSource `json:"secret,omitempty" protobuf:"bytes,6,opt,name=secret"`
	// persistentVolumeClaimVolumeSource represents a reference to a
	// PersistentVolumeClaim in the same namespace.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
	// +optional
	PersistentVolumeClaim *v1.PersistentVolumeClaimVolumeSource `json:"persistentVolumeClaim,omitempty" protobuf:"bytes,10,opt,name=persistentVolumeClaim"`
	// configMap represents a configMap that should populate this volume
	// +optional
	ConfigMap *v1.ConfigMapVolumeSource `json:"configMap,omitempty" protobuf:"bytes,19,opt,name=configMap"`
	// projected items for all in one resources secrets, configmaps, and downward API
	Projected *v1.ProjectedVolumeSource `json:"projected,omitempty" protobuf:"bytes,26,opt,name=projected"`
}

Represents the source of a volume to mount. Only one of its members may be specified. This is a subset of the full Kubernetes API's VolumeSource that is reduced to what is most likely to be useful for mounting config files/dirs into Rook pods.

func (*ConfigFileVolumeSource) DeepCopy

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

func (*ConfigFileVolumeSource) DeepCopyInto

func (in *ConfigFileVolumeSource) DeepCopyInto(out *ConfigFileVolumeSource)

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

func (*ConfigFileVolumeSource) ToKubernetesVolumeSource

func (src *ConfigFileVolumeSource) ToKubernetesVolumeSource() *corev1.VolumeSource

type ConnectionsSpec

type ConnectionsSpec struct {
	// Encryption settings for the network connections.
	// +nullable
	// +optional
	Encryption *EncryptionSpec `json:"encryption,omitempty"`

	// Compression settings for the network connections.
	// +nullable
	// +optional
	Compression *CompressionSpec `json:"compression,omitempty"`

	// Whether to require msgr2 (port 3300) even if compression or encryption are not enabled.
	// If true, the msgr1 port (6789) will be disabled.
	// Requires a kernel that supports msgr2 (kernel 5.11 or CentOS 8.4 or newer).
	// +optional
	RequireMsgr2 bool `json:"requireMsgr2,omitempty"`
}

func (*ConnectionsSpec) DeepCopy

func (in *ConnectionsSpec) DeepCopy() *ConnectionsSpec

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

func (*ConnectionsSpec) DeepCopyInto

func (in *ConnectionsSpec) DeepCopyInto(out *ConnectionsSpec)

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

type CrashCollectorSpec

type CrashCollectorSpec struct {
	// Disable determines whether we should enable the crash collector
	// +optional
	Disable bool `json:"disable,omitempty"`

	// DaysToRetain represents the number of days to retain crash until they get pruned
	// +optional
	DaysToRetain uint `json:"daysToRetain,omitempty"`
}

CrashCollectorSpec represents options to configure the crash controller

func (*CrashCollectorSpec) DeepCopy

func (in *CrashCollectorSpec) DeepCopy() *CrashCollectorSpec

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

func (*CrashCollectorSpec) DeepCopyInto

func (in *CrashCollectorSpec) DeepCopyInto(out *CrashCollectorSpec)

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

type DaemonHealthSpec

type DaemonHealthSpec struct {
	// Status represents the health check settings for the Ceph health
	// +optional
	// +nullable
	Status HealthCheckSpec `json:"status,omitempty"`
	// Monitor represents the health check settings for the Ceph monitor
	// +optional
	// +nullable
	Monitor HealthCheckSpec `json:"mon,omitempty"`
	// ObjectStorageDaemon represents the health check settings for the Ceph OSDs
	// +optional
	// +nullable
	ObjectStorageDaemon HealthCheckSpec `json:"osd,omitempty"`
}

DaemonHealthSpec is a daemon health check

func (*DaemonHealthSpec) DeepCopy

func (in *DaemonHealthSpec) DeepCopy() *DaemonHealthSpec

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

func (*DaemonHealthSpec) DeepCopyInto

func (in *DaemonHealthSpec) DeepCopyInto(out *DaemonHealthSpec)

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

type DashboardSpec

type DashboardSpec struct {
	// Enabled determines whether to enable the dashboard
	// +optional
	Enabled bool `json:"enabled,omitempty"`
	// URLPrefix is a prefix for all URLs to use the dashboard with a reverse proxy
	// +optional
	URLPrefix string `json:"urlPrefix,omitempty"`
	// Port is the dashboard webserver port
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	Port int `json:"port,omitempty"`
	// SSL determines whether SSL should be used
	// +optional
	SSL bool `json:"ssl,omitempty"`
	// Endpoint for the Prometheus host
	// +optional
	PrometheusEndpoint string `json:"prometheusEndpoint,omitempty"`
	// Whether to verify the ssl endpoint for prometheus. Set to false for a self-signed cert.
	// +optional
	PrometheusEndpointSSLVerify bool `json:"prometheusEndpointSSLVerify,omitempty"`
}

DashboardSpec represents the settings for the Ceph dashboard

func (*DashboardSpec) DeepCopy

func (in *DashboardSpec) DeepCopy() *DashboardSpec

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

func (*DashboardSpec) DeepCopyInto

func (in *DashboardSpec) DeepCopyInto(out *DashboardSpec)

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

type Device

type Device struct {
	// +optional
	Name string `json:"name,omitempty"`
	// +optional
	FullPath string `json:"fullpath,omitempty"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Config map[string]string `json:"config,omitempty"`
}

Device represents a disk to use in the cluster

func (*Device) DeepCopy

func (in *Device) DeepCopy() *Device

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

func (*Device) DeepCopyInto

func (in *Device) DeepCopyInto(out *Device)

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

type DeviceClasses

type DeviceClasses struct {
	Name string `json:"name,omitempty"`
}

DeviceClasses represents device classes of a Ceph Cluster

func (*DeviceClasses) DeepCopy

func (in *DeviceClasses) DeepCopy() *DeviceClasses

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

func (*DeviceClasses) DeepCopyInto

func (in *DeviceClasses) DeepCopyInto(out *DeviceClasses)

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

type DisruptionManagementSpec

type DisruptionManagementSpec struct {
	// This enables management of poddisruptionbudgets
	// +optional
	ManagePodBudgets bool `json:"managePodBudgets,omitempty"`

	// OSDMaintenanceTimeout sets how many additional minutes the DOWN/OUT interval is for drained failure domains
	// it only works if managePodBudgets is true.
	// the default is 30 minutes
	// +optional
	OSDMaintenanceTimeout time.Duration `json:"osdMaintenanceTimeout,omitempty"`

	// PGHealthCheckTimeout is the time (in minutes) that the operator will wait for the placement groups to become
	// healthy (active+clean) after a drain was completed and OSDs came back up. Rook will continue with the next drain
	// if the timeout exceeds. It only works if managePodBudgets is true.
	// No values or 0 means that the operator will wait until the placement groups are healthy before unblocking the next drain.
	// +optional
	PGHealthCheckTimeout time.Duration `json:"pgHealthCheckTimeout,omitempty"`

	// PgHealthyRegex is the regular expression that is used to determine which PG states should be considered healthy.
	// The default is `^(active\+clean|active\+clean\+scrubbing|active\+clean\+scrubbing\+deep)$`
	// +optional
	PGHealthyRegex string `json:"pgHealthyRegex,omitempty"`

	// Deprecated. This enables management of machinedisruptionbudgets.
	// +optional
	ManageMachineDisruptionBudgets bool `json:"manageMachineDisruptionBudgets,omitempty"`

	// Deprecated. Namespace to look for MDBs by the machineDisruptionBudgetController
	// +optional
	MachineDisruptionBudgetNamespace string `json:"machineDisruptionBudgetNamespace,omitempty"`
}

DisruptionManagementSpec configures management of daemon disruptions

func (*DisruptionManagementSpec) DeepCopy

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

func (*DisruptionManagementSpec) DeepCopyInto

func (in *DisruptionManagementSpec) DeepCopyInto(out *DisruptionManagementSpec)

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

type EncryptionSpec

type EncryptionSpec struct {
	// Whether to encrypt the data in transit across the wire to prevent eavesdropping
	// the data on the network. The default is not set. Even if encryption is not enabled,
	// clients still establish a strong initial authentication for the connection
	// and data integrity is still validated with a crc check. When encryption is enabled,
	// all communication between clients and Ceph daemons, or between Ceph daemons will
	// be encrypted.
	// +optional
	Enabled bool `json:"enabled,omitempty"`
}

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 EndpointAddress

type EndpointAddress struct {
	// The IP of this endpoint. As a legacy behavior, this supports being given a DNS-addressable hostname as well.
	// +optional
	IP string `json:"ip" protobuf:"bytes,1,opt,name=ip"`

	// The DNS-addressable Hostname of this endpoint. This field will be preferred over IP if both are given.
	// +optional
	Hostname string `json:"hostname,omitempty" protobuf:"bytes,3,opt,name=hostname"`
}

EndpointAddress is a tuple that describes a single IP address or host name. This is a subset of Kubernetes's v1.EndpointAddress. +structType=atomic

func (*EndpointAddress) DeepCopy

func (in *EndpointAddress) DeepCopy() *EndpointAddress

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

func (*EndpointAddress) DeepCopyInto

func (in *EndpointAddress) DeepCopyInto(out *EndpointAddress)

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

func (*EndpointAddress) String

func (e *EndpointAddress) String() string

String returns an addressable string representation of the EndpointAddress.

type ErasureCodedSpec

type ErasureCodedSpec struct {
	// Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
	// This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
	// +kubebuilder:validation:Minimum=0
	CodingChunks uint `json:"codingChunks"`

	// Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
	// The number of chunks required to recover an object when any single OSD is lost is the same
	// as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
	// +kubebuilder:validation:Minimum=0
	DataChunks uint `json:"dataChunks"`

	// The algorithm for erasure coding
	// +optional
	Algorithm string `json:"algorithm,omitempty"`
}

ErasureCodedSpec represents the spec for erasure code in a pool

func (*ErasureCodedSpec) DeepCopy

func (in *ErasureCodedSpec) DeepCopy() *ErasureCodedSpec

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

func (*ErasureCodedSpec) DeepCopyInto

func (in *ErasureCodedSpec) DeepCopyInto(out *ErasureCodedSpec)

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

type ExternalSpec

type ExternalSpec struct {
	// Enable determines whether external mode is enabled or not
	// +optional
	Enable bool `json:"enable,omitempty"`
}

ExternalSpec represents the options supported by an external cluster +kubebuilder:pruning:PreserveUnknownFields +nullable

func (*ExternalSpec) DeepCopy

func (in *ExternalSpec) DeepCopy() *ExternalSpec

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

func (*ExternalSpec) DeepCopyInto

func (in *ExternalSpec) DeepCopyInto(out *ExternalSpec)

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

type FSMirroringSpec

type FSMirroringSpec struct {
	// Enabled whether this filesystem is mirrored or not
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// Peers represents the peers spec
	// +nullable
	// +optional
	Peers *MirroringPeerSpec `json:"peers,omitempty"`

	// SnapshotSchedules is the scheduling of snapshot for mirrored filesystems
	// +optional
	SnapshotSchedules []SnapshotScheduleSpec `json:"snapshotSchedules,omitempty"`

	// Retention is the retention policy for a snapshot schedule
	// One path has exactly one retention policy.
	// A policy can however contain multiple count-time period pairs in order to specify complex retention policies
	// +optional
	SnapshotRetention []SnapshotScheduleRetentionSpec `json:"snapshotRetention,omitempty"`
}

FSMirroringSpec represents the setting for a mirrored filesystem

func (*FSMirroringSpec) DeepCopy

func (in *FSMirroringSpec) DeepCopy() *FSMirroringSpec

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

func (*FSMirroringSpec) DeepCopyInto

func (in *FSMirroringSpec) DeepCopyInto(out *FSMirroringSpec)

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

func (*FSMirroringSpec) SnapShotScheduleEnabled

func (m *FSMirroringSpec) SnapShotScheduleEnabled() bool

type FilesystemMirrorInfoPeerSpec

type FilesystemMirrorInfoPeerSpec struct {
	// UUID is the peer unique identifier
	// +optional
	UUID string `json:"uuid,omitempty"`
	// Remote are the remote cluster information
	// +optional
	Remote *PeerRemoteSpec `json:"remote,omitempty"`
	// Stats are the stat a peer mirror
	// +optional
	Stats *PeerStatSpec `json:"stats,omitempty"`
}

FilesystemMirrorInfoPeerSpec is the specification of a filesystem peer mirror

func (*FilesystemMirrorInfoPeerSpec) DeepCopy

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

func (*FilesystemMirrorInfoPeerSpec) DeepCopyInto

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

type FilesystemMirroringInfo

type FilesystemMirroringInfo struct {
	// DaemonID is the cephfs-mirror name
	// +optional
	DaemonID int `json:"daemon_id,omitempty"`
	// Filesystems is the list of filesystems managed by a given cephfs-mirror daemon
	// +optional
	Filesystems []FilesystemsSpec `json:"filesystems,omitempty"`
}

FilesystemMirrorInfoSpec is the filesystem mirror status of a given filesystem

func (*FilesystemMirroringInfo) DeepCopy

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

func (*FilesystemMirroringInfo) DeepCopyInto

func (in *FilesystemMirroringInfo) DeepCopyInto(out *FilesystemMirroringInfo)

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

type FilesystemMirroringInfoSpec

type FilesystemMirroringInfoSpec struct {
	// PoolMirroringStatus is the mirroring status of a filesystem
	// +nullable
	// +optional
	FilesystemMirroringAllInfo []FilesystemMirroringInfo `json:"daemonsStatus,omitempty"`
	// LastChecked is the last time time the status was checked
	// +optional
	LastChecked string `json:"lastChecked,omitempty"`
	// LastChanged is the last time time the status last changed
	// +optional
	LastChanged string `json:"lastChanged,omitempty"`
	// Details contains potential status errors
	// +optional
	Details string `json:"details,omitempty"`
}

FilesystemMirroringInfo is the status of the pool mirroring

func (*FilesystemMirroringInfoSpec) DeepCopy

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

func (*FilesystemMirroringInfoSpec) DeepCopyInto

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

type FilesystemMirroringSpec

type FilesystemMirroringSpec struct {
	// The affinity to place the rgw pods (default is to place on any available node)
	// +nullable
	// +optional
	Placement Placement `json:"placement,omitempty"`

	// The annotations-related configuration to add/set on each Pod related object.
	// +nullable
	// +optional
	Annotations Annotations `json:"annotations,omitempty"`

	// The labels-related configuration to add/set on each Pod related object.
	// +nullable
	// +optional
	Labels Labels `json:"labels,omitempty"`

	// The resource requirements for the cephfs-mirror pods
	// +nullable
	// +optional
	Resources v1.ResourceRequirements `json:"resources,omitempty"`

	// PriorityClassName sets priority class on the cephfs-mirror pods
	// +optional
	PriorityClassName string `json:"priorityClassName,omitempty"`
}

FilesystemMirroringSpec is the filesystem mirroring specification

func (*FilesystemMirroringSpec) DeepCopy

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

func (*FilesystemMirroringSpec) DeepCopyInto

func (in *FilesystemMirroringSpec) DeepCopyInto(out *FilesystemMirroringSpec)

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

type FilesystemSnapshotScheduleStatusRetention

type FilesystemSnapshotScheduleStatusRetention struct {
	// Start is when the snapshot schedule starts
	// +optional
	Start string `json:"start,omitempty"`
	// Created is when the snapshot schedule was created
	// +optional
	Created string `json:"created,omitempty"`
	// First is when the first snapshot schedule was taken
	// +optional
	First string `json:"first,omitempty"`
	// Last is when the last snapshot schedule was taken
	// +optional
	Last string `json:"last,omitempty"`
	// LastPruned is when the last snapshot schedule was pruned
	// +optional
	LastPruned string `json:"last_pruned,omitempty"`
	// CreatedCount is total amount of snapshots
	// +optional
	CreatedCount int `json:"created_count,omitempty"`
	// PrunedCount is total amount of pruned snapshots
	// +optional
	PrunedCount int `json:"pruned_count,omitempty"`
	// Active is whether the scheduled is active or not
	// +optional
	Active bool `json:"active,omitempty"`
}

FilesystemSnapshotScheduleStatusRetention is the retention specification for a filesystem snapshot schedule

func (*FilesystemSnapshotScheduleStatusRetention) DeepCopy

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

func (*FilesystemSnapshotScheduleStatusRetention) DeepCopyInto

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

type FilesystemSnapshotScheduleStatusSpec

type FilesystemSnapshotScheduleStatusSpec struct {
	// SnapshotSchedules is the list of snapshots scheduled
	// +nullable
	// +optional
	SnapshotSchedules []FilesystemSnapshotSchedulesSpec `json:"snapshotSchedules,omitempty"`
	// LastChecked is the last time time the status was checked
	// +optional
	LastChecked string `json:"lastChecked,omitempty"`
	// LastChanged is the last time time the status last changed
	// +optional
	LastChanged string `json:"lastChanged,omitempty"`
	// Details contains potential status errors
	// +optional
	Details string `json:"details,omitempty"`
}

FilesystemSnapshotScheduleStatusSpec is the status of the snapshot schedule

func (*FilesystemSnapshotScheduleStatusSpec) DeepCopy

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

func (*FilesystemSnapshotScheduleStatusSpec) DeepCopyInto

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

type FilesystemSnapshotSchedulesSpec

type FilesystemSnapshotSchedulesSpec struct {
	// Fs is the name of the Ceph Filesystem
	// +optional
	Fs string `json:"fs,omitempty"`
	// Subvol is the name of the sub volume
	// +optional
	Subvol string `json:"subvol,omitempty"`
	// Path is the path on the filesystem
	// +optional
	Path string `json:"path,omitempty"`
	// +optional
	RelPath string `json:"rel_path,omitempty"`
	// +optional
	Schedule string `json:"schedule,omitempty"`
	// +optional
	Retention FilesystemSnapshotScheduleStatusRetention `json:"retention,omitempty"`
}

FilesystemSnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool

func (*FilesystemSnapshotSchedulesSpec) DeepCopy

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

func (*FilesystemSnapshotSchedulesSpec) DeepCopyInto

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

type FilesystemSpec

type FilesystemSpec struct {
	// The metadata pool settings
	// +nullable
	MetadataPool PoolSpec `json:"metadataPool"`

	// The data pool settings, with optional predefined pool name.
	// +nullable
	DataPools []NamedPoolSpec `json:"dataPools"`

	// Preserve pools on filesystem deletion
	// +optional
	PreservePoolsOnDelete bool `json:"preservePoolsOnDelete,omitempty"`

	// Preserve the fs in the cluster on CephFilesystem CR deletion. Setting this to true automatically implies PreservePoolsOnDelete is true.
	// +optional
	PreserveFilesystemOnDelete bool `json:"preserveFilesystemOnDelete,omitempty"`

	// The mds pod info
	MetadataServer MetadataServerSpec `json:"metadataServer"`

	// The mirroring settings
	// +nullable
	// +optional
	Mirroring *FSMirroringSpec `json:"mirroring,omitempty"`

	// The mirroring statusCheck
	// +kubebuilder:pruning:PreserveUnknownFields
	StatusCheck MirrorHealthCheckSpec `json:"statusCheck,omitempty"`
}

FilesystemSpec represents the spec of a file system

func (*FilesystemSpec) DeepCopy

func (in *FilesystemSpec) DeepCopy() *FilesystemSpec

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

func (*FilesystemSpec) DeepCopyInto

func (in *FilesystemSpec) DeepCopyInto(out *FilesystemSpec)

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

type FilesystemsSpec

type FilesystemsSpec struct {
	// FilesystemID is the filesystem identifier
	// +optional
	FilesystemID int `json:"filesystem_id,omitempty"`
	// Name is name of the filesystem
	// +optional
	Name string `json:"name,omitempty"`
	// DirectoryCount is the number of directories in the filesystem
	// +optional
	DirectoryCount int `json:"directory_count,omitempty"`
	// Peers represents the mirroring peers
	// +optional
	Peers []FilesystemMirrorInfoPeerSpec `json:"peers,omitempty"`
}

FilesystemsSpec is spec for the mirrored filesystem

func (*FilesystemsSpec) DeepCopy

func (in *FilesystemsSpec) DeepCopy() *FilesystemsSpec

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

func (*FilesystemsSpec) DeepCopyInto

func (in *FilesystemsSpec) DeepCopyInto(out *FilesystemsSpec)

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

type GaneshaRADOSSpec

type GaneshaRADOSSpec struct {
	// The Ceph pool used store the shared configuration for NFS-Ganesha daemons.
	// This setting is deprecated, as it is internally required to be ".nfs".
	// +optional
	Pool string `json:"pool,omitempty"`

	// The namespace inside the Ceph pool (set by 'pool') where shared NFS-Ganesha config is stored.
	// This setting is deprecated as it is internally set to the name of the CephNFS.
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

GaneshaRADOSSpec represents the specification of a Ganesha RADOS object

func (*GaneshaRADOSSpec) DeepCopy

func (in *GaneshaRADOSSpec) DeepCopy() *GaneshaRADOSSpec

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

func (*GaneshaRADOSSpec) DeepCopyInto

func (in *GaneshaRADOSSpec) DeepCopyInto(out *GaneshaRADOSSpec)

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

type GaneshaServerSpec

type GaneshaServerSpec struct {
	// The number of active Ganesha servers
	Active int `json:"active"`

	// The affinity to place the ganesha pods
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Placement Placement `json:"placement,omitempty"`

	// The annotations-related configuration to add/set on each Pod related object.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Annotations Annotations `json:"annotations,omitempty"`

	// The labels-related configuration to add/set on each Pod related object.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Labels Labels `json:"labels,omitempty"`

	// Resources set resource requests and limits
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Resources v1.ResourceRequirements `json:"resources,omitempty"`

	// PriorityClassName sets the priority class on the pods
	// +optional
	PriorityClassName string `json:"priorityClassName,omitempty"`

	// LogLevel set logging level
	// +optional
	LogLevel string `json:"logLevel,omitempty"`

	// Whether host networking is enabled for the Ganesha server. If not set, the network settings from the cluster CR will be applied.
	// +nullable
	// +optional
	HostNetwork *bool `json:"hostNetwork,omitempty"`

	// A liveness-probe to verify that Ganesha server has valid run-time state.
	// If LivenessProbe.Disabled is false and LivenessProbe.Probe is nil uses default probe.
	// +optional
	LivenessProbe *ProbeSpec `json:"livenessProbe,omitempty"`
}

GaneshaServerSpec represents the specification of a Ganesha Server

func (*GaneshaServerSpec) DeepCopy

func (in *GaneshaServerSpec) DeepCopy() *GaneshaServerSpec

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

func (*GaneshaServerSpec) DeepCopyInto

func (in *GaneshaServerSpec) DeepCopyInto(out *GaneshaServerSpec)

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

type GatewaySpec

type GatewaySpec struct {
	// The port the rgw service will be listening on (http)
	// +optional
	Port int32 `json:"port,omitempty"`

	// The port the rgw service will be listening on (https)
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +nullable
	// +optional
	SecurePort int32 `json:"securePort,omitempty"`

	// The number of pods in the rgw replicaset.
	// +nullable
	// +optional
	Instances int32 `json:"instances,omitempty"`

	// The name of the secret that stores the ssl certificate for secure rgw connections
	// +nullable
	// +optional
	SSLCertificateRef string `json:"sslCertificateRef,omitempty"`

	// The name of the secret that stores custom ca-bundle with root and intermediate certificates.
	// +nullable
	// +optional
	CaBundleRef string `json:"caBundleRef,omitempty"`

	// The affinity to place the rgw pods (default is to place on any available node)
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Placement Placement `json:"placement,omitempty"`

	// DisableMultisiteSyncTraffic, when true, prevents this object store's gateways from
	// transmitting multisite replication data. Note that this value does not affect whether
	// gateways receive multisite replication traffic: see ObjectZone.spec.customEndpoints for that.
	// If false or unset, this object store's gateways will be able to transmit multisite
	// replication data.
	// +optional
	DisableMultisiteSyncTraffic bool `json:"disableMultisiteSyncTraffic,omitempty"`

	// The annotations-related configuration to add/set on each Pod related object.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Annotations Annotations `json:"annotations,omitempty"`

	// The labels-related configuration to add/set on each Pod related object.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Labels Labels `json:"labels,omitempty"`

	// The resource requirements for the rgw pods
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Resources v1.ResourceRequirements `json:"resources,omitempty"`

	// PriorityClassName sets priority classes on the rgw pods
	// +optional
	PriorityClassName string `json:"priorityClassName,omitempty"`

	// ExternalRgwEndpoints points to external RGW endpoint(s). Multiple endpoints can be given, but
	// for stability of ObjectBucketClaims, we highly recommend that users give only a single
	// external RGW endpoint that is a load balancer that sends requests to the multiple RGWs.
	// +nullable
	// +optional
	ExternalRgwEndpoints []EndpointAddress `json:"externalRgwEndpoints,omitempty"`

	// The configuration related to add/set on each rgw service.
	// +optional
	// +nullable
	Service *RGWServiceSpec `json:"service,omitempty"`

	// Whether host networking is enabled for the rgw daemon. If not set, the network settings from the cluster CR will be applied.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	HostNetwork *bool `json:"hostNetwork,omitempty"`

	// Whether rgw dashboard is enabled for the rgw daemon. If not set, the rgw dashboard will be enabled.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	DashboardEnabled *bool `json:"dashboardEnabled,omitempty"`
}

GatewaySpec represents the specification of Ceph Object Store Gateway

func (*GatewaySpec) DeepCopy

func (in *GatewaySpec) DeepCopy() *GatewaySpec

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

func (*GatewaySpec) DeepCopyInto

func (in *GatewaySpec) DeepCopyInto(out *GatewaySpec)

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

type HTTPEndpointSpec

type HTTPEndpointSpec struct {
	// The URI of the HTTP endpoint to push notification to
	// +kubebuilder:validation:MinLength=1
	URI string `json:"uri"`
	// Indicate whether the server certificate is validated by the client or not
	// +optional
	DisableVerifySSL bool `json:"disableVerifySSL,omitempty"`
	// Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md
	// +optional
	SendCloudEvents bool `json:"sendCloudEvents,omitempty"`
}

HTTPEndpointSpec represent the spec of an HTTP endpoint of a Bucket Topic

func (*HTTPEndpointSpec) DeepCopy

func (in *HTTPEndpointSpec) DeepCopy() *HTTPEndpointSpec

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

func (*HTTPEndpointSpec) DeepCopyInto

func (in *HTTPEndpointSpec) DeepCopyInto(out *HTTPEndpointSpec)

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

type HealthCheckSpec

type HealthCheckSpec struct {
	// +optional
	Disabled bool `json:"disabled,omitempty"`
	// Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
	// +optional
	Interval *metav1.Duration `json:"interval,omitempty"`
	// +optional
	Timeout string `json:"timeout,omitempty"`
}

HealthCheckSpec represents the health check of an object store bucket

func (*HealthCheckSpec) DeepCopy

func (in *HealthCheckSpec) DeepCopy() *HealthCheckSpec

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

func (*HealthCheckSpec) DeepCopyInto

func (in *HealthCheckSpec) DeepCopyInto(out *HealthCheckSpec)

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

type HybridStorageSpec

type HybridStorageSpec struct {
	// PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Required
	// +required
	PrimaryDeviceClass string `json:"primaryDeviceClass"`
	// SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Required
	// +required
	SecondaryDeviceClass string `json:"secondaryDeviceClass"`
}

HybridStorageSpec represents the settings for hybrid storage pool

func (*HybridStorageSpec) DeepCopy

func (in *HybridStorageSpec) DeepCopy() *HybridStorageSpec

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

func (*HybridStorageSpec) DeepCopyInto

func (in *HybridStorageSpec) DeepCopyInto(out *HybridStorageSpec)

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

type IPFamilyType

type IPFamilyType string

IPFamilyType represents the single stack Ipv4 or Ipv6 protocol.

const (
	// IPv6 internet protocol version
	IPv6 IPFamilyType = "IPv6"
	// IPv4 internet protocol version
	IPv4 IPFamilyType = "IPv4"
)

type KafkaEndpointSpec

type KafkaEndpointSpec struct {
	// The URI of the Kafka endpoint to push notification to
	// +kubebuilder:validation:MinLength=1
	URI string `json:"uri"`
	// Indicate whether to use SSL when communicating with the broker
	// +optional
	UseSSL bool `json:"useSSL,omitempty"`
	// Indicate whether the server certificate is validated by the client or not
	// +optional
	DisableVerifySSL bool `json:"disableVerifySSL,omitempty"`
	// The ack level required for this topic (none/broker)
	// +kubebuilder:validation:Enum=none;broker
	// +kubebuilder:default=broker
	// +optional
	AckLevel string `json:"ackLevel,omitempty"`
}

KafkaEndpointSpec represent the spec of a Kafka endpoint of a Bucket Topic

func (*KafkaEndpointSpec) DeepCopy

func (in *KafkaEndpointSpec) DeepCopy() *KafkaEndpointSpec

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

func (*KafkaEndpointSpec) DeepCopyInto

func (in *KafkaEndpointSpec) DeepCopyInto(out *KafkaEndpointSpec)

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

type KerberosConfigFiles

type KerberosConfigFiles struct {
	// VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for
	// Kerberos configuration files like what is normally used to configure Volumes for a Pod. For
	// example, a ConfigMap, Secret, or HostPath. The volume may contain multiple files, all of
	// which will be loaded.
	VolumeSource *ConfigFileVolumeSource `json:"volumeSource,omitempty"`
}

KerberosConfigFiles represents the source(s) from which Kerberos configuration should come.

func (*KerberosConfigFiles) DeepCopy

func (in *KerberosConfigFiles) DeepCopy() *KerberosConfigFiles

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

func (*KerberosConfigFiles) DeepCopyInto

func (in *KerberosConfigFiles) DeepCopyInto(out *KerberosConfigFiles)

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

type KerberosKeytabFile

type KerberosKeytabFile struct {
	// VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the
	// Kerberos keytab file like what is normally used to configure Volumes for a Pod. For example,
	// a Secret or HostPath.
	// There are two requirements for the source's content:
	//   1. The config file must be mountable via `subPath: krb5.keytab`. For example, in a
	//      Secret, the data item must be named `krb5.keytab`, or `items` must be defined to
	//      select the key and give it path `krb5.keytab`. A HostPath directory must have the
	//      `krb5.keytab` file.
	//   2. The volume or config file must have mode 0600.
	VolumeSource *ConfigFileVolumeSource `json:"volumeSource,omitempty"`
}

KerberosKeytabFile represents the source(s) from which the Kerberos keytab file should come.

func (*KerberosKeytabFile) DeepCopy

func (in *KerberosKeytabFile) DeepCopy() *KerberosKeytabFile

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

func (*KerberosKeytabFile) DeepCopyInto

func (in *KerberosKeytabFile) DeepCopyInto(out *KerberosKeytabFile)

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

type KerberosSpec

type KerberosSpec struct {
	// PrincipalName corresponds directly to NFS-Ganesha's NFS_KRB5:PrincipalName config. In
	// practice, this is the service prefix of the principal name. The default is "nfs".
	// This value is combined with (a) the namespace and name of the CephNFS (with a hyphen between)
	// and (b) the Realm configured in the user-provided krb5.conf to determine the full principal
	// name: <principalName>/<namespace>-<name>@<realm>. e.g., nfs/rook-ceph-my-nfs@example.net.
	// See https://github.com/nfs-ganesha/nfs-ganesha/wiki/RPCSEC_GSS for more detail.
	// +optional
	// +kubebuilder:default="nfs"
	PrincipalName string `json:"principalName"`

	// DomainName should be set to the Kerberos Realm.
	// +optional
	DomainName string `json:"domainName"`

	// ConfigFiles defines where the Kerberos configuration should be sourced from. Config files
	// will be placed into the `/etc/krb5.conf.rook/` directory.
	//
	// If this is left empty, Rook will not add any files. This allows you to manage the files
	// yourself however you wish. For example, you may build them into your custom Ceph container
	// image or use the Vault agent injector to securely add the files via annotations on the
	// CephNFS spec (passed to the NFS server pods).
	//
	// Rook configures Kerberos to log to stderr. We suggest removing logging sections from config
	// files to avoid consuming unnecessary disk space from logging to files.
	// +optional
	ConfigFiles KerberosConfigFiles `json:"configFiles"`

	// KeytabFile defines where the Kerberos keytab should be sourced from. The keytab file will be
	// placed into `/etc/krb5.keytab`. If this is left empty, Rook will not add the file.
	// This allows you to manage the `krb5.keytab` file yourself however you wish. For example, you
	// may build it into your custom Ceph container image or use the Vault agent injector to
	// securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
	// +optional
	KeytabFile KerberosKeytabFile `json:"keytabFile"`
}

KerberosSpec represents configuration for Kerberos.

func (*KerberosSpec) DeepCopy

func (in *KerberosSpec) DeepCopy() *KerberosSpec

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

func (*KerberosSpec) DeepCopyInto

func (in *KerberosSpec) DeepCopyInto(out *KerberosSpec)

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

func (*KerberosSpec) GetPrincipalName

func (k *KerberosSpec) GetPrincipalName() string

GetPrincipalName gets the principal name for the Kerberos spec or the default value if it is unset.

type KeyManagementServiceSpec

type KeyManagementServiceSpec struct {
	// ConnectionDetails contains the KMS connection details (address, port etc)
	// +optional
	// +nullable
	// +kubebuilder:pruning:PreserveUnknownFields
	ConnectionDetails map[string]string `json:"connectionDetails,omitempty"`
	// TokenSecretName is the kubernetes secret containing the KMS token
	// +optional
	TokenSecretName string `json:"tokenSecretName,omitempty"`
}

KeyManagementServiceSpec represent various details of the KMS server

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.

func (*KeyManagementServiceSpec) IsAzureMS

func (kms *KeyManagementServiceSpec) IsAzureMS() bool

func (*KeyManagementServiceSpec) IsEnabled

func (kms *KeyManagementServiceSpec) IsEnabled() bool

IsEnabled return whether a KMS is configured

func (*KeyManagementServiceSpec) IsIBMKeyProtectKMS

func (kms *KeyManagementServiceSpec) IsIBMKeyProtectKMS() bool

IsIBMKeyProtectKMS return whether IBM Key Protect KMS is configured

func (*KeyManagementServiceSpec) IsK8sAuthEnabled

func (kms *KeyManagementServiceSpec) IsK8sAuthEnabled() bool

IsK8sAuthEnabled return whether KMS Kubernetes auth is enabled

func (*KeyManagementServiceSpec) IsKMIPKMS

func (kms *KeyManagementServiceSpec) IsKMIPKMS() bool

IsKMIPKMS return whether KMIP KMS is configured

func (*KeyManagementServiceSpec) IsTLSEnabled

func (kms *KeyManagementServiceSpec) IsTLSEnabled() bool

IsTLSEnabled return KMS TLS details are configured

func (*KeyManagementServiceSpec) IsTokenAuthEnabled

func (kms *KeyManagementServiceSpec) IsTokenAuthEnabled() bool

IsTokenAuthEnabled return whether KMS token auth is enabled

func (*KeyManagementServiceSpec) IsVaultKMS

func (kms *KeyManagementServiceSpec) IsVaultKMS() bool

IsVaultKMS return whether Vault KMS is configured

type KeyRotationSpec

type KeyRotationSpec struct {
	// Enabled represents whether the key rotation is enabled.
	// +optional
	// +kubebuilder:default=false
	Enabled bool `json:"enabled,omitempty"`
	// Schedule represents the cron schedule for key rotation.
	// +optional
	Schedule string `json:"schedule,omitempty"`
}

KeyRotationSpec represents the settings for Key Rotation.

func (*KeyRotationSpec) DeepCopy

func (in *KeyRotationSpec) DeepCopy() *KeyRotationSpec

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

func (*KeyRotationSpec) DeepCopyInto

func (in *KeyRotationSpec) DeepCopyInto(out *KeyRotationSpec)

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

type KeyType

type KeyType string

KeyType type safety

const (
	KeyAll                     = "all"
	KeyMds             KeyType = "mds"
	KeyRgw             KeyType = "rgw"
	KeyMon             KeyType = "mon"
	KeyMonArbiter      KeyType = "arbiter"
	KeyMgr             KeyType = "mgr"
	KeyDashboard       KeyType = "dashboard"
	KeyOSDPrepare      KeyType = "prepareosd"
	KeyRotation        KeyType = "keyrotation"
	KeyOSD             KeyType = "osd"
	KeyCleanup         KeyType = "cleanup"
	KeyMonitoring      KeyType = "monitoring"
	KeyCrashCollector  KeyType = "crashcollector"
	KeyClusterMetadata KeyType = "clusterMetadata"
	KeyCephExporter    KeyType = "exporter"
)

type Labels

type Labels map[string]string

Labels are label for a given daemons

func GetCephExporterLabels

func GetCephExporterLabels(a LabelsSpec) Labels

func GetCleanupLabels

func GetCleanupLabels(a LabelsSpec) Labels

GetCleanupLabels returns the Labels for the cleanup job

func GetCrashCollectorLabels

func GetCrashCollectorLabels(a LabelsSpec) Labels

GetCrashCollectorLabels returns the Labels for the crash collector resources

func GetDashboardLabels

func GetDashboardLabels(a LabelsSpec) Labels

GetDashboardLabels returns the Labels for the Dashboard service

func GetKeyRotationLabels

func GetKeyRotationLabels(a LabelsSpec) Labels

GetKeyRotationLabels returns labels for the key Rotation job

func GetMgrLabels

func GetMgrLabels(a LabelsSpec) Labels

GetMgrLabels returns the Labels for the MGR service

func GetMonLabels

func GetMonLabels(a LabelsSpec) Labels

GetMonLabels returns the Labels for the MON service

func GetMonitoringLabels

func GetMonitoringLabels(a LabelsSpec) Labels

GetMonitoringLabels returns the Labels for monitoring resources

func GetOSDLabels

func GetOSDLabels(a LabelsSpec) Labels

GetOSDLabels returns the Labels for the OSD service

func GetOSDPrepareLabels

func GetOSDPrepareLabels(a LabelsSpec) Labels

GetOSDPrepareLabels returns the Labels for the OSD prepare job

func (Labels) ApplyToObjectMeta

func (a Labels) ApplyToObjectMeta(t *metav1.ObjectMeta)

ApplyToObjectMeta adds labels to object meta unless the keys are already defined.

func (Labels) DeepCopy

func (in Labels) DeepCopy() Labels

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

func (Labels) DeepCopyInto

func (in Labels) DeepCopyInto(out *Labels)

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

func (Labels) Merge

func (a Labels) Merge(with Labels) Labels

Merge returns a Labels which results from merging the attributes of the original Labels with the attributes of the supplied one. The supplied Labels attributes will override the original ones if defined.

func (Labels) OverwriteApplyToObjectMeta

func (a Labels) OverwriteApplyToObjectMeta(t *metav1.ObjectMeta)

OverwriteApplyToObjectMeta adds labels to object meta, overwriting keys that are already defined.

type LabelsSpec

type LabelsSpec map[KeyType]Labels

LabelsSpec is the main spec label for all daemons

func (LabelsSpec) All

func (a LabelsSpec) All() Labels

func (LabelsSpec) DeepCopy

func (in LabelsSpec) DeepCopy() LabelsSpec

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

func (LabelsSpec) DeepCopyInto

func (in LabelsSpec) DeepCopyInto(out *LabelsSpec)

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

type LogCollectorSpec

type LogCollectorSpec struct {
	// Enabled represents whether the log collector is enabled
	// +optional
	Enabled bool `json:"enabled,omitempty"`
	// Periodicity is the periodicity of the log rotation.
	// +kubebuilder:validation:Pattern=`^$|^(hourly|daily|weekly|monthly|1h|24h|1d)$`
	// +optional
	Periodicity string `json:"periodicity,omitempty"`
	// MaxLogSize is the maximum size of the log per ceph daemons. Must be at least 1M.
	// +optional
	MaxLogSize *resource.Quantity `json:"maxLogSize,omitempty"`
}

LogCollectorSpec is the logging spec

func (*LogCollectorSpec) DeepCopy

func (in *LogCollectorSpec) DeepCopy() *LogCollectorSpec

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

func (*LogCollectorSpec) DeepCopyInto

func (in *LogCollectorSpec) DeepCopyInto(out *LogCollectorSpec)

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

type MetadataServerSpec

type MetadataServerSpec struct {
	// The number of metadata servers that are active. The remaining servers in the cluster will be in standby mode.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=50
	ActiveCount int32 `json:"activeCount"`

	// Whether each active MDS instance will have an active standby with a warm metadata cache for faster failover.
	// If false, standbys will still be available, but will not have a warm metadata cache.
	// +optional
	ActiveStandby bool `json:"activeStandby,omitempty"`

	// The affinity to place the mds pods (default is to place on all available node) with a daemonset
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Placement Placement `json:"placement,omitempty"`

	// The annotations-related configuration to add/set on each Pod related object.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Annotations Annotations `json:"annotations,omitempty"`

	// The labels-related configuration to add/set on each Pod related object.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Labels Labels `json:"labels,omitempty"`

	// The resource requirements for the mds pods
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Resources v1.ResourceRequirements `json:"resources,omitempty"`

	// PriorityClassName sets priority classes on components
	// +optional
	PriorityClassName string `json:"priorityClassName,omitempty"`

	// +optional
	LivenessProbe *ProbeSpec `json:"livenessProbe,omitempty"`

	// +optional
	StartupProbe *ProbeSpec `json:"startupProbe,omitempty"`
}

MetadataServerSpec represents the specification of a Ceph Metadata Server

func (*MetadataServerSpec) DeepCopy

func (in *MetadataServerSpec) DeepCopy() *MetadataServerSpec

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

func (*MetadataServerSpec) DeepCopyInto

func (in *MetadataServerSpec) DeepCopyInto(out *MetadataServerSpec)

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

type MgrSpec

type MgrSpec struct {
	// Count is the number of manager daemons to run
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=5
	// +optional
	Count int `json:"count,omitempty"`
	// AllowMultiplePerNode allows to run multiple managers on the same node (not recommended)
	// +optional
	AllowMultiplePerNode bool `json:"allowMultiplePerNode,omitempty"`
	// Modules is the list of ceph manager modules to enable/disable
	// +optional
	// +nullable
	Modules []Module `json:"modules,omitempty"`
}

MgrSpec represents options to configure a ceph mgr

func (*MgrSpec) DeepCopy

func (in *MgrSpec) DeepCopy() *MgrSpec

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

func (*MgrSpec) DeepCopyInto

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

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

type MirrorHealthCheckSpec

type MirrorHealthCheckSpec struct {
	// +optional
	// +nullable
	Mirror HealthCheckSpec `json:"mirror,omitempty"`
}

MirrorHealthCheckSpec represents the health specification of a Ceph Storage Pool mirror

func (*MirrorHealthCheckSpec) DeepCopy

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

func (*MirrorHealthCheckSpec) DeepCopyInto

func (in *MirrorHealthCheckSpec) DeepCopyInto(out *MirrorHealthCheckSpec)

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

type MirroringInfoSpec

type MirroringInfoSpec struct {
	// +optional
	*PoolMirroringInfo `json:",inline"`
	// +optional
	LastChecked string `json:"lastChecked,omitempty"`
	// +optional
	LastChanged string `json:"lastChanged,omitempty"`
	// +optional
	Details string `json:"details,omitempty"`
}

MirroringInfoSpec is the status of the pool mirroring

func (*MirroringInfoSpec) DeepCopy

func (in *MirroringInfoSpec) DeepCopy() *MirroringInfoSpec

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

func (*MirroringInfoSpec) DeepCopyInto

func (in *MirroringInfoSpec) DeepCopyInto(out *MirroringInfoSpec)

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

type MirroringPeerSpec

type MirroringPeerSpec struct {
	// SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
	// +optional
	SecretNames []string `json:"secretNames,omitempty"`
}

MirroringPeerSpec represents the specification of a mirror peer

func (*MirroringPeerSpec) DeepCopy

func (in *MirroringPeerSpec) DeepCopy() *MirroringPeerSpec

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

func (*MirroringPeerSpec) DeepCopyInto

func (in *MirroringPeerSpec) DeepCopyInto(out *MirroringPeerSpec)

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

func (*MirroringPeerSpec) HasPeers

func (m *MirroringPeerSpec) HasPeers() bool

HasPeers returns whether the RBD mirror daemon has peer and should connect to it

type MirroringSpec

type MirroringSpec struct {
	// Enabled whether this pool is mirrored or not
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// Mode is the mirroring mode: either pool or image
	// +optional
	Mode string `json:"mode,omitempty"`

	// SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
	// +optional
	SnapshotSchedules []SnapshotScheduleSpec `json:"snapshotSchedules,omitempty"`

	// Peers represents the peers spec
	// +nullable
	// +optional
	Peers *MirroringPeerSpec `json:"peers,omitempty"`
}

MirroringSpec represents the setting for a mirrored pool

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.

func (*MirroringSpec) SnapshotSchedulesEnabled

func (p *MirroringSpec) SnapshotSchedulesEnabled() bool

SnapshotSchedulesEnabled returns whether snapshot schedules are desired

type MirroringStatusSpec

type MirroringStatusSpec struct {
	// PoolMirroringStatus is the mirroring status of a pool
	// +optional
	PoolMirroringStatus `json:",inline"`
	// LastChecked is the last time time the status was checked
	// +optional
	LastChecked string `json:"lastChecked,omitempty"`
	// LastChanged is the last time time the status last changed
	// +optional
	LastChanged string `json:"lastChanged,omitempty"`
	// Details contains potential status errors
	// +optional
	Details string `json:"details,omitempty"`
}

MirroringStatusSpec is the status of the pool mirroring

func (*MirroringStatusSpec) DeepCopy

func (in *MirroringStatusSpec) DeepCopy() *MirroringStatusSpec

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

func (*MirroringStatusSpec) DeepCopyInto

func (in *MirroringStatusSpec) DeepCopyInto(out *MirroringStatusSpec)

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

type Module

type Module struct {
	// Name is the name of the ceph manager module
	// +optional
	Name string `json:"name,omitempty"`
	// Enabled determines whether a module should be enabled or not
	// +optional
	Enabled bool `json:"enabled,omitempty"`
}

Module represents mgr modules that the user wants to enable or disable

func (*Module) DeepCopy

func (in *Module) DeepCopy() *Module

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

func (*Module) DeepCopyInto

func (in *Module) DeepCopyInto(out *Module)

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

type MonSpec

type MonSpec struct {
	// Count is the number of Ceph monitors
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=9
	// +optional
	Count int `json:"count,omitempty"`
	// AllowMultiplePerNode determines if we can run multiple monitors on the same node (not recommended)
	// +optional
	AllowMultiplePerNode bool `json:"allowMultiplePerNode,omitempty"`
	// +optional
	FailureDomainLabel string `json:"failureDomainLabel,omitempty"`
	// Zones are specified when we want to provide zonal awareness to mons
	// +optional
	Zones []MonZoneSpec `json:"zones,omitempty"`
	// StretchCluster is the stretch cluster specification
	// +optional
	StretchCluster *StretchClusterSpec `json:"stretchCluster,omitempty"`
	// VolumeClaimTemplate is the PVC definition
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	VolumeClaimTemplate *VolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
}

MonSpec represents the specification of the monitor +kubebuilder:validation:XValidation:message="zones must be less than or equal to count",rule="!has(self.zones) || (has(self.zones) && (size(self.zones) <= self.count))" +kubebuilder:validation:XValidation:message="stretchCluster zones must be equal to 3",rule="!has(self.stretchCluster) || (has(self.stretchCluster) && (size(self.stretchCluster.zones) > 0) && (size(self.stretchCluster.zones) == 3))"

func (*MonSpec) DeepCopy

func (in *MonSpec) DeepCopy() *MonSpec

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

func (*MonSpec) DeepCopyInto

func (in *MonSpec) DeepCopyInto(out *MonSpec)

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

type MonZoneSpec

type MonZoneSpec struct {
	// Name is the name of the zone
	// +optional
	Name string `json:"name,omitempty"`
	// Arbiter determines if the zone contains the arbiter used for stretch cluster mode
	// +optional
	Arbiter bool `json:"arbiter,omitempty"`
	// VolumeClaimTemplate is the PVC template
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	VolumeClaimTemplate *VolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
}

MonZoneSpec represents the specification of a zone in a Ceph Cluster

func (*MonZoneSpec) DeepCopy

func (in *MonZoneSpec) DeepCopy() *MonZoneSpec

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

func (*MonZoneSpec) DeepCopyInto

func (in *MonZoneSpec) DeepCopyInto(out *MonZoneSpec)

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

type MonitoringSpec

type MonitoringSpec struct {
	// Enabled determines whether to create the prometheus rules for the ceph cluster. If true, the prometheus
	// types must exist or the creation will fail. Default is false.
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// Whether to disable the metrics reported by Ceph. If false, the prometheus mgr module and Ceph exporter are enabled.
	// If true, the prometheus mgr module and Ceph exporter are both disabled. Default is false.
	// +optional
	MetricsDisabled bool `json:"metricsDisabled,omitempty"`

	// ExternalMgrEndpoints points to an existing Ceph prometheus exporter endpoint
	// +optional
	// +nullable
	ExternalMgrEndpoints []v1.EndpointAddress `json:"externalMgrEndpoints,omitempty"`

	// ExternalMgrPrometheusPort Prometheus exporter port
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	ExternalMgrPrometheusPort uint16 `json:"externalMgrPrometheusPort,omitempty"`

	// Port is the prometheus server port
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	Port int `json:"port,omitempty"`

	// Interval determines prometheus scrape interval
	// +optional
	Interval *metav1.Duration `json:"interval,omitempty"`
}

MonitoringSpec represents the settings for Prometheus based Ceph monitoring

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 MultiClusterServiceSpec

type MultiClusterServiceSpec struct {
	// Enable multiClusterService to export the mon and OSD services to peer cluster.
	// Ensure that peer clusters are connected using an MCS API compatible application,
	// like Globalnet Submariner.
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// ClusterID uniquely identifies a cluster. It is used as a prefix to nslookup exported
	// services. For example: <clusterid>.<svc>.<ns>.svc.clusterset.local
	ClusterID string `json:"clusterID,omitempty"`
}

func (*MultiClusterServiceSpec) DeepCopy

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

func (*MultiClusterServiceSpec) DeepCopyInto

func (in *MultiClusterServiceSpec) DeepCopyInto(out *MultiClusterServiceSpec)

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

type NFSGaneshaSpec

type NFSGaneshaSpec struct {
	// RADOS is the Ganesha RADOS specification
	// +nullable
	// +optional
	RADOS GaneshaRADOSSpec `json:"rados,omitempty"`

	// Server is the Ganesha Server specification
	Server GaneshaServerSpec `json:"server"`

	// Security allows specifying security configurations for the NFS cluster
	// +nullable
	// +optional
	Security *NFSSecuritySpec `json:"security"`
}

NFSGaneshaSpec represents the spec of an nfs ganesha server

func (*NFSGaneshaSpec) DeepCopy

func (in *NFSGaneshaSpec) DeepCopy() *NFSGaneshaSpec

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

func (*NFSGaneshaSpec) DeepCopyInto

func (in *NFSGaneshaSpec) DeepCopyInto(out *NFSGaneshaSpec)

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

type NFSSecuritySpec

type NFSSecuritySpec struct {
	// SSSD enables integration with System Security Services Daemon (SSSD). SSSD can be used to
	// provide user ID mapping from a number of sources. See https://sssd.io for more information
	// about the SSSD project.
	// +optional
	// +nullable
	SSSD *SSSDSpec `json:"sssd,omitempty"`

	// Kerberos configures NFS-Ganesha to secure NFS client connections with Kerberos.
	// +optional
	// +nullable
	Kerberos *KerberosSpec `json:"kerberos,omitempty"`
}

NFSSecuritySpec represents security configurations for an NFS server pod

func (*NFSSecuritySpec) DeepCopy

func (in *NFSSecuritySpec) DeepCopy() *NFSSecuritySpec

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

func (*NFSSecuritySpec) DeepCopyInto

func (in *NFSSecuritySpec) DeepCopyInto(out *NFSSecuritySpec)

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

func (*NFSSecuritySpec) KerberosEnabled

func (n *NFSSecuritySpec) KerberosEnabled() bool

KerberosEnabled returns true if Kerberos is enabled from the spec.

func (*NFSSecuritySpec) Validate

func (sec *NFSSecuritySpec) Validate() error

type NamedBlockPoolSpec

type NamedBlockPoolSpec struct {
	// The desired name of the pool if different from the CephBlockPool CR name.
	// +kubebuilder:validation:Enum=.rgw.root;.nfs;.mgr
	// +optional
	Name string `json:"name,omitempty"`
	// The core pool configuration
	PoolSpec `json:",inline"`
}

NamedBlockPoolSpec allows a block pool to be created with a non-default name. This is more specific than the NamedPoolSpec so we get schema validation on the allowed pool names that can be specified.

func (*NamedBlockPoolSpec) DeepCopy

func (in *NamedBlockPoolSpec) DeepCopy() *NamedBlockPoolSpec

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

func (*NamedBlockPoolSpec) DeepCopyInto

func (in *NamedBlockPoolSpec) DeepCopyInto(out *NamedBlockPoolSpec)

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

type NamedPoolSpec

type NamedPoolSpec struct {
	// Name of the pool
	Name string `json:"name,omitempty"`
	// PoolSpec represents the spec of ceph pool
	PoolSpec `json:",inline"`
}

NamedPoolSpec represents the named ceph pool spec

func (*NamedPoolSpec) DeepCopy

func (in *NamedPoolSpec) DeepCopy() *NamedPoolSpec

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

func (*NamedPoolSpec) DeepCopyInto

func (in *NamedPoolSpec) DeepCopyInto(out *NamedPoolSpec)

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

type NetworkProviderType

type NetworkProviderType string

NetworkProviderType defines valid network providers for Rook. +kubebuilder:validation:Enum="";host;multus

type NetworkSpec

type NetworkSpec struct {
	// Provider is what provides network connectivity to the cluster e.g. "host" or "multus".
	// If the Provider is updated from being empty to "host" on a running cluster, then the operator will automatically fail over all the mons to apply the "host" network settings.
	// +kubebuilder:validation:XValidation:message="network provider must be disabled (reverted to empty string) before a new provider is enabled",rule="self == ” || self == oldSelf"
	// +nullable
	// +optional
	Provider NetworkProviderType `json:"provider,omitempty"`

	// Selectors define NetworkAttachmentDefinitions to be used for Ceph public and/or cluster
	// networks when the "multus" network provider is used. This config section is not used for
	// other network providers.
	//
	// Valid keys are "public" and "cluster". Refer to Ceph networking documentation for more:
	// https://docs.ceph.com/en/reef/rados/configuration/network-config-ref/
	//
	// Refer to Multus network annotation documentation for help selecting values:
	// https://github.com/k8snetworkplumbingwg/multus-cni/blob/master/docs/how-to-use.md#run-pod-with-network-annotation
	//
	// Rook will make a best-effort attempt to automatically detect CIDR address ranges for given
	// network attachment definitions. Rook's methods are robust but may be imprecise for
	// sufficiently complicated networks. Rook's auto-detection process obtains a new IP address
	// lease for each CephCluster reconcile. If Rook fails to detect, incorrectly detects, only
	// partially detects, or if underlying networks do not support reusing old IP addresses, it is
	// best to use the 'addressRanges' config section to specify CIDR ranges for the Ceph cluster.
	//
	// As a contrived example, one can use a theoretical Kubernetes-wide network for Ceph client
	// traffic and a theoretical Rook-only network for Ceph replication traffic as shown:
	//   selectors:
	//     public: "default/cluster-fast-net"
	//     cluster: "rook-ceph/ceph-backend-net"
	//
	// +nullable
	// +optional
	Selectors map[CephNetworkType]string `json:"selectors,omitempty"`

	// AddressRanges specify a list of CIDRs that Rook will apply to Ceph's 'public_network' and/or
	// 'cluster_network' configurations. This config section may be used for the "host" or "multus"
	// network providers.
	// +nullable
	// +optional
	AddressRanges *AddressRangesSpec `json:"addressRanges,omitempty"`

	// Settings for network connections such as compression and encryption across the
	// wire.
	// +nullable
	// +optional
	Connections *ConnectionsSpec `json:"connections,omitempty"`

	// HostNetwork to enable host network.
	// If host networking is enabled or disabled on a running cluster, then the operator will automatically fail over all the mons to
	// apply the new network settings.
	// +optional
	HostNetwork bool `json:"hostNetwork,omitempty"`

	// IPFamily is the single stack IPv6 or IPv4 protocol
	// +kubebuilder:validation:Enum=IPv4;IPv6
	// +nullable
	// +optional
	IPFamily IPFamilyType `json:"ipFamily,omitempty"`

	// DualStack determines whether Ceph daemons should listen on both IPv4 and IPv6
	// +optional
	DualStack bool `json:"dualStack,omitempty"`

	// Enable multiClusterService to export the Services between peer clusters
	// +optional
	MultiClusterService MultiClusterServiceSpec `json:"multiClusterService,omitempty"`
}

NetworkSpec for Ceph includes backward compatibility code +kubebuilder:validation:XValidation:message="at least one network selector must be specified when using multus",rule="!has(self.provider) || (self.provider != 'multus' || (self.provider == 'multus' && size(self.selectors) > 0))" +kubebuilder:validation:XValidation:message=`the legacy hostNetwork setting can only be set if the network.provider is set to the empty string`,rule=`!has(self.hostNetwork) || self.hostNetwork == false || !has(self.provider) || self.provider == ""`

func (*NetworkSpec) DeepCopy

func (in *NetworkSpec) DeepCopy() *NetworkSpec

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

func (*NetworkSpec) DeepCopyInto

func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)

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

func (*NetworkSpec) GetNetworkSelection

func (n *NetworkSpec) GetNetworkSelection(clusterNamespace string, network CephNetworkType) (*nadv1.NetworkSelectionElement, error)

GetNetworkSelection gets the network selection for a given Ceph network, or nil if the network doesn't have a selection.

func (*NetworkSpec) IsHost

func (n *NetworkSpec) IsHost() bool

IsHost get whether to use host network provider. This method also preserve compatibility with the old HostNetwork field.

func (*NetworkSpec) IsMultus

func (n *NetworkSpec) IsMultus() bool

IsMultus get whether to use multus network provider

func (*NetworkSpec) NetworkHasSelection

func (n *NetworkSpec) NetworkHasSelection(network CephNetworkType) bool

NetworkHasSelection returns true if the given Ceph network has a selection.

type Node

type Node struct {
	// +optional
	Name string `json:"name,omitempty"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Resources v1.ResourceRequirements `json:"resources,omitempty"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Config    map[string]string `json:"config,omitempty"`
	Selection `json:",inline"`
}

Node is a storage nodes +nullable

func (*Node) DeepCopy

func (in *Node) DeepCopy() *Node

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

func (*Node) DeepCopyInto

func (in *Node) DeepCopyInto(out *Node)

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

type NodesByName

type NodesByName []Node

NodesByName implements an interface to sort nodes by name

func (NodesByName) DeepCopy

func (in NodesByName) DeepCopy() NodesByName

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

func (NodesByName) DeepCopyInto

func (in NodesByName) DeepCopyInto(out *NodesByName)

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

func (NodesByName) Len

func (s NodesByName) Len() int

func (NodesByName) Less

func (s NodesByName) Less(i, j int) bool

func (NodesByName) Swap

func (s NodesByName) Swap(i, j int)

type NotificationFilterRule

type NotificationFilterRule struct {
	// Name of the metadata or tag
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// Value to filter on
	Value string `json:"value"`
}

NotificationFilterRule represent a single rule in the Notification Filter spec

func (*NotificationFilterRule) DeepCopy

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

func (*NotificationFilterRule) DeepCopyInto

func (in *NotificationFilterRule) DeepCopyInto(out *NotificationFilterRule)

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

type NotificationFilterSpec

type NotificationFilterSpec struct {
	// Filters based on the object's key
	// +optional
	KeyFilters []NotificationKeyFilterRule `json:"keyFilters,omitempty"`
	// Filters based on the object's metadata
	// +optional
	MetadataFilters []NotificationFilterRule `json:"metadataFilters,omitempty"`
	// Filters based on the object's tags
	// +optional
	TagFilters []NotificationFilterRule `json:"tagFilters,omitempty"`
}

NotificationFilterSpec represent the spec of a Bucket Notification filter

func (*NotificationFilterSpec) DeepCopy

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

func (*NotificationFilterSpec) DeepCopyInto

func (in *NotificationFilterSpec) DeepCopyInto(out *NotificationFilterSpec)

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

type NotificationKeyFilterRule

type NotificationKeyFilterRule struct {
	// Name of the filter - prefix/suffix/regex
	// +kubebuilder:validation:Enum=prefix;suffix;regex
	Name string `json:"name"`
	// Value to filter on
	Value string `json:"value"`
}

NotificationKeyFilterRule represent a single key rule in the Notification Filter spec

func (*NotificationKeyFilterRule) DeepCopy

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

func (*NotificationKeyFilterRule) DeepCopyInto

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

type OSDStatus

type OSDStatus struct {
	// StoreType is a mapping between the OSD backend stores and number of OSDs using these stores
	StoreType map[string]int `json:"storeType,omitempty"`
}

OSDStatus represents OSD status of the ceph Cluster

func (*OSDStatus) DeepCopy

func (in *OSDStatus) DeepCopy() *OSDStatus

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

func (*OSDStatus) DeepCopyInto

func (in *OSDStatus) DeepCopyInto(out *OSDStatus)

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

type OSDStore

type OSDStore struct {
	// Type of backend storage to be used while creating OSDs. If empty, then bluestore will be used
	// +optional
	// +kubebuilder:validation:Enum=bluestore;bluestore-rdr;
	Type string `json:"type,omitempty"`
	// UpdateStore updates the backend store for existing OSDs. It destroys each OSD one at a time, cleans up the backing disk
	// and prepares same OSD on that disk
	// +optional
	// +kubebuilder:validation:Pattern=`^$|^yes-really-update-store$`
	UpdateStore string `json:"updateStore,omitempty"`
}

OSDStore is the backend storage type used for creating the OSDs

func (*OSDStore) DeepCopy

func (in *OSDStore) DeepCopy() *OSDStore

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

func (*OSDStore) DeepCopyInto

func (in *OSDStore) DeepCopyInto(out *OSDStore)

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

type ObjectEndpoints

type ObjectEndpoints struct {
	// +optional
	// +nullable
	Insecure []string `json:"insecure"`
	// +optional
	// +nullable
	Secure []string `json:"secure"`
}

func (*ObjectEndpoints) DeepCopy

func (in *ObjectEndpoints) DeepCopy() *ObjectEndpoints

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

func (*ObjectEndpoints) DeepCopyInto

func (in *ObjectEndpoints) DeepCopyInto(out *ObjectEndpoints)

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

type ObjectHealthCheckSpec

type ObjectHealthCheckSpec struct {

	// +optional
	ReadinessProbe *ProbeSpec `json:"readinessProbe,omitempty"`
	// +optional
	StartupProbe *ProbeSpec `json:"startupProbe,omitempty"`
}

ObjectHealthCheckSpec represents the health check of an object store

func (*ObjectHealthCheckSpec) DeepCopy

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

func (*ObjectHealthCheckSpec) DeepCopyInto

func (in *ObjectHealthCheckSpec) DeepCopyInto(out *ObjectHealthCheckSpec)

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

type ObjectRealmSpec

type ObjectRealmSpec struct {
	Pull PullSpec `json:"pull,omitempty"`
}

ObjectRealmSpec represent the spec of an ObjectRealm

func (*ObjectRealmSpec) DeepCopy

func (in *ObjectRealmSpec) DeepCopy() *ObjectRealmSpec

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

func (*ObjectRealmSpec) DeepCopyInto

func (in *ObjectRealmSpec) DeepCopyInto(out *ObjectRealmSpec)

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

func (*ObjectRealmSpec) IsPullRealm

func (s *ObjectRealmSpec) IsPullRealm() bool

type ObjectSharedPoolsSpec

type ObjectSharedPoolsSpec struct {
	// The metadata pool used for creating RADOS namespaces in the object store
	// +kubebuilder:validation:XValidation:message="object store shared metadata pool is immutable",rule="self == oldSelf"
	MetadataPoolName string `json:"metadataPoolName"`

	// The data pool used for creating RADOS namespaces in the object store
	// +kubebuilder:validation:XValidation:message="object store shared data pool is immutable",rule="self == oldSelf"
	DataPoolName string `json:"dataPoolName"`

	// Whether the RADOS namespaces should be preserved on deletion of the object store
	// +optional
	PreserveRadosNamespaceDataOnDelete bool `json:"preserveRadosNamespaceDataOnDelete"`
}

ObjectSharedPoolsSpec represents object store pool info when configuring RADOS namespaces in existing pools.

type ObjectStoreHostingSpec

type ObjectStoreHostingSpec struct {
	// A list of DNS names in which bucket can be accessed via virtual host path. These names need to valid according RFC-1123.
	// Each domain requires wildcard support like ingress loadbalancer.
	// Do not include the wildcard itself in the list of hostnames (e.g. use "mystore.example.com" instead of "*.mystore.example.com").
	// Add all hostnames including user-created Kubernetes Service endpoints to the list.
	// CephObjectStore Service Endpoints and CephObjectZone customEndpoints are automatically added to the list.
	// The feature is supported only for Ceph v18 and later versions.
	// +optional
	DNSNames []string `json:"dnsNames,omitempty"`
}

ObjectStoreHostingSpec represents the hosting settings for the object store

func (*ObjectStoreHostingSpec) DeepCopy

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

func (*ObjectStoreHostingSpec) DeepCopyInto

func (in *ObjectStoreHostingSpec) DeepCopyInto(out *ObjectStoreHostingSpec)

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

type ObjectStoreSecuritySpec

type ObjectStoreSecuritySpec struct {
	// +optional
	// +nullable
	SecuritySpec `json:""`

	// The settings for supporting AWS-SSE:S3 with RGW
	// +optional
	// +nullable
	ServerSideEncryptionS3 KeyManagementServiceSpec `json:"s3,omitempty"`
}

ObjectStoreSecuritySpec is spec to define security features like encryption

func (*ObjectStoreSecuritySpec) DeepCopy

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

func (*ObjectStoreSecuritySpec) DeepCopyInto

func (in *ObjectStoreSecuritySpec) DeepCopyInto(out *ObjectStoreSecuritySpec)

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

type ObjectStoreSpec

type ObjectStoreSpec struct {
	// The metadata pool settings
	// +optional
	// +nullable
	MetadataPool PoolSpec `json:"metadataPool,omitempty"`

	// The data pool settings
	// +optional
	// +nullable
	DataPool PoolSpec `json:"dataPool,omitempty"`

	// The pool information when configuring RADOS namespaces in existing pools.
	// +optional
	// +nullable
	SharedPools ObjectSharedPoolsSpec `json:"sharedPools"`

	// Preserve pools on object store deletion
	// +optional
	PreservePoolsOnDelete bool `json:"preservePoolsOnDelete,omitempty"`

	// The rgw pod info
	// +optional
	// +nullable
	Gateway GatewaySpec `json:"gateway"`

	// The multisite info
	// +optional
	// +nullable
	Zone ZoneSpec `json:"zone,omitempty"`

	// The RGW health probes
	// +optional
	// +nullable
	HealthCheck ObjectHealthCheckSpec `json:"healthCheck,omitempty"`

	// Security represents security settings
	// +optional
	// +nullable
	Security *ObjectStoreSecuritySpec `json:"security,omitempty"`

	// The list of allowed namespaces in addition to the object store namespace
	// where ceph object store users may be created. Specify "*" to allow all
	// namespaces, otherwise list individual namespaces that are to be allowed.
	// This is useful for applications that need object store credentials
	// to be created in their own namespace, where neither OBCs nor COSI
	// is being used to create buckets. The default is empty.
	// +optional
	AllowUsersInNamespaces []string `json:"allowUsersInNamespaces,omitempty"`

	// Hosting settings for the object store
	// +optional
	Hosting *ObjectStoreHostingSpec `json:"hosting,omitempty"`
}

ObjectStoreSpec represent the spec of a pool

func (*ObjectStoreSpec) DeepCopy

func (in *ObjectStoreSpec) DeepCopy() *ObjectStoreSpec

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

func (*ObjectStoreSpec) DeepCopyInto

func (in *ObjectStoreSpec) DeepCopyInto(out *ObjectStoreSpec)

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

func (*ObjectStoreSpec) GetPort

func (s *ObjectStoreSpec) GetPort() (int32, error)

func (*ObjectStoreSpec) GetServiceServingCert

func (s *ObjectStoreSpec) GetServiceServingCert() string

func (*ObjectStoreSpec) IsExternal

func (s *ObjectStoreSpec) IsExternal() bool

func (*ObjectStoreSpec) IsHostNetwork

func (s *ObjectStoreSpec) IsHostNetwork(c *ClusterSpec) bool

func (*ObjectStoreSpec) IsMultisite

func (s *ObjectStoreSpec) IsMultisite() bool

func (*ObjectStoreSpec) IsRGWDashboardEnabled

func (s *ObjectStoreSpec) IsRGWDashboardEnabled() bool

func (*ObjectStoreSpec) IsTLSEnabled

func (s *ObjectStoreSpec) IsTLSEnabled() bool

type ObjectStoreStatus

type ObjectStoreStatus struct {
	// +optional
	Phase ConditionType `json:"phase,omitempty"`
	// +optional
	Message string `json:"message,omitempty"`
	// +optional
	Endpoints ObjectEndpoints `json:"endpoints"`
	// +optional
	// +nullable
	Info       map[string]string `json:"info,omitempty"`
	Conditions []Condition       `json:"conditions,omitempty"`
	// ObservedGeneration is the latest generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

ObjectStoreStatus represents the status of a Ceph Object Store resource

func (*ObjectStoreStatus) DeepCopy

func (in *ObjectStoreStatus) DeepCopy() *ObjectStoreStatus

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

func (*ObjectStoreStatus) DeepCopyInto

func (in *ObjectStoreStatus) DeepCopyInto(out *ObjectStoreStatus)

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

type ObjectStoreUserSpec

type ObjectStoreUserSpec struct {
	// The store the user will be created in
	// +optional
	Store string `json:"store,omitempty"`
	// The display name for the ceph users
	// +optional
	DisplayName string `json:"displayName,omitempty"`
	// +optional
	// +nullable
	Capabilities *ObjectUserCapSpec `json:"capabilities,omitempty"`
	// +optional
	// +nullable
	Quotas *ObjectUserQuotaSpec `json:"quotas,omitempty"`
	// The namespace where the parent CephCluster and CephObjectStore are found
	// +optional
	ClusterNamespace string `json:"clusterNamespace,omitempty"`
}

ObjectStoreUserSpec represent the spec of an Objectstoreuser

func (*ObjectStoreUserSpec) DeepCopy

func (in *ObjectStoreUserSpec) DeepCopy() *ObjectStoreUserSpec

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

func (*ObjectStoreUserSpec) DeepCopyInto

func (in *ObjectStoreUserSpec) DeepCopyInto(out *ObjectStoreUserSpec)

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

type ObjectStoreUserStatus

type ObjectStoreUserStatus struct {
	// +optional
	Phase string `json:"phase,omitempty"`
	// +optional
	// +nullable
	Info map[string]string `json:"info,omitempty"`
	// ObservedGeneration is the latest generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

ObjectStoreUserStatus represents the status Ceph Object Store Gateway User

func (*ObjectStoreUserStatus) DeepCopy

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

func (*ObjectStoreUserStatus) DeepCopyInto

func (in *ObjectStoreUserStatus) DeepCopyInto(out *ObjectStoreUserStatus)

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

type ObjectUserCapSpec

type ObjectUserCapSpec struct {
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	User string `json:"user,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	Users string `json:"users,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	Bucket string `json:"bucket,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	Buckets string `json:"buckets,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Admin capabilities to read/write Ceph object store metadata. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	MetaData string `json:"metadata,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Admin capabilities to read/write Ceph object store usage. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	Usage string `json:"usage,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	Zone string `json:"zone,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Admin capabilities to read/write roles for user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	Roles string `json:"roles,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Admin capabilities to read/write information about the user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	Info string `json:"info,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Add capabilities for user to send request to RGW Cache API header. Documented in https://docs.ceph.com/en/quincy/radosgw/rgw-cache/#cache-api
	AMZCache string `json:"amz-cache,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Add capabilities for user to change bucket index logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	BiLog string `json:"bilog,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Add capabilities for user to change metadata logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	MdLog string `json:"mdlog,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Add capabilities for user to change data logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	DataLog string `json:"datalog,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Add capabilities for user to change user policies. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	UserPolicy string `json:"user-policy,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Add capabilities for user to change oidc provider. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	OidcProvider string `json:"oidc-provider,omitempty"`
	// +optional
	// +kubebuilder:validation:Enum={"*","read","write","read, write"}
	// Add capabilities for user to set rate limiter for user and bucket. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
	RateLimit string `json:"ratelimit,omitempty"`
}

Additional admin-level capabilities for the Ceph object store user

func (*ObjectUserCapSpec) DeepCopy

func (in *ObjectUserCapSpec) DeepCopy() *ObjectUserCapSpec

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

func (*ObjectUserCapSpec) DeepCopyInto

func (in *ObjectUserCapSpec) DeepCopyInto(out *ObjectUserCapSpec)

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

type ObjectUserQuotaSpec

type ObjectUserQuotaSpec struct {
	// Maximum bucket limit for the ceph user
	// +optional
	// +nullable
	MaxBuckets *int `json:"maxBuckets,omitempty"`
	// Maximum size limit of all objects across all the user's buckets
	// See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info.
	// +optional
	// +nullable
	MaxSize *resource.Quantity `json:"maxSize,omitempty"`
	// Maximum number of objects across all the user's buckets
	// +optional
	// +nullable
	MaxObjects *int64 `json:"maxObjects,omitempty"`
}

ObjectUserQuotaSpec can be used to set quotas for the object store user to limit their usage. See the [Ceph docs](https://docs.ceph.com/en/latest/radosgw/admin/?#quota-management) for more

func (*ObjectUserQuotaSpec) DeepCopy

func (in *ObjectUserQuotaSpec) DeepCopy() *ObjectUserQuotaSpec

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

func (*ObjectUserQuotaSpec) DeepCopyInto

func (in *ObjectUserQuotaSpec) DeepCopyInto(out *ObjectUserQuotaSpec)

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

type ObjectZoneGroupSpec

type ObjectZoneGroupSpec struct {
	//The display name for the ceph users
	Realm string `json:"realm"`
}

ObjectZoneGroupSpec represent the spec of an ObjectZoneGroup

func (*ObjectZoneGroupSpec) DeepCopy

func (in *ObjectZoneGroupSpec) DeepCopy() *ObjectZoneGroupSpec

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

func (*ObjectZoneGroupSpec) DeepCopyInto

func (in *ObjectZoneGroupSpec) DeepCopyInto(out *ObjectZoneGroupSpec)

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

type ObjectZoneSpec

type ObjectZoneSpec struct {
	//The display name for the ceph users
	ZoneGroup string `json:"zoneGroup"`

	// The metadata pool settings
	// +nullable
	MetadataPool PoolSpec `json:"metadataPool"`

	// The data pool settings
	// +nullable
	DataPool PoolSpec `json:"dataPool"`

	// The pool information when configuring RADOS namespaces in existing pools.
	// +optional
	// +nullable
	SharedPools ObjectSharedPoolsSpec `json:"sharedPools"`

	// If this zone cannot be accessed from other peer Ceph clusters via the ClusterIP Service
	// endpoint created by Rook, you must set this to the externally reachable endpoint(s). You may
	// include the port in the definition. For example: "https://my-object-store.my-domain.net:443".
	// In many cases, you should set this to the endpoint of the ingress resource that makes the
	// CephObjectStore associated with this CephObjectStoreZone reachable to peer clusters.
	// The list can have one or more endpoints pointing to different RGW servers in the zone.
	//
	// If a CephObjectStore endpoint is omitted from this list, that object store's gateways will
	// not receive multisite replication data
	// (see CephObjectStore.spec.gateway.disableMultisiteSyncTraffic).
	// +nullable
	// +optional
	CustomEndpoints []string `json:"customEndpoints,omitempty"`

	// Preserve pools on object zone deletion
	// +optional
	// +kubebuilder:default=true
	PreservePoolsOnDelete bool `json:"preservePoolsOnDelete"`
}

ObjectZoneSpec represent the spec of an ObjectZone

func (*ObjectZoneSpec) DeepCopy

func (in *ObjectZoneSpec) DeepCopy() *ObjectZoneSpec

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

func (*ObjectZoneSpec) DeepCopyInto

func (in *ObjectZoneSpec) DeepCopyInto(out *ObjectZoneSpec)

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

type PeerRemoteSpec

type PeerRemoteSpec struct {
	// ClientName is cephx name
	// +optional
	ClientName string `json:"client_name,omitempty"`
	// ClusterName is the name of the cluster
	// +optional
	ClusterName string `json:"cluster_name,omitempty"`
	// FsName is the filesystem name
	// +optional
	FsName string `json:"fs_name,omitempty"`
}

func (*PeerRemoteSpec) DeepCopy

func (in *PeerRemoteSpec) DeepCopy() *PeerRemoteSpec

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

func (*PeerRemoteSpec) DeepCopyInto

func (in *PeerRemoteSpec) DeepCopyInto(out *PeerRemoteSpec)

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

type PeerStatSpec

type PeerStatSpec struct {
	// FailureCount is the number of mirroring failure
	// +optional
	FailureCount int `json:"failure_count,omitempty"`
	// RecoveryCount is the number of recovery attempted after failures
	// +optional
	RecoveryCount int `json:"recovery_count,omitempty"`
}

PeerStatSpec are the mirror stat with a given peer

func (*PeerStatSpec) DeepCopy

func (in *PeerStatSpec) DeepCopy() *PeerStatSpec

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

func (*PeerStatSpec) DeepCopyInto

func (in *PeerStatSpec) DeepCopyInto(out *PeerStatSpec)

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

type PeersSpec

type PeersSpec struct {
	// UUID is the peer UUID
	// +optional
	UUID string `json:"uuid,omitempty"`
	// Direction is the peer mirroring direction
	// +optional
	Direction string `json:"direction,omitempty"`
	// SiteName is the current site name
	// +optional
	SiteName string `json:"site_name,omitempty"`
	// MirrorUUID is the mirror UUID
	// +optional
	MirrorUUID string `json:"mirror_uuid,omitempty"`
	// ClientName is the CephX user used to connect to the peer
	// +optional
	ClientName string `json:"client_name,omitempty"`
}

PeersSpec contains peer details

func (*PeersSpec) DeepCopy

func (in *PeersSpec) DeepCopy() *PeersSpec

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

func (*PeersSpec) DeepCopyInto

func (in *PeersSpec) DeepCopyInto(out *PeersSpec)

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

type Placement

type Placement struct {
	// NodeAffinity is a group of node affinity scheduling rules
	// +optional
	NodeAffinity *v1.NodeAffinity `json:"nodeAffinity,omitempty"`
	// PodAffinity is a group of inter pod affinity scheduling rules
	// +optional
	PodAffinity *v1.PodAffinity `json:"podAffinity,omitempty"`
	// PodAntiAffinity is a group of inter pod anti affinity scheduling rules
	// +optional
	PodAntiAffinity *v1.PodAntiAffinity `json:"podAntiAffinity,omitempty"`
	// The pod this Toleration is attached to tolerates any taint that matches
	// the triple <key,value,effect> using the matching operator <operator>
	// +optional
	Tolerations []v1.Toleration `json:"tolerations,omitempty"`
	// TopologySpreadConstraint specifies how to spread matching pods among the given topology
	// +optional
	TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
}

Placement is the placement for an object

func GetArbiterPlacement

func GetArbiterPlacement(p PlacementSpec) Placement

GetArbiterPlacement returns the placement for the arbiter MON service

func GetMgrPlacement

func GetMgrPlacement(p PlacementSpec) Placement

GetMgrPlacement returns the placement for the MGR service

func GetMonPlacement

func GetMonPlacement(p PlacementSpec) Placement

GetMonPlacement returns the placement for the MON service

func GetOSDPlacement

func GetOSDPlacement(p PlacementSpec) Placement

GetOSDPlacement returns the placement for the OSD service

func (Placement) ApplyToPodSpec

func (p Placement) ApplyToPodSpec(t *v1.PodSpec)

ApplyToPodSpec adds placement to a pod spec

func (*Placement) DeepCopy

func (in *Placement) DeepCopy() *Placement

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

func (*Placement) DeepCopyInto

func (in *Placement) DeepCopyInto(out *Placement)

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

func (Placement) Merge

func (p Placement) Merge(with Placement) Placement

Merge returns a Placement which results from merging the attributes of the original Placement with the attributes of the supplied one. The supplied Placement's attributes will override the original ones if defined.

type PlacementSpec

type PlacementSpec map[KeyType]Placement

PlacementSpec is the placement for core ceph daemons part of the CephCluster CRD

func (PlacementSpec) All

func (p PlacementSpec) All() Placement

func (PlacementSpec) DeepCopy

func (in PlacementSpec) DeepCopy() PlacementSpec

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

func (PlacementSpec) DeepCopyInto

func (in PlacementSpec) DeepCopyInto(out *PlacementSpec)

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

type PoolMirroringInfo

type PoolMirroringInfo struct {
	// Mode is the mirroring mode
	// +optional
	Mode string `json:"mode,omitempty"`
	// SiteName is the current site name
	// +optional
	SiteName string `json:"site_name,omitempty"`
	// Peers are the list of peer sites connected to that cluster
	// +optional
	Peers []PeersSpec `json:"peers,omitempty"`
}

PoolMirroringInfo is the mirroring info of a given pool

func (*PoolMirroringInfo) DeepCopy

func (in *PoolMirroringInfo) DeepCopy() *PoolMirroringInfo

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

func (*PoolMirroringInfo) DeepCopyInto

func (in *PoolMirroringInfo) DeepCopyInto(out *PoolMirroringInfo)

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

type PoolMirroringStatus

type PoolMirroringStatus struct {
	// Summary is the mirroring status summary
	// +optional
	Summary *PoolMirroringStatusSummarySpec `json:"summary,omitempty"`
}

PoolMirroringStatus is the pool mirror status

func (*PoolMirroringStatus) DeepCopy

func (in *PoolMirroringStatus) DeepCopy() *PoolMirroringStatus

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

func (*PoolMirroringStatus) DeepCopyInto

func (in *PoolMirroringStatus) DeepCopyInto(out *PoolMirroringStatus)

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

type PoolMirroringStatusSummarySpec

type PoolMirroringStatusSummarySpec struct {
	// Health is the mirroring health
	// +optional
	Health string `json:"health,omitempty"`
	// DaemonHealth is the health of the mirroring daemon
	// +optional
	DaemonHealth string `json:"daemon_health,omitempty"`
	// ImageHealth is the health of the mirrored image
	// +optional
	ImageHealth string `json:"image_health,omitempty"`
	// States is the various state for all mirrored images
	// +optional
	// +nullable
	States StatesSpec `json:"states,omitempty"`
}

PoolMirroringStatusSummarySpec is the summary output of the command

func (*PoolMirroringStatusSummarySpec) DeepCopy

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

func (*PoolMirroringStatusSummarySpec) DeepCopyInto

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

type PoolSpec

type PoolSpec struct {
	// The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map
	// +optional
	FailureDomain string `json:"failureDomain,omitempty"`

	// The root of the crush hierarchy utilized by the pool
	// +optional
	// +nullable
	CrushRoot string `json:"crushRoot,omitempty"`

	// The device class the OSD should set to for use in the pool
	// +optional
	// +nullable
	DeviceClass string `json:"deviceClass,omitempty"`

	// DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force"
	// The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force)
	// +kubebuilder:validation:Enum=none;passive;aggressive;force;""
	// Do NOT set a default value for kubebuilder as this will override the Parameters
	// +optional
	// +nullable
	CompressionMode string `json:"compressionMode,omitempty"`

	// The replication settings
	// +optional
	Replicated ReplicatedSpec `json:"replicated,omitempty"`

	// The erasure code settings
	// +optional
	ErasureCoded ErasureCodedSpec `json:"erasureCoded,omitempty"`

	// Parameters is a list of properties to enable on a given pool
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	// +nullable
	Parameters map[string]string `json:"parameters,omitempty"`

	// EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
	EnableRBDStats bool `json:"enableRBDStats,omitempty"`

	// The mirroring settings
	Mirroring MirroringSpec `json:"mirroring,omitempty"`

	// The mirroring statusCheck
	// +kubebuilder:pruning:PreserveUnknownFields
	StatusCheck MirrorHealthCheckSpec `json:"statusCheck,omitempty"`

	// The quota settings
	// +optional
	// +nullable
	Quotas QuotaSpec `json:"quotas,omitempty"`

	// The application name to set on the pool. Only expected to be set for rgw pools.
	// +optional
	Application string `json:"application"`
}

PoolSpec represents the spec of ceph pool

func (*PoolSpec) DeepCopy

func (in *PoolSpec) DeepCopy() *PoolSpec

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

func (*PoolSpec) DeepCopyInto

func (in *PoolSpec) DeepCopyInto(out *PoolSpec)

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

func (*PoolSpec) IsCompressionEnabled

func (p *PoolSpec) IsCompressionEnabled() bool

func (*PoolSpec) IsErasureCoded

func (p *PoolSpec) IsErasureCoded() bool

func (*PoolSpec) IsHybridStoragePool

func (p *PoolSpec) IsHybridStoragePool() bool

func (*PoolSpec) IsReplicated

func (p *PoolSpec) IsReplicated() bool

type PriorityClassNamesSpec

type PriorityClassNamesSpec map[KeyType]string

PriorityClassNamesSpec is a map of priority class names to be assigned to components

func (PriorityClassNamesSpec) All

All returns the priority class name defined for 'all' daemons in the Ceph cluster CRD.

func (PriorityClassNamesSpec) DeepCopy

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

func (PriorityClassNamesSpec) DeepCopyInto

func (in PriorityClassNamesSpec) DeepCopyInto(out *PriorityClassNamesSpec)

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

type ProbeSpec

type ProbeSpec struct {
	// Disabled determines whether probe is disable or not
	// +optional
	Disabled bool `json:"disabled,omitempty"`
	// Probe describes a health check to be performed against a container to determine whether it is
	// alive or ready to receive traffic.
	// +optional
	Probe *v1.Probe `json:"probe,omitempty"`
}

ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon

func (*ProbeSpec) DeepCopy

func (in *ProbeSpec) DeepCopy() *ProbeSpec

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

func (*ProbeSpec) DeepCopyInto

func (in *ProbeSpec) DeepCopyInto(out *ProbeSpec)

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

type PullSpec

type PullSpec struct {
	// +kubebuilder:validation:Pattern=`^https*://`
	Endpoint string `json:"endpoint,omitempty"`
}

PullSpec represents the pulling specification of a Ceph Object Storage Gateway Realm

func (*PullSpec) DeepCopy

func (in *PullSpec) DeepCopy() *PullSpec

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

func (*PullSpec) DeepCopyInto

func (in *PullSpec) DeepCopyInto(out *PullSpec)

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

type QuotaSpec

type QuotaSpec struct {
	// MaxBytes represents the quota in bytes
	// Deprecated in favor of MaxSize
	// +optional
	MaxBytes *uint64 `json:"maxBytes,omitempty"`

	// MaxSize represents the quota in bytes as a string
	// +kubebuilder:validation:Pattern=`^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$`
	// +optional
	MaxSize *string `json:"maxSize,omitempty"`

	// MaxObjects represents the quota in objects
	// +optional
	MaxObjects *uint64 `json:"maxObjects,omitempty"`
}

QuotaSpec represents the spec for quotas in a pool

func (*QuotaSpec) DeepCopy

func (in *QuotaSpec) DeepCopy() *QuotaSpec

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

func (*QuotaSpec) DeepCopyInto

func (in *QuotaSpec) DeepCopyInto(out *QuotaSpec)

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

type RBDMirroringSpec

type RBDMirroringSpec struct {
	// Count represents the number of rbd mirror instance to run
	// +kubebuilder:validation:Minimum=1
	Count int `json:"count"`

	// Peers represents the peers spec
	// +nullable
	// +optional
	Peers MirroringPeerSpec `json:"peers,omitempty"`

	// The affinity to place the rgw pods (default is to place on any available node)
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Placement Placement `json:"placement,omitempty"`

	// The annotations-related configuration to add/set on each Pod related object.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Annotations Annotations `json:"annotations,omitempty"`

	// The labels-related configuration to add/set on each Pod related object.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Labels Labels `json:"labels,omitempty"`

	// The resource requirements for the rbd mirror pods
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Resources v1.ResourceRequirements `json:"resources,omitempty"`

	// PriorityClassName sets priority class on the rbd mirror pods
	// +optional
	PriorityClassName string `json:"priorityClassName,omitempty"`
}

RBDMirroringSpec represents the specification of an RBD mirror daemon

func (*RBDMirroringSpec) DeepCopy

func (in *RBDMirroringSpec) DeepCopy() *RBDMirroringSpec

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

func (*RBDMirroringSpec) DeepCopyInto

func (in *RBDMirroringSpec) DeepCopyInto(out *RBDMirroringSpec)

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

type RGWServiceSpec

type RGWServiceSpec struct {
	// The annotations-related configuration to add/set on each rgw service.
	// nullable
	// optional
	Annotations Annotations `json:"annotations,omitempty"`
}

RGWServiceSpec represent the spec for RGW service

func (*RGWServiceSpec) DeepCopy

func (in *RGWServiceSpec) DeepCopy() *RGWServiceSpec

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

func (*RGWServiceSpec) DeepCopyInto

func (in *RGWServiceSpec) DeepCopyInto(out *RGWServiceSpec)

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

type ReadAffinitySpec

type ReadAffinitySpec struct {
	// Enables read affinity for CSI driver.
	// +optional
	Enabled bool `json:"enabled"`
	// CrushLocationLabels defines which node labels to use
	// as CRUSH location. This should correspond to the values set in
	// the CRUSH map.
	// +optional
	CrushLocationLabels []string `json:"crushLocationLabels,omitempty"`
}

ReadAffinitySpec defines the read affinity settings for CSI driver.

func (*ReadAffinitySpec) DeepCopy

func (in *ReadAffinitySpec) DeepCopy() *ReadAffinitySpec

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

func (*ReadAffinitySpec) DeepCopyInto

func (in *ReadAffinitySpec) DeepCopyInto(out *ReadAffinitySpec)

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

type ReplicatedSpec

type ReplicatedSpec struct {
	// Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
	// +kubebuilder:validation:Minimum=0
	Size uint `json:"size"`

	// TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
	// +optional
	TargetSizeRatio float64 `json:"targetSizeRatio,omitempty"`

	// RequireSafeReplicaSize if false allows you to set replica 1
	// +optional
	RequireSafeReplicaSize bool `json:"requireSafeReplicaSize,omitempty"`

	// ReplicasPerFailureDomain the number of replica in the specified failure domain
	// +kubebuilder:validation:Minimum=1
	// +optional
	ReplicasPerFailureDomain uint `json:"replicasPerFailureDomain,omitempty"`

	// SubFailureDomain the name of the sub-failure domain
	// +optional
	SubFailureDomain string `json:"subFailureDomain,omitempty"`

	// HybridStorage represents hybrid storage tier settings
	// +optional
	// +nullable
	HybridStorage *HybridStorageSpec `json:"hybridStorage,omitempty"`
}

ReplicatedSpec represents the spec for replication in a pool

func (*ReplicatedSpec) DeepCopy

func (in *ReplicatedSpec) DeepCopy() *ReplicatedSpec

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

func (*ReplicatedSpec) DeepCopyInto

func (in *ReplicatedSpec) DeepCopyInto(out *ReplicatedSpec)

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

func (*ReplicatedSpec) IsTargetRatioEnabled

func (p *ReplicatedSpec) IsTargetRatioEnabled() bool

type ResourceSpec

type ResourceSpec map[string]v1.ResourceRequirements

ResourceSpec is a collection of ResourceRequirements that describes the compute resource requirements

func (ResourceSpec) DeepCopy

func (in ResourceSpec) DeepCopy() ResourceSpec

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

func (ResourceSpec) DeepCopyInto

func (in ResourceSpec) DeepCopyInto(out *ResourceSpec)

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

type SSSDSidecar

type SSSDSidecar struct {
	// Image defines the container image that should be used for the SSSD sidecar.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Image string `json:"image"`

	// SSSDConfigFile defines where the SSSD configuration should be sourced from. The config file
	// will be placed into `/etc/sssd/sssd.conf`. If this is left empty, Rook will not add the file.
	// This allows you to manage the `sssd.conf` file yourself however you wish. For example, you
	// may build it into your custom Ceph container image or use the Vault agent injector to
	// securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
	// +optional
	SSSDConfigFile SSSDSidecarConfigFile `json:"sssdConfigFile"`

	// AdditionalFiles defines any number of additional files that should be mounted into the SSSD
	// sidecar. These files may be referenced by the sssd.conf config file.
	// +optional
	AdditionalFiles []SSSDSidecarAdditionalFile `json:"additionalFiles,omitempty"`

	// Resources allow specifying resource requests/limits on the SSSD sidecar container.
	// +optional
	Resources v1.ResourceRequirements `json:"resources,omitempty"`

	// DebugLevel sets the debug level for SSSD. If unset or set to 0, Rook does nothing. Otherwise,
	// this may be a value between 1 and 10. See SSSD docs for more info:
	// https://sssd.io/troubleshooting/basics.html#sssd-debug-logs
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=10
	DebugLevel int `json:"debugLevel,omitempty"`
}

SSSDSidecar represents configuration when SSSD is run in a sidecar.

func (*SSSDSidecar) DeepCopy

func (in *SSSDSidecar) DeepCopy() *SSSDSidecar

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

func (*SSSDSidecar) DeepCopyInto

func (in *SSSDSidecar) DeepCopyInto(out *SSSDSidecar)

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

type SSSDSidecarAdditionalFile

type SSSDSidecarAdditionalFile struct {
	// SubPath defines the sub-path in `/etc/sssd/rook-additional/` where the additional file(s)
	// will be placed. Each subPath definition must be unique and must not contain ':'.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Pattern=`^[^:]+$`
	SubPath string `json:"subPath"`

	// VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the
	// additional file(s) like what is normally used to configure Volumes for a Pod. Fore example, a
	// ConfigMap, Secret, or HostPath. Each VolumeSource adds one or more additional files to the
	// SSSD sidecar container in the `/etc/sssd/rook-additional/<subPath>` directory.
	// Be aware that some files may need to have a specific file mode like 0600 due to requirements
	// by SSSD for some files. For example, CA or TLS certificates.
	VolumeSource *ConfigFileVolumeSource `json:"volumeSource"`
}

SSSDSidecarAdditionalFile represents the source from where additional files for the the SSSD configuration should come from and are made available.

func (*SSSDSidecarAdditionalFile) DeepCopy

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

func (*SSSDSidecarAdditionalFile) DeepCopyInto

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

type SSSDSidecarConfigFile

type SSSDSidecarConfigFile struct {
	// VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the
	// SSSD configuration file like what is normally used to configure Volumes for a Pod. For
	// example, a ConfigMap, Secret, or HostPath. There are two requirements for the source's
	// content:
	//   1. The config file must be mountable via `subPath: sssd.conf`. For example, in a ConfigMap,
	//      the data item must be named `sssd.conf`, or `items` must be defined to select the key
	//      and give it path `sssd.conf`. A HostPath directory must have the `sssd.conf` file.
	//   2. The volume or config file must have mode 0600.
	VolumeSource *ConfigFileVolumeSource `json:"volumeSource,omitempty"`
}

SSSDSidecarConfigFile represents the source(s) from which the SSSD configuration should come.

func (*SSSDSidecarConfigFile) DeepCopy

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

func (*SSSDSidecarConfigFile) DeepCopyInto

func (in *SSSDSidecarConfigFile) DeepCopyInto(out *SSSDSidecarConfigFile)

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

type SSSDSpec

type SSSDSpec struct {
	// Sidecar tells Rook to run SSSD in a sidecar alongside the NFS-Ganesha server in each NFS pod.
	// +optional
	Sidecar *SSSDSidecar `json:"sidecar,omitempty"`
}

SSSDSpec represents configuration for System Security Services Daemon (SSSD).

func (*SSSDSpec) DeepCopy

func (in *SSSDSpec) DeepCopy() *SSSDSpec

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

func (*SSSDSpec) DeepCopyInto

func (in *SSSDSpec) DeepCopyInto(out *SSSDSpec)

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

type SanitizeDataSourceProperty

type SanitizeDataSourceProperty string

SanitizeDataSourceProperty represents a sanitizing data source

func (*SanitizeDataSourceProperty) String

func (c *SanitizeDataSourceProperty) String() string

type SanitizeDisksSpec

type SanitizeDisksSpec struct {
	// Method is the method we use to sanitize disks
	// +optional
	// +kubebuilder:validation:Enum=complete;quick
	Method SanitizeMethodProperty `json:"method,omitempty"`
	// DataSource is the data source to use to sanitize the disk with
	// +optional
	// +kubebuilder:validation:Enum=zero;random
	DataSource SanitizeDataSourceProperty `json:"dataSource,omitempty"`
	// Iteration is the number of pass to apply the sanitizing
	// +optional
	Iteration int32 `json:"iteration,omitempty"`
}

SanitizeDisksSpec represents a disk sanitizing specification

func (*SanitizeDisksSpec) DeepCopy

func (in *SanitizeDisksSpec) DeepCopy() *SanitizeDisksSpec

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

func (*SanitizeDisksSpec) DeepCopyInto

func (in *SanitizeDisksSpec) DeepCopyInto(out *SanitizeDisksSpec)

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

type SanitizeMethodProperty

type SanitizeMethodProperty string

SanitizeMethodProperty represents a disk sanitizing method

func (*SanitizeMethodProperty) String

func (c *SanitizeMethodProperty) String() string

type SecuritySpec

type SecuritySpec struct {
	// KeyManagementService is the main Key Management option
	// +optional
	// +nullable
	KeyManagementService KeyManagementServiceSpec `json:"kms,omitempty"`
	// KeyRotation defines options for Key Rotation.
	// +optional
	// +nullable
	KeyRotation KeyRotationSpec `json:"keyRotation,omitempty"`
}

SecuritySpec is security spec to include various security items such as kms

func (*SecuritySpec) DeepCopy

func (in *SecuritySpec) DeepCopy() *SecuritySpec

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

func (*SecuritySpec) DeepCopyInto

func (in *SecuritySpec) DeepCopyInto(out *SecuritySpec)

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

type Selection

type Selection struct {
	// Whether to consume all the storage devices found on a machine
	// +optional
	UseAllDevices *bool `json:"useAllDevices,omitempty"`
	// A regular expression to allow more fine-grained selection of devices on nodes across the cluster
	// +optional
	DeviceFilter string `json:"deviceFilter,omitempty"`
	// A regular expression to allow more fine-grained selection of devices with path names
	// +optional
	DevicePathFilter string `json:"devicePathFilter,omitempty"`
	// List of devices to use as storage devices
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Devices []Device `json:"devices,omitempty"`
	// PersistentVolumeClaims to use as storage
	// +optional
	VolumeClaimTemplates []VolumeClaimTemplate `json:"volumeClaimTemplates,omitempty"`
}

func (*Selection) DeepCopy

func (in *Selection) DeepCopy() *Selection

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

func (*Selection) DeepCopyInto

func (in *Selection) DeepCopyInto(out *Selection)

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

func (*Selection) GetUseAllDevices

func (s *Selection) GetUseAllDevices() bool

GetUseAllDevices return if all devices should be used.

type SnapshotSchedule

type SnapshotSchedule struct {
	// Interval is the interval in which snapshots will be taken
	// +optional
	Interval string `json:"interval,omitempty"`
	// StartTime is the snapshot starting time
	// +optional
	StartTime string `json:"start_time,omitempty"`
}

SnapshotSchedule is a schedule

func (*SnapshotSchedule) DeepCopy

func (in *SnapshotSchedule) DeepCopy() *SnapshotSchedule

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

func (*SnapshotSchedule) DeepCopyInto

func (in *SnapshotSchedule) DeepCopyInto(out *SnapshotSchedule)

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

type SnapshotScheduleRetentionSpec

type SnapshotScheduleRetentionSpec struct {
	// Path is the path to snapshot
	// +optional
	Path string `json:"path,omitempty"`

	// Duration represents the retention duration for a snapshot
	// +optional
	Duration string `json:"duration,omitempty"`
}

SnapshotScheduleRetentionSpec is a retention policy

func (*SnapshotScheduleRetentionSpec) DeepCopy

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

func (*SnapshotScheduleRetentionSpec) DeepCopyInto

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

type SnapshotScheduleSpec

type SnapshotScheduleSpec struct {
	// Path is the path to snapshot, only valid for CephFS
	// +optional
	Path string `json:"path,omitempty"`

	// Interval represent the periodicity of the snapshot.
	// +optional
	Interval string `json:"interval,omitempty"`

	// StartTime indicates when to start the snapshot
	// +optional
	StartTime string `json:"startTime,omitempty"`
}

SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool

func (*SnapshotScheduleSpec) DeepCopy

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

func (*SnapshotScheduleSpec) DeepCopyInto

func (in *SnapshotScheduleSpec) DeepCopyInto(out *SnapshotScheduleSpec)

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

type SnapshotScheduleStatusSpec

type SnapshotScheduleStatusSpec struct {
	// SnapshotSchedules is the list of snapshots scheduled
	// +nullable
	// +optional
	SnapshotSchedules []SnapshotSchedulesSpec `json:"snapshotSchedules,omitempty"`
	// LastChecked is the last time time the status was checked
	// +optional
	LastChecked string `json:"lastChecked,omitempty"`
	// LastChanged is the last time time the status last changed
	// +optional
	LastChanged string `json:"lastChanged,omitempty"`
	// Details contains potential status errors
	// +optional
	Details string `json:"details,omitempty"`
}

SnapshotScheduleStatusSpec is the status of the snapshot schedule

func (*SnapshotScheduleStatusSpec) DeepCopy

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

func (*SnapshotScheduleStatusSpec) DeepCopyInto

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

type SnapshotSchedulesSpec

type SnapshotSchedulesSpec struct {
	// Pool is the pool name
	// +optional
	Pool string `json:"pool,omitempty"`
	// Namespace is the RADOS namespace the image is part of
	// +optional
	Namespace string `json:"namespace,omitempty"`
	// Image is the mirrored image
	// +optional
	Image string `json:"image,omitempty"`
	// Items is the list schedules times for a given snapshot
	// +optional
	Items []SnapshotSchedule `json:"items,omitempty"`
}

SnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool

func (*SnapshotSchedulesSpec) DeepCopy

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

func (*SnapshotSchedulesSpec) DeepCopyInto

func (in *SnapshotSchedulesSpec) DeepCopyInto(out *SnapshotSchedulesSpec)

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

type StatesSpec

type StatesSpec struct {
	// StartingReplay is when the replay of the mirroring journal starts
	// +optional
	StartingReplay int `json:"starting_replay,omitempty"`
	// Replaying is when the replay of the mirroring journal is on-going
	// +optional
	Replaying int `json:"replaying,omitempty"`
	// Syncing is when the image is syncing
	// +optional
	Syncing int `json:"syncing,omitempty"`
	// StopReplaying is when the replay of the mirroring journal stops
	// +optional
	StopReplaying int `json:"stopping_replay,omitempty"`
	// Stopped is when the mirroring state is stopped
	// +optional
	Stopped int `json:"stopped,omitempty"`
	// Unknown is when the mirroring state is unknown
	// +optional
	Unknown int `json:"unknown,omitempty"`
	// Error is when the mirroring state is errored
	// +optional
	Error int `json:"error,omitempty"`
}

StatesSpec are rbd images mirroring state

func (*StatesSpec) DeepCopy

func (in *StatesSpec) DeepCopy() *StatesSpec

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

func (*StatesSpec) DeepCopyInto

func (in *StatesSpec) DeepCopyInto(out *StatesSpec)

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

type Status

type Status struct {
	// +optional
	Phase string `json:"phase,omitempty"`
	// ObservedGeneration is the latest generation observed by the controller.
	// +optional
	ObservedGeneration int64       `json:"observedGeneration,omitempty"`
	Conditions         []Condition `json:"conditions,omitempty"`
}

Status represents the status of an object

func (*Status) DeepCopy

func (in *Status) DeepCopy() *Status

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

func (*Status) DeepCopyInto

func (in *Status) DeepCopyInto(out *Status)

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

type StorageClassDeviceSet

type StorageClassDeviceSet struct {
	// Name is a unique identifier for the set
	// +kubebuilder:validation:MaxLength=40
	Name string `json:"name"`
	// Count is the number of devices in this set
	// +kubebuilder:validation:Minimum=1
	Count int `json:"count"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Resources v1.ResourceRequirements `json:"resources,omitempty"` // Requests/limits for the devices
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Placement Placement `json:"placement,omitempty"` // Placement constraints for the device daemons
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	PreparePlacement *Placement `json:"preparePlacement,omitempty"` // Placement constraints for the device preparation
	// Provider-specific device configuration
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Config map[string]string `json:"config,omitempty"`
	// VolumeClaimTemplates is a list of PVC templates for the underlying storage devices
	VolumeClaimTemplates []VolumeClaimTemplate `json:"volumeClaimTemplates"`
	// Portable represents OSD portability across the hosts
	// +optional
	Portable bool `json:"portable,omitempty"`
	// TuneSlowDeviceClass Tune the OSD when running on a slow Device Class
	// +optional
	TuneSlowDeviceClass bool `json:"tuneDeviceClass,omitempty"`
	// TuneFastDeviceClass Tune the OSD when running on a fast Device Class
	// +optional
	TuneFastDeviceClass bool `json:"tuneFastDeviceClass,omitempty"`
	// Scheduler name for OSD pod placement
	// +optional
	SchedulerName string `json:"schedulerName,omitempty"`
	// Whether to encrypt the deviceSet
	// +optional
	Encrypted bool `json:"encrypted,omitempty"`
}

StorageClassDeviceSet is a storage class device set +nullable

func (*StorageClassDeviceSet) DeepCopy

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

func (*StorageClassDeviceSet) DeepCopyInto

func (in *StorageClassDeviceSet) DeepCopyInto(out *StorageClassDeviceSet)

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

type StorageScopeSpec

type StorageScopeSpec struct {
	// +nullable
	// +optional
	Nodes []Node `json:"nodes,omitempty"`
	// +optional
	UseAllNodes bool `json:"useAllNodes,omitempty"`
	// +optional
	OnlyApplyOSDPlacement bool `json:"onlyApplyOSDPlacement,omitempty"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +nullable
	// +optional
	Config    map[string]string `json:"config,omitempty"`
	Selection `json:",inline"`
	// +nullable
	// +optional
	StorageClassDeviceSets []StorageClassDeviceSet `json:"storageClassDeviceSets,omitempty"`
	// +optional
	Store OSDStore `json:"store,omitempty"`
	// +optional
	// FlappingRestartIntervalHours defines the time for which the OSD pods, that failed with zero exit code, will sleep before restarting.
	// This is needed for OSD flapping where OSD daemons are marked down more than 5 times in 600 seconds by Ceph.
	// Preventing the OSD pods to restart immediately in such scenarios will prevent Rook from marking OSD as `up` and thus
	// peering of the PGs mapped to the OSD.
	// User needs to manually restart the OSD pod if they manage to fix the underlying OSD flapping issue before the restart interval.
	// The sleep will be disabled if this interval is set to 0.
	FlappingRestartIntervalHours int `json:"flappingRestartIntervalHours"`
}

func (*StorageScopeSpec) AnyUseAllDevices

func (s *StorageScopeSpec) AnyUseAllDevices() bool

AnyUseAllDevices gets whether to use all devices

func (*StorageScopeSpec) ClearUseAllDevices

func (s *StorageScopeSpec) ClearUseAllDevices()

ClearUseAllDevices clears all devices

func (*StorageScopeSpec) DeepCopy

func (in *StorageScopeSpec) DeepCopy() *StorageScopeSpec

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

func (*StorageScopeSpec) DeepCopyInto

func (in *StorageScopeSpec) DeepCopyInto(out *StorageScopeSpec)

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

func (*StorageScopeSpec) GetOSDStore

func (s *StorageScopeSpec) GetOSDStore() string

GetOSDStore returns osd backend store type provided in the cluster spec

func (*StorageScopeSpec) GetOSDStoreFlag

func (s *StorageScopeSpec) GetOSDStoreFlag() string

GetOSDStoreFlag returns osd backend store type prefixed with "--"

func (*StorageScopeSpec) IsOnPVCEncrypted

func (s *StorageScopeSpec) IsOnPVCEncrypted() bool

IsOnPVCEncrypted returns whether a Ceph Cluster on PVC will be encrypted

func (*StorageScopeSpec) NodeExists

func (s *StorageScopeSpec) NodeExists(nodeName string) bool

NodeExists returns true if the node exists in the storage spec. False otherwise.

func (*StorageScopeSpec) NodeWithNameExists

func (s *StorageScopeSpec) NodeWithNameExists(name string) bool

NodeWithNameExists returns true if the storage spec defines a node with the given name.

func (*StorageScopeSpec) ResolveNode

func (s *StorageScopeSpec) ResolveNode(nodeName string) *Node

Fully resolves the config of the given node name, taking into account cluster level and node level specified config. In general, the more fine grained the configuration is specified, the more precedence it takes. Fully resolved configuration for the node has the following order of precedence. 1) Node (config defined on the node itself) 2) Cluster (config defined on the cluster) 3) Default values (if no config exists for the node or cluster)

type StoreType

type StoreType string
const (
	// StoreTypeBlueStore is the bluestore backend storage for OSDs
	StoreTypeBlueStore StoreType = "bluestore"

	// StoreTypeBlueStoreRDR is the bluestore-rdr backed storage for OSDs
	StoreTypeBlueStoreRDR StoreType = "bluestore-rdr"
)

type StretchClusterSpec

type StretchClusterSpec struct {
	// FailureDomainLabel the failure domain name (e,g: zone)
	// +optional
	FailureDomainLabel string `json:"failureDomainLabel,omitempty"`
	// SubFailureDomain is the failure domain within a zone
	// +optional
	SubFailureDomain string `json:"subFailureDomain,omitempty"`
	// Zones is the list of zones
	// +optional
	// +nullable
	Zones []MonZoneSpec `json:"zones,omitempty"`
}

StretchClusterSpec represents the specification of a stretched Ceph Cluster

func (*StretchClusterSpec) DeepCopy

func (in *StretchClusterSpec) DeepCopy() *StretchClusterSpec

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

func (*StretchClusterSpec) DeepCopyInto

func (in *StretchClusterSpec) DeepCopyInto(out *StretchClusterSpec)

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

type TopicEndpointSpec

type TopicEndpointSpec struct {
	// Spec of HTTP endpoint
	// +optional
	HTTP *HTTPEndpointSpec `json:"http,omitempty"`
	// Spec of AMQP endpoint
	// +optional
	AMQP *AMQPEndpointSpec `json:"amqp,omitempty"`
	// Spec of Kafka endpoint
	// +optional
	Kafka *KafkaEndpointSpec `json:"kafka,omitempty"`
}

TopicEndpointSpec contains exactly one of the endpoint specs of a Bucket Topic

func (*TopicEndpointSpec) DeepCopy

func (in *TopicEndpointSpec) DeepCopy() *TopicEndpointSpec

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

func (*TopicEndpointSpec) DeepCopyInto

func (in *TopicEndpointSpec) DeepCopyInto(out *TopicEndpointSpec)

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

type VolumeClaimTemplate

type VolumeClaimTemplate struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`

	// spec defines the desired characteristics of a volume requested by a pod author.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
	// +optional
	Spec v1.PersistentVolumeClaimSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`
}

VolumeClaimTemplate is a simplified version of K8s corev1's PVC. It has no type meta or status.

func (*VolumeClaimTemplate) DeepCopy

func (in *VolumeClaimTemplate) DeepCopy() *VolumeClaimTemplate

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

func (*VolumeClaimTemplate) DeepCopyInto

func (in *VolumeClaimTemplate) DeepCopyInto(out *VolumeClaimTemplate)

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

func (*VolumeClaimTemplate) ToPVC

type ZoneSpec

type ZoneSpec struct {
	// RGW Zone the Object Store is in
	Name string `json:"name"`
}

ZoneSpec represents a Ceph Object Store Gateway Zone specification

func (*ZoneSpec) DeepCopy

func (in *ZoneSpec) DeepCopy() *ZoneSpec

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

func (*ZoneSpec) DeepCopyInto

func (in *ZoneSpec) DeepCopyInto(out *ZoneSpec)

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