Files
my-rook-config/cluster/examples/kubernetes/ceph/crds.yaml
T
Travis Nielsen 1705c64ced ceph: add devices to schema at overall storage level
With the 1.5 schema added to the CRDs, the devices at the root
level of the storage element were missed. Now the ability to
specify devices at the root storage level to apply to all
nodes is restored.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-01-11 11:46:27 -07:00

1387 lines
44 KiB
YAML

###################################################################################################################
# Create the CRDs that are necessary before creating your Rook cluster.
# These resources *must* be created before the cluster.yaml or their variants.
###################################################################################################################
# OLM: BEGIN CEPH CRD
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephclusters.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephCluster
plural: cephclusters
singular: cephcluster
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
cephVersion:
type: object
properties:
allowUnsupported:
type: boolean
image:
type: string
dashboard:
type: object
properties:
enabled:
type: boolean
urlPrefix:
type: string
port:
type: integer
minimum: 0
maximum: 65535
ssl:
type: boolean
dataDirHostPath:
pattern: ^/(\S+)
type: string
disruptionManagement:
type: object
properties:
machineDisruptionBudgetNamespace:
type: string
managePodBudgets:
type: boolean
osdMaintenanceTimeout:
type: integer
pgHealthCheckTimeout:
type: integer
manageMachineDisruptionBudgets:
type: boolean
skipUpgradeChecks:
type: boolean
continueUpgradeAfterChecksEvenIfNotHealthy:
type: boolean
mon:
type: object
properties:
allowMultiplePerNode:
type: boolean
count:
maximum: 9
minimum: 0
type: integer
volumeClaimTemplate:
type: object
x-kubernetes-preserve-unknown-fields: true
stretchCluster:
type: object
nullable: true
properties:
failureDomainLabel:
type: string
subFailureDomain:
type: string
zones:
type: array
items:
type: object
properties:
name:
type: string
arbiter:
type: boolean
volumeClaimTemplate:
type: object
x-kubernetes-preserve-unknown-fields: true
mgr:
type: object
properties:
modules:
type: array
items:
type: object
properties:
name:
type: string
enabled:
type: boolean
crashCollector:
type: object
properties:
disable:
type: boolean
daysToRetain:
type: integer
network:
type: object
nullable: true
properties:
hostNetwork:
type: boolean
provider:
type: string
selectors:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
ipFamily:
type: string
storage:
type: object
properties:
disruptionManagement:
type: object
nullable: true
properties:
machineDisruptionBudgetNamespace:
type: string
managePodBudgets:
type: boolean
osdMaintenanceTimeout:
type: integer
pgHealthCheckTimeout:
type: integer
manageMachineDisruptionBudgets:
type: boolean
useAllNodes:
type: boolean
nodes:
type: array
nullable: true
items:
type: object
properties:
name:
type: string
config:
type: object
nullable: true
properties:
metadataDevice:
type: string
storeType:
type: string
pattern: ^(bluestore)$
databaseSizeMB:
type: string
walSizeMB:
type: string
journalSizeMB:
type: string
osdsPerDevice:
type: string
encryptedDevice:
type: string
pattern: ^(true|false)$
useAllDevices:
type: boolean
deviceFilter:
type: string
nullable: true
devicePathFilter:
type: string
devices:
type: array
items:
type: object
properties:
name:
type: string
fullPath:
type: string
config:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
resources:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
useAllDevices:
type: boolean
deviceFilter:
type: string
nullable: true
devicePathFilter:
type: string
config:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
devices:
type: array
items:
type: object
properties:
name:
type: string
fullPath:
type: string
config:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
storageClassDeviceSets:
type: array
nullable: true
items:
type: object
properties:
name:
type: string
count:
type: integer
format: int32
portable:
type: boolean
tuneDeviceClass:
type: boolean
tuneFastDeviceClass:
type: boolean
encrypted:
type: boolean
schedulerName:
type: string
config:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
placement:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
preparePlacement:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
resources:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
volumeClaimTemplates:
type: array
items:
type: object
x-kubernetes-preserve-unknown-fields: true
driveGroups:
type: array
nullable: true
items:
type: object
properties:
name:
type: string
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
placement:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
required:
- name
- spec
monitoring:
type: object
properties:
enabled:
type: boolean
rulesNamespace:
type: string
externalMgrEndpoints:
type: array
items:
type: object
properties:
ip:
type: string
externalMgrPrometheusPort:
type: integer
minimum: 0
maximum: 65535
removeOSDsIfOutAndSafeToRemove:
type: boolean
external:
type: object
properties:
enable:
type: boolean
cleanupPolicy:
type: object
properties:
allowUninstallWithVolumes:
type: boolean
confirmation:
type: string
pattern: ^$|^yes-really-destroy-data$
sanitizeDisks:
type: object
properties:
method:
type: string
pattern: ^(complete|quick)$
dataSource:
type: string
pattern: ^(zero|random)$
iteration:
type: integer
format: int32
security:
type: object
properties:
kms:
type: object
properties:
connectionDetails:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
tokenSecretName:
type: string
logCollector:
type: object
properties:
enabled:
type: boolean
periodicity:
type: string
annotations:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
placement:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
labels:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
resources:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
healthCheck:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
priorityClassNames:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
additionalPrinterColumns:
- name: DataDirHostPath
type: string
description: Directory used on the K8s nodes
jsonPath: .spec.dataDirHostPath
- name: MonCount
type: string
description: Number of MONs
jsonPath: .spec.mon.count
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
- name: Phase
type: string
description: Phase
jsonPath: .status.phase
- name: Message
type: string
description: Message
jsonPath: .status.message
- name: Health
type: string
description: Ceph Health
jsonPath: .status.ceph.health
subresources:
status: {}
# OLM: END CEPH CRD
# OLM: BEGIN CEPH CLIENT CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephclients.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephClient
listKind: CephClientList
plural: cephclients
singular: cephclient
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
caps:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END CEPH CLIENT CRD
# OLM: BEGIN CEPH RBD MIRROR CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephrbdmirrors.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephRBDMirror
listKind: CephRBDMirrorList
plural: cephrbdmirrors
singular: cephrbdmirror
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
count:
type: integer
minimum: 1
maximum: 100
peers:
type: object
properties:
secretNames:
type: array
items:
type: string
resources:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
priorityClassName:
type: string
placement:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
annotations:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END CEPH RBD MIRROR CRD
# OLM: BEGIN CEPH FS CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephfilesystems.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephFilesystem
listKind: CephFilesystemList
plural: cephfilesystems
singular: cephfilesystem
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
metadataServer:
type: object
properties:
activeCount:
minimum: 1
maximum: 10
type: integer
activeStandby:
type: boolean
annotations:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
placement:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
resources:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
priorityClassName:
type: string
labels:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
metadataPool:
type: object
nullable: true
properties:
failureDomain:
type: string
deviceClass:
type: string
crushRoot:
type: string
replicated:
type: object
nullable: true
properties:
size:
minimum: 0
maximum: 10
type: integer
requireSafeReplicaSize:
type: boolean
replicasPerFailureDomain:
type: integer
subFailureDomain:
type: string
parameters:
type: object
x-kubernetes-preserve-unknown-fields: true
erasureCoded:
type: object
nullable: true
properties:
dataChunks:
minimum: 0
maximum: 10
type: integer
codingChunks:
minimum: 0
maximum: 10
type: integer
compressionMode:
type: string
enum:
- ""
- none
- passive
- aggressive
- force
dataPools:
type: array
nullable: true
items:
type: object
properties:
failureDomain:
type: string
deviceClass:
type: string
crushRoot:
type: string
replicated:
type: object
nullable: true
properties:
size:
minimum: 0
maximum: 10
type: integer
requireSafeReplicaSize:
type: boolean
replicasPerFailureDomain:
type: integer
subFailureDomain:
type: string
erasureCoded:
type: object
nullable: true
properties:
dataChunks:
minimum: 0
maximum: 10
type: integer
codingChunks:
minimum: 0
maximum: 10
type: integer
compressionMode:
type: string
enum:
- ""
- none
- passive
- aggressive
- force
parameters:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
preservePoolsOnDelete:
type: boolean
preserveFilesystemOnDelete:
type: boolean
status:
type: object
x-kubernetes-preserve-unknown-fields: true
additionalPrinterColumns:
- name: ActiveMDS
type: string
description: Number of desired active MDS daemons
jsonPath: .spec.metadataServer.activeCount
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
subresources:
status: {}
# OLM: END CEPH FS CRD
# OLM: BEGIN CEPH NFS CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephnfses.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephNFS
listKind: CephNFSList
plural: cephnfses
singular: cephnfs
shortNames:
- nfs
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
rados:
type: object
properties:
pool:
type: string
namespace:
type: string
server:
type: object
properties:
active:
type: integer
annotations:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
placement:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
resources:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
priorityClassName:
type: string
logLevel:
type: string
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END CEPH NFS CRD
# OLM: BEGIN CEPH OBJECT STORE CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephobjectstores.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephObjectStore
listKind: CephObjectStoreList
plural: cephobjectstores
singular: cephobjectstore
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
gateway:
type: object
properties:
type:
type: string
sslCertificateRef:
type: string
nullable: true
port:
type: integer
minimum: 0
maximum: 65535
securePort:
type: integer
minimum: 0
maximum: 65535
instances:
type: integer
externalRgwEndpoints:
type: array
nullable: true
items:
type: object
properties:
ip:
type: string
annotations:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
placement:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
resources:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
labels:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
priorityClassName:
type: string
metadataPool:
type: object
nullable: true
properties:
failureDomain:
type: string
crushRoot:
type: string
replicated:
type: object
nullable: true
properties:
size:
type: integer
requireSafeReplicaSize:
type: boolean
replicasPerFailureDomain:
type: integer
subFailureDomain:
type: string
erasureCoded:
type: object
nullable: true
properties:
dataChunks:
type: integer
codingChunks:
type: integer
compressionMode:
type: string
enum:
- ""
- none
- passive
- aggressive
- force
parameters:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
zone:
type: object
properties:
name:
type: string
dataPool:
type: object
nullable: true
properties:
failureDomain:
type: string
crushRoot:
type: string
replicated:
type: object
nullable: true
properties:
size:
type: integer
requireSafeReplicaSize:
type: boolean
replicasPerFailureDomain:
type: integer
subFailureDomain:
type: string
erasureCoded:
type: object
nullable: true
properties:
dataChunks:
type: integer
codingChunks:
type: integer
compressionMode:
type: string
enum:
- ""
- none
- passive
- aggressive
- force
parameters:
type: object
x-kubernetes-preserve-unknown-fields: true
preservePoolsOnDelete:
type: boolean
healthCheck:
type: object
nullable: true
properties:
bucket:
type: object
nullable: true
properties:
enabled:
type: boolean
interval:
type: string
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END CEPH OBJECT STORE CRD
# OLM: BEGIN CEPH OBJECT STORE USERS CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephobjectstoreusers.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephObjectStoreUser
listKind: CephObjectStoreUserList
plural: cephobjectstoreusers
singular: cephobjectstoreuser
shortNames:
- rcou
- objectuser
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
store:
type: string
displayName:
type: string
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END CEPH OBJECT STORE USERS CRD
# OLM: BEGIN CEPH OBJECT REALM CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephobjectrealms.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephObjectRealm
listKind: CephObjectRealmList
plural: cephobjectrealms
singular: cephobjectrealm
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
pull:
type: object
properties:
endpoint:
type: string
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END CEPH OBJECT REALM CRD
# OLM: BEGIN CEPH OBJECT ZONEGROUP CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephobjectzonegroups.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephObjectZoneGroup
listKind: CephObjectZoneGroupList
plural: cephobjectzonegroups
singular: cephobjectzonegroup
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
realm:
type: string
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END CEPH OBJECT ZONEGROUP CRD
# OLM: BEGIN CEPH OBJECT ZONE CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephobjectzones.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephObjectZone
listKind: CephObjectZoneList
plural: cephobjectzones
singular: cephobjectzone
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
zoneGroup:
type: string
metadataPool:
type: object
nullable: true
properties:
failureDomain:
type: string
crushRoot:
type: string
replicated:
type: object
nullable: true
properties:
size:
type: integer
requireSafeReplicaSize:
type: boolean
erasureCoded:
type: object
nullable: true
properties:
dataChunks:
type: integer
codingChunks:
type: integer
compressionMode:
type: string
enum:
- ""
- none
- passive
- aggressive
- force
parameters:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
dataPool:
type: object
properties:
failureDomain:
type: string
crushRoot:
type: string
replicated:
type: object
nullable: true
properties:
size:
type: integer
requireSafeReplicaSize:
type: boolean
erasureCoded:
type: object
nullable: true
properties:
dataChunks:
type: integer
codingChunks:
type: integer
compressionMode:
type: string
enum:
- ""
- none
- passive
- aggressive
- force
parameters:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
preservePoolsOnDelete:
type: boolean
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END CEPH OBJECT ZONE CRD
# OLM: BEGIN CEPH BLOCK POOL CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: cephblockpools.ceph.rook.io
spec:
group: ceph.rook.io
names:
kind: CephBlockPool
listKind: CephBlockPoolList
plural: cephblockpools
singular: cephblockpool
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
failureDomain:
type: string
deviceClass:
type: string
crushRoot:
type: string
replicated:
type: object
nullable: true
properties:
size:
type: integer
minimum: 0
maximum: 9
targetSizeRatio:
type: number
requireSafeReplicaSize:
type: boolean
replicasPerFailureDomain:
type: integer
subFailureDomain:
type: string
erasureCoded:
type: object
nullable: true
properties:
dataChunks:
type: integer
minimum: 0
maximum: 9
codingChunks:
type: integer
minimum: 0
maximum: 9
compressionMode:
type: string
enum:
- ""
- none
- passive
- aggressive
- force
enableRBDStats:
description:
EnableRBDStats is used to enable gathering of statistics
for all RBD images in the pool
type: boolean
parameters:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
mirroring:
type: object
nullable: true
properties:
enabled:
type: boolean
mode:
type: string
enum:
- image
- pool
snapshotSchedules:
type: array
items:
type: object
nullable: true
properties:
interval:
type: string
startTime:
type: string
statusCheck:
type: object
x-kubernetes-preserve-unknown-fields: true
annotations:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END CEPH BLOCK POOL CRD
# OLM: BEGIN CEPH VOLUME POOL CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: volumes.rook.io
spec:
group: rook.io
names:
kind: Volume
listKind: VolumeList
plural: volumes
singular: volume
shortNames:
- rv
scope: Namespaced
versions:
- name: v1alpha2
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
attachments:
type: array
items:
type: object
properties:
node:
type: string
podNamespace:
type: string
podName:
type: string
clusterName:
type: string
mountDir:
type: string
readOnly:
type: boolean
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END CEPH VOLUME POOL CRD
# OLM: BEGIN OBJECTBUCKET CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: objectbuckets.objectbucket.io
spec:
group: objectbucket.io
names:
kind: ObjectBucket
listKind: ObjectBucketList
plural: objectbuckets
singular: objectbucket
shortNames:
- ob
- obs
scope: Cluster
versions:
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
storageClassName:
type: string
endpoint:
type: object
nullable: true
properties:
bucketHost:
type: string
bucketPort:
type: integer
format: int32
bucketName:
type: string
region:
type: string
subRegion:
type: string
additionalConfig:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
authentication:
type: object
nullable: true
items:
type: object
x-kubernetes-preserve-unknown-fields: true
additionalState:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
reclaimPolicy:
type: string
claimRef:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END OBJECTBUCKET CRD
# OLM: BEGIN OBJECTBUCKETCLAIM CRD
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: objectbucketclaims.objectbucket.io
spec:
group: objectbucket.io
names:
kind: ObjectBucketClaim
listKind: ObjectBucketClaimList
plural: objectbucketclaims
singular: objectbucketclaim
shortNames:
- obc
- obcs
scope: Namespaced
versions:
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
storageClassName:
type: string
bucketName:
type: string
generateBucketName:
type: string
additionalConfig:
type: object
nullable: true
x-kubernetes-preserve-unknown-fields: true
objectBucketName:
type: string
status:
type: object
x-kubernetes-preserve-unknown-fields: true
subresources:
status: {}
# OLM: END OBJECTBUCKETCLAIM CRD