############################################################################## # Create the CRDs that are necessary before creating your Rook cluster. # These resources *must* be created before the cluster.yaml or their variants. ############################################################################## --- --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 creationTimestamp: null name: cephblockpoolradosnamespaces.ceph.rook.io spec: group: ceph.rook.io names: kind: CephBlockPoolRadosNamespace listKind: CephBlockPoolRadosNamespaceList plural: cephblockpoolradosnamespaces singular: cephblockpoolradosnamespace scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: description: CephBlockPoolRadosNamespace represents a Ceph BlockPool Rados Namespace properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: type: object spec: description: Spec represents the specification of a Ceph BlockPool Rados Namespace properties: blockPoolName: description: BlockPoolName is the name of Ceph BlockPool. Typically it's the name of the CephBlockPool CR. type: string x-kubernetes-validations: - message: blockPoolName is immutable rule: self == oldSelf name: description: The name of the CephBlockPoolRadosNamespaceSpec namespace. type: string x-kubernetes-validations: - message: name is immutable rule: self == oldSelf required: - blockPoolName type: object status: description: Status represents the status of a CephBlockPool Rados Namespace properties: info: additionalProperties: type: string nullable: true type: object phase: description: ConditionType represent a resource's status type: string type: object x-kubernetes-preserve-unknown-fields: true required: - metadata - spec type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 creationTimestamp: null name: cephblockpools.ceph.rook.io spec: group: ceph.rook.io names: kind: CephBlockPool listKind: CephBlockPoolList plural: cephblockpools singular: cephblockpool scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.phase name: Phase type: string name: v1 schema: openAPIV3Schema: description: CephBlockPool represents a Ceph Storage Pool properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: type: object spec: description: NamedBlockPoolSpec allows a block pool to be created with a non-default name. properties: compressionMode: description: 'DEPRECATED: use Parameters instead, e.g.' enum: - none - passive - aggressive - force - "" nullable: true type: string crushRoot: description: The root of the crush hierarchy utilized by the pool nullable: true type: string deviceClass: description: The device class the OSD should set to for use in the pool nullable: true type: string enableRBDStats: description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool type: boolean erasureCoded: description: The erasure code settings properties: algorithm: description: The algorithm for erasure coding type: string codingChunks: description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool minimum: 0 type: integer dataChunks: description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool t minimum: 0 type: integer required: - codingChunks - dataChunks type: object failureDomain: description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush ' type: string mirroring: description: The mirroring settings properties: enabled: description: Enabled whether this pool is mirrored or not type: boolean mode: description: 'Mode is the mirroring mode: either pool or image' type: string peers: description: Peers represents the peers spec nullable: true properties: secretNames: description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers items: type: string type: array type: object snapshotSchedules: description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools items: description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool properties: interval: description: Interval represent the periodicity of the snapshot. type: string path: description: Path is the path to snapshot, only valid for CephFS type: string startTime: description: StartTime indicates when to start the snapshot type: string type: object type: array type: object name: description: The desired name of the pool if different from the CephBlockPool CR name. enum: - device_health_metrics - .nfs - .mgr type: string parameters: additionalProperties: type: string description: Parameters is a list of properties to enable on a given pool nullable: true type: object x-kubernetes-preserve-unknown-fields: true quotas: description: The quota settings nullable: true properties: maxBytes: description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize format: int64 type: integer maxObjects: description: MaxObjects represents the quota in objects format: int64 type: integer maxSize: description: MaxSize represents the quota in bytes as a string pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$ type: string type: object replicated: description: The replication settings properties: hybridStorage: description: HybridStorage represents hybrid storage tier settings nullable: true properties: primaryDeviceClass: description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD minLength: 1 type: string secondaryDeviceClass: description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs minLength: 1 type: string required: - primaryDeviceClass - secondaryDeviceClass type: object replicasPerFailureDomain: description: ReplicasPerFailureDomain the number of replica in the specified failure domain minimum: 1 type: integer requireSafeReplicaSize: description: RequireSafeReplicaSize if false allows you to set replica 1 type: boolean size: description: Size - Number of copies per object in a replicated storage pool, including the object itself (requir minimum: 0 type: integer subFailureDomain: description: SubFailureDomain the name of the sub-failure domain type: string targetSizeRatio: description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capac type: number required: - size type: object statusCheck: description: The mirroring statusCheck properties: mirror: description: HealthCheckSpec represents the health check of an object store bucket nullable: true properties: disabled: type: boolean interval: description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds type: string timeout: type: string type: object type: object x-kubernetes-preserve-unknown-fields: true type: object status: description: CephBlockPoolStatus represents the mirroring status of Ceph Storage Pool properties: conditions: items: description: Condition represents a status condition on any Rook-Ceph Custom Resource. properties: lastHeartbeatTime: format: date-time type: string lastTransitionTime: format: date-time type: string message: type: string reason: description: ConditionReason is a reason for a condition type: string status: type: string type: description: ConditionType represent a resource's status type: string type: object type: array info: additionalProperties: type: string nullable: true type: object mirroringInfo: description: MirroringInfoSpec is the status of the pool mirroring properties: details: type: string lastChanged: type: string lastChecked: type: string mode: description: Mode is the mirroring mode type: string peers: description: Peers are the list of peer sites connected to that cluster items: description: PeersSpec contains peer details properties: client_name: description: ClientName is the CephX user used to connect to the peer type: string direction: description: Direction is the peer mirroring direction type: string mirror_uuid: description: MirrorUUID is the mirror UUID type: string site_name: description: SiteName is the current site name type: string uuid: description: UUID is the peer UUID type: string type: object type: array site_name: description: SiteName is the current site name type: string type: object mirroringStatus: description: MirroringStatusSpec is the status of the pool mirroring properties: details: description: Details contains potential status errors type: string lastChanged: description: LastChanged is the last time time the status last changed type: string lastChecked: description: LastChecked is the last time time the status was checked type: string summary: description: Summary is the mirroring status summary properties: daemon_health: description: DaemonHealth is the health of the mirroring daemon type: string health: description: Health is the mirroring health type: string image_health: description: ImageHealth is the health of the mirrored image type: string states: description: States is the various state for all mirrored images nullable: true properties: error: description: Error is when the mirroring state is errored type: integer replaying: description: Replaying is when the replay of the mirroring journal is on-going type: integer starting_replay: description: StartingReplay is when the replay of the mirroring journal starts type: integer stopped: description: Stopped is when the mirroring state is stopped type: integer stopping_replay: description: StopReplaying is when the replay of the mirroring journal stops type: integer syncing: description: Syncing is when the image is syncing type: integer unknown: description: Unknown is when the mirroring state is unknown type: integer type: object type: object type: object observedGeneration: description: ObservedGeneration is the latest generation observed by the controller. format: int64 type: integer phase: description: ConditionType represent a resource's status type: string snapshotScheduleStatus: description: SnapshotScheduleStatusSpec is the status of the snapshot schedule properties: details: description: Details contains potential status errors type: string lastChanged: description: LastChanged is the last time time the status last changed type: string lastChecked: description: LastChecked is the last time time the status was checked type: string snapshotSchedules: description: SnapshotSchedules is the list of snapshots scheduled items: description: SnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool properties: image: description: Image is the mirrored image type: string items: description: Items is the list schedules times for a given snapshot items: description: SnapshotSchedule is a schedule properties: interval: description: Interval is the interval in which snapshots will be taken type: string start_time: description: StartTime is the snapshot starting time type: string type: object type: array namespace: description: Namespace is the RADOS namespace the image is part of type: string pool: description: Pool is the pool name type: string type: object nullable: true type: array type: object type: object x-kubernetes-preserve-unknown-fields: true required: - metadata - spec type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 creationTimestamp: null name: cephbucketnotifications.ceph.rook.io spec: group: ceph.rook.io names: kind: CephBucketNotification listKind: CephBucketNotificationList plural: cephbucketnotifications singular: cephbucketnotification scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: description: CephBucketNotification represents a Bucket Notifications properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: type: object spec: description: BucketNotificationSpec represent the spec of a Bucket Notification properties: events: description: List of events that should trigger the notification items: description: BucketNotificationSpec represent the event type of the bucket notification enum: - s3:ObjectCreated:* - s3:ObjectCreated:Put - s3:ObjectCreated:Post - s3:ObjectCreated:Copy - s3:ObjectCreated:CompleteMultipartUpload - s3:ObjectRemoved:* - s3:ObjectRemoved:Delete - s3:ObjectRemoved:DeleteMarkerCreated type: string type: array filter: description: Spec of notification filter properties: keyFilters: description: Filters based on the object's key items: description: NotificationKeyFilterRule represent a single key rule in the Notification Filter spec properties: name: description: Name of the filter - prefix/suffix/regex enum: - prefix - suffix - regex type: string value: description: Value to filter on type: string required: - name - value type: object type: array metadataFilters: description: Filters based on the object's metadata items: description: NotificationFilterRule represent a single rule in the Notification Filter spec properties: name: description: Name of the metadata or tag minLength: 1 type: string value: description: Value to filter on type: string required: - name - value type: object type: array tagFilters: description: Filters based on the object's tags items: description: NotificationFilterRule represent a single rule in the Notification Filter spec properties: name: description: Name of the metadata or tag minLength: 1 type: string value: description: Value to filter on type: string required: - name - value type: object type: array type: object topic: description: The name of the topic associated with this notification minLength: 1 type: string required: - topic type: object status: description: Status represents the status of an object properties: conditions: items: description: Condition represents a status condition on any Rook-Ceph Custom Resource. properties: lastHeartbeatTime: format: date-time type: string lastTransitionTime: format: date-time type: string message: type: string reason: description: ConditionReason is a reason for a condition type: string status: type: string type: description: ConditionType represent a resource's status type: string type: object type: array observedGeneration: description: ObservedGeneration is the latest generation observed by the controller. format: int64 type: integer phase: type: string type: object x-kubernetes-preserve-unknown-fields: true required: - metadata - spec type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 creationTimestamp: null name: cephbuckettopics.ceph.rook.io spec: group: ceph.rook.io names: kind: CephBucketTopic listKind: CephBucketTopicList plural: cephbuckettopics singular: cephbuckettopic scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.phase name: Phase type: string name: v1 schema: openAPIV3Schema: description: CephBucketTopic represents a Ceph Object Topic for Bucket Notifications properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: type: object spec: description: BucketTopicSpec represent the spec of a Bucket Topic properties: endpoint: description: Contains the endpoint spec of the topic properties: amqp: description: Spec of AMQP endpoint properties: ackLevel: default: broker description: The ack level required for this topic (none/broker/routeable) enum: - none - broker - routeable type: string disableVerifySSL: description: Indicate whether the server certificate is validated by the client or not type: boolean exchange: description: Name of the exchange that is used to route messages based on topics minLength: 1 type: string uri: description: The URI of the AMQP endpoint to push notification to minLength: 1 type: string required: - exchange - uri type: object http: description: Spec of HTTP endpoint properties: disableVerifySSL: description: Indicate whether the server certificate is validated by the client or not type: boolean sendCloudEvents: description: 'Send the notifications with the CloudEvents header: https://github.' type: boolean uri: description: The URI of the HTTP endpoint to push notification to minLength: 1 type: string required: - uri type: object kafka: description: Spec of Kafka endpoint properties: ackLevel: default: broker description: The ack level required for this topic (none/broker) enum: - none - broker type: string disableVerifySSL: description: Indicate whether the server certificate is validated by the client or not type: boolean uri: description: The URI of the Kafka endpoint to push notification to minLength: 1 type: string useSSL: description: Indicate whether to use SSL when communicating with the broker type: boolean required: - uri type: object type: object objectStoreName: description: The name of the object store on which to define the topic minLength: 1 type: string objectStoreNamespace: description: The namespace of the object store on which to define the topic minLength: 1 type: string opaqueData: description: Data which is sent in each event type: string persistent: description: Indication whether notifications to this endpoint are persistent or not type: boolean required: - endpoint - objectStoreName - objectStoreNamespace type: object status: description: BucketTopicStatus represents the Status of a CephBucketTopic properties: ARN: description: The ARN of the topic generated by the RGW nullable: true type: string observedGeneration: description: ObservedGeneration is the latest generation observed by the controller. format: int64 type: integer phase: type: string type: object x-kubernetes-preserve-unknown-fields: true required: - metadata - spec type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 creationTimestamp: null name: cephclients.ceph.rook.io spec: group: ceph.rook.io names: kind: CephClient listKind: CephClientList plural: cephclients singular: cephclient scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.phase name: Phase type: string name: v1 schema: openAPIV3Schema: description: CephClient represents a Ceph Client properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: type: object spec: description: Spec represents the specification of a Ceph Client properties: caps: additionalProperties: type: string type: object x-kubernetes-preserve-unknown-fields: true name: type: string required: - caps type: object status: description: Status represents the status of a Ceph Client properties: info: additionalProperties: type: string nullable: true type: object observedGeneration: description: ObservedGeneration is the latest generation observed by the controller. format: int64 type: integer phase: description: ConditionType represent a resource's status type: string type: object x-kubernetes-preserve-unknown-fields: true required: - metadata - spec type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 creationTimestamp: null name: cephclusters.ceph.rook.io spec: group: ceph.rook.io names: kind: CephCluster listKind: CephClusterList plural: cephclusters singular: cephcluster scope: Namespaced versions: - additionalPrinterColumns: - description: Directory used on the K8s nodes jsonPath: .spec.dataDirHostPath name: DataDirHostPath type: string - description: Number of MONs jsonPath: .spec.mon.count name: MonCount type: string - jsonPath: .metadata.creationTimestamp name: Age type: date - jsonPath: .status.phase name: Phase type: string - description: Message jsonPath: .status.message name: Message type: string - description: Ceph Health jsonPath: .status.ceph.health name: Health type: string - jsonPath: .spec.external.enable name: External type: boolean - description: Ceph FSID jsonPath: .status.ceph.fsid name: FSID type: string name: v1 schema: openAPIV3Schema: description: CephCluster is a Ceph storage cluster properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: type: object spec: description: ClusterSpec represents the specification of Ceph Cluster properties: annotations: additionalProperties: additionalProperties: type: string description: Annotations are annotations type: object description: The annotations-related configuration to add/set on each Pod related object. nullable: true type: object x-kubernetes-preserve-unknown-fields: true cephConfig: additionalProperties: additionalProperties: type: string type: object description: Ceph Config options nullable: true type: object cephVersion: description: The version information that instructs Rook to orchestrate a particular version of Ceph. nullable: true properties: allowUnsupported: description: Whether to allow unsupported versions (do not set to true in production) type: boolean image: description: Image is the container image used to launch the ceph daemons, such as quay. type: string imagePullPolicy: description: ImagePullPolicy describes a policy for if/when to pull a container image One of Always, Never, IfNot enum: - IfNotPresent - Always - Never - "" type: string type: object cleanupPolicy: description: Indicates user intent when deleting a cluster; blocks orchestration and should not be set if cluster nullable: true properties: allowUninstallWithVolumes: description: AllowUninstallWithVolumes defines whether we can proceed with the uninstall if they are RBD images s type: boolean confirmation: description: Confirmation represents the cleanup confirmation nullable: true pattern: ^$|^yes-really-destroy-data$ type: string sanitizeDisks: description: SanitizeDisks represents way we sanitize disks nullable: true properties: dataSource: description: DataSource is the data source to use to sanitize the disk with enum: - zero - random type: string iteration: description: Iteration is the number of pass to apply the sanitizing format: int32 type: integer method: description: Method is the method we use to sanitize disks enum: - complete - quick type: string type: object type: object continueUpgradeAfterChecksEvenIfNotHealthy: description: ContinueUpgradeAfterChecksEvenIfNotHealthy defines if an upgrade should continue even if PGs are not type: boolean crashCollector: description: A spec for the crash controller nullable: true properties: daysToRetain: description: DaysToRetain represents the number of days to retain crash until they get pruned type: integer disable: description: Disable determines whether we should enable the crash collector type: boolean type: object csi: description: CSI Driver Options applied per cluster. properties: cephfs: description: CephFS defines CSI Driver settings for CephFS driver. properties: fuseMountOptions: description: FuseMountOptions defines the mount options for ceph fuse mounter. type: string kernelMountOptions: description: KernelMountOptions defines the mount options for kernel mounter. type: string type: object readAffinity: description: ReadAffinity defines the read affinity settings for CSI driver. properties: crushLocationLabels: description: CrushLocationLabels defines which node labels to use as CRUSH location. items: type: string type: array enabled: description: Enables read affinity for CSI driver. type: boolean type: object type: object dashboard: description: Dashboard settings nullable: true properties: enabled: description: Enabled determines whether to enable the dashboard type: boolean port: description: Port is the dashboard webserver port maximum: 65535 minimum: 0 type: integer prometheusEndpoint: description: Endpoint for the Prometheus host type: string prometheusEndpointSSLVerify: description: Whether to verify the ssl endpoint for prometheus. Set to false for a self-signed cert. type: boolean ssl: description: SSL determines whether SSL should be used type: boolean urlPrefix: description: URLPrefix is a prefix for all URLs to use the dashboard with a reverse proxy type: string type: object dataDirHostPath: description: The path on the host where config and data can be persisted pattern: ^/(\S+) type: string x-kubernetes-validations: - message: DataDirHostPath is immutable rule: self == oldSelf disruptionManagement: description: A spec for configuring disruption management. nullable: true properties: machineDisruptionBudgetNamespace: description: Deprecated. Namespace to look for MDBs by the machineDisruptionBudgetController type: string manageMachineDisruptionBudgets: description: Deprecated. This enables management of machinedisruptionbudgets. type: boolean managePodBudgets: description: This enables management of poddisruptionbudgets type: boolean osdMaintenanceTimeout: description: 'OSDMaintenanceTimeout sets how many additional minutes the DOWN/OUT interval is for drained failure ' format: int64 type: integer pgHealthCheckTimeout: description: PGHealthCheckTimeout is the time (in minutes) that the operator will wait for the placement groups t format: int64 type: integer pgHealthyRegex: description: PgHealthyRegex is the regular expression that is used to determine which PG states should be conside type: string type: object external: description: Whether the Ceph Cluster is running external to this Kubernetes cluster mon, mgr, osd, mds, and disc nullable: true properties: enable: description: Enable determines whether external mode is enabled or not type: boolean type: object x-kubernetes-preserve-unknown-fields: true healthCheck: description: Internal daemon healthchecks and liveness probe nullable: true properties: daemonHealth: description: DaemonHealth is the health check for a given daemon nullable: true properties: mon: description: Monitor represents the health check settings for the Ceph monitor nullable: true properties: disabled: type: boolean interval: description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds type: string timeout: type: string type: object osd: description: ObjectStorageDaemon represents the health check settings for the Ceph OSDs nullable: true properties: disabled: type: boolean interval: description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds type: string timeout: type: string type: object status: description: Status represents the health check settings for the Ceph health nullable: true properties: disabled: type: boolean interval: description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds type: string timeout: type: string type: object type: object livenessProbe: additionalProperties: description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon properties: disabled: description: Disabled determines whether probe is disable or not type: boolean probe: description: 'Probe describes a health check to be performed against a container to determine whether it is alive ' properties: exec: description: Exec specifies the action to take. properties: command: description: 'Command is the command line to execute inside the container, the working directory for the command ' items: type: string type: array type: object failureThreshold: description: Minimum consecutive failures for the probe to be considered failed after having succeeded. format: int32 type: integer grpc: description: GRPC specifies an action involving a GRPC port. properties: port: description: Port number of the gRPC service. Number must be in the range 1 to 65535. format: int32 type: integer service: description: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github. type: string required: - port type: object httpGet: description: HTTPGet specifies the http request to perform. properties: host: description: Host name to connect to, defaults to the pod IP. type: string httpHeaders: description: Custom headers to set in the request. HTTP allows repeated headers. items: description: HTTPHeader describes a custom header to be used in HTTP probes properties: name: description: The header field name. type: string value: description: The header field value type: string required: - name - value type: object type: array path: description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. x-kubernetes-int-or-string: true scheme: description: Scheme to use for connecting to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: description: Number of seconds after the container has started before liveness probes are initiated. format: int32 type: integer periodSeconds: description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: description: Minimum consecutive successes for the probe to be considered successful after having failed. format: int32 type: integer tcpSocket: description: TCPSocket specifies an action involving a TCP port. properties: host: description: 'Optional: Host name to connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. format: int64 type: integer timeoutSeconds: description: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. format: int32 type: integer type: object type: object description: LivenessProbe allows changing the livenessProbe configuration for a given daemon type: object startupProbe: additionalProperties: description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon properties: disabled: description: Disabled determines whether probe is disable or not type: boolean probe: description: 'Probe describes a health check to be performed against a container to determine whether it is alive ' properties: exec: description: Exec specifies the action to take. properties: command: description: 'Command is the command line to execute inside the container, the working directory for the command ' items: type: string type: array type: object failureThreshold: description: Minimum consecutive failures for the probe to be considered failed after having succeeded. format: int32 type: integer grpc: description: GRPC specifies an action involving a GRPC port. properties: port: description: Port number of the gRPC service. Number must be in the range 1 to 65535. format: int32 type: integer service: description: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github. type: string required: - port type: object httpGet: description: HTTPGet specifies the http request to perform. properties: host: description: Host name to connect to, defaults to the pod IP. type: string httpHeaders: description: Custom headers to set in the request. HTTP allows repeated headers. items: description: HTTPHeader describes a custom header to be used in HTTP probes properties: name: description: The header field name. type: string value: description: The header field value type: string required: - name - value type: object type: array path: description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. x-kubernetes-int-or-string: true scheme: description: Scheme to use for connecting to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: description: Number of seconds after the container has started before liveness probes are initiated. format: int32 type: integer periodSeconds: description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: description: Minimum consecutive successes for the probe to be considered successful after having failed. format: int32 type: integer tcpSocket: description: TCPSocket specifies an action involving a TCP port. properties: host: description: 'Optional: Host name to connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. format: int64 type: integer timeoutSeconds: description: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. format: int32 type: integer type: object type: object description: StartupProbe allows changing the startupProbe configuration for a given daemon type: object type: object labels: additionalProperties: additionalProperties: type: string description: Labels are label for a given daemons type: object description: The labels-related configuration to add/set on each Pod related object. nullable: true type: object x-kubernetes-preserve-unknown-fields: true logCollector: description: Logging represents loggings settings nullable: true properties: enabled: description: Enabled represents whether the log collector is enabled type: boolean maxLogSize: anyOf: - type: integer - type: string description: MaxLogSize is the maximum size of the log per ceph daemons. Must be at least 1M. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true periodicity: description: Periodicity is the periodicity of the log rotation. pattern: ^$|^(hourly|daily|weekly|monthly|1h|24h|1d)$ type: string type: object mgr: description: A spec for mgr related options nullable: true properties: allowMultiplePerNode: description: AllowMultiplePerNode allows to run multiple managers on the same node (not recommended) type: boolean count: description: Count is the number of manager daemons to run maximum: 5 minimum: 0 type: integer modules: description: Modules is the list of ceph manager modules to enable/disable items: description: Module represents mgr modules that the user wants to enable or disable properties: enabled: description: Enabled determines whether a module should be enabled or not type: boolean name: description: Name is the name of the ceph manager module type: string type: object nullable: true type: array type: object mon: description: A spec for mon related options nullable: true properties: allowMultiplePerNode: description: AllowMultiplePerNode determines if we can run multiple monitors on the same node (not recommended) type: boolean count: description: Count is the number of Ceph monitors maximum: 9 minimum: 0 type: integer failureDomainLabel: type: string stretchCluster: description: StretchCluster is the stretch cluster specification properties: failureDomainLabel: description: 'FailureDomainLabel the failure domain name (e,g: zone)' type: string subFailureDomain: description: SubFailureDomain is the failure domain within a zone type: string zones: description: Zones is the list of zones items: description: MonZoneSpec represents the specification of a zone in a Ceph Cluster properties: arbiter: description: Arbiter determines if the zone contains the arbiter used for stretch cluster mode type: boolean name: description: Name is the name of the zone type: string volumeClaimTemplate: description: VolumeClaimTemplate is the PVC template properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: description: 'Standard object''s metadata. More info: https://git.k8s.' properties: annotations: additionalProperties: type: string type: object finalizers: items: type: string type: array labels: additionalProperties: type: string type: object name: type: string namespace: type: string type: object spec: description: spec defines the desired characteristics of a volume requested by a pod author. properties: accessModes: description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.' items: type: string type: array dataSource: description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.' properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - kind - name type: object x-kubernetes-map-type: atomic dataSourceRef: description: dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volum properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string namespace: description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a g type: string required: - kind - name type: object resources: description: resources represents the minimum resources the volume should have. properties: claims: description: Claims lists the names of resources, defined in spec. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: Name must match the name of one entry in pod.spec. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map limits: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.' type: object requests: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: Requests describes the minimum amount of compute resources required. type: object type: object selector: description: selector is a label query over volumes to consider for binding. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic storageClassName: description: storageClassName is the name of the StorageClass required by the claim. type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. type: string volumeName: description: volumeName is the binding reference to the PersistentVolume backing this claim. type: string type: object status: description: status represents the current information/status of a persistent volume claim. Read-only. properties: accessModes: description: accessModes contains the actual access modes the volume backing the PVC has. items: type: string type: array allocatedResourceStatuses: additionalProperties: description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource tha type: string description: allocatedResourceStatuses stores status of resource being resized for the given PVC. type: object x-kubernetes-map-type: granular allocatedResources: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: allocatedResources tracks the resources allocated to a PVC including its capacity. type: object capacity: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: capacity represents the actual resources of the underlying volume. type: object conditions: description: conditions is the current Condition of persistent volume claim. items: description: PersistentVolumeClaimCondition contains details about state of pvc properties: lastProbeTime: description: lastProbeTime is the time we probed the condition. format: date-time type: string lastTransitionTime: description: lastTransitionTime is the time the condition transitioned from one status to another. format: date-time type: string message: description: message is the human-readable message indicating details about last transition. type: string reason: description: 'reason is a unique, this should be a short, machine understandable string that gives the reason for ' type: string status: type: string type: description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type type: string required: - status - type type: object type: array phase: description: phase represents the current phase of PersistentVolumeClaim. type: string type: object type: object x-kubernetes-preserve-unknown-fields: true type: object nullable: true type: array type: object volumeClaimTemplate: description: VolumeClaimTemplate is the PVC definition properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: description: 'Standard object''s metadata. More info: https://git.k8s.' properties: annotations: additionalProperties: type: string type: object finalizers: items: type: string type: array labels: additionalProperties: type: string type: object name: type: string namespace: type: string type: object spec: description: spec defines the desired characteristics of a volume requested by a pod author. properties: accessModes: description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.' items: type: string type: array dataSource: description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.' properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - kind - name type: object x-kubernetes-map-type: atomic dataSourceRef: description: dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volum properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string namespace: description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a g type: string required: - kind - name type: object resources: description: resources represents the minimum resources the volume should have. properties: claims: description: Claims lists the names of resources, defined in spec. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: Name must match the name of one entry in pod.spec. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map limits: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.' type: object requests: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: Requests describes the minimum amount of compute resources required. type: object type: object selector: description: selector is a label query over volumes to consider for binding. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic storageClassName: description: storageClassName is the name of the StorageClass required by the claim. type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. type: string volumeName: description: volumeName is the binding reference to the PersistentVolume backing this claim. type: string type: object status: description: status represents the current information/status of a persistent volume claim. Read-only. properties: accessModes: description: accessModes contains the actual access modes the volume backing the PVC has. items: type: string type: array allocatedResourceStatuses: additionalProperties: description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource tha type: string description: allocatedResourceStatuses stores status of resource being resized for the given PVC. type: object x-kubernetes-map-type: granular allocatedResources: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: allocatedResources tracks the resources allocated to a PVC including its capacity. type: object capacity: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: capacity represents the actual resources of the underlying volume. type: object conditions: description: conditions is the current Condition of persistent volume claim. items: description: PersistentVolumeClaimCondition contains details about state of pvc properties: lastProbeTime: description: lastProbeTime is the time we probed the condition. format: date-time type: string lastTransitionTime: description: lastTransitionTime is the time the condition transitioned from one status to another. format: date-time type: string message: description: message is the human-readable message indicating details about last transition. type: string reason: description: 'reason is a unique, this should be a short, machine understandable string that gives the reason for ' type: string status: type: string type: description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type type: string required: - status - type type: object type: array phase: description: phase represents the current phase of PersistentVolumeClaim. type: string type: object type: object x-kubernetes-preserve-unknown-fields: true zones: description: Zones are specified when we want to provide zonal awareness to mons items: description: MonZoneSpec represents the specification of a zone in a Ceph Cluster properties: arbiter: description: Arbiter determines if the zone contains the arbiter used for stretch cluster mode type: boolean name: description: Name is the name of the zone type: string volumeClaimTemplate: description: VolumeClaimTemplate is the PVC template properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: description: 'Standard object''s metadata. More info: https://git.k8s.' properties: annotations: additionalProperties: type: string type: object finalizers: items: type: string type: array labels: additionalProperties: type: string type: object name: type: string namespace: type: string type: object spec: description: spec defines the desired characteristics of a volume requested by a pod author. properties: accessModes: description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.' items: type: string type: array dataSource: description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.' properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - kind - name type: object x-kubernetes-map-type: atomic dataSourceRef: description: dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volum properties: apiGroup: description: APIGroup is the group for the resource being referenced. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string namespace: description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a g type: string required: - kind - name type: object resources: description: resources represents the minimum resources the volume should have. properties: claims: description: Claims lists the names of resources, defined in spec. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: Name must match the name of one entry in pod.spec. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map limits: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.' type: object requests: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: Requests describes the minimum amount of compute resources required. type: object type: object selector: description: selector is a label query over volumes to consider for binding. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic storageClassName: description: storageClassName is the name of the StorageClass required by the claim. type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. type: string volumeName: description: volumeName is the binding reference to the PersistentVolume backing this claim. type: string type: object status: description: status represents the current information/status of a persistent volume claim. Read-only. properties: accessModes: description: accessModes contains the actual access modes the volume backing the PVC has. items: type: string type: array allocatedResourceStatuses: additionalProperties: description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource tha type: string description: allocatedResourceStatuses stores status of resource being resized for the given PVC. type: object x-kubernetes-map-type: granular allocatedResources: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: allocatedResources tracks the resources allocated to a PVC including its capacity. type: object capacity: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: capacity represents the actual resources of the underlying volume. type: object conditions: description: conditions is the current Condition of persistent volume claim. items: description: PersistentVolumeClaimCondition contains details about state of pvc properties: lastProbeTime: description: lastProbeTime is the time we probed the condition. format: date-time type: string lastTransitionTime: description: lastTransitionTime is the time the condition transitioned from one status to another. format: date-time type: string message: description: message is the human-readable message indicating details about last transition. type: string reason: description: 'reason is a unique, this should be a short, machine understandable string that gives the reason for ' type: string status: type: string type: description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type type: string required: - status - type type: object type: array phase: description: phase represents the current phase of PersistentVolumeClaim. type: string type: object type: object x-kubernetes-preserve-unknown-fields: true type: object type: array type: object x-kubernetes-validations: - message: zones must be less than or equal to count rule: '!has(self.zones) || (has(self.zones) && (size(self.zones) <= self.count))' - message: stretchCluster zones must be equal to 3 rule: '!has(self.stretchCluster) || (has(self.stretchCluster) && (size(self.stretchCluster.zones) > 0) && (size(self.stretchCluster.zones) == 3))' monitoring: description: Prometheus based Monitoring settings nullable: true properties: enabled: description: Enabled determines whether to create the prometheus rules for the ceph cluster. type: boolean externalMgrEndpoints: description: ExternalMgrEndpoints points to an existing Ceph prometheus exporter endpoint items: description: EndpointAddress is a tuple that describes single IP address. properties: hostname: description: The Hostname of this endpoint type: string ip: description: The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0. type: string nodeName: description: 'Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.' type: string targetRef: description: Reference to object providing the endpoint. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: If referring to a piece of an object instead of an entire object, this string should contain a valid type: string kind: description: 'Kind of the referent. More info: https://git.k8s.' type: string name: description: 'Name of the referent. More info: https://kubernetes.' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.' type: string uid: description: 'UID of the referent. More info: https://kubernetes.' type: string type: object x-kubernetes-map-type: atomic required: - ip type: object x-kubernetes-map-type: atomic nullable: true type: array externalMgrPrometheusPort: description: ExternalMgrPrometheusPort Prometheus exporter port maximum: 65535 minimum: 0 type: integer interval: description: Interval determines prometheus scrape interval type: string metricsDisabled: description: Whether to disable the metrics reported by Ceph. type: boolean port: description: Port is the prometheus server port maximum: 65535 minimum: 0 type: integer type: object network: description: Network related configuration nullable: true properties: addressRanges: description: AddressRanges specify a list of CIDRs that Rook will apply to Ceph's 'public_network' and/or 'cluste nullable: true properties: cluster: description: Cluster defines a list of CIDRs to use for Ceph cluster network communication. items: description: An IPv4 or IPv6 network CIDR. pattern: ^[0-9a-fA-F:.]{2,}\/[0-9]{1,3}$ type: string type: array public: description: Public defines a list of CIDRs to use for Ceph public network communication. items: description: An IPv4 or IPv6 network CIDR. pattern: ^[0-9a-fA-F:.]{2,}\/[0-9]{1,3}$ type: string type: array type: object connections: description: Settings for network connections such as compression and encryption across the wire. nullable: true properties: compression: description: Compression settings for the network connections. nullable: true properties: enabled: description: Whether to compress the data in transit across the wire. The default is not set. type: boolean type: object encryption: description: Encryption settings for the network connections. nullable: true properties: enabled: description: Whether to encrypt the data in transit across the wire to prevent eavesdropping the data on the netw type: boolean type: object requireMsgr2: description: Whether to require msgr2 (port 3300) even if compression or encryption are not enabled. type: boolean type: object dualStack: description: DualStack determines whether Ceph daemons should listen on both IPv4 and IPv6 type: boolean hostNetwork: description: HostNetwork to enable host network. type: boolean ipFamily: description: IPFamily is the single stack IPv6 or IPv4 protocol enum: - IPv4 - IPv6 nullable: true type: string multiClusterService: description: Enable multiClusterService to export the Services between peer clusters properties: clusterID: description: ClusterID uniquely identifies a cluster. It is used as a prefix to nslookup exported services. type: string enabled: description: Enable multiClusterService to export the mon and OSD services to peer cluster. type: boolean type: object provider: description: Provider is what provides network connectivity to the cluster e.g. "host" or "multus". enum: - "" - host - multus nullable: true type: string x-kubernetes-validations: - message: network provider must be disabled (reverted to empty string) before a new provider is enabled rule: self == '' || self == oldSelf selectors: additionalProperties: type: string description: Selectors define NetworkAttachmentDefinitions to be used for Ceph public and/or cluster networks whe nullable: true type: object type: object x-kubernetes-preserve-unknown-fields: true x-kubernetes-validations: - message: at least one network selector must be specified when using multus rule: '!has(self.provider) || (self.provider != ''multus'' || (self.provider == ''multus'' && size(self.selectors) > 0))' - message: the legacy hostNetwork setting can only be set if the network.provider is set to the empty string rule: '!has(self.hostNetwork) || self.hostNetwork == false || !has(self.provider) || self.provider == ""' placement: additionalProperties: description: Placement is the placement for an object properties: nodeAffinity: description: NodeAffinity is a group of node affinity scheduling rules properties: preferredDuringSchedulingIgnoredDuringExecution: description: 'The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified ' items: description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). properties: preference: description: A node selector term, associated with the corresponding weight. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: 'A node selector requirement is a selector that contains values, a key, and an operator that relates ' properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. type: string values: description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: 'A node selector requirement is a selector that contains values, a key, and an operator that relates ' properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. type: string values: description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array required: - key - operator type: object type: array type: object x-kubernetes-map-type: atomic weight: description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. format: int32 type: integer required: - preference - weight type: object type: array requiredDuringSchedulingIgnoredDuringExecution: description: If the affinity requirements specified by this field are not met at scheduling time, the pod will no properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: 'A node selector requirement is a selector that contains values, a key, and an operator that relates ' properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. type: string values: description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: 'A node selector requirement is a selector that contains values, a key, and an operator that relates ' properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. type: string values: description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. items: type: string type: array required: - key - operator type: object type: array type: object x-kubernetes-map-type: atomic type: array required: - nodeSelectorTerms type: object x-kubernetes-map-type: atomic type: object podAffinity: description: PodAffinity is a group of inter pod affinity scheduling rules properties: preferredDuringSchedulingIgnoredDuringExecution: description: 'The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified ' items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most properties: podAffinityTerm: description: Required. A pod affinity term, associated with the corresponding weight. properties: labelSelector: description: A label query over a set of resources, in this case pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array topologyKey: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching th type: string required: - topologyKey type: object weight: description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. format: int32 type: integer required: - podAffinityTerm - weight type: object type: array requiredDuringSchedulingIgnoredDuringExecution: description: If the affinity requirements specified by this field are not met at scheduling time, the pod will no items: description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) t properties: labelSelector: description: A label query over a set of resources, in this case pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array topologyKey: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching th type: string required: - topologyKey type: object type: array type: object podAntiAffinity: description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules properties: preferredDuringSchedulingIgnoredDuringExecution: description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions speci items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most properties: podAffinityTerm: description: Required. A pod affinity term, associated with the corresponding weight. properties: labelSelector: description: A label query over a set of resources, in this case pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array topologyKey: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching th type: string required: - topologyKey type: object weight: description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. format: int32 type: integer required: - podAffinityTerm - weight type: object type: array requiredDuringSchedulingIgnoredDuringExecution: description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod wi items: description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) t properties: labelSelector: description: A label query over a set of resources, in this case pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: A label selector requirement is a selector that contains values, a key, and an operator that relates properties: key: description: key is the label key that the selector applies to. type: string operator: description: operator represents a key's relationship to a set of values. type: string values: description: values is an array of string values. items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. type: object type: object x-kubernetes-map-type: atomic namespaces: description: namespaces specifies a static list of namespace names that the term applies to. items: type: string type: array topologyKey: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching th type: string required: - topologyKey type: object type: array type: object tolerations: description: The pod this Toleration is attached to tolerates any taint that matches the triple