diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml index 946efc0e1..1019058c3 100644 --- a/.github/workflows/docs-check.yml +++ b/.github/workflows/docs-check.yml @@ -45,5 +45,15 @@ jobs: - name: Install mkdocs and dependencies run: cd build/release/ && make deps.docs + - name: Check documentation for CRDs + run: | + make validate-and-gen-docs-crds + DIFF_ON_DOCS=$(git diff --ignore-matching-lines='on git commit') + if [ ! -z "$DIFF_ON_DOCS" ]; then + echo "Please run 'make generate-docs-crds' locally, commit the updated crds docs, and push the change" + fi + git diff --ignore-matching-lines='on git commit' --exit-code + - name: Build documentation using mkdocs run: make docs-build + diff --git a/Documentation/CRDs/.pages b/Documentation/CRDs/.pages index 62eefeb8e..e0b3db420 100644 --- a/Documentation/CRDs/.pages +++ b/Documentation/CRDs/.pages @@ -5,4 +5,6 @@ nav: - Shared-Filesystem - Object-Storage - ceph-client-crd.md + - ceph-nfs-crd.md + - specification.md - ... diff --git a/Documentation/CRDs/specification.md b/Documentation/CRDs/specification.md new file mode 100644 index 000000000..30b5575d8 --- /dev/null +++ b/Documentation/CRDs/specification.md @@ -0,0 +1,10809 @@ +

Packages:

+ +

ceph.rook.io/v1

+
+

Package v1 is the v1 version of the API.

+
+Resource Types: + +

CephBlockPool +

+
+

CephBlockPool represents a Ceph Storage Pool

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephBlockPool
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +NamedBlockPoolSpec + + +
+
+
+ + + + + + + + + +
+name
+ +string + +
+(Optional) +

The desired name of the pool if different from the CephBlockPool CR name.

+
+PoolSpec
+ + +PoolSpec + + +
+

+(Members of PoolSpec are embedded into this type.) +

+

The core pool configuration

+
+
+status
+ + +CephBlockPoolStatus + + +
+
+

CephBlockPoolRadosNamespace +

+
+

CephBlockPoolRadosNamespace represents a Ceph BlockPool Rados Namespace

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephBlockPoolRadosNamespace
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +CephBlockPoolRadosNamespaceSpec + + +
+

Spec represents the specification of a Ceph BlockPool Rados Namespace

+
+
+ + + + + +
+blockPoolName
+ +string + +
+

BlockPoolName is the name of Ceph BlockPool. Typically it’s the name of +the CephBlockPool CR.

+
+
+status
+ + +CephBlockPoolRadosNamespaceStatus + + +
+(Optional) +

Status represents the status of a CephBlockPool Rados Namespace

+
+

CephBucketNotification +

+
+

CephBucketNotification represents a Bucket Notifications

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephBucketNotification
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +BucketNotificationSpec + + +
+
+
+ + + + + + + + + + + + + +
+topic
+ +string + +
+

The name of the topic associated with this notification

+
+events
+ + +[]BucketNotificationEvent + + +
+(Optional) +

List of events that should trigger the notification

+
+filter
+ + +NotificationFilterSpec + + +
+(Optional) +

Spec of notification filter

+
+
+status
+ + +Status + + +
+(Optional) +
+

CephBucketTopic +

+
+

CephBucketTopic represents a Ceph Object Topic for Bucket Notifications

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephBucketTopic
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +BucketTopicSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+objectStoreName
+ +string + +
+

The name of the object store on which to define the topic

+
+objectStoreNamespace
+ +string + +
+

The namespace of the object store on which to define the topic

+
+opaqueData
+ +string + +
+(Optional) +

Data which is sent in each event

+
+persistent
+ +bool + +
+(Optional) +

Indication whether notifications to this endpoint are persistent or not

+
+endpoint
+ + +TopicEndpointSpec + + +
+

Contains the endpoint spec of the topic

+
+
+status
+ + +BucketTopicStatus + + +
+(Optional) +
+

CephClient +

+
+

CephClient represents a Ceph Client

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephClient
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +ClientSpec + + +
+

Spec represents the specification of a Ceph Client

+
+
+ + + + + + + + + +
+name
+ +string + +
+(Optional) +
+caps
+ +map[string]string + +
+
+
+status
+ + +CephClientStatus + + +
+(Optional) +

Status represents the status of a Ceph Client

+
+

CephCluster +

+
+

CephCluster is a Ceph storage cluster

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephCluster
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +ClusterSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cephVersion
+ + +CephVersionSpec + + +
+(Optional) +

The version information that instructs Rook to orchestrate a particular version of Ceph.

+
+storage
+ + +StorageScopeSpec + + +
+(Optional) +

A spec for available storage in the cluster and how it should be used

+
+annotations
+ + +AnnotationsSpec + + +
+(Optional) +

The annotations-related configuration to add/set on each Pod related object.

+
+labels
+ + +LabelsSpec + + +
+(Optional) +

The labels-related configuration to add/set on each Pod related object.

+
+placement
+ + +PlacementSpec + + +
+(Optional) +

The placement-related configuration to pass to kubernetes (affinity, node selector, tolerations).

+
+network
+ + +NetworkSpec + + +
+(Optional) +

Network related configuration

+
+resources
+ + +ResourceSpec + + +
+(Optional) +

Resources set resource requests and limits

+
+priorityClassNames
+ + +PriorityClassNamesSpec + + +
+(Optional) +

PriorityClassNames sets priority classes on components

+
+dataDirHostPath
+ +string + +
+(Optional) +

The path on the host where config and data can be persisted

+
+skipUpgradeChecks
+ +bool + +
+(Optional) +

SkipUpgradeChecks defines if an upgrade should be forced even if one of the check fails

+
+continueUpgradeAfterChecksEvenIfNotHealthy
+ +bool + +
+(Optional) +

ContinueUpgradeAfterChecksEvenIfNotHealthy defines if an upgrade should continue even if PGs are not clean

+
+waitTimeoutForHealthyOSDInMinutes
+ +time.Duration + +
+(Optional) +

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.

+
+disruptionManagement
+ + +DisruptionManagementSpec + + +
+(Optional) +

A spec for configuring disruption management.

+
+mon
+ + +MonSpec + + +
+(Optional) +

A spec for mon related options

+
+crashCollector
+ + +CrashCollectorSpec + + +
+(Optional) +

A spec for the crash controller

+
+dashboard
+ + +DashboardSpec + + +
+(Optional) +

Dashboard settings

+
+monitoring
+ + +MonitoringSpec + + +
+(Optional) +

Prometheus based Monitoring settings

+
+external
+ + +ExternalSpec + + +
+(Optional) +

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.

+
+mgr
+ + +MgrSpec + + +
+(Optional) +

A spec for mgr related options

+
+removeOSDsIfOutAndSafeToRemove
+ +bool + +
+(Optional) +

Remove the OSD that is out and safe to remove only if this option is true

+
+cleanupPolicy
+ + +CleanupPolicySpec + + +
+(Optional) +

Indicates user intent when deleting a cluster; blocks orchestration and should not be set if cluster +deletion is not imminent.

+
+healthCheck
+ + +CephClusterHealthCheckSpec + + +
+(Optional) +

Internal daemon healthchecks and liveness probe

+
+security
+ + +SecuritySpec + + +
+(Optional) +

Security represents security settings

+
+logCollector
+ + +LogCollectorSpec + + +
+(Optional) +

Logging represents loggings settings

+
+
+status
+ + +ClusterStatus + + +
+(Optional) +
+

CephFilesystem +

+
+

CephFilesystem represents a Ceph Filesystem

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephFilesystem
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +FilesystemSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+metadataPool
+ + +PoolSpec + + +
+

The metadata pool settings

+
+dataPools
+ + +[]NamedPoolSpec + + +
+

The data pool settings, with optional predefined pool name.

+
+preservePoolsOnDelete
+ +bool + +
+(Optional) +

Preserve pools on filesystem deletion

+
+preserveFilesystemOnDelete
+ +bool + +
+(Optional) +

Preserve the fs in the cluster on CephFilesystem CR deletion. Setting this to true automatically implies PreservePoolsOnDelete is true.

+
+metadataServer
+ + +MetadataServerSpec + + +
+

The mds pod info

+
+mirroring
+ + +FSMirroringSpec + + +
+(Optional) +

The mirroring settings

+
+statusCheck
+ + +MirrorHealthCheckSpec + + +
+

The mirroring statusCheck

+
+
+status
+ + +CephFilesystemStatus + + +
+
+

CephFilesystemMirror +

+
+

CephFilesystemMirror is the Ceph Filesystem Mirror object definition

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephFilesystemMirror
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +FilesystemMirroringSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+placement
+ + +Placement + + +
+(Optional) +

The affinity to place the rgw pods (default is to place on any available node)

+
+annotations
+ + +Annotations + + +
+(Optional) +

The annotations-related configuration to add/set on each Pod related object.

+
+labels
+ + +Labels + + +
+(Optional) +

The labels-related configuration to add/set on each Pod related object.

+
+resources
+ + +Kubernetes core/v1.ResourceRequirements + + +
+(Optional) +

The resource requirements for the cephfs-mirror pods

+
+priorityClassName
+ +string + +
+(Optional) +

PriorityClassName sets priority class on the cephfs-mirror pods

+
+
+status
+ + +Status + + +
+(Optional) +
+

CephFilesystemSubVolumeGroup +

+
+

CephFilesystemSubVolumeGroup represents a Ceph Filesystem SubVolumeGroup

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephFilesystemSubVolumeGroup
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +CephFilesystemSubVolumeGroupSpec + + +
+

Spec represents the specification of a Ceph Filesystem SubVolumeGroup

+
+
+ + + + + +
+filesystemName
+ +string + +
+

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

+
+
+status
+ + +CephFilesystemSubVolumeGroupStatus + + +
+(Optional) +

Status represents the status of a CephFilesystem SubvolumeGroup

+
+

CephNFS +

+
+

CephNFS represents a Ceph NFS

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephNFS
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +NFSGaneshaSpec + + +
+
+
+ + + + + + + + + + + + + +
+rados
+ + +GaneshaRADOSSpec + + +
+(Optional) +

RADOS is the Ganesha RADOS specification

+
+server
+ + +GaneshaServerSpec + + +
+

Server is the Ganesha Server specification

+
+security
+ + +NFSSecuritySpec + + +
+(Optional) +

Security allows specifying security configurations for the NFS cluster

+
+
+status
+ + +Status + + +
+(Optional) +
+

CephObjectRealm +

+
+

CephObjectRealm represents a Ceph Object Store Gateway Realm

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephObjectRealm
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +ObjectRealmSpec + + +
+(Optional) +
+
+ + + + + +
+pull
+ + +PullSpec + + +
+
+
+status
+ + +Status + + +
+(Optional) +
+

CephObjectStore +

+
+

CephObjectStore represents a Ceph Object Store Gateway

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephObjectStore
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +ObjectStoreSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+metadataPool
+ + +PoolSpec + + +
+(Optional) +

The metadata pool settings

+
+dataPool
+ + +PoolSpec + + +
+(Optional) +

The data pool settings

+
+preservePoolsOnDelete
+ +bool + +
+(Optional) +

Preserve pools on object store deletion

+
+gateway
+ + +GatewaySpec + + +
+(Optional) +

The rgw pod info

+
+zone
+ + +ZoneSpec + + +
+(Optional) +

The multisite info

+
+healthCheck
+ + +ObjectHealthCheckSpec + + +
+(Optional) +

The RGW health probes

+
+security
+ + +ObjectStoreSecuritySpec + + +
+(Optional) +

Security represents security settings

+
+
+status
+ + +ObjectStoreStatus + + +
+
+

CephObjectStoreUser +

+
+

CephObjectStoreUser represents a Ceph Object Store Gateway User

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephObjectStoreUser
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +ObjectStoreUserSpec + + +
+
+
+ + + + + + + + + + + + + + + + + +
+store
+ +string + +
+(Optional) +

The store the user will be created in

+
+displayName
+ +string + +
+(Optional) +

The display name for the ceph users

+
+capabilities
+ + +ObjectUserCapSpec + + +
+(Optional) +
+quotas
+ + +ObjectUserQuotaSpec + + +
+(Optional) +
+
+status
+ + +ObjectStoreUserStatus + + +
+(Optional) +
+

CephObjectZone +

+
+

CephObjectZone represents a Ceph Object Store Gateway Zone

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephObjectZone
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +ObjectZoneSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+zoneGroup
+ +string + +
+

The display name for the ceph users

+
+metadataPool
+ + +PoolSpec + + +
+

The metadata pool settings

+
+dataPool
+ + +PoolSpec + + +
+

The data pool settings

+
+customEndpoints
+ +[]string + +
+(Optional) +

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.

+
+preservePoolsOnDelete
+ +bool + +
+(Optional) +

Preserve pools on object zone deletion

+
+
+status
+ + +Status + + +
+(Optional) +
+

CephObjectZoneGroup +

+
+

CephObjectZoneGroup represents a Ceph Object Store Gateway Zone Group

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephObjectZoneGroup
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +ObjectZoneGroupSpec + + +
+
+
+ + + + + +
+realm
+ +string + +
+

The display name for the ceph users

+
+
+status
+ + +Status + + +
+(Optional) +
+

CephRBDMirror +

+
+

CephRBDMirror represents a Ceph RBD Mirror

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +ceph.rook.io/v1 + +
+kind
+string +
CephRBDMirror
+metadata
+ + +Kubernetes meta/v1.ObjectMeta + + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +RBDMirroringSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+count
+ +int + +
+

Count represents the number of rbd mirror instance to run

+
+peers
+ + +MirroringPeerSpec + + +
+(Optional) +

Peers represents the peers spec

+
+placement
+ + +Placement + + +
+(Optional) +

The affinity to place the rgw pods (default is to place on any available node)

+
+annotations
+ + +Annotations + + +
+(Optional) +

The annotations-related configuration to add/set on each Pod related object.

+
+labels
+ + +Labels + + +
+(Optional) +

The labels-related configuration to add/set on each Pod related object.

+
+resources
+ + +Kubernetes core/v1.ResourceRequirements + + +
+(Optional) +

The resource requirements for the rbd mirror pods

+
+priorityClassName
+ +string + +
+(Optional) +

PriorityClassName sets priority class on the rbd mirror pods

+
+
+status
+ + +Status + + +
+(Optional) +
+

AMQPEndpointSpec +

+

+(Appears on:TopicEndpointSpec) +

+
+

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

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+uri
+ +string + +
+

The URI of the AMQP endpoint to push notification to

+
+exchange
+ +string + +
+

Name of the exchange that is used to route messages based on topics

+
+disableVerifySSL
+ +bool + +
+(Optional) +

Indicate whether the server certificate is validated by the client or not

+
+ackLevel
+ +string + +
+(Optional) +

The ack level required for this topic (none/broker/routeable)

+
+

Annotations +(map[string]string alias)

+

+(Appears on:FilesystemMirroringSpec, GaneshaServerSpec, GatewaySpec, MetadataServerSpec, RBDMirroringSpec, RGWServiceSpec) +

+
+

Annotations are annotations

+
+

AnnotationsSpec +(map[github.com/rook/rook/pkg/apis/ceph.rook.io/v1.KeyType]github.com/rook/rook/pkg/apis/ceph.rook.io/v1.Annotations alias)

+

+(Appears on:ClusterSpec) +

+
+

AnnotationsSpec is the main spec annotation for all daemons

+
+

BucketNotificationEvent +(string alias)

+

+(Appears on:BucketNotificationSpec) +

+
+

BucketNotificationSpec represent the event type of the bucket notification

+
+

BucketNotificationSpec +

+

+(Appears on:CephBucketNotification) +

+
+

BucketNotificationSpec represent the spec of a Bucket Notification

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+topic
+ +string + +
+

The name of the topic associated with this notification

+
+events
+ + +[]BucketNotificationEvent + + +
+(Optional) +

List of events that should trigger the notification

+
+filter
+ + +NotificationFilterSpec + + +
+(Optional) +

Spec of notification filter

+
+

BucketTopicSpec +

+

+(Appears on:CephBucketTopic) +

+
+

BucketTopicSpec represent the spec of a Bucket Topic

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+objectStoreName
+ +string + +
+

The name of the object store on which to define the topic

+
+objectStoreNamespace
+ +string + +
+

The namespace of the object store on which to define the topic

+
+opaqueData
+ +string + +
+(Optional) +

Data which is sent in each event

+
+persistent
+ +bool + +
+(Optional) +

Indication whether notifications to this endpoint are persistent or not

+
+endpoint
+ + +TopicEndpointSpec + + +
+

Contains the endpoint spec of the topic

+
+

BucketTopicStatus +

+

+(Appears on:CephBucketTopic) +

+
+

BucketTopicStatus represents the Status of a CephBucketTopic

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+phase
+ +string + +
+(Optional) +
+ARN
+ +string + +
+(Optional) +

The ARN of the topic generated by the RGW

+
+observedGeneration
+ +int64 + +
+(Optional) +

ObservedGeneration is the latest generation observed by the controller.

+
+

Capacity +

+

+(Appears on:CephStatus) +

+
+

Capacity is the capacity information of a Ceph Cluster

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+bytesTotal
+ +uint64 + +
+
+bytesUsed
+ +uint64 + +
+
+bytesAvailable
+ +uint64 + +
+
+lastUpdated
+ +string + +
+
+

CephBlockPoolRadosNamespaceSpec +

+

+(Appears on:CephBlockPoolRadosNamespace) +

+
+

CephBlockPoolRadosNamespaceSpec represents the specification of a CephBlockPool Rados Namespace

+
+ + + + + + + + + + + + + +
FieldDescription
+blockPoolName
+ +string + +
+

BlockPoolName is the name of Ceph BlockPool. Typically it’s the name of +the CephBlockPool CR.

+
+

CephBlockPoolRadosNamespaceStatus +

+

+(Appears on:CephBlockPoolRadosNamespace) +

+
+

CephBlockPoolRadosNamespaceStatus represents the Status of Ceph BlockPool +Rados Namespace

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+phase
+ + +ConditionType + + +
+(Optional) +
+info
+ +map[string]string + +
+(Optional) +
+

CephBlockPoolStatus +

+

+(Appears on:CephBlockPool) +

+
+

CephBlockPoolStatus represents the mirroring status of Ceph Storage Pool

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+phase
+ + +ConditionType + + +
+(Optional) +
+mirroringStatus
+ + +MirroringStatusSpec + + +
+(Optional) +
+mirroringInfo
+ + +MirroringInfoSpec + + +
+(Optional) +
+snapshotScheduleStatus
+ + +SnapshotScheduleStatusSpec + + +
+(Optional) +
+info
+ +map[string]string + +
+(Optional) +
+observedGeneration
+ +int64 + +
+(Optional) +

ObservedGeneration is the latest generation observed by the controller.

+
+conditions
+ + +[]Condition + + +
+
+

CephClientStatus +

+

+(Appears on:CephClient) +

+
+

CephClientStatus represents the Status of Ceph Client

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+phase
+ + +ConditionType + + +
+(Optional) +
+info
+ +map[string]string + +
+(Optional) +
+observedGeneration
+ +int64 + +
+(Optional) +

ObservedGeneration is the latest generation observed by the controller.

+
+

CephClusterHealthCheckSpec +

+

+(Appears on:ClusterSpec) +

+
+

CephClusterHealthCheckSpec represent the healthcheck for Ceph daemons

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+daemonHealth
+ + +DaemonHealthSpec + + +
+(Optional) +

DaemonHealth is the health check for a given daemon

+
+livenessProbe
+ + +map[github.com/rook/rook/pkg/apis/ceph.rook.io/v1.KeyType]*github.com/rook/rook/pkg/apis/ceph.rook.io/v1.ProbeSpec + + +
+(Optional) +

LivenessProbe allows changing the livenessProbe configuration for a given daemon

+
+startupProbe
+ + +map[github.com/rook/rook/pkg/apis/ceph.rook.io/v1.KeyType]*github.com/rook/rook/pkg/apis/ceph.rook.io/v1.ProbeSpec + + +
+(Optional) +

StartupProbe allows changing the startupProbe configuration for a given daemon

+
+

CephDaemonsVersions +

+

+(Appears on:CephStatus) +

+
+

CephDaemonsVersions show the current ceph version for different ceph daemons

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+mon
+ +map[string]int + +
+(Optional) +

Mon shows Mon Ceph version

+
+mgr
+ +map[string]int + +
+(Optional) +

Mgr shows Mgr Ceph version

+
+osd
+ +map[string]int + +
+(Optional) +

Osd shows Osd Ceph version

+
+rgw
+ +map[string]int + +
+(Optional) +

Rgw shows Rgw Ceph version

+
+mds
+ +map[string]int + +
+(Optional) +

Mds shows Mds Ceph version

+
+rbd-mirror
+ +map[string]int + +
+(Optional) +

RbdMirror shows RbdMirror Ceph version

+
+cephfs-mirror
+ +map[string]int + +
+(Optional) +

CephFSMirror shows CephFSMirror Ceph version

+
+overall
+ +map[string]int + +
+(Optional) +

Overall shows overall Ceph version

+
+

CephFilesystemStatus +

+

+(Appears on:CephFilesystem) +

+
+

CephFilesystemStatus represents the status of a Ceph Filesystem

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+phase
+ + +ConditionType + + +
+(Optional) +
+snapshotScheduleStatus
+ + +FilesystemSnapshotScheduleStatusSpec + + +
+(Optional) +
+info
+ +map[string]string + +
+(Optional) +

Use only info and put mirroringStatus in it?

+
+mirroringStatus
+ + +FilesystemMirroringInfoSpec + + +
+(Optional) +

MirroringStatus is the filesystem mirroring status

+
+conditions
+ + +[]Condition + + +
+
+observedGeneration
+ +int64 + +
+(Optional) +

ObservedGeneration is the latest generation observed by the controller.

+
+

CephFilesystemSubVolumeGroupSpec +

+

+(Appears on:CephFilesystemSubVolumeGroup) +

+
+

CephFilesystemSubVolumeGroupSpec represents the specification of a Ceph Filesystem SubVolumeGroup

+
+ + + + + + + + + + + + + +
FieldDescription
+filesystemName
+ +string + +
+

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

+
+

CephFilesystemSubVolumeGroupStatus +

+

+(Appears on:CephFilesystemSubVolumeGroup) +

+
+

CephFilesystemSubVolumeGroupStatus represents the Status of Ceph Filesystem SubVolumeGroup

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+phase
+ + +ConditionType + + +
+(Optional) +
+info
+ +map[string]string + +
+(Optional) +
+observedGeneration
+ +int64 + +
+(Optional) +

ObservedGeneration is the latest generation observed by the controller.

+
+

CephHealthMessage +

+

+(Appears on:CephStatus) +

+
+

CephHealthMessage represents the health message of a Ceph Cluster

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+severity
+ +string + +
+
+message
+ +string + +
+
+

CephStatus +

+

+(Appears on:ClusterStatus) +

+
+

CephStatus is the details health of a Ceph Cluster

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+health
+ +string + +
+
+details
+ + +map[string]github.com/rook/rook/pkg/apis/ceph.rook.io/v1.CephHealthMessage + + +
+
+lastChecked
+ +string + +
+
+lastChanged
+ +string + +
+
+previousHealth
+ +string + +
+
+capacity
+ + +Capacity + + +
+
+versions
+ + +CephDaemonsVersions + + +
+(Optional) +
+fsid
+ +string + +
+
+

CephStorage +

+

+(Appears on:ClusterStatus) +

+
+

CephStorage represents flavors of Ceph Cluster Storage

+
+ + + + + + + + + + + + + +
FieldDescription
+deviceClasses
+ + +[]DeviceClasses + + +
+
+

CephVersionSpec +

+

+(Appears on:ClusterSpec) +

+
+

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

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+image
+ +string + +
+(Optional) +

Image is the container image used to launch the ceph daemons, such as quay.io/ceph/ceph: +The full list of images can be found at https://quay.io/repository/ceph/ceph?tab=tags

+
+allowUnsupported
+ +bool + +
+(Optional) +

Whether to allow unsupported versions (do not set to true in production)

+
+imagePullPolicy
+ + +Kubernetes core/v1.PullPolicy + + +
+(Optional) +

ImagePullPolicy describes a policy for if/when to pull a container image +One of Always, Never, IfNotPresent.

+
+

CleanupConfirmationProperty +(string alias)

+

+(Appears on:CleanupPolicySpec) +

+
+

CleanupConfirmationProperty represents the cleanup confirmation

+
+ + + + + + + + + + +
ValueDescription

"yes-really-destroy-data"

DeleteDataDirOnHostsConfirmation represents the validation to destroy dataDirHostPath

+
+

CleanupPolicySpec +

+

+(Appears on:ClusterSpec) +

+
+

CleanupPolicySpec represents a Ceph Cluster cleanup policy

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+confirmation
+ + +CleanupConfirmationProperty + + +
+(Optional) +

Confirmation represents the cleanup confirmation

+
+sanitizeDisks
+ + +SanitizeDisksSpec + + +
+(Optional) +

SanitizeDisks represents way we sanitize disks

+
+allowUninstallWithVolumes
+ +bool + +
+(Optional) +

AllowUninstallWithVolumes defines whether we can proceed with the uninstall if they are RBD images still present

+
+

ClientSpec +

+

+(Appears on:CephClient) +

+
+

ClientSpec represents the specification of a Ceph Client

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+(Optional) +
+caps
+ +map[string]string + +
+
+

ClusterSpec +

+

+(Appears on:CephCluster) +

+
+

ClusterSpec represents the specification of Ceph Cluster

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+cephVersion
+ + +CephVersionSpec + + +
+(Optional) +

The version information that instructs Rook to orchestrate a particular version of Ceph.

+
+storage
+ + +StorageScopeSpec + + +
+(Optional) +

A spec for available storage in the cluster and how it should be used

+
+annotations
+ + +AnnotationsSpec + + +
+(Optional) +

The annotations-related configuration to add/set on each Pod related object.

+
+labels
+ + +LabelsSpec + + +
+(Optional) +

The labels-related configuration to add/set on each Pod related object.

+
+placement
+ + +PlacementSpec + + +
+(Optional) +

The placement-related configuration to pass to kubernetes (affinity, node selector, tolerations).

+
+network
+ + +NetworkSpec + + +
+(Optional) +

Network related configuration

+
+resources
+ + +ResourceSpec + + +
+(Optional) +

Resources set resource requests and limits

+
+priorityClassNames
+ + +PriorityClassNamesSpec + + +
+(Optional) +

PriorityClassNames sets priority classes on components

+
+dataDirHostPath
+ +string + +
+(Optional) +

The path on the host where config and data can be persisted

+
+skipUpgradeChecks
+ +bool + +
+(Optional) +

SkipUpgradeChecks defines if an upgrade should be forced even if one of the check fails

+
+continueUpgradeAfterChecksEvenIfNotHealthy
+ +bool + +
+(Optional) +

ContinueUpgradeAfterChecksEvenIfNotHealthy defines if an upgrade should continue even if PGs are not clean

+
+waitTimeoutForHealthyOSDInMinutes
+ +time.Duration + +
+(Optional) +

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.

+
+disruptionManagement
+ + +DisruptionManagementSpec + + +
+(Optional) +

A spec for configuring disruption management.

+
+mon
+ + +MonSpec + + +
+(Optional) +

A spec for mon related options

+
+crashCollector
+ + +CrashCollectorSpec + + +
+(Optional) +

A spec for the crash controller

+
+dashboard
+ + +DashboardSpec + + +
+(Optional) +

Dashboard settings

+
+monitoring
+ + +MonitoringSpec + + +
+(Optional) +

Prometheus based Monitoring settings

+
+external
+ + +ExternalSpec + + +
+(Optional) +

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.

+
+mgr
+ + +MgrSpec + + +
+(Optional) +

A spec for mgr related options

+
+removeOSDsIfOutAndSafeToRemove
+ +bool + +
+(Optional) +

Remove the OSD that is out and safe to remove only if this option is true

+
+cleanupPolicy
+ + +CleanupPolicySpec + + +
+(Optional) +

Indicates user intent when deleting a cluster; blocks orchestration and should not be set if cluster +deletion is not imminent.

+
+healthCheck
+ + +CephClusterHealthCheckSpec + + +
+(Optional) +

Internal daemon healthchecks and liveness probe

+
+security
+ + +SecuritySpec + + +
+(Optional) +

Security represents security settings

+
+logCollector
+ + +LogCollectorSpec + + +
+(Optional) +

Logging represents loggings settings

+
+

ClusterState +(string alias)

+

+(Appears on:ClusterStatus) +

+
+

ClusterState represents the state of a Ceph Cluster

+
+ + + + + + + + + + + + + + + + + + + + +
ValueDescription

"Connected"

ClusterStateConnected represents the Connected state of a Ceph Cluster

+

"Connecting"

ClusterStateConnecting represents the Connecting state of a Ceph Cluster

+

"Created"

ClusterStateCreated represents the Created state of a Ceph Cluster

+

"Creating"

ClusterStateCreating represents the Creating state of a Ceph Cluster

+

"Error"

ClusterStateError represents the Error state of a Ceph Cluster

+

"Updating"

ClusterStateUpdating represents the Updating state of a Ceph Cluster

+
+

ClusterStatus +

+

+(Appears on:CephCluster) +

+
+

ClusterStatus represents the status of a Ceph cluster

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+state
+ + +ClusterState + + +
+
+phase
+ + +ConditionType + + +
+
+message
+ +string + +
+
+conditions
+ + +[]Condition + + +
+
+ceph
+ + +CephStatus + + +
+
+storage
+ + +CephStorage + + +
+
+version
+ + +ClusterVersion + + +
+
+observedGeneration
+ +int64 + +
+(Optional) +

ObservedGeneration is the latest generation observed by the controller.

+
+

ClusterVersion +

+

+(Appears on:ClusterStatus) +

+
+

ClusterVersion represents the version of a Ceph Cluster

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+image
+ +string + +
+
+version
+ +string + +
+
+

CompressionSpec +

+

+(Appears on:ConnectionsSpec) +

+
+
+ + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +

Whether to compress the data in transit across the wire. +The default is not set. Requires Ceph Quincy (v17) or newer.

+
+

Condition +

+

+(Appears on:CephBlockPoolStatus, CephFilesystemStatus, ClusterStatus, ObjectStoreStatus, Status) +

+
+

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

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+type
+ + +ConditionType + + +
+
+status
+ + +Kubernetes core/v1.ConditionStatus + + +
+
+reason
+ + +ConditionReason + + +
+
+message
+ +string + +
+
+lastHeartbeatTime
+ + +Kubernetes meta/v1.Time + + +
+
+lastTransitionTime
+ + +Kubernetes meta/v1.Time + + +
+
+

ConditionReason +(string alias)

+

+(Appears on:Condition) +

+
+

ConditionReason is a reason for a condition

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ValueDescription

"ClusterConnected"

ClusterConnectedReason is cluster connected reason

+

"ClusterConnecting"

ClusterConnectingReason is cluster connecting reason

+

"ClusterCreated"

ClusterCreatedReason is cluster created reason

+

"ClusterDeleting"

ClusterDeletingReason is cluster deleting reason

+

"ClusterProgressing"

ClusterProgressingReason is cluster progressing reason

+

"Deleting"

DeletingReason represents when Rook has detected a resource object should be deleted.

+

"ObjectHasDependents"

ObjectHasDependentsReason represents when a resource object has dependents that are blocking +deletion.

+

"ObjectHasNoDependents"

ObjectHasNoDependentsReason represents when a resource object has no dependents that are +blocking deletion.

+

"ReconcileFailed"

ReconcileFailed represents when a resource reconciliation failed.

+

"ReconcileStarted"

ReconcileStarted represents when a resource reconciliation started.

+

"ReconcileSucceeded"

ReconcileSucceeded represents when a resource reconciliation was successful.

+
+

ConditionType +(string alias)

+

+(Appears on:CephBlockPoolRadosNamespaceStatus, CephBlockPoolStatus, CephClientStatus, CephFilesystemStatus, CephFilesystemSubVolumeGroupStatus, ClusterStatus, Condition, ObjectStoreStatus) +

+
+

ConditionType represent a resource’s status

+
+ + + + + + + + + + + + + + + + + + + + + + +
ValueDescription

"Connected"

ConditionConnected represents Connected state of an object

+

"Connecting"

ConditionConnecting represents Connecting state of an object

+

"Deleting"

ConditionDeleting represents Deleting state of an object

+

"DeletionIsBlocked"

ConditionDeletionIsBlocked represents when deletion of the object is blocked.

+

"Failure"

ConditionFailure represents Failure state of an object

+

"Progressing"

ConditionProgressing represents Progressing state of an object

+

"Ready"

ConditionReady represents Ready state of an object

+
+

ConnectionsSpec +

+

+(Appears on:NetworkSpec) +

+
+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+encryption
+ + +EncryptionSpec + + +
+(Optional) +

Encryption settings for the network connections.

+
+compression
+ + +CompressionSpec + + +
+(Optional) +

Compression settings for the network connections.

+
+requireMsgr2
+ +bool + +
+(Optional) +

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).

+
+

CrashCollectorSpec +

+

+(Appears on:ClusterSpec) +

+
+

CrashCollectorSpec represents options to configure the crash controller

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+disable
+ +bool + +
+(Optional) +

Disable determines whether we should enable the crash collector

+
+daysToRetain
+ +uint + +
+(Optional) +

DaysToRetain represents the number of days to retain crash until they get pruned

+
+

DaemonHealthSpec +

+

+(Appears on:CephClusterHealthCheckSpec) +

+
+

DaemonHealthSpec is a daemon health check

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+status
+ + +HealthCheckSpec + + +
+(Optional) +

Status represents the health check settings for the Ceph health

+
+mon
+ + +HealthCheckSpec + + +
+(Optional) +

Monitor represents the health check settings for the Ceph monitor

+
+osd
+ + +HealthCheckSpec + + +
+(Optional) +

ObjectStorageDaemon represents the health check settings for the Ceph OSDs

+
+

DashboardSpec +

+

+(Appears on:ClusterSpec) +

+
+

DashboardSpec represents the settings for the Ceph dashboard

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +

Enabled determines whether to enable the dashboard

+
+urlPrefix
+ +string + +
+(Optional) +

URLPrefix is a prefix for all URLs to use the dashboard with a reverse proxy

+
+port
+ +int + +
+(Optional) +

Port is the dashboard webserver port

+
+ssl
+ +bool + +
+(Optional) +

SSL determines whether SSL should be used

+
+

Device +

+

+(Appears on:Selection) +

+
+

Device represents a disk to use in the cluster

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+(Optional) +
+fullpath
+ +string + +
+(Optional) +
+config
+ +map[string]string + +
+(Optional) +
+

DeviceClasses +

+

+(Appears on:CephStorage) +

+
+

DeviceClasses represents device classes of a Ceph Cluster

+
+ + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+

DisruptionManagementSpec +

+

+(Appears on:ClusterSpec) +

+
+

DisruptionManagementSpec configures management of daemon disruptions

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+managePodBudgets
+ +bool + +
+(Optional) +

This enables management of poddisruptionbudgets

+
+osdMaintenanceTimeout
+ +time.Duration + +
+(Optional) +

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

+
+pgHealthCheckTimeout
+ +time.Duration + +
+(Optional) +

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.

+
+manageMachineDisruptionBudgets
+ +bool + +
+(Optional) +

Deprecated. This enables management of machinedisruptionbudgets.

+
+machineDisruptionBudgetNamespace
+ +string + +
+(Optional) +

Deprecated. Namespace to look for MDBs by the machineDisruptionBudgetController

+
+

EncryptionSpec +

+

+(Appears on:ConnectionsSpec) +

+
+
+ + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +

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.

+
+

EndpointAddress +

+

+(Appears on:GatewaySpec) +

+
+

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

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+ip
+ +string + +
+(Optional) +

The IP of this endpoint.

+
+hostname
+ +string + +
+(Optional) +

The Hostname of this endpoint

+
+

ErasureCodedSpec +

+

+(Appears on:PoolSpec) +

+
+

ErasureCodedSpec represents the spec for erasure code in a pool

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+codingChunks
+ +uint + +
+

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.

+
+dataChunks
+ +uint + +
+

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.

+
+algorithm
+ +string + +
+(Optional) +

The algorithm for erasure coding

+
+

ExternalSpec +

+

+(Appears on:ClusterSpec) +

+
+

ExternalSpec represents the options supported by an external cluster

+
+ + + + + + + + + + + + + +
FieldDescription
+enable
+ +bool + +
+(Optional) +

Enable determines whether external mode is enabled or not

+
+

FSMirroringSpec +

+

+(Appears on:FilesystemSpec) +

+
+

FSMirroringSpec represents the setting for a mirrored filesystem

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +

Enabled whether this filesystem is mirrored or not

+
+peers
+ + +MirroringPeerSpec + + +
+(Optional) +

Peers represents the peers spec

+
+snapshotSchedules
+ + +[]SnapshotScheduleSpec + + +
+(Optional) +

SnapshotSchedules is the scheduling of snapshot for mirrored filesystems

+
+snapshotRetention
+ + +[]SnapshotScheduleRetentionSpec + + +
+(Optional) +

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

+
+

FilesystemMirrorInfoPeerSpec +

+

+(Appears on:FilesystemsSpec) +

+
+

FilesystemMirrorInfoPeerSpec is the specification of a filesystem peer mirror

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+uuid
+ +string + +
+(Optional) +

UUID is the peer unique identifier

+
+remote
+ + +PeerRemoteSpec + + +
+(Optional) +

Remote are the remote cluster information

+
+stats
+ + +PeerStatSpec + + +
+(Optional) +

Stats are the stat a peer mirror

+
+

FilesystemMirroringInfo +

+

+(Appears on:FilesystemMirroringInfoSpec) +

+
+

FilesystemMirrorInfoSpec is the filesystem mirror status of a given filesystem

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+daemon_id
+ +int + +
+(Optional) +

DaemonID is the cephfs-mirror name

+
+filesystems
+ + +[]FilesystemsSpec + + +
+(Optional) +

Filesystems is the list of filesystems managed by a given cephfs-mirror daemon

+
+

FilesystemMirroringInfoSpec +

+

+(Appears on:CephFilesystemStatus) +

+
+

FilesystemMirroringInfo is the status of the pool mirroring

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+daemonsStatus
+ + +[]FilesystemMirroringInfo + + +
+(Optional) +

PoolMirroringStatus is the mirroring status of a filesystem

+
+lastChecked
+ +string + +
+(Optional) +

LastChecked is the last time time the status was checked

+
+lastChanged
+ +string + +
+(Optional) +

LastChanged is the last time time the status last changed

+
+details
+ +string + +
+(Optional) +

Details contains potential status errors

+
+

FilesystemMirroringSpec +

+

+(Appears on:CephFilesystemMirror) +

+
+

FilesystemMirroringSpec is the filesystem mirroring specification

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+placement
+ + +Placement + + +
+(Optional) +

The affinity to place the rgw pods (default is to place on any available node)

+
+annotations
+ + +Annotations + + +
+(Optional) +

The annotations-related configuration to add/set on each Pod related object.

+
+labels
+ + +Labels + + +
+(Optional) +

The labels-related configuration to add/set on each Pod related object.

+
+resources
+ + +Kubernetes core/v1.ResourceRequirements + + +
+(Optional) +

The resource requirements for the cephfs-mirror pods

+
+priorityClassName
+ +string + +
+(Optional) +

PriorityClassName sets priority class on the cephfs-mirror pods

+
+

FilesystemSnapshotScheduleStatusRetention +

+

+(Appears on:FilesystemSnapshotSchedulesSpec) +

+
+

FilesystemSnapshotScheduleStatusRetention is the retention specification for a filesystem snapshot schedule

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+start
+ +string + +
+(Optional) +

Start is when the snapshot schedule starts

+
+created
+ +string + +
+(Optional) +

Created is when the snapshot schedule was created

+
+first
+ +string + +
+(Optional) +

First is when the first snapshot schedule was taken

+
+last
+ +string + +
+(Optional) +

Last is when the last snapshot schedule was taken

+
+last_pruned
+ +string + +
+(Optional) +

LastPruned is when the last snapshot schedule was pruned

+
+created_count
+ +int + +
+(Optional) +

CreatedCount is total amount of snapshots

+
+pruned_count
+ +int + +
+(Optional) +

PrunedCount is total amount of pruned snapshots

+
+active
+ +bool + +
+(Optional) +

Active is whether the scheduled is active or not

+
+

FilesystemSnapshotScheduleStatusSpec +

+

+(Appears on:CephFilesystemStatus) +

+
+

FilesystemSnapshotScheduleStatusSpec is the status of the snapshot schedule

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+snapshotSchedules
+ + +[]FilesystemSnapshotSchedulesSpec + + +
+(Optional) +

SnapshotSchedules is the list of snapshots scheduled

+
+lastChecked
+ +string + +
+(Optional) +

LastChecked is the last time time the status was checked

+
+lastChanged
+ +string + +
+(Optional) +

LastChanged is the last time time the status last changed

+
+details
+ +string + +
+(Optional) +

Details contains potential status errors

+
+

FilesystemSnapshotSchedulesSpec +

+

+(Appears on:FilesystemSnapshotScheduleStatusSpec) +

+
+

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

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+fs
+ +string + +
+(Optional) +

Fs is the name of the Ceph Filesystem

+
+subvol
+ +string + +
+(Optional) +

Subvol is the name of the sub volume

+
+path
+ +string + +
+(Optional) +

Path is the path on the filesystem

+
+rel_path
+ +string + +
+(Optional) +
+schedule
+ +string + +
+(Optional) +
+retention
+ + +FilesystemSnapshotScheduleStatusRetention + + +
+(Optional) +
+

FilesystemSpec +

+

+(Appears on:CephFilesystem) +

+
+

FilesystemSpec represents the spec of a file system

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+metadataPool
+ + +PoolSpec + + +
+

The metadata pool settings

+
+dataPools
+ + +[]NamedPoolSpec + + +
+

The data pool settings, with optional predefined pool name.

+
+preservePoolsOnDelete
+ +bool + +
+(Optional) +

Preserve pools on filesystem deletion

+
+preserveFilesystemOnDelete
+ +bool + +
+(Optional) +

Preserve the fs in the cluster on CephFilesystem CR deletion. Setting this to true automatically implies PreservePoolsOnDelete is true.

+
+metadataServer
+ + +MetadataServerSpec + + +
+

The mds pod info

+
+mirroring
+ + +FSMirroringSpec + + +
+(Optional) +

The mirroring settings

+
+statusCheck
+ + +MirrorHealthCheckSpec + + +
+

The mirroring statusCheck

+
+

FilesystemsSpec +

+

+(Appears on:FilesystemMirroringInfo) +

+
+

FilesystemsSpec is spec for the mirrored filesystem

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+filesystem_id
+ +int + +
+(Optional) +

FilesystemID is the filesystem identifier

+
+name
+ +string + +
+(Optional) +

Name is name of the filesystem

+
+directory_count
+ +int + +
+(Optional) +

DirectoryCount is the number of directories in the filesystem

+
+peers
+ + +[]FilesystemMirrorInfoPeerSpec + + +
+(Optional) +

Peers represents the mirroring peers

+
+

GaneshaRADOSSpec +

+

+(Appears on:NFSGaneshaSpec) +

+
+

GaneshaRADOSSpec represents the specification of a Ganesha RADOS object

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+pool
+ +string + +
+(Optional) +

The Ceph pool used store the shared configuration for NFS-Ganesha daemons. +This setting is required for Ceph v15 and ignored for Ceph v16. +As of Ceph Pacific 16.2.7+, this is internally hardcoded to “.nfs”.

+
+namespace
+ +string + +
+(Optional) +

The namespace inside the Ceph pool (set by ‘pool’) where shared NFS-Ganesha config is stored. +This setting is required for Ceph v15 and ignored for Ceph v16. +As of Ceph Pacific v16+, this is internally set to the name of the CephNFS.

+
+

GaneshaServerSpec +

+

+(Appears on:NFSGaneshaSpec) +

+
+

GaneshaServerSpec represents the specification of a Ganesha Server

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+active
+ +int + +
+

The number of active Ganesha servers

+
+placement
+ + +Placement + + +
+(Optional) +

The affinity to place the ganesha pods

+
+annotations
+ + +Annotations + + +
+(Optional) +

The annotations-related configuration to add/set on each Pod related object.

+
+labels
+ + +Labels + + +
+(Optional) +

The labels-related configuration to add/set on each Pod related object.

+
+resources
+ + +Kubernetes core/v1.ResourceRequirements + + +
+(Optional) +

Resources set resource requests and limits

+
+priorityClassName
+ +string + +
+(Optional) +

PriorityClassName sets the priority class on the pods

+
+logLevel
+ +string + +
+(Optional) +

LogLevel set logging level

+
+hostNetwork
+ +bool + +
+(Optional) +

Whether host networking is enabled for the Ganesha server. If not set, the network settings from the cluster CR will be applied.

+
+

GatewaySpec +

+

+(Appears on:ObjectStoreSpec) +

+
+

GatewaySpec represents the specification of Ceph Object Store Gateway

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+port
+ +int32 + +
+(Optional) +

The port the rgw service will be listening on (http)

+
+securePort
+ +int32 + +
+(Optional) +

The port the rgw service will be listening on (https)

+
+instances
+ +int32 + +
+(Optional) +

The number of pods in the rgw replicaset.

+
+sslCertificateRef
+ +string + +
+(Optional) +

The name of the secret that stores the ssl certificate for secure rgw connections

+
+caBundleRef
+ +string + +
+(Optional) +

The name of the secret that stores custom ca-bundle with root and intermediate certificates.

+
+placement
+ + +Placement + + +
+(Optional) +

The affinity to place the rgw pods (default is to place on any available node)

+
+annotations
+ + +Annotations + + +
+(Optional) +

The annotations-related configuration to add/set on each Pod related object.

+
+labels
+ + +Labels + + +
+(Optional) +

The labels-related configuration to add/set on each Pod related object.

+
+resources
+ + +Kubernetes core/v1.ResourceRequirements + + +
+(Optional) +

The resource requirements for the rgw pods

+
+priorityClassName
+ +string + +
+(Optional) +

PriorityClassName sets priority classes on the rgw pods

+
+externalRgwEndpoints
+ + +[]EndpointAddress + + +
+(Optional) +

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.

+
+service
+ + +RGWServiceSpec + + +
+(Optional) +

The configuration related to add/set on each rgw service.

+
+hostNetwork
+ +bool + +
+(Optional) +

Whether host networking is enabled for the rgw daemon. If not set, the network settings from the cluster CR will be applied.

+
+dashboardEnabled
+ +bool + +
+(Optional) +

Whether rgw dashboard is enabled for the rgw daemon. If not set, the rgw dashboard will be enabled.

+
+

HTTPEndpointSpec +

+

+(Appears on:TopicEndpointSpec) +

+
+

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

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+uri
+ +string + +
+

The URI of the HTTP endpoint to push notification to

+
+disableVerifySSL
+ +bool + +
+(Optional) +

Indicate whether the server certificate is validated by the client or not

+
+sendCloudEvents
+ +bool + +
+(Optional) +

Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md +Supported for Ceph Quincy (v17) or newer.

+
+

HealthCheckSpec +

+

+(Appears on:DaemonHealthSpec, MirrorHealthCheckSpec) +

+
+

HealthCheckSpec represents the health check of an object store bucket

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+disabled
+ +bool + +
+(Optional) +
+interval
+ + +Kubernetes meta/v1.Duration + + +
+(Optional) +

Interval is the internal in second or minute for the health check to run like 60s for 60 seconds

+
+timeout
+ +string + +
+(Optional) +
+

HybridStorageSpec +

+

+(Appears on:ReplicatedSpec) +

+
+

HybridStorageSpec represents the settings for hybrid storage pool

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+primaryDeviceClass
+ +string + +
+

PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD

+
+secondaryDeviceClass
+ +string + +
+

SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs

+
+

IPFamilyType +(string alias)

+

+(Appears on:NetworkSpec) +

+
+

IPFamilyType represents the single stack Ipv4 or Ipv6 protocol.

+
+ + + + + + + + + + + + +
ValueDescription

"IPv4"

IPv4 internet protocol version

+

"IPv6"

IPv6 internet protocol version

+
+

KafkaEndpointSpec +

+

+(Appears on:TopicEndpointSpec) +

+
+

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

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+uri
+ +string + +
+

The URI of the Kafka endpoint to push notification to

+
+useSSL
+ +bool + +
+(Optional) +

Indicate whether to use SSL when communicating with the broker

+
+disableVerifySSL
+ +bool + +
+(Optional) +

Indicate whether the server certificate is validated by the client or not

+
+ackLevel
+ +string + +
+(Optional) +

The ack level required for this topic (none/broker)

+
+

KerberosConfigFiles +

+

+(Appears on:KerberosSpec) +

+
+

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

+
+ + + + + + + + + + + + + +
FieldDescription
+volumeSource
+ + +Kubernetes core/v1.VolumeSource + + +
+

VolumeSource accepts a 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.

+
+

KerberosKeytabFile +

+

+(Appears on:KerberosSpec) +

+
+

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

+
+ + + + + + + + + + + + + +
FieldDescription
+volumeSource
+ + +Kubernetes core/v1.VolumeSource + + +
+

VolumeSource accepts a 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.

+
+

KerberosSpec +

+

+(Appears on:NFSSecuritySpec) +

+
+

KerberosSpec represents configuration for Kerberos.

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+principalName
+ +string + +
+(Optional) +

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: /-@. e.g., nfs/rook-ceph-my-nfs@example.net. +See https://github.com/nfs-ganesha/nfs-ganesha/wiki/RPCSEC_GSS for more detail.

+
+configFiles
+ + +KerberosConfigFiles + + +
+(Optional) +

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.

+
+keytabFile
+ + +KerberosKeytabFile + + +
+(Optional) +

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).

+
+

KeyManagementServiceSpec +

+

+(Appears on:ObjectStoreSecuritySpec, SecuritySpec) +

+
+

KeyManagementServiceSpec represent various details of the KMS server

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+connectionDetails
+ +map[string]string + +
+(Optional) +

ConnectionDetails contains the KMS connection details (address, port etc)

+
+tokenSecretName
+ +string + +
+(Optional) +

TokenSecretName is the kubernetes secret containing the KMS token

+
+

KeyRotationSpec +

+

+(Appears on:SecuritySpec) +

+
+

KeyRotationSpec represents the settings for Key Rotation.

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +

Enabled represents whether the key rotation is enabled.

+
+schedule
+ +string + +
+(Optional) +

Schedule represents the cron schedule for key rotation.

+
+

KeyType +(string alias)

+
+

KeyType type safety

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ValueDescription

"exporter"

"cleanup"

"clusterMetadata"

"crashcollector"

"mds"

"mgr"

"mon"

"arbiter"

"monitoring"

"osd"

"prepareosd"

"rgw"

"keyrotation"

+

Labels +(map[string]string alias)

+

+(Appears on:FilesystemMirroringSpec, GaneshaServerSpec, GatewaySpec, MetadataServerSpec, RBDMirroringSpec) +

+
+

Labels are label for a given daemons

+
+

LabelsSpec +(map[github.com/rook/rook/pkg/apis/ceph.rook.io/v1.KeyType]github.com/rook/rook/pkg/apis/ceph.rook.io/v1.Labels alias)

+

+(Appears on:ClusterSpec) +

+
+

LabelsSpec is the main spec label for all daemons

+
+

LogCollectorSpec +

+

+(Appears on:ClusterSpec) +

+
+

LogCollectorSpec is the logging spec

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +

Enabled represents whether the log collector is enabled

+
+periodicity
+ +string + +
+(Optional) +

Periodicity is the periodicity of the log rotation.

+
+maxLogSize
+ +k8s.io/apimachinery/pkg/api/resource.Quantity + +
+(Optional) +

MaxLogSize is the maximum size of the log per ceph daemons. Must be at least 1M.

+
+

MetadataServerSpec +

+

+(Appears on:FilesystemSpec) +

+
+

MetadataServerSpec represents the specification of a Ceph Metadata Server

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+activeCount
+ +int32 + +
+

The number of metadata servers that are active. The remaining servers in the cluster will be in standby mode.

+
+activeStandby
+ +bool + +
+(Optional) +

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.

+
+placement
+ + +Placement + + +
+(Optional) +

The affinity to place the mds pods (default is to place on all available node) with a daemonset

+
+annotations
+ + +Annotations + + +
+(Optional) +

The annotations-related configuration to add/set on each Pod related object.

+
+labels
+ + +Labels + + +
+(Optional) +

The labels-related configuration to add/set on each Pod related object.

+
+resources
+ + +Kubernetes core/v1.ResourceRequirements + + +
+(Optional) +

The resource requirements for the rgw pods

+
+priorityClassName
+ +string + +
+(Optional) +

PriorityClassName sets priority classes on components

+
+livenessProbe
+ + +ProbeSpec + + +
+(Optional) +
+startupProbe
+ + +ProbeSpec + + +
+(Optional) +
+

MgrSpec +

+

+(Appears on:ClusterSpec) +

+
+

MgrSpec represents options to configure a ceph mgr

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+count
+ +int + +
+(Optional) +

Count is the number of manager to run

+
+allowMultiplePerNode
+ +bool + +
+(Optional) +

AllowMultiplePerNode allows to run multiple managers on the same node (not recommended)

+
+modules
+ + +[]Module + + +
+(Optional) +

Modules is the list of ceph manager modules to enable/disable

+
+

MirrorHealthCheckSpec +

+

+(Appears on:FilesystemSpec, PoolSpec) +

+
+

MirrorHealthCheckSpec represents the health specification of a Ceph Storage Pool mirror

+
+ + + + + + + + + + + + + +
FieldDescription
+mirror
+ + +HealthCheckSpec + + +
+(Optional) +
+

MirroringInfoSpec +

+

+(Appears on:CephBlockPoolStatus) +

+
+

MirroringInfoSpec is the status of the pool mirroring

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+PoolMirroringInfo
+ + +PoolMirroringInfo + + +
+

+(Members of PoolMirroringInfo are embedded into this type.) +

+(Optional) +
+lastChecked
+ +string + +
+(Optional) +
+lastChanged
+ +string + +
+(Optional) +
+details
+ +string + +
+(Optional) +
+

MirroringPeerSpec +

+

+(Appears on:FSMirroringSpec, MirroringSpec, RBDMirroringSpec) +

+
+

MirroringPeerSpec represents the specification of a mirror peer

+
+ + + + + + + + + + + + + +
FieldDescription
+secretNames
+ +[]string + +
+(Optional) +

SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers

+
+

MirroringSpec +

+

+(Appears on:PoolSpec) +

+
+

MirroringSpec represents the setting for a mirrored pool

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +

Enabled whether this pool is mirrored or not

+
+mode
+ +string + +
+(Optional) +

Mode is the mirroring mode: either pool or image

+
+snapshotSchedules
+ + +[]SnapshotScheduleSpec + + +
+(Optional) +

SnapshotSchedules is the scheduling of snapshot for mirrored images/pools

+
+peers
+ + +MirroringPeerSpec + + +
+(Optional) +

Peers represents the peers spec

+
+

MirroringStatusSpec +

+

+(Appears on:CephBlockPoolStatus) +

+
+

MirroringStatusSpec is the status of the pool mirroring

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+PoolMirroringStatus
+ + +PoolMirroringStatus + + +
+

+(Members of PoolMirroringStatus are embedded into this type.) +

+(Optional) +

PoolMirroringStatus is the mirroring status of a pool

+
+lastChecked
+ +string + +
+(Optional) +

LastChecked is the last time time the status was checked

+
+lastChanged
+ +string + +
+(Optional) +

LastChanged is the last time time the status last changed

+
+details
+ +string + +
+(Optional) +

Details contains potential status errors

+
+

Module +

+

+(Appears on:MgrSpec) +

+
+

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

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+(Optional) +

Name is the name of the ceph manager module

+
+enabled
+ +bool + +
+(Optional) +

Enabled determines whether a module should be enabled or not

+
+

MonSpec +

+

+(Appears on:ClusterSpec) +

+
+

MonSpec represents the specification of the monitor

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+count
+ +int + +
+(Optional) +

Count is the number of Ceph monitors

+
+allowMultiplePerNode
+ +bool + +
+(Optional) +

AllowMultiplePerNode determines if we can run multiple monitors on the same node (not recommended)

+
+stretchCluster
+ + +StretchClusterSpec + + +
+(Optional) +

StretchCluster is the stretch cluster specification

+
+volumeClaimTemplate
+ + +Kubernetes core/v1.PersistentVolumeClaim + + +
+(Optional) +

VolumeClaimTemplate is the PVC definition

+
+

MonitoringSpec +

+

+(Appears on:ClusterSpec) +

+
+

MonitoringSpec represents the settings for Prometheus based Ceph monitoring

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +

Enabled determines whether to create the prometheus rules for the ceph cluster. If true, the prometheus +types must exist or the creation will fail.

+
+externalMgrEndpoints
+ + +[]Kubernetes core/v1.EndpointAddress + + +
+(Optional) +

ExternalMgrEndpoints points to an existing Ceph prometheus exporter endpoint

+
+externalMgrPrometheusPort
+ +uint16 + +
+(Optional) +

ExternalMgrPrometheusPort Prometheus exporter port

+
+port
+ +int + +
+(Optional) +

Port is the prometheus server port

+
+interval
+ + +Kubernetes meta/v1.Duration + + +
+(Optional) +

Interval determines prometheus scrape interval

+
+

MultiClusterServiceSpec +

+

+(Appears on:NetworkSpec) +

+
+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +

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.

+
+clusterID
+ +string + +
+

ClusterID uniquely identifies a cluster. It is used as a prefix to nslookup exported +services. For example: ...svc.clusterset.local

+
+

NFSGaneshaSpec +

+

+(Appears on:CephNFS) +

+
+

NFSGaneshaSpec represents the spec of an nfs ganesha server

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+rados
+ + +GaneshaRADOSSpec + + +
+(Optional) +

RADOS is the Ganesha RADOS specification

+
+server
+ + +GaneshaServerSpec + + +
+

Server is the Ganesha Server specification

+
+security
+ + +NFSSecuritySpec + + +
+(Optional) +

Security allows specifying security configurations for the NFS cluster

+
+

NFSSecuritySpec +

+

+(Appears on:NFSGaneshaSpec) +

+
+

NFSSecuritySpec represents security configurations for an NFS server pod

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+sssd
+ + +SSSDSpec + + +
+(Optional) +

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.

+
+kerberos
+ + +KerberosSpec + + +
+(Optional) +

Kerberos configures NFS-Ganesha to secure NFS client connections with Kerberos.

+
+

NamedBlockPoolSpec +

+

+(Appears on:CephBlockPool) +

+
+

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.

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+(Optional) +

The desired name of the pool if different from the CephBlockPool CR name.

+
+PoolSpec
+ + +PoolSpec + + +
+

+(Members of PoolSpec are embedded into this type.) +

+

The core pool configuration

+
+

NamedPoolSpec +

+

+(Appears on:FilesystemSpec) +

+
+

NamedPoolSpec represents the named ceph pool spec

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

Name of the pool

+
+PoolSpec
+ + +PoolSpec + + +
+

+(Members of PoolSpec are embedded into this type.) +

+

PoolSpec represents the spec of ceph pool

+
+

NetworkSpec +

+

+(Appears on:ClusterSpec) +

+
+

NetworkSpec for Ceph includes backward compatibility code

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+provider
+ +string + +
+(Optional) +

Provider is what provides network connectivity to the cluster e.g. “host” or “multus”

+
+selectors
+ +map[string]string + +
+(Optional) +

Selectors string values describe what networks will be used to connect the cluster. +Meanwhile the keys describe each network respective responsibilities or any metadata +storage provider decide.

+
+connections
+ + +ConnectionsSpec + + +
+(Optional) +

Settings for network connections such as compression and encryption across the +wire.

+
+hostNetwork
+ +bool + +
+(Optional) +

HostNetwork to enable host network

+
+ipFamily
+ + +IPFamilyType + + +
+(Optional) +

IPFamily is the single stack IPv6 or IPv4 protocol

+
+dualStack
+ +bool + +
+(Optional) +

DualStack determines whether Ceph daemons should listen on both IPv4 and IPv6

+
+multiClusterService
+ + +MultiClusterServiceSpec + + +
+(Optional) +

Enable multiClusterService to export the Services between peer clusters

+
+

Node +

+

+(Appears on:StorageScopeSpec) +

+
+

Node is a storage nodes

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+(Optional) +
+resources
+ + +Kubernetes core/v1.ResourceRequirements + + +
+(Optional) +
+config
+ +map[string]string + +
+(Optional) +
+Selection
+ + +Selection + + +
+

+(Members of Selection are embedded into this type.) +

+
+

NodesByName +([]github.com/rook/rook/pkg/apis/ceph.rook.io/v1.Node alias)

+
+

NodesByName implements an interface to sort nodes by name

+
+

NotificationFilterRule +

+

+(Appears on:NotificationFilterSpec) +

+
+

NotificationFilterRule represent a single rule in the Notification Filter spec

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

Name of the metadata or tag

+
+value
+ +string + +
+

Value to filter on

+
+

NotificationFilterSpec +

+

+(Appears on:BucketNotificationSpec) +

+
+

NotificationFilterSpec represent the spec of a Bucket Notification filter

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+keyFilters
+ + +[]NotificationKeyFilterRule + + +
+(Optional) +

Filters based on the object’s key

+
+metadataFilters
+ + +[]NotificationFilterRule + + +
+(Optional) +

Filters based on the object’s metadata

+
+tagFilters
+ + +[]NotificationFilterRule + + +
+(Optional) +

Filters based on the object’s tags

+
+

NotificationKeyFilterRule +

+

+(Appears on:NotificationFilterSpec) +

+
+

NotificationKeyFilterRule represent a single key rule in the Notification Filter spec

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

Name of the filter - prefix/suffix/regex

+
+value
+ +string + +
+

Value to filter on

+
+

ObjectEndpoints +

+

+(Appears on:ObjectStoreStatus) +

+
+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+insecure
+ +[]string + +
+(Optional) +
+secure
+ +[]string + +
+(Optional) +
+

ObjectHealthCheckSpec +

+

+(Appears on:ObjectStoreSpec) +

+
+

ObjectHealthCheckSpec represents the health check of an object store

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+readinessProbe
+ + +ProbeSpec + + +
+(Optional) +
+startupProbe
+ + +ProbeSpec + + +
+(Optional) +
+

ObjectRealmSpec +

+

+(Appears on:CephObjectRealm) +

+
+

ObjectRealmSpec represent the spec of an ObjectRealm

+
+ + + + + + + + + + + + + +
FieldDescription
+pull
+ + +PullSpec + + +
+
+

ObjectStoreSecuritySpec +

+

+(Appears on:ObjectStoreSpec) +

+
+

ObjectStoreSecuritySpec is spec to define security features like encryption

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+SecuritySpec
+ + +SecuritySpec + + +
+(Optional) +
+s3
+ + +KeyManagementServiceSpec + + +
+(Optional) +

The settings for supporting AWS-SSE:S3 with RGW

+
+

ObjectStoreSpec +

+

+(Appears on:CephObjectStore) +

+
+

ObjectStoreSpec represent the spec of a pool

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+metadataPool
+ + +PoolSpec + + +
+(Optional) +

The metadata pool settings

+
+dataPool
+ + +PoolSpec + + +
+(Optional) +

The data pool settings

+
+preservePoolsOnDelete
+ +bool + +
+(Optional) +

Preserve pools on object store deletion

+
+gateway
+ + +GatewaySpec + + +
+(Optional) +

The rgw pod info

+
+zone
+ + +ZoneSpec + + +
+(Optional) +

The multisite info

+
+healthCheck
+ + +ObjectHealthCheckSpec + + +
+(Optional) +

The RGW health probes

+
+security
+ + +ObjectStoreSecuritySpec + + +
+(Optional) +

Security represents security settings

+
+

ObjectStoreStatus +

+

+(Appears on:CephObjectStore) +

+
+

ObjectStoreStatus represents the status of a Ceph Object Store resource

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+phase
+ + +ConditionType + + +
+(Optional) +
+message
+ +string + +
+(Optional) +
+endpoints
+ + +ObjectEndpoints + + +
+(Optional) +
+info
+ +map[string]string + +
+(Optional) +
+conditions
+ + +[]Condition + + +
+
+observedGeneration
+ +int64 + +
+(Optional) +

ObservedGeneration is the latest generation observed by the controller.

+
+

ObjectStoreUserSpec +

+

+(Appears on:CephObjectStoreUser) +

+
+

ObjectStoreUserSpec represent the spec of an Objectstoreuser

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+store
+ +string + +
+(Optional) +

The store the user will be created in

+
+displayName
+ +string + +
+(Optional) +

The display name for the ceph users

+
+capabilities
+ + +ObjectUserCapSpec + + +
+(Optional) +
+quotas
+ + +ObjectUserQuotaSpec + + +
+(Optional) +
+

ObjectStoreUserStatus +

+

+(Appears on:CephObjectStoreUser) +

+
+

ObjectStoreUserStatus represents the status Ceph Object Store Gateway User

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+phase
+ +string + +
+(Optional) +
+info
+ +map[string]string + +
+(Optional) +
+observedGeneration
+ +int64 + +
+(Optional) +

ObservedGeneration is the latest generation observed by the controller.

+
+

ObjectUserCapSpec +

+

+(Appears on:ObjectStoreUserSpec) +

+
+

Additional admin-level capabilities for the Ceph object store user

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+user
+ +string + +
+(Optional) +

Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities

+
+bucket
+ +string + +
+(Optional) +

Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities

+
+metadata
+ +string + +
+(Optional) +

Admin capabilities to read/write Ceph object store metadata. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities

+
+usage
+ +string + +
+(Optional) +

Admin capabilities to read/write Ceph object store usage. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities

+
+zone
+ +string + +
+(Optional) +

Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities

+
+

ObjectUserQuotaSpec +

+

+(Appears on:ObjectStoreUserSpec) +

+
+

ObjectUserQuotaSpec can be used to set quotas for the object store user to limit their usage. See the Ceph docs for more

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+maxBuckets
+ +int + +
+(Optional) +

Maximum bucket limit for the ceph user

+
+maxSize
+ +k8s.io/apimachinery/pkg/api/resource.Quantity + +
+(Optional) +

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.

+
+maxObjects
+ +int64 + +
+(Optional) +

Maximum number of objects across all the user’s buckets

+
+

ObjectZoneGroupSpec +

+

+(Appears on:CephObjectZoneGroup) +

+
+

ObjectZoneGroupSpec represent the spec of an ObjectZoneGroup

+
+ + + + + + + + + + + + + +
FieldDescription
+realm
+ +string + +
+

The display name for the ceph users

+
+

ObjectZoneSpec +

+

+(Appears on:CephObjectZone) +

+
+

ObjectZoneSpec represent the spec of an ObjectZone

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+zoneGroup
+ +string + +
+

The display name for the ceph users

+
+metadataPool
+ + +PoolSpec + + +
+

The metadata pool settings

+
+dataPool
+ + +PoolSpec + + +
+

The data pool settings

+
+customEndpoints
+ +[]string + +
+(Optional) +

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.

+
+preservePoolsOnDelete
+ +bool + +
+(Optional) +

Preserve pools on object zone deletion

+
+

PeerRemoteSpec +

+

+(Appears on:FilesystemMirrorInfoPeerSpec) +

+
+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+client_name
+ +string + +
+(Optional) +

ClientName is cephx name

+
+cluster_name
+ +string + +
+(Optional) +

ClusterName is the name of the cluster

+
+fs_name
+ +string + +
+(Optional) +

FsName is the filesystem name

+
+

PeerStatSpec +

+

+(Appears on:FilesystemMirrorInfoPeerSpec) +

+
+

PeerStatSpec are the mirror stat with a given peer

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+failure_count
+ +int + +
+(Optional) +

FailureCount is the number of mirroring failure

+
+recovery_count
+ +int + +
+(Optional) +

RecoveryCount is the number of recovery attempted after failures

+
+

PeersSpec +

+

+(Appears on:PoolMirroringInfo) +

+
+

PeersSpec contains peer details

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+uuid
+ +string + +
+(Optional) +

UUID is the peer UUID

+
+direction
+ +string + +
+(Optional) +

Direction is the peer mirroring direction

+
+site_name
+ +string + +
+(Optional) +

SiteName is the current site name

+
+mirror_uuid
+ +string + +
+(Optional) +

MirrorUUID is the mirror UUID

+
+client_name
+ +string + +
+(Optional) +

ClientName is the CephX user used to connect to the peer

+
+

Placement +

+

+(Appears on:FilesystemMirroringSpec, GaneshaServerSpec, GatewaySpec, MetadataServerSpec, RBDMirroringSpec, StorageClassDeviceSet) +

+
+

Placement is the placement for an object

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+nodeAffinity
+ + +Kubernetes core/v1.NodeAffinity + + +
+(Optional) +

NodeAffinity is a group of node affinity scheduling rules

+
+podAffinity
+ + +Kubernetes core/v1.PodAffinity + + +
+(Optional) +

PodAffinity is a group of inter pod affinity scheduling rules

+
+podAntiAffinity
+ + +Kubernetes core/v1.PodAntiAffinity + + +
+(Optional) +

PodAntiAffinity is a group of inter pod anti affinity scheduling rules

+
+tolerations
+ + +[]Kubernetes core/v1.Toleration + + +
+(Optional) +

The pod this Toleration is attached to tolerates any taint that matches +the triple using the matching operator

+
+topologySpreadConstraints
+ + +[]Kubernetes core/v1.TopologySpreadConstraint + + +
+(Optional) +

TopologySpreadConstraint specifies how to spread matching pods among the given topology

+
+

PlacementSpec +(map[github.com/rook/rook/pkg/apis/ceph.rook.io/v1.KeyType]github.com/rook/rook/pkg/apis/ceph.rook.io/v1.Placement alias)

+

+(Appears on:ClusterSpec) +

+
+

PlacementSpec is the placement for core ceph daemons part of the CephCluster CRD

+
+

PoolMirroringInfo +

+

+(Appears on:MirroringInfoSpec) +

+
+

PoolMirroringInfo is the mirroring info of a given pool

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+mode
+ +string + +
+(Optional) +

Mode is the mirroring mode

+
+site_name
+ +string + +
+(Optional) +

SiteName is the current site name

+
+peers
+ + +[]PeersSpec + + +
+(Optional) +

Peers are the list of peer sites connected to that cluster

+
+

PoolMirroringStatus +

+

+(Appears on:MirroringStatusSpec) +

+
+

PoolMirroringStatus is the pool mirror status

+
+ + + + + + + + + + + + + +
FieldDescription
+summary
+ + +PoolMirroringStatusSummarySpec + + +
+(Optional) +

Summary is the mirroring status summary

+
+

PoolMirroringStatusSummarySpec +

+

+(Appears on:PoolMirroringStatus) +

+
+

PoolMirroringStatusSummarySpec is the summary output of the command

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+health
+ +string + +
+(Optional) +

Health is the mirroring health

+
+daemon_health
+ +string + +
+(Optional) +

DaemonHealth is the health of the mirroring daemon

+
+image_health
+ +string + +
+(Optional) +

ImageHealth is the health of the mirrored image

+
+states
+ + +StatesSpec + + +
+(Optional) +

States is the various state for all mirrored images

+
+

PoolSpec +

+

+(Appears on:FilesystemSpec, NamedBlockPoolSpec, NamedPoolSpec, ObjectStoreSpec, ObjectZoneSpec) +

+
+

PoolSpec represents the spec of ceph pool

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+failureDomain
+ +string + +
+(Optional) +

The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map

+
+crushRoot
+ +string + +
+(Optional) +

The root of the crush hierarchy utilized by the pool

+
+deviceClass
+ +string + +
+(Optional) +

The device class the OSD should set to for use in the pool

+
+compressionMode
+ +string + +
+(Optional) +

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) +Do NOT set a default value for kubebuilder as this will override the Parameters

+
+replicated
+ + +ReplicatedSpec + + +
+(Optional) +

The replication settings

+
+erasureCoded
+ + +ErasureCodedSpec + + +
+(Optional) +

The erasure code settings

+
+parameters
+ +map[string]string + +
+(Optional) +

Parameters is a list of properties to enable on a given pool

+
+enableRBDStats
+ +bool + +
+

EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool

+
+mirroring
+ + +MirroringSpec + + +
+

The mirroring settings

+
+statusCheck
+ + +MirrorHealthCheckSpec + + +
+

The mirroring statusCheck

+
+quotas
+ + +QuotaSpec + + +
+(Optional) +

The quota settings

+
+

PriorityClassNamesSpec +(map[github.com/rook/rook/pkg/apis/ceph.rook.io/v1.KeyType]string alias)

+

+(Appears on:ClusterSpec) +

+
+

PriorityClassNamesSpec is a map of priority class names to be assigned to components

+
+

ProbeSpec +

+

+(Appears on:MetadataServerSpec, ObjectHealthCheckSpec) +

+
+

ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+disabled
+ +bool + +
+(Optional) +

Disabled determines whether probe is disable or not

+
+probe
+ + +Kubernetes core/v1.Probe + + +
+(Optional) +

Probe describes a health check to be performed against a container to determine whether it is +alive or ready to receive traffic.

+
+

PullSpec +

+

+(Appears on:ObjectRealmSpec) +

+
+

PullSpec represents the pulling specification of a Ceph Object Storage Gateway Realm

+
+ + + + + + + + + + + + + +
FieldDescription
+endpoint
+ +string + +
+
+

QuotaSpec +

+

+(Appears on:PoolSpec) +

+
+

QuotaSpec represents the spec for quotas in a pool

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+maxBytes
+ +uint64 + +
+(Optional) +

MaxBytes represents the quota in bytes +Deprecated in favor of MaxSize

+
+maxSize
+ +string + +
+(Optional) +

MaxSize represents the quota in bytes as a string

+
+maxObjects
+ +uint64 + +
+(Optional) +

MaxObjects represents the quota in objects

+
+

RBDMirroringSpec +

+

+(Appears on:CephRBDMirror) +

+
+

RBDMirroringSpec represents the specification of an RBD mirror daemon

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+count
+ +int + +
+

Count represents the number of rbd mirror instance to run

+
+peers
+ + +MirroringPeerSpec + + +
+(Optional) +

Peers represents the peers spec

+
+placement
+ + +Placement + + +
+(Optional) +

The affinity to place the rgw pods (default is to place on any available node)

+
+annotations
+ + +Annotations + + +
+(Optional) +

The annotations-related configuration to add/set on each Pod related object.

+
+labels
+ + +Labels + + +
+(Optional) +

The labels-related configuration to add/set on each Pod related object.

+
+resources
+ + +Kubernetes core/v1.ResourceRequirements + + +
+(Optional) +

The resource requirements for the rbd mirror pods

+
+priorityClassName
+ +string + +
+(Optional) +

PriorityClassName sets priority class on the rbd mirror pods

+
+

RGWServiceSpec +

+

+(Appears on:GatewaySpec) +

+
+

RGWServiceSpec represent the spec for RGW service

+
+ + + + + + + + + + + + + +
FieldDescription
+annotations
+ + +Annotations + + +
+

The annotations-related configuration to add/set on each rgw service. +nullable +optional

+
+

ReplicatedSpec +

+

+(Appears on:PoolSpec) +

+
+

ReplicatedSpec represents the spec for replication in a pool

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+size
+ +uint + +
+

Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)

+
+targetSizeRatio
+ +float64 + +
+(Optional) +

TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity

+
+requireSafeReplicaSize
+ +bool + +
+(Optional) +

RequireSafeReplicaSize if false allows you to set replica 1

+
+replicasPerFailureDomain
+ +uint + +
+(Optional) +

ReplicasPerFailureDomain the number of replica in the specified failure domain

+
+subFailureDomain
+ +string + +
+(Optional) +

SubFailureDomain the name of the sub-failure domain

+
+hybridStorage
+ + +HybridStorageSpec + + +
+(Optional) +

HybridStorage represents hybrid storage tier settings

+
+

ResourceSpec +(map[string]k8s.io/api/core/v1.ResourceRequirements alias)

+

+(Appears on:ClusterSpec) +

+
+

ResourceSpec is a collection of ResourceRequirements that describes the compute resource requirements

+
+

SSSDSidecar +

+

+(Appears on:SSSDSpec) +

+
+

SSSDSidecar represents configuration when SSSD is run in a sidecar.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+image
+ +string + +
+

Image defines the container image that should be used for the SSSD sidecar.

+
+sssdConfigFile
+ + +SSSDSidecarConfigFile + + +
+(Optional) +

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).

+
+additionalFiles
+ + +[]SSSDSidecarAdditionalFile + + +
+(Optional) +

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.

+
+resources
+ + +Kubernetes core/v1.ResourceRequirements + + +
+(Optional) +

Resources allow specifying resource requests/limits on the SSSD sidecar container.

+
+debugLevel
+ +int + +
+(Optional) +

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

+
+

SSSDSidecarAdditionalFile +

+

+(Appears on:SSSDSidecar) +

+
+

SSSDSidecarAdditionalFile represents the source from where additional files for the the SSSD +configuration should come from and are made available.

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+subPath
+ +string + +
+

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 ‘:’.

+
+volumeSource
+ + +Kubernetes core/v1.VolumeSource + + +
+

VolumeSource accepts 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.

+
+

SSSDSidecarConfigFile +

+

+(Appears on:SSSDSidecar) +

+
+

SSSDSidecarConfigFile represents the source(s) from which the SSSD configuration should come.

+
+ + + + + + + + + + + + + +
FieldDescription
+volumeSource
+ + +Kubernetes core/v1.VolumeSource + + +
+

VolumeSource accepts a 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.

+
+

SSSDSpec +

+

+(Appears on:NFSSecuritySpec) +

+
+

SSSDSpec represents configuration for System Security Services Daemon (SSSD).

+
+ + + + + + + + + + + + + +
FieldDescription
+sidecar
+ + +SSSDSidecar + + +
+(Optional) +

Sidecar tells Rook to run SSSD in a sidecar alongside the NFS-Ganesha server in each NFS pod.

+
+

SanitizeDataSourceProperty +(string alias)

+

+(Appears on:SanitizeDisksSpec) +

+
+

SanitizeDataSourceProperty represents a sanitizing data source

+
+ + + + + + + + + + + + +
ValueDescription

"random"

SanitizeDataSourceRandom uses `shred’s default entropy source

+

"zero"

SanitizeDataSourceZero uses /dev/zero as sanitize source

+
+

SanitizeDisksSpec +

+

+(Appears on:CleanupPolicySpec) +

+
+

SanitizeDisksSpec represents a disk sanitizing specification

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+method
+ + +SanitizeMethodProperty + + +
+(Optional) +

Method is the method we use to sanitize disks

+
+dataSource
+ + +SanitizeDataSourceProperty + + +
+(Optional) +

DataSource is the data source to use to sanitize the disk with

+
+iteration
+ +int32 + +
+(Optional) +

Iteration is the number of pass to apply the sanitizing

+
+

SanitizeMethodProperty +(string alias)

+

+(Appears on:SanitizeDisksSpec) +

+
+

SanitizeMethodProperty represents a disk sanitizing method

+
+ + + + + + + + + + + + +
ValueDescription

"complete"

SanitizeMethodComplete will sanitize everything on the disk

+

"quick"

SanitizeMethodQuick will sanitize metadata only on the disk

+
+

SecuritySpec +

+

+(Appears on:ClusterSpec, ObjectStoreSecuritySpec) +

+
+

SecuritySpec is security spec to include various security items such as kms

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+kms
+ + +KeyManagementServiceSpec + + +
+(Optional) +

KeyManagementService is the main Key Management option

+
+keyRotation
+ + +KeyRotationSpec + + +
+(Optional) +

KeyRotation defines options for Key Rotation.

+
+

Selection +

+

+(Appears on:Node, StorageScopeSpec) +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+useAllDevices
+ +bool + +
+(Optional) +

Whether to consume all the storage devices found on a machine

+
+deviceFilter
+ +string + +
+(Optional) +

A regular expression to allow more fine-grained selection of devices on nodes across the cluster

+
+devicePathFilter
+ +string + +
+(Optional) +

A regular expression to allow more fine-grained selection of devices with path names

+
+devices
+ + +[]Device + + +
+(Optional) +

List of devices to use as storage devices

+
+volumeClaimTemplates
+ + +[]Kubernetes core/v1.PersistentVolumeClaim + + +
+(Optional) +

PersistentVolumeClaims to use as storage

+
+

SnapshotSchedule +

+

+(Appears on:SnapshotSchedulesSpec) +

+
+

SnapshotSchedule is a schedule

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+interval
+ +string + +
+(Optional) +

Interval is the interval in which snapshots will be taken

+
+start_time
+ +string + +
+(Optional) +

StartTime is the snapshot starting time

+
+

SnapshotScheduleRetentionSpec +

+

+(Appears on:FSMirroringSpec) +

+
+

SnapshotScheduleRetentionSpec is a retention policy

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+path
+ +string + +
+(Optional) +

Path is the path to snapshot

+
+duration
+ +string + +
+(Optional) +

Duration represents the retention duration for a snapshot

+
+

SnapshotScheduleSpec +

+

+(Appears on:FSMirroringSpec, MirroringSpec) +

+
+

SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+path
+ +string + +
+(Optional) +

Path is the path to snapshot, only valid for CephFS

+
+interval
+ +string + +
+(Optional) +

Interval represent the periodicity of the snapshot.

+
+startTime
+ +string + +
+(Optional) +

StartTime indicates when to start the snapshot

+
+

SnapshotScheduleStatusSpec +

+

+(Appears on:CephBlockPoolStatus) +

+
+

SnapshotScheduleStatusSpec is the status of the snapshot schedule

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+snapshotSchedules
+ + +[]SnapshotSchedulesSpec + + +
+(Optional) +

SnapshotSchedules is the list of snapshots scheduled

+
+lastChecked
+ +string + +
+(Optional) +

LastChecked is the last time time the status was checked

+
+lastChanged
+ +string + +
+(Optional) +

LastChanged is the last time time the status last changed

+
+details
+ +string + +
+(Optional) +

Details contains potential status errors

+
+

SnapshotSchedulesSpec +

+

+(Appears on:SnapshotScheduleStatusSpec) +

+
+

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

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+pool
+ +string + +
+(Optional) +

Pool is the pool name

+
+namespace
+ +string + +
+(Optional) +

Namespace is the RADOS namespace the image is part of

+
+image
+ +string + +
+(Optional) +

Image is the mirrored image

+
+items
+ + +[]SnapshotSchedule + + +
+(Optional) +

Items is the list schedules times for a given snapshot

+
+

StatesSpec +

+

+(Appears on:PoolMirroringStatusSummarySpec) +

+
+

StatesSpec are rbd images mirroring state

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+starting_replay
+ +int + +
+(Optional) +

StartingReplay is when the replay of the mirroring journal starts

+
+replaying
+ +int + +
+(Optional) +

Replaying is when the replay of the mirroring journal is on-going

+
+syncing
+ +int + +
+(Optional) +

Syncing is when the image is syncing

+
+stopping_replay
+ +int + +
+(Optional) +

StopReplaying is when the replay of the mirroring journal stops

+
+stopped
+ +int + +
+(Optional) +

Stopped is when the mirroring state is stopped

+
+unknown
+ +int + +
+(Optional) +

Unknown is when the mirroring state is unknown

+
+error
+ +int + +
+(Optional) +

Error is when the mirroring state is errored

+
+

Status +

+

+(Appears on:CephBucketNotification, CephFilesystemMirror, CephNFS, CephObjectRealm, CephObjectZone, CephObjectZoneGroup, CephRBDMirror) +

+
+

Status represents the status of an object

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+phase
+ +string + +
+(Optional) +
+observedGeneration
+ +int64 + +
+(Optional) +

ObservedGeneration is the latest generation observed by the controller.

+
+conditions
+ + +[]Condition + + +
+
+

StatusConditionGetter +

+
+

A StatusConditionGetter allows getting a pointer to an object’s conditions.

+
+

StorageClassDeviceSet +

+

+(Appears on:StorageScopeSpec) +

+
+

StorageClassDeviceSet is a storage class device set

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

Name is a unique identifier for the set

+
+count
+ +int + +
+

Count is the number of devices in this set

+
+resources
+ + +Kubernetes core/v1.ResourceRequirements + + +
+(Optional) +
+placement
+ + +Placement + + +
+(Optional) +
+preparePlacement
+ + +Placement + + +
+(Optional) +
+config
+ +map[string]string + +
+(Optional) +

Provider-specific device configuration

+
+volumeClaimTemplates
+ + +[]Kubernetes core/v1.PersistentVolumeClaim + + +
+

VolumeClaimTemplates is a list of PVC templates for the underlying storage devices

+
+portable
+ +bool + +
+(Optional) +

Portable represents OSD portability across the hosts

+
+tuneDeviceClass
+ +bool + +
+(Optional) +

TuneSlowDeviceClass Tune the OSD when running on a slow Device Class

+
+tuneFastDeviceClass
+ +bool + +
+(Optional) +

TuneFastDeviceClass Tune the OSD when running on a fast Device Class

+
+schedulerName
+ +string + +
+(Optional) +

Scheduler name for OSD pod placement

+
+encrypted
+ +bool + +
+(Optional) +

Whether to encrypt the deviceSet

+
+

StorageScopeSpec +

+

+(Appears on:ClusterSpec) +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+nodes
+ + +[]Node + + +
+(Optional) +
+useAllNodes
+ +bool + +
+(Optional) +
+onlyApplyOSDPlacement
+ +bool + +
+(Optional) +
+config
+ +map[string]string + +
+(Optional) +
+Selection
+ + +Selection + + +
+

+(Members of Selection are embedded into this type.) +

+
+storageClassDeviceSets
+ + +[]StorageClassDeviceSet + + +
+(Optional) +
+

StretchClusterSpec +

+

+(Appears on:MonSpec) +

+
+

StretchClusterSpec represents the specification of a stretched Ceph Cluster

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+failureDomainLabel
+ +string + +
+(Optional) +

FailureDomainLabel the failure domain name (e,g: zone)

+
+subFailureDomain
+ +string + +
+(Optional) +

SubFailureDomain is the failure domain within a zone

+
+zones
+ + +[]StretchClusterZoneSpec + + +
+(Optional) +

Zones is the list of zones

+
+

StretchClusterZoneSpec +

+

+(Appears on:StretchClusterSpec) +

+
+

StretchClusterZoneSpec represents the specification of a stretched zone in a Ceph Cluster

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+(Optional) +

Name is the name of the zone

+
+arbiter
+ +bool + +
+(Optional) +

Arbiter determines if the zone contains the arbiter

+
+volumeClaimTemplate
+ + +Kubernetes core/v1.PersistentVolumeClaim + + +
+(Optional) +

VolumeClaimTemplate is the PVC template

+
+

TopicEndpointSpec +

+

+(Appears on:BucketTopicSpec) +

+
+

TopicEndpointSpec contains exactly one of the endpoint specs of a Bucket Topic

+
+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+http
+ + +HTTPEndpointSpec + + +
+(Optional) +

Spec of HTTP endpoint

+
+amqp
+ + +AMQPEndpointSpec + + +
+(Optional) +

Spec of AMQP endpoint

+
+kafka
+ + +KafkaEndpointSpec + + +
+(Optional) +

Spec of Kafka endpoint

+
+

ZoneSpec +

+

+(Appears on:ObjectStoreSpec) +

+
+

ZoneSpec represents a Ceph Object Store Gateway Zone specification

+
+ + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

RGW Zone the Object Store is in

+
+
+

+Generated with gen-crd-api-reference-docs +on git commit e3d8da9a9. +

diff --git a/Documentation/gen-crd-api-reference-docs/template/members.tpl b/Documentation/gen-crd-api-reference-docs/template/members.tpl new file mode 100644 index 000000000..a529c6716 --- /dev/null +++ b/Documentation/gen-crd-api-reference-docs/template/members.tpl @@ -0,0 +1,48 @@ +{{ define "members" }} + +{{ range .Members }} +{{ if not (hiddenMember .)}} + + + {{ fieldName . }}
+ + {{ if linkForType .Type }} + + {{ typeDisplayName .Type }} + + {{ else }} + {{ typeDisplayName .Type }} + {{ end }} + + + + {{ if fieldEmbedded . }} +

+ (Members of {{ fieldName . }} are embedded into this type.) +

+ {{ end}} + + {{ if isOptionalMember .}} + (Optional) + {{ end }} + + {{ safe (renderComments .CommentLines) }} + + {{ if and (eq (.Type.Name.Name) "ObjectMeta") }} + Refer to the Kubernetes API documentation for the fields of the + metadata field. + {{ end }} + + {{ if or (eq (fieldName .) "spec") }} +
+
+ + {{ template "members" .Type }} +
+ {{ end }} + + +{{ end }} +{{ end }} + +{{ end }} diff --git a/Documentation/gen-crd-api-reference-docs/template/pkg.tpl b/Documentation/gen-crd-api-reference-docs/template/pkg.tpl new file mode 100644 index 000000000..842ec93d4 --- /dev/null +++ b/Documentation/gen-crd-api-reference-docs/template/pkg.tpl @@ -0,0 +1,49 @@ +{{ define "packages" }} + +{{ with .packages}} +

Packages:

+ +{{ end}} + +{{ range .packages }} +

+ {{- packageDisplayName . -}} +

+ + {{ with (index .GoPackages 0 )}} + {{ with .DocComments }} +
+ {{ safe (renderComments .) }} +
+ {{ end }} + {{ end }} + + Resource Types: + + + {{ range (visibleTypes (sortedTypes .Types))}} + {{ template "type" . }} + {{ end }} +
+{{ end }} + +

+ Generated with gen-crd-api-reference-docs + {{ with .gitCommit }} on git commit {{ . }}{{end}}. +

+ +{{ end }} diff --git a/Documentation/gen-crd-api-reference-docs/template/placeholder.go b/Documentation/gen-crd-api-reference-docs/template/placeholder.go new file mode 100644 index 000000000..cc8f1453a --- /dev/null +++ b/Documentation/gen-crd-api-reference-docs/template/placeholder.go @@ -0,0 +1,2 @@ +// Placeholder file to make Go vendor this directory properly. +package template diff --git a/Documentation/gen-crd-api-reference-docs/template/type.tpl b/Documentation/gen-crd-api-reference-docs/template/type.tpl new file mode 100644 index 000000000..8f0d66b8b --- /dev/null +++ b/Documentation/gen-crd-api-reference-docs/template/type.tpl @@ -0,0 +1,81 @@ +{{ define "type" }} + +

+ {{- .Name.Name }} + {{ if eq .Kind "Alias" }}({{.Underlying}} alias){{ end -}} +

+{{ with (typeReferences .) }} +

+ (Appears on: + {{- $prev := "" -}} + {{- range . -}} + {{- if $prev -}}, {{ end -}} + {{- $prev = . -}} + {{ typeDisplayName . }} + {{- end -}} + ) +

+{{ end }} + +
+ {{ safe (renderComments .CommentLines) }} +
+ +{{ with (constantsOfType .) }} + + + + + + + + + {{- range . -}} + + {{- /* + renderComments implicitly creates a

element, so we + add one to the display name as well to make the contents + of the two cells align evenly. + */ -}} +

+ + + {{- end -}} + +
ValueDescription

{{ typeDisplayName . }}

{{ safe (renderComments .CommentLines) }}
+{{ end }} + +{{ if .Members }} + + + + + + + + + {{ if isExportedType . }} + + + + + + + + + {{ end }} + {{ template "members" .}} + +
FieldDescription
+ apiVersion
+ string
+ + {{apiGroup .}} + +
+ kind
+ string +
{{.Name.Name}}
+{{ end }} + +{{ end }} diff --git a/Makefile b/Makefile index 1f7ad6250..7c498f13a 100644 --- a/Makefile +++ b/Makefile @@ -134,6 +134,7 @@ do.build.parallel: $(foreach p,$(PLATFORMS_TO_BUILD_FOR), do.build.platform.$(p) build: csv-clean build.common ## Only build for linux platform @$(MAKE) go.build PLATFORM=linux_$(GOHOSTARCH) @$(MAKE) -C images PLATFORM=linux_$(GOHOSTARCH) + @$(MAKE) generate-docs-crds build.all: build.common ## Build source code for all platforms. ifneq ($(GOHOSTARCH),amd64) @@ -215,6 +216,12 @@ docs-preview: ## Preview the documentation through mkdocs docs-build: ## Build the documentation to the `site/` directory mkdocs build --strict +generate-docs-crds: ## Build the documentation for CRD + @build/crds/generate-crd-docs.sh + +validate-and-gen-docs-crds: ## Force generation of CRD documentation + build/crds/generate-crd-docs.sh --force + .PHONY: all build.common .PHONY: build build.all install test check vet fmt codegen mod.check clean distclean prune diff --git a/build/crds/generate-crd-docs.sh b/build/crds/generate-crd-docs.sh new file mode 100755 index 000000000..8b8245829 --- /dev/null +++ b/build/crds/generate-crd-docs.sh @@ -0,0 +1,23 @@ +#! /usr/bin/env bash + +SCRIPT_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd -P) +GEN_CRD_API_REFERENCE_DOC_VERSION=v0.3.0 +SCRIPT_CHECK_DOCS_DIFF=$(git diff --name-only --diff-filter=M | grep -Ec '/types\.go$') + +install_generator() { + go install github.com/ahmetb/gen-crd-api-reference-docs@${GEN_CRD_API_REFERENCE_DOC_VERSION} +} + +run_gen() { + if [[ "$SCRIPT_CHECK_DOCS_DIFF" -gt 0 || "$1" = "--force" ]]; then + echo "differences found in types.go, rebuilding specification.md" + install_generator + gen-crd-api-reference-docs \ + -config="${SCRIPT_ROOT}/crd-docs-config.json" \ + -template-dir="${SCRIPT_ROOT}/Documentation/gen-crd-api-reference-docs/template" \ + -api-dir="github.com/rook/rook/pkg/apis/ceph.rook.io" \ + -out-file="${SCRIPT_ROOT}/Documentation/CRDs/specification.md" + fi +} + +run_gen "$@" \ No newline at end of file diff --git a/crd-docs-config.json b/crd-docs-config.json new file mode 100644 index 000000000..bdeefef44 --- /dev/null +++ b/crd-docs-config.json @@ -0,0 +1,28 @@ +{ + "hideMemberFields": [ + "TypeMeta" + ], + "hideTypePatterns": [ + "ParseError$", + "List$" + ], + "externalPackages": [ + { + "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/apis/meta/v1\\.Duration$", + "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration" + }, + { + "typeMatchPrefix": "^k8s\\.io/(api|apimachinery/pkg/apis)/", + "docsURLTemplate": "https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#{{lower .TypeIdentifier}}-{{arrIndex .PackageSegments -1}}-{{arrIndex .PackageSegments -2}}" + }, + { + "typeMatchPrefix": "^github\\.com/knative/pkg/apis/duck/", + "docsURLTemplate": "https://pkg.go.dev/github.com/knative/pkg/apis/duck/{{arrIndex .PackageSegments -1}}#{{.TypeIdentifier}}" + } + ], + "typeDisplayNamePrefixOverrides": { + "k8s.io/api/": "Kubernetes ", + "k8s.io/apimachinery/pkg/apis/": "Kubernetes " + }, + "markdownDisabled": false +} \ No newline at end of file diff --git a/pkg/apis/ceph.rook.io/v1/types.go b/pkg/apis/ceph.rook.io/v1/types.go index 669f90583..c102750d4 100755 --- a/pkg/apis/ceph.rook.io/v1/types.go +++ b/pkg/apis/ceph.rook.io/v1/types.go @@ -1519,10 +1519,11 @@ type ObjectEndpoints struct { Secure []string `json:"secure"` } -// CephObjectStoreUser represents a Ceph Object Store Gateway User // +genclient // +genclient:noStatus // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CephObjectStoreUser represents a Ceph Object Store Gateway User // +kubebuilder:resource:shortName=rcou;objectuser // +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` // +kubebuilder:subresource:status @@ -1613,10 +1614,11 @@ type ObjectUserQuotaSpec struct { MaxObjects *int64 `json:"maxObjects,omitempty"` } -// CephObjectRealm represents a Ceph Object Store Gateway Realm // +genclient // +genclient:noStatus // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CephObjectRealm represents a Ceph Object Store Gateway Realm // +kubebuilder:subresource:status type CephObjectRealm struct { metav1.TypeMeta `json:",inline"` @@ -1648,10 +1650,11 @@ type PullSpec struct { Endpoint string `json:"endpoint,omitempty"` } -// CephObjectZoneGroup represents a Ceph Object Store Gateway Zone Group // +genclient // +genclient:noStatus // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CephObjectZoneGroup represents a Ceph Object Store Gateway Zone Group // +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` // +kubebuilder:subresource:status type CephObjectZoneGroup struct { @@ -1677,10 +1680,11 @@ type ObjectZoneGroupSpec struct { Realm string `json:"realm"` } -// CephObjectZone represents a Ceph Object Store Gateway Zone // +genclient // +genclient:noStatus // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CephObjectZone represents a Ceph Object Store Gateway Zone // +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` // +kubebuilder:subresource:status type CephObjectZone struct { @@ -1729,10 +1733,11 @@ type ObjectZoneSpec struct { PreservePoolsOnDelete bool `json:"preservePoolsOnDelete"` } -// CephBucketTopic represents a Ceph Object Topic for Bucket Notifications // +genclient // +genclient:noStatus // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CephBucketTopic represents a Ceph Object Topic for Bucket Notifications // +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` // +kubebuilder:subresource:status type CephBucketTopic struct { @@ -1846,10 +1851,11 @@ type KafkaEndpointSpec struct { AckLevel string `json:"ackLevel,omitempty"` } -// CephBucketNotification represents a Bucket Notifications // +genclient // +genclient:noStatus // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CephBucketNotification represents a Bucket Notifications // +kubebuilder:subresource:status type CephBucketNotification struct { metav1.TypeMeta `json:",inline"` @@ -1924,10 +1930,11 @@ type RGWServiceSpec struct { Annotations Annotations `json:"annotations,omitempty"` } -// CephNFS represents a Ceph NFS // +genclient // +genclient:noStatus // +kubebuilder:resource:shortName=nfs,path=cephnfses + +// CephNFS represents a Ceph NFS // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +kubebuilder:subresource:status type CephNFS struct {