CephCluster [cephclusters.ceph.rook.io/v1]

Description
CephCluster is a Ceph storage cluster
Type
object
Required
metadataspec

Specification

PropertyTypeDescription
apiVersionstring

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kindstring

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadataObjectMeta

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

specobject

ClusterSpec represents the specification of Ceph Cluster

statusobject

ClusterStatus represents the status of a Ceph cluster

.spec

Description
ClusterSpec represents the specification of Ceph Cluster
Type
object
PropertyTypeDescription
annotationsobject

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

cephConfigobject

Ceph Config options

cephConfigFromSecretobject

CephConfigFromSecret works exactly like CephConfig but takes config value from Secret Key reference.

cephVersionobject

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

cleanupPolicyobject

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

continueUpgradeAfterChecksEvenIfNotHealthyboolean

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

crashCollectorobject

A spec for the crash controller

csiobject

CSI Driver Options applied per cluster.

dashboardobject

Dashboard settings

dataDirHostPathstring

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

disruptionManagementobject

A spec for configuring disruption management.

externalobject

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.

healthCheckobject

Internal daemon healthchecks and liveness probe

labelsobject

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

logCollectorobject

Logging represents loggings settings

mgrobject

A spec for mgr related options

monobject

A spec for mon related options

monitoringobject

Prometheus based Monitoring settings

networkobject

Network related configuration

placementobject
priorityClassNamesobject

PriorityClassNames sets priority classes on components

removeOSDsIfOutAndSafeToRemoveboolean

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

resourcesobject

Resources set resource requests and limits

securityobject

Security represents security settings

skipUpgradeChecksboolean

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

storageobject

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

upgradeOSDRequiresHealthyPGsboolean

UpgradeOSDRequiresHealthyPGs defines if OSD upgrade requires PGs are clean. If set to true OSD upgrade process won't start until PGs are healthy. This configuration will be ignored if skipUpgradeChecks is true. Default is false.

waitTimeoutForHealthyOSDInMinutesinteger

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.

.spec.annotations

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

.spec.cephConfig

Description
Ceph Config options
Type
object

.spec.cephConfigFromSecret

Description
CephConfigFromSecret works exactly like CephConfig but takes config value from Secret Key reference.
Type
object

.spec.cephVersion

Description
The version information that instructs Rook to orchestrate a particular version of Ceph.
Type
object
PropertyTypeDescription
allowUnsupportedboolean

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

imagestring

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

imagePullPolicystring

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

.spec.cleanupPolicy

Description
Indicates user intent when deleting a cluster; blocks orchestration and should not be set if cluster deletion is not imminent.
Type
object
PropertyTypeDescription
allowUninstallWithVolumesboolean

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

confirmationstring

Confirmation represents the cleanup confirmation

sanitizeDisksobject

SanitizeDisks represents way we sanitize disks

wipeDevicesFromOtherClustersboolean

WipeDevicesFromOtherClusters wipes the OSD disks belonging to other clusters. This is useful in scenarios where ceph cluster was reinstalled but OSD disk still contains the metadata from previous ceph cluster.

.spec.cleanupPolicy.sanitizeDisks

Description
SanitizeDisks represents way we sanitize disks
Type
object
PropertyTypeDescription
dataSourcestring

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

iterationinteger

Iteration is the number of pass to apply the sanitizing

methodstring

Method is the method we use to sanitize disks

.spec.crashCollector

Description
A spec for the crash controller
Type
object
PropertyTypeDescription
daysToRetaininteger

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

disableboolean

Disable determines whether we should enable the crash collector

.spec.csi

Description
CSI Driver Options applied per cluster.
Type
object
PropertyTypeDescription
cephfsobject

CephFS defines CSI Driver settings for CephFS driver.

readAffinityobject

ReadAffinity defines the read affinity settings for CSI driver.

skipUserCreationboolean

SkipUserCreation determines whether CSI users and their associated secrets should be skipped. If set to true, the user must manually manage these secrets.

.spec.csi.cephfs

Description
CephFS defines CSI Driver settings for CephFS driver.
Type
object
PropertyTypeDescription
fuseMountOptionsstring

FuseMountOptions defines the mount options for ceph fuse mounter.

kernelMountOptionsstring

KernelMountOptions defines the mount options for kernel mounter.

.spec.csi.readAffinity

Description
ReadAffinity defines the read affinity settings for CSI driver.
Type
object
PropertyTypeDescription
crushLocationLabelsarray

CrushLocationLabels defines which node labels to use as CRUSH location. This should correspond to the values set in the CRUSH map.

enabledboolean

Enables read affinity for CSI driver.

.spec.csi.readAffinity.crushLocationLabels

Description
CrushLocationLabels defines which node labels to use as CRUSH location. This should correspond to the values set in the CRUSH map.
Type
array

.spec.csi.readAffinity.crushLocationLabels[]

Type
string

.spec.dashboard

Description
Dashboard settings
Type
object
PropertyTypeDescription
enabledboolean

Enabled determines whether to enable the dashboard

portinteger

Port is the dashboard webserver port

prometheusEndpointstring

Endpoint for the Prometheus host

prometheusEndpointSSLVerifyboolean

Whether to verify the ssl endpoint for prometheus. Set to false for a self-signed cert.

sslboolean

SSL determines whether SSL should be used

urlPrefixstring

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

.spec.disruptionManagement

Description
A spec for configuring disruption management.
Type
object
PropertyTypeDescription
machineDisruptionBudgetNamespacestring

Deprecated. Namespace to look for MDBs by the machineDisruptionBudgetController

manageMachineDisruptionBudgetsboolean

Deprecated. This enables management of machinedisruptionbudgets.

managePodBudgetsboolean

This enables management of poddisruptionbudgets

osdMaintenanceTimeoutinteger

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

pgHealthCheckTimeoutinteger

DEPRECATED: PGHealthCheckTimeout is no longer implemented

pgHealthyRegexstring

PgHealthyRegex is the regular expression that is used to determine which PG states should be considered healthy. The default is ^(active\+clean|active\+clean\+scrubbing|active\+clean\+scrubbing\+deep)$

.spec.external

Description
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.
Type
object
PropertyTypeDescription
enableboolean

Enable determines whether external mode is enabled or not

.spec.healthCheck

Description
Internal daemon healthchecks and liveness probe
Type
object
PropertyTypeDescription
daemonHealthobject

DaemonHealth is the health check for a given daemon

livenessProbeobject

LivenessProbe allows changing the livenessProbe configuration for a given daemon

startupProbeobject

StartupProbe allows changing the startupProbe configuration for a given daemon

.spec.healthCheck.daemonHealth

Description
DaemonHealth is the health check for a given daemon
Type
object
PropertyTypeDescription
monobject

Monitor represents the health check settings for the Ceph monitor

osdobject

ObjectStorageDaemon represents the health check settings for the Ceph OSDs

statusobject

Status represents the health check settings for the Ceph health

.spec.healthCheck.daemonHealth.mon

Description
Monitor represents the health check settings for the Ceph monitor
Type
object
PropertyTypeDescription
disabledboolean
intervalstring

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

timeoutstring

.spec.healthCheck.daemonHealth.osd

Description
ObjectStorageDaemon represents the health check settings for the Ceph OSDs
Type
object
PropertyTypeDescription
disabledboolean
intervalstring

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

timeoutstring

.spec.healthCheck.daemonHealth.status

Description
Status represents the health check settings for the Ceph health
Type
object
PropertyTypeDescription
disabledboolean
intervalstring

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

timeoutstring

.spec.healthCheck.livenessProbe

Description
LivenessProbe allows changing the livenessProbe configuration for a given daemon
Type
object

.spec.healthCheck.startupProbe

Description
StartupProbe allows changing the startupProbe configuration for a given daemon
Type
object

.spec.labels

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

.spec.logCollector

Description
Logging represents loggings settings
Type
object
PropertyTypeDescription
enabledboolean

Enabled represents whether the log collector is enabled

maxLogSize

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

periodicitystring

Periodicity is the periodicity of the log rotation.

.spec.mgr

Description
A spec for mgr related options
Type
object
PropertyTypeDescription
allowMultiplePerNodeboolean

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

countinteger

Count is the number of manager daemons to run

hostNetworkboolean

Whether host networking is enabled for the Ceph Mgr. If not set, the network settings from CephCluster.spec.networking will be applied.

modulesarray

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

.spec.mgr.modules

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

.spec.mgr.modules[]

Description
Module represents mgr modules that the user wants to enable or disable
Type
object
PropertyTypeDescription
enabledboolean

Enabled determines whether a module should be enabled or not

namestring

Name is the name of the ceph manager module

settingsobject

Settings to further configure the module

.spec.mgr.modules[].settings

Description
Settings to further configure the module
Type
object
PropertyTypeDescription
balancerModestring

BalancerMode sets the balancer module with different modes like upmap, crush-compact etc

.spec.mon

Description
A spec for mon related options
Type
object
PropertyTypeDescription
allowMultiplePerNodeboolean

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

countinteger

Count is the number of Ceph monitors

externalMonIDsarray

ExternalMonIDs - optional list of monitor IDs which are deployed externally and not managed by Rook. If set, Rook will not remove mons with given IDs from quorum. This parameter is used only for local Rook cluster running in normal mode and will be ignored if external or stretched mode is used. leading

failureDomainLabelstring
stretchClusterobject

StretchCluster is the stretch cluster specification

volumeClaimTemplateobject

VolumeClaimTemplate is the PVC definition

zonesarray

Zones are specified when we want to provide zonal awareness to mons

.spec.mon.externalMonIDs

Description
ExternalMonIDs - optional list of monitor IDs which are deployed externally and not managed by Rook. If set, Rook will not remove mons with given IDs from quorum. This parameter is used only for local Rook cluster running in normal mode and will be ignored if external or stretched mode is used. leading
Type
array

.spec.mon.externalMonIDs[]

Type
string

.spec.mon.stretchCluster

Description
StretchCluster is the stretch cluster specification
Type
object
PropertyTypeDescription
failureDomainLabelstring

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

subFailureDomainstring

SubFailureDomain is the failure domain within a zone

zonesarray

Zones is the list of zones

.spec.mon.stretchCluster.zones

Description
Zones is the list of zones
Type
array

.spec.mon.stretchCluster.zones[]

Description
MonZoneSpec represents the specification of a zone in a Ceph Cluster
Type
object
PropertyTypeDescription
arbiterboolean

Arbiter determines if the zone contains the arbiter used for stretch cluster mode

namestring

Name is the name of the zone

volumeClaimTemplateobject

VolumeClaimTemplate is the PVC template

.spec.mon.stretchCluster.zones[].volumeClaimTemplate

Description
VolumeClaimTemplate is the PVC template
Type
object
PropertyTypeDescription
metadataObjectMeta

Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

specobject

spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec

Description
spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Type
object
PropertyTypeDescription
accessModesarray

accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

dataSourceobject

dataSource field can be used to specify either:

  • An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  • An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
dataSourceRefobject

dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef:

  • While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects.
  • While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified.
  • While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
resourcesobject

resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

selectorobject

selector is a label query over volumes to consider for binding.

storageClassNamestring

storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassNamestring

volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

volumeModestring

volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.

volumeNamestring

volumeName is the binding reference to the PersistentVolume backing this claim.

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.accessModes

Description
accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
Type
array

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.accessModes[]

Type
string

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.dataSource

Description
dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.dataSourceRef

Description
dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

namespacestring

Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.resources

Description
resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
Type
object
PropertyTypeDescription
limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.selector

Description
selector is a label query over volumes to consider for binding.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.selector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.selector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.selector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.selector.matchExpressions[].values[]

Type
string

.spec.mon.stretchCluster.zones[].volumeClaimTemplate.spec.selector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.mon.volumeClaimTemplate

Description
VolumeClaimTemplate is the PVC definition
Type
object
PropertyTypeDescription
metadataObjectMeta

Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

specobject

spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

.spec.mon.volumeClaimTemplate.spec

Description
spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Type
object
PropertyTypeDescription
accessModesarray

accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

dataSourceobject

dataSource field can be used to specify either:

  • An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  • An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
dataSourceRefobject

dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef:

  • While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects.
  • While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified.
  • While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
resourcesobject

resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

selectorobject

selector is a label query over volumes to consider for binding.

storageClassNamestring

storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassNamestring

volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

volumeModestring

volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.

volumeNamestring

volumeName is the binding reference to the PersistentVolume backing this claim.

.spec.mon.volumeClaimTemplate.spec.accessModes

Description
accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
Type
array

.spec.mon.volumeClaimTemplate.spec.accessModes[]

Type
string

.spec.mon.volumeClaimTemplate.spec.dataSource

Description
dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

.spec.mon.volumeClaimTemplate.spec.dataSourceRef

Description
dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

namespacestring

Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.

.spec.mon.volumeClaimTemplate.spec.resources

Description
resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
Type
object
PropertyTypeDescription
limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.mon.volumeClaimTemplate.spec.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.mon.volumeClaimTemplate.spec.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.mon.volumeClaimTemplate.spec.selector

Description
selector is a label query over volumes to consider for binding.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.mon.volumeClaimTemplate.spec.selector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.mon.volumeClaimTemplate.spec.selector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.mon.volumeClaimTemplate.spec.selector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.mon.volumeClaimTemplate.spec.selector.matchExpressions[].values[]

Type
string

.spec.mon.volumeClaimTemplate.spec.selector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.mon.zones

Description
Zones are specified when we want to provide zonal awareness to mons
Type
array

.spec.mon.zones[]

Description
MonZoneSpec represents the specification of a zone in a Ceph Cluster
Type
object
PropertyTypeDescription
arbiterboolean

Arbiter determines if the zone contains the arbiter used for stretch cluster mode

namestring

Name is the name of the zone

volumeClaimTemplateobject

VolumeClaimTemplate is the PVC template

.spec.mon.zones[].volumeClaimTemplate

Description
VolumeClaimTemplate is the PVC template
Type
object
PropertyTypeDescription
metadataObjectMeta

Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

specobject

spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

.spec.mon.zones[].volumeClaimTemplate.spec

Description
spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Type
object
PropertyTypeDescription
accessModesarray

accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

dataSourceobject

dataSource field can be used to specify either:

  • An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  • An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
dataSourceRefobject

dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef:

  • While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects.
  • While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified.
  • While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
resourcesobject

resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

selectorobject

selector is a label query over volumes to consider for binding.

storageClassNamestring

storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassNamestring

volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

volumeModestring

volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.

volumeNamestring

volumeName is the binding reference to the PersistentVolume backing this claim.

.spec.mon.zones[].volumeClaimTemplate.spec.accessModes

Description
accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
Type
array

.spec.mon.zones[].volumeClaimTemplate.spec.accessModes[]

Type
string

.spec.mon.zones[].volumeClaimTemplate.spec.dataSource

Description
dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

.spec.mon.zones[].volumeClaimTemplate.spec.dataSourceRef

Description
dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

namespacestring

Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.

.spec.mon.zones[].volumeClaimTemplate.spec.resources

Description
resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
Type
object
PropertyTypeDescription
limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.mon.zones[].volumeClaimTemplate.spec.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.mon.zones[].volumeClaimTemplate.spec.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.mon.zones[].volumeClaimTemplate.spec.selector

Description
selector is a label query over volumes to consider for binding.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.mon.zones[].volumeClaimTemplate.spec.selector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.mon.zones[].volumeClaimTemplate.spec.selector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.mon.zones[].volumeClaimTemplate.spec.selector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.mon.zones[].volumeClaimTemplate.spec.selector.matchExpressions[].values[]

Type
string

.spec.mon.zones[].volumeClaimTemplate.spec.selector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.monitoring

Description
Prometheus based Monitoring settings
Type
object
PropertyTypeDescription
enabledboolean

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

exporterobject

Ceph exporter configuration

externalMgrEndpointsarray

ExternalMgrEndpoints points to an existing Ceph prometheus exporter endpoint

externalMgrPrometheusPortinteger

ExternalMgrPrometheusPort Prometheus exporter port

intervalstring

Interval determines prometheus scrape interval

metricsDisabledboolean

Whether to disable the metrics reported by Ceph. If false, the prometheus mgr module and Ceph exporter are enabled. If true, the prometheus mgr module and Ceph exporter are both disabled. Default is false.

portinteger

Port is the prometheus server port

.spec.monitoring.exporter

Description
Ceph exporter configuration
Type
object
PropertyTypeDescription
hostNetworkboolean

Whether host networking is enabled for CephExporter. If not set, the network settings from CephCluster.spec.networking will be applied.

perfCountersPrioLimitinteger

Only performance counters greater than or equal to this option are fetched

statsPeriodSecondsinteger

Time to wait before sending requests again to exporter server (seconds)

.spec.monitoring.externalMgrEndpoints

Description
ExternalMgrEndpoints points to an existing Ceph prometheus exporter endpoint
Type
array

.spec.monitoring.externalMgrEndpoints[]

Description
EndpointAddress is a tuple that describes single IP address. Deprecated: This API is deprecated in v1.33+.
Type
object
Required
ip
PropertyTypeDescription
hostnamestring

The Hostname of this endpoint

ipstring

The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).

nodeNamestring

Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.

targetRefobject

Reference to object providing the endpoint.

.spec.monitoring.externalMgrEndpoints[].targetRef

Description
Reference to object providing the endpoint.
Type
object
PropertyTypeDescription
apiVersionstring

API version of the referent.

fieldPathstring

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.

kindstring

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

namestring

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespacestring

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersionstring

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uidstring

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

.spec.network

Description
Network related configuration
Type
object
PropertyTypeDescription
addressRangesobject

AddressRanges specify a list of CIDRs that Rook will apply to Ceph's 'public_network' and/or 'cluster_network' configurations. This config section may be used for the "host" or "multus" network providers.

connectionsobject

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

dualStackboolean

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

hostNetworkboolean

HostNetwork to enable host network. If host networking is enabled or disabled on a running cluster, then the operator will automatically fail over all the mons to apply the new network settings.

ipFamilystring

IPFamily is the single stack IPv6 or IPv4 protocol

multiClusterServiceobject

Enable multiClusterService to export the Services between peer clusters

providerstring

Provider is what provides network connectivity to the cluster e.g. "host" or "multus". If the Provider is updated from being empty to "host" on a running cluster, then the operator will automatically fail over all the mons to apply the "host" network settings.

selectorsobject

Selectors define NetworkAttachmentDefinitions to be used for Ceph public and/or cluster networks when the "multus" network provider is used. This config section is not used for other network providers.

Valid keys are "public" and "cluster". Refer to Ceph networking documentation for more: https://docs.ceph.com/en/latest/rados/configuration/network-config-ref/

Refer to Multus network annotation documentation for help selecting values: https://github.com/k8snetworkplumbingwg/multus-cni/blob/master/docs/how-to-use.md#run-pod-with-network-annotation

Rook will make a best-effort attempt to automatically detect CIDR address ranges for given network attachment definitions. Rook's methods are robust but may be imprecise for sufficiently complicated networks. Rook's auto-detection process obtains a new IP address lease for each CephCluster reconcile. If Rook fails to detect, incorrectly detects, only partially detects, or if underlying networks do not support reusing old IP addresses, it is best to use the 'addressRanges' config section to specify CIDR ranges for the Ceph cluster.

As a contrived example, one can use a theoretical Kubernetes-wide network for Ceph client traffic and a theoretical Rook-only network for Ceph replication traffic as shown: selectors: public: "default/cluster-fast-net" cluster: "rook-ceph/ceph-backend-net"

.spec.network.addressRanges

Description
AddressRanges specify a list of CIDRs that Rook will apply to Ceph's 'public_network' and/or 'cluster_network' configurations. This config section may be used for the "host" or "multus" network providers.
Type
object
PropertyTypeDescription
clusterarray

Cluster defines a list of CIDRs to use for Ceph cluster network communication.

publicarray

Public defines a list of CIDRs to use for Ceph public network communication.

.spec.network.addressRanges.cluster

Description
Cluster defines a list of CIDRs to use for Ceph cluster network communication.
Type
array

.spec.network.addressRanges.cluster[]

Description
An IPv4 or IPv6 network CIDR. This naive kubebuilder regex provides immediate feedback for some typos and for a common problem case where the range spec is forgotten (e.g., /24). Rook does in-depth validation in code.
Type
string

.spec.network.addressRanges.public

Description
Public defines a list of CIDRs to use for Ceph public network communication.
Type
array

.spec.network.addressRanges.public[]

Description
An IPv4 or IPv6 network CIDR. This naive kubebuilder regex provides immediate feedback for some typos and for a common problem case where the range spec is forgotten (e.g., /24). Rook does in-depth validation in code.
Type
string

.spec.network.connections

Description
Settings for network connections such as compression and encryption across the wire.
Type
object
PropertyTypeDescription
compressionobject

Compression settings for the network connections.

encryptionobject

Encryption settings for the network connections.

requireMsgr2boolean

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

.spec.network.connections.compression

Description
Compression settings for the network connections.
Type
object
PropertyTypeDescription
enabledboolean

Whether to compress the data in transit across the wire. The default is not set.

.spec.network.connections.encryption

Description
Encryption settings for the network connections.
Type
object
PropertyTypeDescription
enabledboolean

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.

.spec.network.multiClusterService

Description
Enable multiClusterService to export the Services between peer clusters
Type
object
PropertyTypeDescription
clusterIDstring

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

enabledboolean

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.

.spec.network.selectors

Description
Selectors define NetworkAttachmentDefinitions to be used for Ceph public and/or cluster networks when the "multus" network provider is used. This config section is not used for other network providers. Valid keys are "public" and "cluster". Refer to Ceph networking documentation for more: https://docs.ceph.com/en/latest/rados/configuration/network-config-ref/ Refer to Multus network annotation documentation for help selecting values: https://github.com/k8snetworkplumbingwg/multus-cni/blob/master/docs/how-to-use.md#run-pod-with-network-annotation Rook will make a best-effort attempt to automatically detect CIDR address ranges for given network attachment definitions. Rook's methods are robust but may be imprecise for sufficiently complicated networks. Rook's auto-detection process obtains a new IP address lease for each CephCluster reconcile. If Rook fails to detect, incorrectly detects, only partially detects, or if underlying networks do not support reusing old IP addresses, it is best to use the 'addressRanges' config section to specify CIDR ranges for the Ceph cluster. As a contrived example, one can use a theoretical Kubernetes-wide network for Ceph client traffic and a theoretical Rook-only network for Ceph replication traffic as shown: selectors: public: "default/cluster-fast-net" cluster: "rook-ceph/ceph-backend-net"
Type
object

.spec.placement

Type
object

.spec.priorityClassNames

Description
PriorityClassNames sets priority classes on components
Type
object

.spec.resources

Description
Resources set resource requests and limits
Type
object

.spec.security

Description
Security represents security settings
Type
object
PropertyTypeDescription
cephxobject

CephX configures CephX key settings. More: https://docs.ceph.com/en/latest/dev/cephx/

keyRotationobject

KeyRotation defines options for rotation of OSD disk encryption keys.

kmsobject

KeyManagementService is the main Key Management option

.spec.security.cephx

Description
CephX configures CephX key settings. More: https://docs.ceph.com/en/latest/dev/cephx/
Type
object
PropertyTypeDescription
csiobject

CSI configures CephX key rotation settings for the Ceph-CSI daemons in the current Kubernetes cluster. CSI key rotation can affect existing PV connections, so take care when exercising this option.

daemonobject

Daemon configures CephX key settings for local Ceph daemons managed by Rook and part of the Ceph cluster. Daemon CephX keys can be rotated without affecting client connections.

rbdMirrorPeerobject

RBDMirrorPeer configures CephX key settings of the rbd-mirror-peer user that is used for creating bootstrap peer token used connect peer clusters. Rotating the rbd-mirror-peer user key will update the mirror peer token. Rotation will affect any existing peers connected to this cluster, so take care when exercising this option.

.spec.security.cephx.csi

Description
CSI configures CephX key rotation settings for the Ceph-CSI daemons in the current Kubernetes cluster. CSI key rotation can affect existing PV connections, so take care when exercising this option.
Type
object
PropertyTypeDescription
keepPriorKeyCountMaxinteger

KeepPriorKeyCountMax tells Rook how many prior keys to keep active. Generally, this would be set to 1 to allow for a migration period for applications. If desired, set this to 0 to delete prior keys after migration. This config only applies to prior keys that already exist. If PriorKeyCount is set to 2 while only a single key currently exists, only a single prior key will be kept, and the reported status will only indicate the actual number of prior keys, not necessarily a reflection of PriorKeyCount config here.

keyGenerationinteger

KeyGeneration specifies the desired CephX key generation. This is used when KeyRotationPolicy is KeyGeneration and ignored for other policies. If this is set to greater than the current key generation, relevant keys will be rotated, and the generation value will be updated to this new value (generation values are not necessarily incremental, though that is the intended use case). If this is set to less than or equal to the current key generation, keys are not rotated.

keyRotationPolicystring

KeyRotationPolicy controls if and when CephX keys are rotated after initial creation. One of Disabled, or KeyGeneration. Default Disabled.

.spec.security.cephx.daemon

Description
Daemon configures CephX key settings for local Ceph daemons managed by Rook and part of the Ceph cluster. Daemon CephX keys can be rotated without affecting client connections.
Type
object
PropertyTypeDescription
keyGenerationinteger

KeyGeneration specifies the desired CephX key generation. This is used when KeyRotationPolicy is KeyGeneration and ignored for other policies. If this is set to greater than the current key generation, relevant keys will be rotated, and the generation value will be updated to this new value (generation values are not necessarily incremental, though that is the intended use case). If this is set to less than or equal to the current key generation, keys are not rotated.

keyRotationPolicystring

KeyRotationPolicy controls if and when CephX keys are rotated after initial creation. One of Disabled, or KeyGeneration. Default Disabled.

.spec.security.cephx.rbdMirrorPeer

Description
RBDMirrorPeer configures CephX key settings of the `rbd-mirror-peer` user that is used for creating bootstrap peer token used connect peer clusters. Rotating the `rbd-mirror-peer` user key will update the mirror peer token. Rotation will affect any existing peers connected to this cluster, so take care when exercising this option.
Type
object
PropertyTypeDescription
keyGenerationinteger

KeyGeneration specifies the desired CephX key generation. This is used when KeyRotationPolicy is KeyGeneration and ignored for other policies. If this is set to greater than the current key generation, relevant keys will be rotated, and the generation value will be updated to this new value (generation values are not necessarily incremental, though that is the intended use case). If this is set to less than or equal to the current key generation, keys are not rotated.

keyRotationPolicystring

KeyRotationPolicy controls if and when CephX keys are rotated after initial creation. One of Disabled, or KeyGeneration. Default Disabled.

.spec.security.keyRotation

Description
KeyRotation defines options for rotation of OSD disk encryption keys.
Type
object
PropertyTypeDescription
enabledboolean

Enabled represents whether the key rotation is enabled.

schedulestring

Schedule represents the cron schedule for key rotation.

.spec.security.kms

Description
KeyManagementService is the main Key Management option
Type
object
PropertyTypeDescription
connectionDetailsobject

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

tokenSecretNamestring

TokenSecretName is the kubernetes secret containing the KMS token

.spec.security.kms.connectionDetails

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

.spec.storage

Description
A spec for available storage in the cluster and how it should be used
Type
object
PropertyTypeDescription
allowDeviceClassUpdateboolean

Whether to allow updating the device class after the OSD is initially provisioned

allowOsdCrushWeightUpdateboolean

Whether Rook will resize the OSD CRUSH weight when the OSD PVC size is increased. This allows cluster data to be rebalanced to make most effective use of new OSD space. The default is false since data rebalancing can cause temporary cluster slowdown.

backfillFullRationumber

BackfillFullRatio is the ratio at which the cluster is too full for backfill. Backfill will be disabled if above this threshold. Default is 0.90.

configobject
deviceFilterstring

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

devicePathFilterstring

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

devicesarray

List of devices to use as storage devices

flappingRestartIntervalHoursinteger

FlappingRestartIntervalHours defines the time for which the OSD pods, that failed with zero exit code, will sleep before restarting. This is needed for OSD flapping where OSD daemons are marked down more than 5 times in 600 seconds by Ceph. Preventing the OSD pods to restart immediately in such scenarios will prevent Rook from marking OSD as up and thus peering of the PGs mapped to the OSD. User needs to manually restart the OSD pod if they manage to fix the underlying OSD flapping issue before the restart interval. The sleep will be disabled if this interval is set to 0.

fullRationumber

FullRatio is the ratio at which the cluster is considered full and ceph will stop accepting writes. Default is 0.95.

migrationobject

Migration handles the OSD migration

nearFullRationumber

NearFullRatio is the ratio at which the cluster is considered nearly full and will raise a ceph health warning. Default is 0.85.

nodesarray
onlyApplyOSDPlacementboolean
osdMaxUpdatesInParallelinteger

The maximum number of OSDs to update in parallel.

scheduleAlwaysboolean

Whether to always schedule OSDs on a node even if the node is not currently scheduleable or ready

storageClassDeviceSetsarray
storeobject

OSDStore is the backend storage type used for creating the OSDs

useAllDevicesboolean

Whether to consume all the storage devices found on a machine

useAllNodesboolean
volumeClaimTemplatesarray

PersistentVolumeClaims to use as storage

.spec.storage.config

Type
object

.spec.storage.devices

Description
List of devices to use as storage devices
Type
array

.spec.storage.devices[]

Description
Device represents a disk to use in the cluster
Type
object
PropertyTypeDescription
configobject
fullpathstring
namestring

.spec.storage.devices[].config

Type
object

.spec.storage.migration

Description
Migration handles the OSD migration
Type
object
PropertyTypeDescription
confirmationstring

A user confirmation to migrate the OSDs. It destroys each OSD one at a time, cleans up the backing disk and prepares OSD with same ID on that disk

.spec.storage.nodes

Type
array

.spec.storage.nodes[]

Description
Node is a storage nodes
Type
object
PropertyTypeDescription
configobject
deviceFilterstring

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

devicePathFilterstring

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

devicesarray

List of devices to use as storage devices

namestring
resourcesobject

ResourceRequirements describes the compute resource requirements.

useAllDevicesboolean

Whether to consume all the storage devices found on a machine

volumeClaimTemplatesarray

PersistentVolumeClaims to use as storage

.spec.storage.nodes[].config

Type
object

.spec.storage.nodes[].devices

Description
List of devices to use as storage devices
Type
array

.spec.storage.nodes[].devices[]

Description
Device represents a disk to use in the cluster
Type
object
PropertyTypeDescription
configobject
fullpathstring
namestring

.spec.storage.nodes[].devices[].config

Type
object

.spec.storage.nodes[].resources

Description
ResourceRequirements describes the compute resource requirements.
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This field depends on the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.storage.nodes[].resources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.storage.nodes[].resources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.storage.nodes[].resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.storage.nodes[].resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.storage.nodes[].volumeClaimTemplates

Description
PersistentVolumeClaims to use as storage
Type
array

.spec.storage.nodes[].volumeClaimTemplates[]

Description
VolumeClaimTemplate is a simplified version of K8s corev1's PVC. It has no type meta or status.
Type
object
PropertyTypeDescription
metadataObjectMeta

Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

specobject

spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

.spec.storage.nodes[].volumeClaimTemplates[].spec

Description
spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Type
object
PropertyTypeDescription
accessModesarray

accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

dataSourceobject

dataSource field can be used to specify either:

  • An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  • An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
dataSourceRefobject

dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef:

  • While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects.
  • While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified.
  • While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
resourcesobject

resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

selectorobject

selector is a label query over volumes to consider for binding.

storageClassNamestring

storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassNamestring

volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

volumeModestring

volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.

volumeNamestring

volumeName is the binding reference to the PersistentVolume backing this claim.

.spec.storage.nodes[].volumeClaimTemplates[].spec.accessModes

Description
accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
Type
array

.spec.storage.nodes[].volumeClaimTemplates[].spec.accessModes[]

Type
string

.spec.storage.nodes[].volumeClaimTemplates[].spec.dataSource

Description
dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

.spec.storage.nodes[].volumeClaimTemplates[].spec.dataSourceRef

Description
dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

namespacestring

Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.

.spec.storage.nodes[].volumeClaimTemplates[].spec.resources

Description
resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
Type
object
PropertyTypeDescription
limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.storage.nodes[].volumeClaimTemplates[].spec.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.storage.nodes[].volumeClaimTemplates[].spec.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.storage.nodes[].volumeClaimTemplates[].spec.selector

Description
selector is a label query over volumes to consider for binding.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.storage.nodes[].volumeClaimTemplates[].spec.selector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.storage.nodes[].volumeClaimTemplates[].spec.selector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.storage.nodes[].volumeClaimTemplates[].spec.selector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.storage.nodes[].volumeClaimTemplates[].spec.selector.matchExpressions[].values[]

Type
string

.spec.storage.nodes[].volumeClaimTemplates[].spec.selector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.storage.storageClassDeviceSets

Type
array

.spec.storage.storageClassDeviceSets[]

Description
StorageClassDeviceSet is a storage class device set
Type
object
Required
countnamevolumeClaimTemplates
PropertyTypeDescription
configobject

Provider-specific device configuration

countinteger

Count is the number of devices in this set

encryptedboolean

Whether to encrypt the deviceSet

namestring

Name is a unique identifier for the set

placementobject
portableboolean

Portable represents OSD portability across the hosts

preparePlacementobject
resourcesobject

ResourceRequirements describes the compute resource requirements.

schedulerNamestring

Scheduler name for OSD pod placement

tuneDeviceClassboolean

TuneSlowDeviceClass Tune the OSD when running on a slow Device Class

tuneFastDeviceClassboolean

TuneFastDeviceClass Tune the OSD when running on a fast Device Class

volumeClaimTemplatesarray

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

.spec.storage.storageClassDeviceSets[].config

Description
Provider-specific device configuration
Type
object

.spec.storage.storageClassDeviceSets[].placement

Type
object
PropertyTypeDescription
nodeAffinityobject
podAffinityobject
podAntiAffinityobject
tolerationsarray
topologySpreadConstraintsarray

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity

Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray
requiredDuringSchedulingIgnoredDuringExecutionobject

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

Type
array

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Type
object
Required
preferenceweight
PropertyTypeDescription
preferenceobject
weightinteger

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference

Type
object
PropertyTypeDescription
matchExpressionsarray
matchFieldsarray

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields

Type
array

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

Type
object
Required
nodeSelectorTerms
PropertyTypeDescription
nodeSelectorTermsarray

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms

Type
array

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[]

Type
object
PropertyTypeDescription
matchExpressionsarray
matchFieldsarray

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields

Type
array

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAffinity

Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray
requiredDuringSchedulingIgnoredDuringExecutionarray

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Type
object
Required
podAffinityTermweight
PropertyTypeDescription
podAffinityTermobject
weightinteger

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject
matchLabelKeysarray
mismatchLabelKeysarray
namespaceSelectorobject
namespacesarray
topologyKeystring

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject
matchLabelKeysarray
mismatchLabelKeysarray
namespaceSelectorobject
namespacesarray
topologyKeystring

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity

Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray
requiredDuringSchedulingIgnoredDuringExecutionarray

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Type
object
Required
podAffinityTermweight
PropertyTypeDescription
podAffinityTermobject
weightinteger

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject
matchLabelKeysarray
mismatchLabelKeysarray
namespaceSelectorobject
namespacesarray
topologyKeystring

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject
matchLabelKeysarray
mismatchLabelKeysarray
namespaceSelectorobject
namespacesarray
topologyKeystring

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces

Type
array

.spec.storage.storageClassDeviceSets[].placement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.tolerations

Type
array

.spec.storage.storageClassDeviceSets[].placement.tolerations[]

Type
object
PropertyTypeDescription
effectstring
keystring
operatorstring
tolerationSecondsinteger
valuestring

.spec.storage.storageClassDeviceSets[].placement.topologySpreadConstraints

Type
array

.spec.storage.storageClassDeviceSets[].placement.topologySpreadConstraints[]

Type
object
Required
maxSkewtopologyKeywhenUnsatisfiable
PropertyTypeDescription
labelSelectorobject
matchLabelKeysarray
maxSkewinteger
minDomainsinteger
nodeAffinityPolicystring
nodeTaintsPolicystring
topologyKeystring
whenUnsatisfiablestring

.spec.storage.storageClassDeviceSets[].placement.topologySpreadConstraints[].labelSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].placement.topologySpreadConstraints[].labelSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].placement.topologySpreadConstraints[].labelSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].placement.topologySpreadConstraints[].labelSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].placement.topologySpreadConstraints[].labelSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].placement.topologySpreadConstraints[].labelSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].placement.topologySpreadConstraints[].matchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].placement.topologySpreadConstraints[].matchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement

Type
object
PropertyTypeDescription
nodeAffinityobject
podAffinityobject
podAntiAffinityobject
tolerationsarray
topologySpreadConstraintsarray

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity

Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray
requiredDuringSchedulingIgnoredDuringExecutionobject

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Type
object
Required
preferenceweight
PropertyTypeDescription
preferenceobject
weightinteger

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference

Type
object
PropertyTypeDescription
matchExpressionsarray
matchFieldsarray

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

Type
object
Required
nodeSelectorTerms
PropertyTypeDescription
nodeSelectorTermsarray

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[]

Type
object
PropertyTypeDescription
matchExpressionsarray
matchFieldsarray

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity

Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray
requiredDuringSchedulingIgnoredDuringExecutionarray

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Type
object
Required
podAffinityTermweight
PropertyTypeDescription
podAffinityTermobject
weightinteger

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject
matchLabelKeysarray
mismatchLabelKeysarray
namespaceSelectorobject
namespacesarray
topologyKeystring

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject
matchLabelKeysarray
mismatchLabelKeysarray
namespaceSelectorobject
namespacesarray
topologyKeystring

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity

Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray
requiredDuringSchedulingIgnoredDuringExecutionarray

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Type
object
Required
podAffinityTermweight
PropertyTypeDescription
podAffinityTermobject
weightinteger

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject
matchLabelKeysarray
mismatchLabelKeysarray
namespaceSelectorobject
namespacesarray
topologyKeystring

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject
matchLabelKeysarray
mismatchLabelKeysarray
namespaceSelectorobject
namespacesarray
topologyKeystring

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.tolerations

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.tolerations[]

Type
object
PropertyTypeDescription
effectstring
keystring
operatorstring
tolerationSecondsinteger
valuestring

.spec.storage.storageClassDeviceSets[].preparePlacement.topologySpreadConstraints

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.topologySpreadConstraints[]

Type
object
Required
maxSkewtopologyKeywhenUnsatisfiable
PropertyTypeDescription
labelSelectorobject
matchLabelKeysarray
maxSkewinteger
minDomainsinteger
nodeAffinityPolicystring
nodeTaintsPolicystring
topologyKeystring
whenUnsatisfiablestring

.spec.storage.storageClassDeviceSets[].preparePlacement.topologySpreadConstraints[].labelSelector

Type
object
PropertyTypeDescription
matchExpressionsarray
matchLabelsobject

.spec.storage.storageClassDeviceSets[].preparePlacement.topologySpreadConstraints[].labelSelector.matchExpressions

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.topologySpreadConstraints[].labelSelector.matchExpressions[]

Type
object
Required
keyoperator
PropertyTypeDescription
keystring
operatorstring
valuesarray

.spec.storage.storageClassDeviceSets[].preparePlacement.topologySpreadConstraints[].labelSelector.matchExpressions[].values

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.topologySpreadConstraints[].labelSelector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].preparePlacement.topologySpreadConstraints[].labelSelector.matchLabels

Type
object

.spec.storage.storageClassDeviceSets[].preparePlacement.topologySpreadConstraints[].matchLabelKeys

Type
array

.spec.storage.storageClassDeviceSets[].preparePlacement.topologySpreadConstraints[].matchLabelKeys[]

Type
string

.spec.storage.storageClassDeviceSets[].resources

Description
ResourceRequirements describes the compute resource requirements.
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This field depends on the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.storage.storageClassDeviceSets[].resources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.storage.storageClassDeviceSets[].resources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.storage.storageClassDeviceSets[].resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.storage.storageClassDeviceSets[].resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates

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

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[]

Description
VolumeClaimTemplate is a simplified version of K8s corev1's PVC. It has no type meta or status.
Type
object
PropertyTypeDescription
metadataObjectMeta

Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

specobject

spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec

Description
spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Type
object
PropertyTypeDescription
accessModesarray

accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

dataSourceobject

dataSource field can be used to specify either:

  • An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  • An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
dataSourceRefobject

dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef:

  • While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects.
  • While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified.
  • While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
resourcesobject

resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

selectorobject

selector is a label query over volumes to consider for binding.

storageClassNamestring

storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassNamestring

volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

volumeModestring

volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.

volumeNamestring

volumeName is the binding reference to the PersistentVolume backing this claim.

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.accessModes

Description
accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
Type
array

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.accessModes[]

Type
string

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.dataSource

Description
dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.dataSourceRef

Description
dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

namespacestring

Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.resources

Description
resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
Type
object
PropertyTypeDescription
limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.selector

Description
selector is a label query over volumes to consider for binding.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.selector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.selector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.selector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.selector.matchExpressions[].values[]

Type
string

.spec.storage.storageClassDeviceSets[].volumeClaimTemplates[].spec.selector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.storage.store

Description
OSDStore is the backend storage type used for creating the OSDs
Type
object
PropertyTypeDescription
typestring

Type of backend storage to be used while creating OSDs. If empty, then bluestore will be used

updateStorestring

UpdateStore updates the backend store for existing OSDs. It destroys each OSD one at a time, cleans up the backing disk and prepares same OSD on that disk

.spec.storage.volumeClaimTemplates

Description
PersistentVolumeClaims to use as storage
Type
array

.spec.storage.volumeClaimTemplates[]

Description
VolumeClaimTemplate is a simplified version of K8s corev1's PVC. It has no type meta or status.
Type
object
PropertyTypeDescription
metadataObjectMeta

Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

specobject

spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

.spec.storage.volumeClaimTemplates[].spec

Description
spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Type
object
PropertyTypeDescription
accessModesarray

accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

dataSourceobject

dataSource field can be used to specify either:

  • An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  • An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
dataSourceRefobject

dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef:

  • While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects.
  • While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified.
  • While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
resourcesobject

resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

selectorobject

selector is a label query over volumes to consider for binding.

storageClassNamestring

storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassNamestring

volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

volumeModestring

volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.

volumeNamestring

volumeName is the binding reference to the PersistentVolume backing this claim.

.spec.storage.volumeClaimTemplates[].spec.accessModes

Description
accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
Type
array

.spec.storage.volumeClaimTemplates[].spec.accessModes[]

Type
string

.spec.storage.volumeClaimTemplates[].spec.dataSource

Description
dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

.spec.storage.volumeClaimTemplates[].spec.dataSourceRef

Description
dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

namespacestring

Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.

.spec.storage.volumeClaimTemplates[].spec.resources

Description
resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
Type
object
PropertyTypeDescription
limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.storage.volumeClaimTemplates[].spec.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.storage.volumeClaimTemplates[].spec.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.storage.volumeClaimTemplates[].spec.selector

Description
selector is a label query over volumes to consider for binding.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.storage.volumeClaimTemplates[].spec.selector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.storage.volumeClaimTemplates[].spec.selector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.storage.volumeClaimTemplates[].spec.selector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.storage.volumeClaimTemplates[].spec.selector.matchExpressions[].values[]

Type
string

.spec.storage.volumeClaimTemplates[].spec.selector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.status

Description
ClusterStatus represents the status of a Ceph cluster
Type
object
PropertyTypeDescription
cephobject

CephStatus is the details health of a Ceph Cluster

cephxobject

ClusterCephxStatus defines the cephx key rotation status of various daemons on the cephCluster resource

conditionsarray
messagestring
observedGenerationinteger

ObservedGeneration is the latest generation observed by the controller.

phasestring

ConditionType represent a resource's status

statestring

ClusterState represents the state of a Ceph Cluster

storageobject

CephStorage represents flavors of Ceph Cluster Storage

versionobject

ClusterVersion represents the version of a Ceph Cluster

.status.ceph

Description
CephStatus is the details health of a Ceph Cluster
Type
object
PropertyTypeDescription
capacityobject

Capacity is the capacity information of a Ceph Cluster

detailsobject
fsidstring
healthstring
lastChangedstring
lastCheckedstring
previousHealthstring
versionsobject

CephDaemonsVersions show the current ceph version for different ceph daemons

.status.ceph.capacity

Description
Capacity is the capacity information of a Ceph Cluster
Type
object
PropertyTypeDescription
bytesAvailableinteger
bytesTotalinteger
bytesUsedinteger
lastUpdatedstring

.status.ceph.details

Type
object

.status.ceph.versions

Description
CephDaemonsVersions show the current ceph version for different ceph daemons
Type
object
PropertyTypeDescription
cephfs-mirrorobject

CephFSMirror shows CephFSMirror Ceph version

mdsobject

Mds shows Mds Ceph version

mgrobject

Mgr shows Mgr Ceph version

monobject

Mon shows Mon Ceph version

osdobject

Osd shows Osd Ceph version

overallobject

Overall shows overall Ceph version

rbd-mirrorobject

RbdMirror shows RbdMirror Ceph version

rgwobject

Rgw shows Rgw Ceph version

.status.ceph.versions.cephfs-mirror

Description
CephFSMirror shows CephFSMirror Ceph version
Type
object

.status.ceph.versions.mds

Description
Mds shows Mds Ceph version
Type
object

.status.ceph.versions.mgr

Description
Mgr shows Mgr Ceph version
Type
object

.status.ceph.versions.mon

Description
Mon shows Mon Ceph version
Type
object

.status.ceph.versions.osd

Description
Osd shows Osd Ceph version
Type
object

.status.ceph.versions.overall

Description
Overall shows overall Ceph version
Type
object

.status.ceph.versions.rbd-mirror

Description
RbdMirror shows RbdMirror Ceph version
Type
object

.status.ceph.versions.rgw

Description
Rgw shows Rgw Ceph version
Type
object

.status.cephx

Description
ClusterCephxStatus defines the cephx key rotation status of various daemons on the cephCluster resource
Type
object
PropertyTypeDescription
adminobject

Admin shows the CephX key status for the client.admin key

cephExporterobject

Ceph Exporter represents the cephx key rotation status of the ceph exporter daemon

crashCollectorobject

Crash Collector represents the cephx key rotation status of the crash collector daemon

csiobject

CSI shows the CephX key status for Ceph-CSI components.

mgrobject

Mgr represents the cephx key rotation status of the ceph manager daemon

monobject

Mon represents the CephX key status of the Monitor daemons

osdobject

OSD shows the CephX key status of of OSDs

rbdMirrorPeerobject

RBDMirrorPeer represents the cephx key rotation status of the rbd-mirror-peer user

.status.cephx.admin

Description
Admin shows the CephX key status for the client.admin key
Type
object
PropertyTypeDescription
keyCephVersionstring

KeyCephVersion reports the Ceph version that created the current generation's keys. This is same string format as reported by CephCluster.status.version.version to allow them to be compared. E.g., 20.2.0-0. For all newly-created resources, this field set to the version of Ceph that created the key. The special value "Uninitialized" indicates that keys are being created for the first time. An empty string indicates that the version is unknown, as expected in brownfield deployments.

keyGenerationinteger

KeyGeneration represents the CephX key generation for the last successful reconcile. For all newly-created resources, this field is set to 1. When keys are rotated due to any rotation policy, the generation is incremented or updated to the configured policy generation. Generation 0 indicates that keys existed prior to the implementation of key tracking.

.status.cephx.cephExporter

Description
Ceph Exporter represents the cephx key rotation status of the ceph exporter daemon
Type
object
PropertyTypeDescription
keyCephVersionstring

KeyCephVersion reports the Ceph version that created the current generation's keys. This is same string format as reported by CephCluster.status.version.version to allow them to be compared. E.g., 20.2.0-0. For all newly-created resources, this field set to the version of Ceph that created the key. The special value "Uninitialized" indicates that keys are being created for the first time. An empty string indicates that the version is unknown, as expected in brownfield deployments.

keyGenerationinteger

KeyGeneration represents the CephX key generation for the last successful reconcile. For all newly-created resources, this field is set to 1. When keys are rotated due to any rotation policy, the generation is incremented or updated to the configured policy generation. Generation 0 indicates that keys existed prior to the implementation of key tracking.

.status.cephx.crashCollector

Description
Crash Collector represents the cephx key rotation status of the crash collector daemon
Type
object
PropertyTypeDescription
keyCephVersionstring

KeyCephVersion reports the Ceph version that created the current generation's keys. This is same string format as reported by CephCluster.status.version.version to allow them to be compared. E.g., 20.2.0-0. For all newly-created resources, this field set to the version of Ceph that created the key. The special value "Uninitialized" indicates that keys are being created for the first time. An empty string indicates that the version is unknown, as expected in brownfield deployments.

keyGenerationinteger

KeyGeneration represents the CephX key generation for the last successful reconcile. For all newly-created resources, this field is set to 1. When keys are rotated due to any rotation policy, the generation is incremented or updated to the configured policy generation. Generation 0 indicates that keys existed prior to the implementation of key tracking.

.status.cephx.csi

Description
CSI shows the CephX key status for Ceph-CSI components.
Type
object
PropertyTypeDescription
keyCephVersionstring

KeyCephVersion reports the Ceph version that created the current generation's keys. This is same string format as reported by CephCluster.status.version.version to allow them to be compared. E.g., 20.2.0-0. For all newly-created resources, this field set to the version of Ceph that created the key. The special value "Uninitialized" indicates that keys are being created for the first time. An empty string indicates that the version is unknown, as expected in brownfield deployments.

keyGenerationinteger

KeyGeneration represents the CephX key generation for the last successful reconcile. For all newly-created resources, this field is set to 1. When keys are rotated due to any rotation policy, the generation is incremented or updated to the configured policy generation. Generation 0 indicates that keys existed prior to the implementation of key tracking.

priorKeyCountinteger

PriorKeyCount reports the number of prior-generation CephX keys that remain active for the related component

.status.cephx.mgr

Description
Mgr represents the cephx key rotation status of the ceph manager daemon
Type
object
PropertyTypeDescription
keyCephVersionstring

KeyCephVersion reports the Ceph version that created the current generation's keys. This is same string format as reported by CephCluster.status.version.version to allow them to be compared. E.g., 20.2.0-0. For all newly-created resources, this field set to the version of Ceph that created the key. The special value "Uninitialized" indicates that keys are being created for the first time. An empty string indicates that the version is unknown, as expected in brownfield deployments.

keyGenerationinteger

KeyGeneration represents the CephX key generation for the last successful reconcile. For all newly-created resources, this field is set to 1. When keys are rotated due to any rotation policy, the generation is incremented or updated to the configured policy generation. Generation 0 indicates that keys existed prior to the implementation of key tracking.

.status.cephx.mon

Description
Mon represents the CephX key status of the Monitor daemons
Type
object
PropertyTypeDescription
keyCephVersionstring

KeyCephVersion reports the Ceph version that created the current generation's keys. This is same string format as reported by CephCluster.status.version.version to allow them to be compared. E.g., 20.2.0-0. For all newly-created resources, this field set to the version of Ceph that created the key. The special value "Uninitialized" indicates that keys are being created for the first time. An empty string indicates that the version is unknown, as expected in brownfield deployments.

keyGenerationinteger

KeyGeneration represents the CephX key generation for the last successful reconcile. For all newly-created resources, this field is set to 1. When keys are rotated due to any rotation policy, the generation is incremented or updated to the configured policy generation. Generation 0 indicates that keys existed prior to the implementation of key tracking.

.status.cephx.osd

Description
OSD shows the CephX key status of of OSDs
Type
object
PropertyTypeDescription
keyCephVersionstring

KeyCephVersion reports the Ceph version that created the current generation's keys. This is same string format as reported by CephCluster.status.version.version to allow them to be compared. E.g., 20.2.0-0. For all newly-created resources, this field set to the version of Ceph that created the key. The special value "Uninitialized" indicates that keys are being created for the first time. An empty string indicates that the version is unknown, as expected in brownfield deployments.

keyGenerationinteger

KeyGeneration represents the CephX key generation for the last successful reconcile. For all newly-created resources, this field is set to 1. When keys are rotated due to any rotation policy, the generation is incremented or updated to the configured policy generation. Generation 0 indicates that keys existed prior to the implementation of key tracking.

.status.cephx.rbdMirrorPeer

Description
RBDMirrorPeer represents the cephx key rotation status of the `rbd-mirror-peer` user
Type
object
PropertyTypeDescription
keyCephVersionstring

KeyCephVersion reports the Ceph version that created the current generation's keys. This is same string format as reported by CephCluster.status.version.version to allow them to be compared. E.g., 20.2.0-0. For all newly-created resources, this field set to the version of Ceph that created the key. The special value "Uninitialized" indicates that keys are being created for the first time. An empty string indicates that the version is unknown, as expected in brownfield deployments.

keyGenerationinteger

KeyGeneration represents the CephX key generation for the last successful reconcile. For all newly-created resources, this field is set to 1. When keys are rotated due to any rotation policy, the generation is incremented or updated to the configured policy generation. Generation 0 indicates that keys existed prior to the implementation of key tracking.

.status.conditions

Type
array

.status.conditions[]

Description
Condition represents a status condition on any Rook-Ceph Custom Resource.
Type
object
PropertyTypeDescription
lastHeartbeatTimestring
lastTransitionTimestring
messagestring
reasonstring

ConditionReason is a reason for a condition

statusstring
typestring

ConditionType represent a resource's status

.status.storage

Description
CephStorage represents flavors of Ceph Cluster Storage
Type
object
PropertyTypeDescription
deprecatedOSDsobject
deviceClassesarray
osdobject

OSDStatus represents OSD status of the ceph Cluster

.status.storage.deprecatedOSDs

Type
object

.status.storage.deviceClasses

Type
array

.status.storage.deviceClasses[]

Description
DeviceClasses represents device classes of a Ceph Cluster
Type
object
PropertyTypeDescription
namestring

.status.storage.osd

Description
OSDStatus represents OSD status of the ceph Cluster
Type
object
PropertyTypeDescription
migrationStatusobject

MigrationStatus status represents the current status of any OSD migration.

storeTypeobject

StoreType is a mapping between the OSD backend stores and number of OSDs using these stores

.status.storage.osd.migrationStatus

Description
MigrationStatus status represents the current status of any OSD migration.
Type
object
PropertyTypeDescription
pendinginteger

.status.storage.osd.storeType

Description
StoreType is a mapping between the OSD backend stores and number of OSDs using these stores
Type
object

.status.version

Description
ClusterVersion represents the version of a Ceph Cluster
Type
object
PropertyTypeDescription
imagestring
versionstring

API Endpoints

The following API endpoints are available:

  • /apis/ceph.rook.io/v1/namespaces/{namespace}/cephclusters
    • DELETE: delete collection of CephCluster
    • GET: list objects of kind CephCluster
    • POST: create a new CephCluster
  • /apis/ceph.rook.io/v1/namespaces/{namespace}/cephclusters/{name}
    • DELETE: delete the specified CephCluster
    • GET: read the specified CephCluster
    • PATCH: partially update the specified CephCluster
    • PUT: replace the specified CephCluster
  • /apis/ceph.rook.io/v1/namespaces/{namespace}/cephclusters/{name}/status
    • GET: read status of the specified CephCluster
    • PATCH: partially update status of the specified CephCluster
    • PUT: replace status of the specified CephCluster

/apis/ceph.rook.io/v1/namespaces/{namespace}/cephclusters

HTTP method
DELETE
Description
delete collection of CephCluster
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
list objects of kind CephCluster
HTTP responses
HTTP codeResponse body
200 - OKCephClusterList schema
401 - UnauthorizedEmpty
HTTP method
POST
Description
create a new CephCluster
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyCephCluster schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKCephCluster schema
201 - CreatedCephCluster schema
202 - AcceptedCephCluster schema
401 - UnauthorizedEmpty

/apis/ceph.rook.io/v1/namespaces/{namespace}/cephclusters/{name}

HTTP method
DELETE
Description
delete the specified CephCluster
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
202 - AcceptedStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
read the specified CephCluster
HTTP responses
HTTP codeResponse body
200 - OKCephCluster schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update the specified CephCluster
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKCephCluster schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace the specified CephCluster
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyCephCluster schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKCephCluster schema
201 - CreatedCephCluster schema
401 - UnauthorizedEmpty

/apis/ceph.rook.io/v1/namespaces/{namespace}/cephclusters/{name}/status

HTTP method
GET
Description
read status of the specified CephCluster
HTTP responses
HTTP codeResponse body
200 - OKCephCluster schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update status of the specified CephCluster
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKCephCluster schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace status of the specified CephCluster
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyCephCluster schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKCephCluster schema
201 - CreatedCephCluster schema
401 - UnauthorizedEmpty