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 CRDs that are necessary before creating your Rook cluster.
21 # These resources *must* be created before the cluster.yaml or their variants.
22 ###################################################################################################################
24 apiVersion: apiextensions.k8s.io/v1
25 kind: CustomResourceDefinition
27 name: cephclusters.ceph.rook.io
72 machineDisruptionBudgetNamespace:
76 osdMaintenanceTimeout:
80 manageMachineDisruptionBudgets:
84 continueUpgradeAfterChecksEvenIfNotHealthy:
86 waitTimeoutForHealthyOSDInMinutes:
99 x-kubernetes-preserve-unknown-fields: true
119 x-kubernetes-preserve-unknown-fields: true
148 x-kubernetes-preserve-unknown-fields: true
154 disruptionManagement:
158 machineDisruptionBudgetNamespace:
162 osdMaintenanceTimeout:
164 pgHealthCheckTimeout:
166 manageMachineDisruptionBudgets:
186 pattern: ^(bluestore)$
197 pattern: ^(true|false)$
217 x-kubernetes-preserve-unknown-fields: true
221 x-kubernetes-preserve-unknown-fields: true
232 x-kubernetes-preserve-unknown-fields: true
245 x-kubernetes-preserve-unknown-fields: true
246 storageClassDeviceSets:
270 x-kubernetes-preserve-unknown-fields: true
274 x-kubernetes-preserve-unknown-fields: true
278 x-kubernetes-preserve-unknown-fields: true
282 x-kubernetes-preserve-unknown-fields: true
283 volumeClaimTemplates:
287 x-kubernetes-preserve-unknown-fields: true
298 x-kubernetes-preserve-unknown-fields: true
302 x-kubernetes-preserve-unknown-fields: true
313 externalMgrEndpoints:
320 externalMgrPrometheusPort:
324 removeOSDsIfOutAndSafeToRemove:
334 allowUninstallWithVolumes:
338 pattern: ^$|^yes-really-destroy-data$
344 pattern: ^(complete|quick)$
347 pattern: ^(zero|random)$
360 x-kubernetes-preserve-unknown-fields: true
373 x-kubernetes-preserve-unknown-fields: true
377 x-kubernetes-preserve-unknown-fields: true
381 x-kubernetes-preserve-unknown-fields: true
385 x-kubernetes-preserve-unknown-fields: true
389 x-kubernetes-preserve-unknown-fields: true
393 x-kubernetes-preserve-unknown-fields: true
396 x-kubernetes-preserve-unknown-fields: true
397 additionalPrinterColumns:
398 - name: DataDirHostPath
400 description: Directory used on the K8s nodes
401 jsonPath: .spec.dataDirHostPath
404 description: Number of MONs
405 jsonPath: .spec.mon.count
408 jsonPath: .metadata.creationTimestamp
412 jsonPath: .status.phase
416 jsonPath: .status.message
419 description: Ceph Health
420 jsonPath: .status.ceph.health
424 # OLM: BEGIN CEPH CLIENT CRD
426 apiVersion: apiextensions.k8s.io/v1
427 kind: CustomResourceDefinition
429 name: cephclients.ceph.rook.io
434 listKind: CephClientList
451 x-kubernetes-preserve-unknown-fields: true
454 x-kubernetes-preserve-unknown-fields: true
457 # OLM: END CEPH CLIENT CRD
458 # OLM: BEGIN CEPH RBD MIRROR CRD
460 apiVersion: apiextensions.k8s.io/v1
461 kind: CustomResourceDefinition
463 name: cephrbdmirrors.ceph.rook.io
468 listKind: CephRBDMirrorList
469 plural: cephrbdmirrors
470 singular: cephrbdmirror
497 x-kubernetes-preserve-unknown-fields: true
503 x-kubernetes-preserve-unknown-fields: true
507 x-kubernetes-preserve-unknown-fields: true
510 x-kubernetes-preserve-unknown-fields: true
514 # OLM: END CEPH RBD MIRROR CRD
515 # OLM: BEGIN CEPH FS CRD
517 apiVersion: apiextensions.k8s.io/v1
518 kind: CustomResourceDefinition
520 name: cephfilesystems.ceph.rook.io
525 listKind: CephFilesystemList
526 plural: cephfilesystems
527 singular: cephfilesystem
552 x-kubernetes-preserve-unknown-fields: true
556 x-kubernetes-preserve-unknown-fields: true
560 x-kubernetes-preserve-unknown-fields: true
566 x-kubernetes-preserve-unknown-fields: true
585 requireSafeReplicaSize:
587 replicasPerFailureDomain:
593 x-kubernetes-preserve-unknown-fields: true
634 requireSafeReplicaSize:
636 replicasPerFailureDomain:
663 x-kubernetes-preserve-unknown-fields: true
664 preservePoolsOnDelete:
666 preserveFilesystemOnDelete:
670 x-kubernetes-preserve-unknown-fields: true
671 additionalPrinterColumns:
674 description: Number of desired active MDS daemons
675 jsonPath: .spec.metadataServer.activeCount
678 jsonPath: .metadata.creationTimestamp
681 # OLM: END CEPH FS CRD
682 # OLM: BEGIN CEPH NFS CRD
684 apiVersion: apiextensions.k8s.io/v1
685 kind: CustomResourceDefinition
687 name: cephnfses.ceph.rook.io
692 listKind: CephNFSList
724 x-kubernetes-preserve-unknown-fields: true
728 x-kubernetes-preserve-unknown-fields: true
732 x-kubernetes-preserve-unknown-fields: true
739 x-kubernetes-preserve-unknown-fields: true
742 # OLM: END CEPH NFS CRD
743 # OLM: BEGIN CEPH OBJECT STORE CRD
745 apiVersion: apiextensions.k8s.io/v1
746 kind: CustomResourceDefinition
748 name: cephobjectstores.ceph.rook.io
752 kind: CephObjectStore
753 listKind: CephObjectStoreList
754 plural: cephobjectstores
755 singular: cephobjectstore
786 externalRgwEndpoints:
797 x-kubernetes-preserve-unknown-fields: true
801 x-kubernetes-preserve-unknown-fields: true
805 x-kubernetes-preserve-unknown-fields: true
809 x-kubernetes-preserve-unknown-fields: true
828 requireSafeReplicaSize:
830 replicasPerFailureDomain:
853 x-kubernetes-preserve-unknown-fields: true
875 requireSafeReplicaSize:
877 replicasPerFailureDomain:
899 x-kubernetes-preserve-unknown-fields: true
900 preservePoolsOnDelete:
924 x-kubernetes-preserve-unknown-fields: true
928 # OLM: END CEPH OBJECT STORE CRD
929 # OLM: BEGIN CEPH OBJECT STORE USERS CRD
931 apiVersion: apiextensions.k8s.io/v1
932 kind: CustomResourceDefinition
934 name: cephobjectstoreusers.ceph.rook.io
938 kind: CephObjectStoreUser
939 listKind: CephObjectStoreUserList
940 plural: cephobjectstoreusers
941 singular: cephobjectstoreuser
963 x-kubernetes-preserve-unknown-fields: true
966 # OLM: END CEPH OBJECT STORE USERS CRD
967 # OLM: BEGIN CEPH OBJECT REALM CRD
969 apiVersion: apiextensions.k8s.io/v1
970 kind: CustomResourceDefinition
972 name: cephobjectrealms.ceph.rook.io
976 kind: CephObjectRealm
977 listKind: CephObjectRealmList
978 plural: cephobjectrealms
979 singular: cephobjectrealm
999 x-kubernetes-preserve-unknown-fields: true
1002 # OLM: END CEPH OBJECT REALM CRD
1003 # OLM: BEGIN CEPH OBJECT ZONEGROUP CRD
1005 apiVersion: apiextensions.k8s.io/v1
1006 kind: CustomResourceDefinition
1008 name: cephobjectzonegroups.ceph.rook.io
1012 kind: CephObjectZoneGroup
1013 listKind: CephObjectZoneGroupList
1014 plural: cephobjectzonegroups
1015 singular: cephobjectzonegroup
1032 x-kubernetes-preserve-unknown-fields: true
1035 # OLM: END CEPH OBJECT ZONEGROUP CRD
1036 # OLM: BEGIN CEPH OBJECT ZONE CRD
1038 apiVersion: apiextensions.k8s.io/v1
1039 kind: CustomResourceDefinition
1041 name: cephobjectzones.ceph.rook.io
1045 kind: CephObjectZone
1046 listKind: CephObjectZoneList
1047 plural: cephobjectzones
1048 singular: cephobjectzone
1077 requireSafeReplicaSize:
1098 x-kubernetes-preserve-unknown-fields: true
1112 requireSafeReplicaSize:
1133 x-kubernetes-preserve-unknown-fields: true
1134 preservePoolsOnDelete:
1138 x-kubernetes-preserve-unknown-fields: true
1141 # OLM: END CEPH OBJECT ZONE CRD
1142 # OLM: BEGIN CEPH BLOCK POOL CRD
1144 apiVersion: apiextensions.k8s.io/v1
1145 kind: CustomResourceDefinition
1147 name: cephblockpools.ceph.rook.io
1152 listKind: CephBlockPoolList
1153 plural: cephblockpools
1154 singular: cephblockpool
1183 requireSafeReplicaSize:
1185 replicasPerFailureDomain:
1211 EnableRBDStats is used to enable gathering of statistics
1212 for all RBD images in the pool
1217 x-kubernetes-preserve-unknown-fields: true
1247 pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE][i]?)?$
1254 x-kubernetes-preserve-unknown-fields: true
1258 x-kubernetes-preserve-unknown-fields: true
1261 x-kubernetes-preserve-unknown-fields: true
1265 # OLM: END CEPH BLOCK POOL CRD
1266 # OLM: BEGIN CEPH VOLUME POOL CRD
1268 apiVersion: apiextensions.k8s.io/v1
1269 kind: CustomResourceDefinition
1271 name: volumes.rook.io
1276 listKind: VolumeList
1309 x-kubernetes-preserve-unknown-fields: true
1312 # OLM: END CEPH VOLUME POOL CRD
1313 # OLM: BEGIN OBJECTBUCKET CRD
1315 apiVersion: apiextensions.k8s.io/v1
1316 kind: CustomResourceDefinition
1318 name: objectbuckets.objectbucket.io
1320 group: objectbucket.io
1323 listKind: ObjectBucketList
1324 plural: objectbuckets
1325 singular: objectbucket
1361 x-kubernetes-preserve-unknown-fields: true
1367 x-kubernetes-preserve-unknown-fields: true
1371 x-kubernetes-preserve-unknown-fields: true
1377 x-kubernetes-preserve-unknown-fields: true
1380 x-kubernetes-preserve-unknown-fields: true
1383 # OLM: END OBJECTBUCKET CRD
1384 # OLM: BEGIN OBJECTBUCKETCLAIM CRD
1386 apiVersion: apiextensions.k8s.io/v1
1387 kind: CustomResourceDefinition
1389 name: objectbucketclaims.objectbucket.io
1391 group: objectbucket.io
1393 kind: ObjectBucketClaim
1394 listKind: ObjectBucketClaimList
1395 plural: objectbucketclaims
1396 singular: objectbucketclaim
1421 x-kubernetes-preserve-unknown-fields: true
1426 x-kubernetes-preserve-unknown-fields: true
1429 # OLM: END OBJECTBUCKETCLAIM CRD