024d1e8beb2c501bee871b9eb11c87258721f265
[infra/stack/kubernetes.git] / apps / ceph / kubespray / playbooks / roles / install / templates / crds.yaml.j2
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
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
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.
15 #
16 # SPDX-License-Identifier: Apache-2.0
17 # ============LICENSE_END=========================================================
18
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 ###################################################################################################################
23 # OLM: BEGIN CEPH CRD
24 apiVersion: apiextensions.k8s.io/v1
25 kind: CustomResourceDefinition
26 metadata:
27   name: cephclusters.ceph.rook.io
28 spec:
29   group: ceph.rook.io
30   names:
31     kind: CephCluster
32     plural: cephclusters
33     singular: cephcluster
34   scope: Namespaced
35   versions:
36     - name: v1
37       served: true
38       storage: true
39       schema:
40         openAPIV3Schema:
41           type: object
42           properties:
43             spec:
44               type: object
45               properties:
46                 cephVersion:
47                   type: object
48                   properties:
49                     allowUnsupported:
50                       type: boolean
51                     image:
52                       type: string
53                 dashboard:
54                   type: object
55                   properties:
56                     enabled:
57                       type: boolean
58                     urlPrefix:
59                       type: string
60                     port:
61                       type: integer
62                       minimum: 0
63                       maximum: 65535
64                     ssl:
65                       type: boolean
66                 dataDirHostPath:
67                   pattern: ^/(\S+)
68                   type: string
69                 disruptionManagement:
70                   type: object
71                   properties:
72                     machineDisruptionBudgetNamespace:
73                       type: string
74                     managePodBudgets:
75                       type: boolean
76                     osdMaintenanceTimeout:
77                       type: integer
78                     pgHealthCheckTimeout:
79                       type: integer
80                     manageMachineDisruptionBudgets:
81                       type: boolean
82                 skipUpgradeChecks:
83                   type: boolean
84                 continueUpgradeAfterChecksEvenIfNotHealthy:
85                   type: boolean
86                 waitTimeoutForHealthyOSDInMinutes:
87                   type: integer
88                 mon:
89                   type: object
90                   properties:
91                     allowMultiplePerNode:
92                       type: boolean
93                     count:
94                       maximum: 9
95                       minimum: 0
96                       type: integer
97                     volumeClaimTemplate:
98                       type: object
99                       x-kubernetes-preserve-unknown-fields: true
100                     stretchCluster:
101                       type: object
102                       nullable: true
103                       properties:
104                         failureDomainLabel:
105                           type: string
106                         subFailureDomain:
107                           type: string
108                         zones:
109                           type: array
110                           items:
111                             type: object
112                             properties:
113                               name:
114                                 type: string
115                               arbiter:
116                                 type: boolean
117                               volumeClaimTemplate:
118                                 type: object
119                                 x-kubernetes-preserve-unknown-fields: true
120                 mgr:
121                   type: object
122                   properties:
123                     modules:
124                       type: array
125                       items:
126                         type: object
127                         properties:
128                           name:
129                             type: string
130                           enabled:
131                             type: boolean
132                 crashCollector:
133                   type: object
134                   properties:
135                     disable:
136                       type: boolean
137                 network:
138                   type: object
139                   nullable: true
140                   properties:
141                     hostNetwork:
142                       type: boolean
143                     provider:
144                       type: string
145                     selectors:
146                       type: object
147                       nullable: true
148                       x-kubernetes-preserve-unknown-fields: true
149                     ipFamily:
150                       type: string
151                 storage:
152                   type: object
153                   properties:
154                     disruptionManagement:
155                       type: object
156                       nullable: true
157                       properties:
158                         machineDisruptionBudgetNamespace:
159                           type: string
160                         managePodBudgets:
161                           type: boolean
162                         osdMaintenanceTimeout:
163                           type: integer
164                         pgHealthCheckTimeout:
165                           type: integer
166                         manageMachineDisruptionBudgets:
167                           type: boolean
168                     useAllNodes:
169                       type: boolean
170                     nodes:
171                       type: array
172                       nullable: true
173                       items:
174                         type: object
175                         properties:
176                           name:
177                             type: string
178                           config:
179                             type: object
180                             nullable: true
181                             properties:
182                               metadataDevice:
183                                 type: string
184                               storeType:
185                                 type: string
186                                 pattern: ^(bluestore)$
187                               databaseSizeMB:
188                                 type: string
189                               walSizeMB:
190                                 type: string
191                               journalSizeMB:
192                                 type: string
193                               osdsPerDevice:
194                                 type: string
195                               encryptedDevice:
196                                 type: string
197                                 pattern: ^(true|false)$
198                           useAllDevices:
199                             type: boolean
200                           deviceFilter:
201                             type: string
202                             nullable: true
203                           devicePathFilter:
204                             type: string
205                           devices:
206                             type: array
207                             items:
208                               type: object
209                               properties:
210                                 name:
211                                   type: string
212                                 fullPath:
213                                   type: string
214                                 config:
215                                   type: object
216                                   nullable: true
217                                   x-kubernetes-preserve-unknown-fields: true
218                           resources:
219                             type: object
220                             nullable: true
221                             x-kubernetes-preserve-unknown-fields: true
222                     useAllDevices:
223                       type: boolean
224                     deviceFilter:
225                       type: string
226                       nullable: true
227                     devicePathFilter:
228                       type: string
229                     config:
230                       type: object
231                       nullable: true
232                       x-kubernetes-preserve-unknown-fields: true
233                     devices:
234                       type: array
235                       items:
236                         type: object
237                         properties:
238                           name:
239                             type: string
240                           fullPath:
241                             type: string
242                           config:
243                             type: object
244                             nullable: true
245                             x-kubernetes-preserve-unknown-fields: true
246                     storageClassDeviceSets:
247                       type: array
248                       nullable: true
249                       items:
250                         type: object
251                         properties:
252                           name:
253                             type: string
254                           count:
255                             type: integer
256                             format: int32
257                           portable:
258                             type: boolean
259                           tuneDeviceClass:
260                             type: boolean
261                           tuneFastDeviceClass:
262                             type: boolean
263                           encrypted:
264                             type: boolean
265                           schedulerName:
266                             type: string
267                           config:
268                             type: object
269                             nullable: true
270                             x-kubernetes-preserve-unknown-fields: true
271                           placement:
272                             type: object
273                             nullable: true
274                             x-kubernetes-preserve-unknown-fields: true
275                           preparePlacement:
276                             type: object
277                             nullable: true
278                             x-kubernetes-preserve-unknown-fields: true
279                           resources:
280                             type: object
281                             nullable: true
282                             x-kubernetes-preserve-unknown-fields: true
283                           volumeClaimTemplates:
284                             type: array
285                             items:
286                               type: object
287                               x-kubernetes-preserve-unknown-fields: true
288                 driveGroups:
289                   type: array
290                   nullable: true
291                   items:
292                     type: object
293                     properties:
294                       name:
295                         type: string
296                       spec:
297                         type: object
298                         x-kubernetes-preserve-unknown-fields: true
299                       placement:
300                         type: object
301                         nullable: true
302                         x-kubernetes-preserve-unknown-fields: true
303                     required:
304                       - name
305                       - spec
306                 monitoring:
307                   type: object
308                   properties:
309                     enabled:
310                       type: boolean
311                     rulesNamespace:
312                       type: string
313                     externalMgrEndpoints:
314                       type: array
315                       items:
316                         type: object
317                         properties:
318                           ip:
319                             type: string
320                     externalMgrPrometheusPort:
321                       type: integer
322                       minimum: 0
323                       maximum: 65535
324                 removeOSDsIfOutAndSafeToRemove:
325                   type: boolean
326                 external:
327                   type: object
328                   properties:
329                     enable:
330                       type: boolean
331                 cleanupPolicy:
332                   type: object
333                   properties:
334                     allowUninstallWithVolumes:
335                       type: boolean
336                     confirmation:
337                       type: string
338                       pattern: ^$|^yes-really-destroy-data$
339                     sanitizeDisks:
340                       type: object
341                       properties:
342                         method:
343                           type: string
344                           pattern: ^(complete|quick)$
345                         dataSource:
346                           type: string
347                           pattern: ^(zero|random)$
348                         iteration:
349                           type: integer
350                           format: int32
351                 security:
352                   type: object
353                   properties:
354                     kms:
355                       type: object
356                       properties:
357                         connectionDetails:
358                           type: object
359                           nullable: true
360                           x-kubernetes-preserve-unknown-fields: true
361                         tokenSecretName:
362                           type: string
363                 logCollector:
364                   type: object
365                   properties:
366                     enabled:
367                       type: boolean
368                     periodicity:
369                       type: string
370                 annotations:
371                   type: object
372                   nullable: true
373                   x-kubernetes-preserve-unknown-fields: true
374                 placement:
375                   type: object
376                   nullable: true
377                   x-kubernetes-preserve-unknown-fields: true
378                 labels:
379                   type: object
380                   nullable: true
381                   x-kubernetes-preserve-unknown-fields: true
382                 resources:
383                   type: object
384                   nullable: true
385                   x-kubernetes-preserve-unknown-fields: true
386                 healthCheck:
387                   type: object
388                   nullable: true
389                   x-kubernetes-preserve-unknown-fields: true
390                 priorityClassNames:
391                   type: object
392                   nullable: true
393                   x-kubernetes-preserve-unknown-fields: true
394             status:
395               type: object
396               x-kubernetes-preserve-unknown-fields: true
397       additionalPrinterColumns:
398         - name: DataDirHostPath
399           type: string
400           description: Directory used on the K8s nodes
401           jsonPath: .spec.dataDirHostPath
402         - name: MonCount
403           type: string
404           description: Number of MONs
405           jsonPath: .spec.mon.count
406         - name: Age
407           type: date
408           jsonPath: .metadata.creationTimestamp
409         - name: Phase
410           type: string
411           description: Phase
412           jsonPath: .status.phase
413         - name: Message
414           type: string
415           description: Message
416           jsonPath: .status.message
417         - name: Health
418           type: string
419           description: Ceph Health
420           jsonPath: .status.ceph.health
421       subresources:
422         status: {}
423 # OLM: END CEPH CRD
424 # OLM: BEGIN CEPH CLIENT CRD
425 ---
426 apiVersion: apiextensions.k8s.io/v1
427 kind: CustomResourceDefinition
428 metadata:
429   name: cephclients.ceph.rook.io
430 spec:
431   group: ceph.rook.io
432   names:
433     kind: CephClient
434     listKind: CephClientList
435     plural: cephclients
436     singular: cephclient
437   scope: Namespaced
438   versions:
439     - name: v1
440       served: true
441       storage: true
442       schema:
443         openAPIV3Schema:
444           type: object
445           properties:
446             spec:
447               type: object
448               properties:
449                 caps:
450                   type: object
451                   x-kubernetes-preserve-unknown-fields: true
452             status:
453               type: object
454               x-kubernetes-preserve-unknown-fields: true
455       subresources:
456         status: {}
457 # OLM: END CEPH CLIENT CRD
458 # OLM: BEGIN CEPH RBD MIRROR CRD
459 ---
460 apiVersion: apiextensions.k8s.io/v1
461 kind: CustomResourceDefinition
462 metadata:
463   name: cephrbdmirrors.ceph.rook.io
464 spec:
465   group: ceph.rook.io
466   names:
467     kind: CephRBDMirror
468     listKind: CephRBDMirrorList
469     plural: cephrbdmirrors
470     singular: cephrbdmirror
471   scope: Namespaced
472   versions:
473     - name: v1
474       served: true
475       storage: true
476       schema:
477         openAPIV3Schema:
478           type: object
479           properties:
480             spec:
481               type: object
482               properties:
483                 count:
484                   type: integer
485                   minimum: 1
486                   maximum: 100
487                 peers:
488                   type: object
489                   properties:
490                     secretNames:
491                       type: array
492                       items:
493                         type: string
494                 resources:
495                   type: object
496                   nullable: true
497                   x-kubernetes-preserve-unknown-fields: true
498                 priorityClassName:
499                   type: string
500                 placement:
501                   type: object
502                   nullable: true
503                   x-kubernetes-preserve-unknown-fields: true
504                 annotations:
505                   type: object
506                   nullable: true
507                   x-kubernetes-preserve-unknown-fields: true
508             status:
509               type: object
510               x-kubernetes-preserve-unknown-fields: true
511       subresources:
512         status: {}
513
514 # OLM: END CEPH RBD MIRROR CRD
515 # OLM: BEGIN CEPH FS CRD
516 ---
517 apiVersion: apiextensions.k8s.io/v1
518 kind: CustomResourceDefinition
519 metadata:
520   name: cephfilesystems.ceph.rook.io
521 spec:
522   group: ceph.rook.io
523   names:
524     kind: CephFilesystem
525     listKind: CephFilesystemList
526     plural: cephfilesystems
527     singular: cephfilesystem
528   scope: Namespaced
529   versions:
530     - name: v1
531       served: true
532       storage: true
533       schema:
534         openAPIV3Schema:
535           type: object
536           properties:
537             spec:
538               type: object
539               properties:
540                 metadataServer:
541                   type: object
542                   properties:
543                     activeCount:
544                       minimum: 1
545                       maximum: 10
546                       type: integer
547                     activeStandby:
548                       type: boolean
549                     annotations:
550                       type: object
551                       nullable: true
552                       x-kubernetes-preserve-unknown-fields: true
553                     placement:
554                       type: object
555                       nullable: true
556                       x-kubernetes-preserve-unknown-fields: true
557                     resources:
558                       type: object
559                       nullable: true
560                       x-kubernetes-preserve-unknown-fields: true
561                     priorityClassName:
562                       type: string
563                     labels:
564                       type: object
565                       nullable: true
566                       x-kubernetes-preserve-unknown-fields: true
567                 metadataPool:
568                   type: object
569                   nullable: true
570                   properties:
571                     failureDomain:
572                       type: string
573                     deviceClass:
574                       type: string
575                     crushRoot:
576                       type: string
577                     replicated:
578                       type: object
579                       nullable: true
580                       properties:
581                         size:
582                           minimum: 0
583                           maximum: 10
584                           type: integer
585                         requireSafeReplicaSize:
586                           type: boolean
587                         replicasPerFailureDomain:
588                           type: integer
589                         subFailureDomain:
590                           type: string
591                     parameters:
592                       type: object
593                       x-kubernetes-preserve-unknown-fields: true
594                     erasureCoded:
595                       type: object
596                       nullable: true
597                       properties:
598                         dataChunks:
599                           minimum: 0
600                           maximum: 10
601                           type: integer
602                         codingChunks:
603                           minimum: 0
604                           maximum: 10
605                           type: integer
606                     compressionMode:
607                       type: string
608                       enum:
609                         - ""
610                         - none
611                         - passive
612                         - aggressive
613                         - force
614                 dataPools:
615                   type: array
616                   nullable: true
617                   items:
618                     type: object
619                     properties:
620                       failureDomain:
621                         type: string
622                       deviceClass:
623                         type: string
624                       crushRoot:
625                         type: string
626                       replicated:
627                         type: object
628                         nullable: true
629                         properties:
630                           size:
631                             minimum: 0
632                             maximum: 10
633                             type: integer
634                           requireSafeReplicaSize:
635                             type: boolean
636                           replicasPerFailureDomain:
637                             type: integer
638                           subFailureDomain:
639                             type: string
640                       erasureCoded:
641                         type: object
642                         nullable: true
643                         properties:
644                           dataChunks:
645                             minimum: 0
646                             maximum: 10
647                             type: integer
648                           codingChunks:
649                             minimum: 0
650                             maximum: 10
651                             type: integer
652                       compressionMode:
653                         type: string
654                         enum:
655                           - ""
656                           - none
657                           - passive
658                           - aggressive
659                           - force
660                       parameters:
661                         type: object
662                         nullable: true
663                         x-kubernetes-preserve-unknown-fields: true
664                 preservePoolsOnDelete:
665                   type: boolean
666                 preserveFilesystemOnDelete:
667                   type: boolean
668             status:
669               type: object
670               x-kubernetes-preserve-unknown-fields: true
671       additionalPrinterColumns:
672         - name: ActiveMDS
673           type: string
674           description: Number of desired active MDS daemons
675           jsonPath: .spec.metadataServer.activeCount
676         - name: Age
677           type: date
678           jsonPath: .metadata.creationTimestamp
679       subresources:
680         status: {}
681 # OLM: END CEPH FS CRD
682 # OLM: BEGIN CEPH NFS CRD
683 ---
684 apiVersion: apiextensions.k8s.io/v1
685 kind: CustomResourceDefinition
686 metadata:
687   name: cephnfses.ceph.rook.io
688 spec:
689   group: ceph.rook.io
690   names:
691     kind: CephNFS
692     listKind: CephNFSList
693     plural: cephnfses
694     singular: cephnfs
695     shortNames:
696       - nfs
697   scope: Namespaced
698   versions:
699     - name: v1
700       served: true
701       storage: true
702       schema:
703         openAPIV3Schema:
704           type: object
705           properties:
706             spec:
707               type: object
708               properties:
709                 rados:
710                   type: object
711                   properties:
712                     pool:
713                       type: string
714                     namespace:
715                       type: string
716                 server:
717                   type: object
718                   properties:
719                     active:
720                       type: integer
721                     annotations:
722                       type: object
723                       nullable: true
724                       x-kubernetes-preserve-unknown-fields: true
725                     placement:
726                       type: object
727                       nullable: true
728                       x-kubernetes-preserve-unknown-fields: true
729                     resources:
730                       type: object
731                       nullable: true
732                       x-kubernetes-preserve-unknown-fields: true
733                     priorityClassName:
734                       type: string
735                     logLevel:
736                       type: string
737             status:
738               type: object
739               x-kubernetes-preserve-unknown-fields: true
740       subresources:
741         status: {}
742 # OLM: END CEPH NFS CRD
743 # OLM: BEGIN CEPH OBJECT STORE CRD
744 ---
745 apiVersion: apiextensions.k8s.io/v1
746 kind: CustomResourceDefinition
747 metadata:
748   name: cephobjectstores.ceph.rook.io
749 spec:
750   group: ceph.rook.io
751   names:
752     kind: CephObjectStore
753     listKind: CephObjectStoreList
754     plural: cephobjectstores
755     singular: cephobjectstore
756   scope: Namespaced
757   versions:
758     - name: v1
759       served: true
760       storage: true
761       schema:
762         openAPIV3Schema:
763           type: object
764           properties:
765             spec:
766               type: object
767               properties:
768                 gateway:
769                   type: object
770                   properties:
771                     type:
772                       type: string
773                     sslCertificateRef:
774                       type: string
775                       nullable: true
776                     port:
777                       type: integer
778                       minimum: 0
779                       maximum: 65535
780                     securePort:
781                       type: integer
782                       minimum: 0
783                       maximum: 65535
784                     instances:
785                       type: integer
786                     externalRgwEndpoints:
787                       type: array
788                       nullable: true
789                       items:
790                         type: object
791                         properties:
792                           ip:
793                             type: string
794                     annotations:
795                       type: object
796                       nullable: true
797                       x-kubernetes-preserve-unknown-fields: true
798                     placement:
799                       type: object
800                       nullable: true
801                       x-kubernetes-preserve-unknown-fields: true
802                     resources:
803                       type: object
804                       nullable: true
805                       x-kubernetes-preserve-unknown-fields: true
806                     labels:
807                       type: object
808                       nullable: true
809                       x-kubernetes-preserve-unknown-fields: true
810                     priorityClassName:
811                       type: string
812                 metadataPool:
813                   type: object
814                   nullable: true
815                   properties:
816                     failureDomain:
817                       type: string
818                     deviceClass:
819                       type: string
820                     crushRoot:
821                       type: string
822                     replicated:
823                       type: object
824                       nullable: true
825                       properties:
826                         size:
827                           type: integer
828                         requireSafeReplicaSize:
829                           type: boolean
830                         replicasPerFailureDomain:
831                           type: integer
832                         subFailureDomain:
833                           type: string
834                     erasureCoded:
835                       type: object
836                       nullable: true
837                       properties:
838                         dataChunks:
839                           type: integer
840                         codingChunks:
841                           type: integer
842                     compressionMode:
843                       type: string
844                       enum:
845                         - ""
846                         - none
847                         - passive
848                         - aggressive
849                         - force
850                     parameters:
851                       type: object
852                       nullable: true
853                       x-kubernetes-preserve-unknown-fields: true
854                 zone:
855                   type: object
856                   properties:
857                     name:
858                       type: string
859                 dataPool:
860                   type: object
861                   nullable: true
862                   properties:
863                     failureDomain:
864                       type: string
865                     deviceClass:
866                       type: string
867                     crushRoot:
868                       type: string
869                     replicated:
870                       type: object
871                       nullable: true
872                       properties:
873                         size:
874                           type: integer
875                         requireSafeReplicaSize:
876                           type: boolean
877                         replicasPerFailureDomain:
878                           type: integer
879                         subFailureDomain:
880                           type: string
881                     erasureCoded:
882                       type: object
883                       nullable: true
884                       properties:
885                         dataChunks:
886                           type: integer
887                         codingChunks:
888                           type: integer
889                     compressionMode:
890                       type: string
891                       enum:
892                         - ""
893                         - none
894                         - passive
895                         - aggressive
896                         - force
897                     parameters:
898                       type: object
899                       x-kubernetes-preserve-unknown-fields: true
900                 preservePoolsOnDelete:
901                   type: boolean
902                 healthCheck:
903                   type: object
904                   nullable: true
905                   properties:
906                     bucket:
907                       type: object
908                       nullable: true
909                       properties:
910                         disabled:
911                           type: boolean
912                         interval:
913                           type: string
914                         timeout:
915                           type: string
916                     livenessProbe:
917                       type: object
918                       nullable: true
919                       properties:
920                         disabled:
921                           type: boolean
922             status:
923               type: object
924               x-kubernetes-preserve-unknown-fields: true
925       subresources:
926         status: {}
927
928 # OLM: END CEPH OBJECT STORE CRD
929 # OLM: BEGIN CEPH OBJECT STORE USERS CRD
930 ---
931 apiVersion: apiextensions.k8s.io/v1
932 kind: CustomResourceDefinition
933 metadata:
934   name: cephobjectstoreusers.ceph.rook.io
935 spec:
936   group: ceph.rook.io
937   names:
938     kind: CephObjectStoreUser
939     listKind: CephObjectStoreUserList
940     plural: cephobjectstoreusers
941     singular: cephobjectstoreuser
942     shortNames:
943       - rcou
944       - objectuser
945   scope: Namespaced
946   versions:
947     - name: v1
948       served: true
949       storage: true
950       schema:
951         openAPIV3Schema:
952           type: object
953           properties:
954             spec:
955               type: object
956               properties:
957                 store:
958                   type: string
959                 displayName:
960                   type: string
961             status:
962               type: object
963               x-kubernetes-preserve-unknown-fields: true
964       subresources:
965         status: {}
966 # OLM: END CEPH OBJECT STORE USERS CRD
967 # OLM: BEGIN CEPH OBJECT REALM CRD
968 ---
969 apiVersion: apiextensions.k8s.io/v1
970 kind: CustomResourceDefinition
971 metadata:
972   name: cephobjectrealms.ceph.rook.io
973 spec:
974   group: ceph.rook.io
975   names:
976     kind: CephObjectRealm
977     listKind: CephObjectRealmList
978     plural: cephobjectrealms
979     singular: cephobjectrealm
980   scope: Namespaced
981   versions:
982     - name: v1
983       served: true
984       storage: true
985       schema:
986         openAPIV3Schema:
987           type: object
988           properties:
989             spec:
990               type: object
991               properties:
992                 pull:
993                   type: object
994                   properties:
995                     endpoint:
996                       type: string
997             status:
998               type: object
999               x-kubernetes-preserve-unknown-fields: true
1000       subresources:
1001         status: {}
1002 # OLM: END CEPH OBJECT REALM CRD
1003 # OLM: BEGIN CEPH OBJECT ZONEGROUP CRD
1004 ---
1005 apiVersion: apiextensions.k8s.io/v1
1006 kind: CustomResourceDefinition
1007 metadata:
1008   name: cephobjectzonegroups.ceph.rook.io
1009 spec:
1010   group: ceph.rook.io
1011   names:
1012     kind: CephObjectZoneGroup
1013     listKind: CephObjectZoneGroupList
1014     plural: cephobjectzonegroups
1015     singular: cephobjectzonegroup
1016   scope: Namespaced
1017   versions:
1018     - name: v1
1019       served: true
1020       storage: true
1021       schema:
1022         openAPIV3Schema:
1023           type: object
1024           properties:
1025             spec:
1026               type: object
1027               properties:
1028                 realm:
1029                   type: string
1030             status:
1031               type: object
1032               x-kubernetes-preserve-unknown-fields: true
1033       subresources:
1034         status: {}
1035 # OLM: END CEPH OBJECT ZONEGROUP CRD
1036 # OLM: BEGIN CEPH OBJECT ZONE CRD
1037 ---
1038 apiVersion: apiextensions.k8s.io/v1
1039 kind: CustomResourceDefinition
1040 metadata:
1041   name: cephobjectzones.ceph.rook.io
1042 spec:
1043   group: ceph.rook.io
1044   names:
1045     kind: CephObjectZone
1046     listKind: CephObjectZoneList
1047     plural: cephobjectzones
1048     singular: cephobjectzone
1049   scope: Namespaced
1050   versions:
1051     - name: v1
1052       served: true
1053       storage: true
1054       schema:
1055         openAPIV3Schema:
1056           type: object
1057           properties:
1058             spec:
1059               type: object
1060               properties:
1061                 zoneGroup:
1062                   type: string
1063                 metadataPool:
1064                   type: object
1065                   nullable: true
1066                   properties:
1067                     failureDomain:
1068                       type: string
1069                     crushRoot:
1070                       type: string
1071                     replicated:
1072                       type: object
1073                       nullable: true
1074                       properties:
1075                         size:
1076                           type: integer
1077                         requireSafeReplicaSize:
1078                           type: boolean
1079                     erasureCoded:
1080                       type: object
1081                       nullable: true
1082                       properties:
1083                         dataChunks:
1084                           type: integer
1085                         codingChunks:
1086                           type: integer
1087                     compressionMode:
1088                       type: string
1089                       enum:
1090                         - ""
1091                         - none
1092                         - passive
1093                         - aggressive
1094                         - force
1095                     parameters:
1096                       type: object
1097                       nullable: true
1098                       x-kubernetes-preserve-unknown-fields: true
1099                 dataPool:
1100                   type: object
1101                   properties:
1102                     failureDomain:
1103                       type: string
1104                     crushRoot:
1105                       type: string
1106                     replicated:
1107                       type: object
1108                       nullable: true
1109                       properties:
1110                         size:
1111                           type: integer
1112                         requireSafeReplicaSize:
1113                           type: boolean
1114                     erasureCoded:
1115                       type: object
1116                       nullable: true
1117                       properties:
1118                         dataChunks:
1119                           type: integer
1120                         codingChunks:
1121                           type: integer
1122                     compressionMode:
1123                       type: string
1124                       enum:
1125                         - ""
1126                         - none
1127                         - passive
1128                         - aggressive
1129                         - force
1130                     parameters:
1131                       type: object
1132                       nullable: true
1133                       x-kubernetes-preserve-unknown-fields: true
1134                 preservePoolsOnDelete:
1135                   type: boolean
1136             status:
1137               type: object
1138               x-kubernetes-preserve-unknown-fields: true
1139       subresources:
1140         status: {}
1141 # OLM: END CEPH OBJECT ZONE CRD
1142 # OLM: BEGIN CEPH BLOCK POOL CRD
1143 ---
1144 apiVersion: apiextensions.k8s.io/v1
1145 kind: CustomResourceDefinition
1146 metadata:
1147   name: cephblockpools.ceph.rook.io
1148 spec:
1149   group: ceph.rook.io
1150   names:
1151     kind: CephBlockPool
1152     listKind: CephBlockPoolList
1153     plural: cephblockpools
1154     singular: cephblockpool
1155   scope: Namespaced
1156   versions:
1157     - name: v1
1158       served: true
1159       storage: true
1160       schema:
1161         openAPIV3Schema:
1162           type: object
1163           properties:
1164             spec:
1165               type: object
1166               properties:
1167                 failureDomain:
1168                   type: string
1169                 deviceClass:
1170                   type: string
1171                 crushRoot:
1172                   type: string
1173                 replicated:
1174                   type: object
1175                   nullable: true
1176                   properties:
1177                     size:
1178                       type: integer
1179                       minimum: 0
1180                       maximum: 9
1181                     targetSizeRatio:
1182                       type: number
1183                     requireSafeReplicaSize:
1184                       type: boolean
1185                     replicasPerFailureDomain:
1186                       type: integer
1187                     subFailureDomain:
1188                       type: string
1189                 erasureCoded:
1190                   type: object
1191                   nullable: true
1192                   properties:
1193                     dataChunks:
1194                       type: integer
1195                       minimum: 0
1196                       maximum: 9
1197                     codingChunks:
1198                       type: integer
1199                       minimum: 0
1200                       maximum: 9
1201                 compressionMode:
1202                   type: string
1203                   enum:
1204                     - ""
1205                     - none
1206                     - passive
1207                     - aggressive
1208                     - force
1209                 enableRBDStats:
1210                   description:
1211                     EnableRBDStats is used to enable gathering of statistics
1212                     for all RBD images in the pool
1213                   type: boolean
1214                 parameters:
1215                   type: object
1216                   nullable: true
1217                   x-kubernetes-preserve-unknown-fields: true
1218                 mirroring:
1219                   type: object
1220                   nullable: true
1221                   properties:
1222                     enabled:
1223                       type: boolean
1224                     mode:
1225                       type: string
1226                       enum:
1227                         - image
1228                         - pool
1229                     snapshotSchedules:
1230                       type: array
1231                       items:
1232                         type: object
1233                         nullable: true
1234                         properties:
1235                           interval:
1236                             type: string
1237                           startTime:
1238                             type: string
1239                 quotas:
1240                   type: object
1241                   nullable: true
1242                   properties:
1243                     maxBytes:
1244                       type: integer
1245                       minimum: 0
1246                     maxSize:
1247                       pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE][i]?)?$
1248                       type: string
1249                     maxObjects:
1250                       type: integer
1251                       minimum: 0
1252                 statusCheck:
1253                   type: object
1254                   x-kubernetes-preserve-unknown-fields: true
1255                 annotations:
1256                   type: object
1257                   nullable: true
1258                   x-kubernetes-preserve-unknown-fields: true
1259             status:
1260               type: object
1261               x-kubernetes-preserve-unknown-fields: true
1262       subresources:
1263         status: {}
1264
1265 # OLM: END CEPH BLOCK POOL CRD
1266 # OLM: BEGIN CEPH VOLUME POOL CRD
1267 ---
1268 apiVersion: apiextensions.k8s.io/v1
1269 kind: CustomResourceDefinition
1270 metadata:
1271   name: volumes.rook.io
1272 spec:
1273   group: rook.io
1274   names:
1275     kind: Volume
1276     listKind: VolumeList
1277     plural: volumes
1278     singular: volume
1279     shortNames:
1280       - rv
1281   scope: Namespaced
1282   versions:
1283     - name: v1alpha2
1284       served: true
1285       storage: true
1286       schema:
1287         openAPIV3Schema:
1288           type: object
1289           properties:
1290             attachments:
1291               type: array
1292               items:
1293                 type: object
1294                 properties:
1295                   node:
1296                     type: string
1297                   podNamespace:
1298                     type: string
1299                   podName:
1300                     type: string
1301                   clusterName:
1302                     type: string
1303                   mountDir:
1304                     type: string
1305                   readOnly:
1306                     type: boolean
1307             status:
1308               type: object
1309               x-kubernetes-preserve-unknown-fields: true
1310       subresources:
1311         status: {}
1312 # OLM: END CEPH VOLUME POOL CRD
1313 # OLM: BEGIN OBJECTBUCKET CRD
1314 ---
1315 apiVersion: apiextensions.k8s.io/v1
1316 kind: CustomResourceDefinition
1317 metadata:
1318   name: objectbuckets.objectbucket.io
1319 spec:
1320   group: objectbucket.io
1321   names:
1322     kind: ObjectBucket
1323     listKind: ObjectBucketList
1324     plural: objectbuckets
1325     singular: objectbucket
1326     shortNames:
1327       - ob
1328       - obs
1329   scope: Cluster
1330   versions:
1331     - name: v1alpha1
1332       served: true
1333       storage: true
1334       schema:
1335         openAPIV3Schema:
1336           type: object
1337           properties:
1338             spec:
1339               type: object
1340               properties:
1341                 storageClassName:
1342                   type: string
1343                 endpoint:
1344                   type: object
1345                   nullable: true
1346                   properties:
1347                     bucketHost:
1348                       type: string
1349                     bucketPort:
1350                       type: integer
1351                       format: int32
1352                     bucketName:
1353                       type: string
1354                     region:
1355                       type: string
1356                     subRegion:
1357                       type: string
1358                     additionalConfig:
1359                       type: object
1360                       nullable: true
1361                       x-kubernetes-preserve-unknown-fields: true
1362                 authentication:
1363                   type: object
1364                   nullable: true
1365                   items:
1366                     type: object
1367                     x-kubernetes-preserve-unknown-fields: true
1368                 additionalState:
1369                   type: object
1370                   nullable: true
1371                   x-kubernetes-preserve-unknown-fields: true
1372                 reclaimPolicy:
1373                   type: string
1374                 claimRef:
1375                   type: object
1376                   nullable: true
1377                   x-kubernetes-preserve-unknown-fields: true
1378             status:
1379               type: object
1380               x-kubernetes-preserve-unknown-fields: true
1381       subresources:
1382         status: {}
1383 # OLM: END OBJECTBUCKET CRD
1384 # OLM: BEGIN OBJECTBUCKETCLAIM CRD
1385 ---
1386 apiVersion: apiextensions.k8s.io/v1
1387 kind: CustomResourceDefinition
1388 metadata:
1389   name: objectbucketclaims.objectbucket.io
1390 spec:
1391   group: objectbucket.io
1392   names:
1393     kind: ObjectBucketClaim
1394     listKind: ObjectBucketClaimList
1395     plural: objectbucketclaims
1396     singular: objectbucketclaim
1397     shortNames:
1398       - obc
1399       - obcs
1400   scope: Namespaced
1401   versions:
1402     - name: v1alpha1
1403       served: true
1404       storage: true
1405       schema:
1406         openAPIV3Schema:
1407           type: object
1408           properties:
1409             spec:
1410               type: object
1411               properties:
1412                 storageClassName:
1413                   type: string
1414                 bucketName:
1415                   type: string
1416                 generateBucketName:
1417                   type: string
1418                 additionalConfig:
1419                   type: object
1420                   nullable: true
1421                   x-kubernetes-preserve-unknown-fields: true
1422                 objectBucketName:
1423                   type: string
1424             status:
1425               type: object
1426               x-kubernetes-preserve-unknown-fields: true
1427       subresources:
1428         status: {}
1429 # OLM: END OBJECTBUCKETCLAIM CRD