1 # ============LICENSE_START=======================================================
2 # Copyright (C) 2021 The Nordix Foundation. All rights reserved.
3 # ================================================================================
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
16 # SPDX-License-Identifier: Apache-2.0
17 # ============LICENSE_END=========================================================
19 ###################################################################################################################
20 # Create the common resources that are necessary to start the operator and the ceph cluster.
21 # These resources *must* be created before the operator.yaml and cluster.yaml or their variants.
22 # The samples all assume that a single operator will manage a single cluster crd in the same "rook-ceph" namespace.
24 # If the operator needs to manage multiple clusters (in different namespaces), see the section below
25 # for "cluster-specific resources". The resources below that section will need to be created for each namespace
26 # where the operator needs to manage the cluster. The resources above that section do not be created again.
28 # Most of the sections are prefixed with a 'OLM' keyword which is used to build our CSV for an OLM (Operator Life Cycle manager)
29 ###################################################################################################################
31 # Namespace where the operator and other rook resources are created
36 # The CRD declarations
38 apiVersion: apiextensions.k8s.io/v1beta1
39 kind: CustomResourceDefinition
41 name: cephclusters.ceph.rook.io
46 listKind: CephClusterList
80 machineDisruptionBudgetNamespace:
84 osdMaintenanceTimeout:
88 manageMachineDisruptionBudgets:
92 continueUpgradeAfterChecksEvenIfNotHealthy:
94 waitTimeoutForHealthyOSDInMinutes:
104 volumeClaimTemplate: {}
123 disruptionManagement:
125 machineDisruptionBudgetNamespace:
129 osdMaintenanceTimeout:
131 pgHealthCheckTimeout:
133 manageMachineDisruptionBudgets:
148 pattern: ^(bluestore)$
159 pattern: ^(true|false)$
181 storageClassDeviceSets: {}
199 externalMgrEndpoints:
205 removeOSDsIfOutAndSafeToRemove:
215 pattern: ^$|^yes-really-destroy-data$
220 pattern: ^(complete|quick)$
223 pattern: ^(zero|random)$
234 additionalPrinterColumns:
235 - name: DataDirHostPath
237 description: Directory used on the K8s nodes
238 JSONPath: .spec.dataDirHostPath
241 description: Number of MONs
242 JSONPath: .spec.mon.count
245 JSONPath: .metadata.creationTimestamp
249 JSONPath: .status.phase
253 JSONPath: .status.message
256 description: Ceph Health
257 JSONPath: .status.ceph.health
260 apiVersion: apiextensions.k8s.io/v1beta1
261 kind: CustomResourceDefinition
263 name: cephclients.ceph.rook.io
268 listKind: CephClientList
284 apiVersion: apiextensions.k8s.io/v1beta1
285 kind: CustomResourceDefinition
287 name: cephrbdmirrors.ceph.rook.io
292 listKind: CephRBDMirrorList
293 plural: cephrbdmirrors
294 singular: cephrbdmirror
314 apiVersion: apiextensions.k8s.io/v1beta1
315 kind: CustomResourceDefinition
317 name: cephfilesystems.ceph.rook.io
322 listKind: CephFilesystemList
323 plural: cephfilesystems
324 singular: cephfilesystem
355 requireSafeReplicaSize:
389 requireSafeReplicaSize:
411 preservePoolsOnDelete:
413 preserveFilesystemOnDelete:
415 additionalPrinterColumns:
418 description: Number of desired active MDS daemons
419 JSONPath: .spec.metadataServer.activeCount
422 JSONPath: .metadata.creationTimestamp
427 apiVersion: apiextensions.k8s.io/v1beta1
428 kind: CustomResourceDefinition
430 name: cephnfses.ceph.rook.io
435 listKind: CephNFSList
464 apiVersion: apiextensions.k8s.io/v1beta1
465 kind: CustomResourceDefinition
467 name: cephobjectstores.ceph.rook.io
471 kind: CephObjectStore
472 listKind: CephObjectStoreList
473 plural: cephobjectstores
474 singular: cephobjectstore
486 sslCertificateRef: {}
497 externalRgwEndpoints:
516 requireSafeReplicaSize:
544 requireSafeReplicaSize:
562 preservePoolsOnDelete:
583 apiVersion: apiextensions.k8s.io/v1beta1
584 kind: CustomResourceDefinition
586 name: cephobjectstoreusers.ceph.rook.io
590 kind: CephObjectStoreUser
591 listKind: CephObjectStoreUserList
592 plural: cephobjectstoreusers
593 singular: cephobjectstoreuser
603 apiVersion: apiextensions.k8s.io/v1beta1
604 kind: CustomResourceDefinition
606 name: cephobjectrealms.ceph.rook.io
610 kind: CephObjectRealm
611 listKind: CephObjectRealmList
612 plural: cephobjectrealms
613 singular: cephobjectrealm
620 apiVersion: apiextensions.k8s.io/v1beta1
621 kind: CustomResourceDefinition
623 name: cephobjectzonegroups.ceph.rook.io
627 kind: CephObjectZoneGroup
628 listKind: CephObjectZoneGroupList
629 plural: cephobjectzonegroups
630 singular: cephobjectzonegroup
637 apiVersion: apiextensions.k8s.io/v1beta1
638 kind: CustomResourceDefinition
640 name: cephobjectzones.ceph.rook.io
645 listKind: CephObjectZoneList
646 plural: cephobjectzones
647 singular: cephobjectzone
654 apiVersion: apiextensions.k8s.io/v1beta1
655 kind: CustomResourceDefinition
657 name: cephblockpools.ceph.rook.io
662 listKind: CephBlockPoolList
663 plural: cephblockpools
664 singular: cephblockpool
684 requireSafeReplicaSize:
705 description: EnableRBDStats is used to enable gathering of statistics
706 for all RBD images in the pool
730 apiVersion: apiextensions.k8s.io/v1beta1
731 kind: CustomResourceDefinition
733 name: volumes.rook.io
749 apiVersion: apiextensions.k8s.io/v1beta1
750 kind: CustomResourceDefinition
752 name: objectbuckets.objectbucket.io
754 group: objectbucket.io
761 listKind: ObjectBucketList
762 plural: objectbuckets
763 singular: objectbucket
772 apiVersion: apiextensions.k8s.io/v1beta1
773 kind: CustomResourceDefinition
775 name: objectbucketclaims.objectbucket.io
781 group: objectbucket.io
783 kind: ObjectBucketClaim
784 listKind: ObjectBucketClaimList
785 plural: objectbucketclaims
786 singular: objectbucketclaim