apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 name: cephfilesystems.ceph.rook.io spec: group: ceph.rook.io names: kind: CephFilesystem listKind: CephFilesystemList plural: cephfilesystems singular: cephfilesystem scope: Namespaced versions: - additionalPrinterColumns: - description: Number of desired active MDS daemons jsonPath: .spec.metadataServer.activeCount name: ActiveMDS type: string - jsonPath: .metadata.creationTimestamp name: Age type: date - jsonPath: .status.phase name: Phase type: string name: v1 schema: openAPIV3Schema: description: CephFilesystem represents a Ceph Filesystem properties: apiVersion: description: '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' type: string kind: description: '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' type: string metadata: type: object spec: description: FilesystemSpec represents the spec of a file system properties: dataPools: description: The data pool settings, with optional predefined pool name. items: description: NamedPoolSpec represents the named ceph pool spec properties: compressionMode: description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters' 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 type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered. minimum: 0 type: integer dataChunks: description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery. 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 map' 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: Name of the pool 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 (required for replicated pool type) 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 capacity 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 nullable: true type: array metadataPool: description: The metadata pool settings nullable: true properties: compressionMode: description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters' 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 type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered. minimum: 0 type: integer dataChunks: description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery. 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 map' 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 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 (required for replicated pool type) 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 capacity 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 metadataServer: description: The mds pod info properties: activeCount: description: The number of metadata servers that are active. The remaining servers in the cluster will be in standby mode. format: int32 maximum: 50 minimum: 1 type: integer activeStandby: description: Whether each active MDS instance will have an active standby with a warm metadata cache for faster failover. If false, standbys will still be available, but will not have a warm metadata cache. type: boolean annotations: additionalProperties: type: string description: The annotations-related configuration to add/set on each Pod related object. nullable: true type: object x-kubernetes-preserve-unknown-fields: true labels: additionalProperties: type: string description: The labels-related configuration to add/set on each Pod related object. nullable: true type: object x-kubernetes-preserve-unknown-fields: true livenessProbe: 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 or ready to receive traffic. 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 is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. items: type: string type: array type: object failureThreshold: description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. 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.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC." 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. You probably want to set "Host" in httpHeaders instead. 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. This will be canonicalized upon output, so case-variant names will be understood as the same header. 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. Name must be an IANA_SVC_NAME. 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. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' 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. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. 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. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: format: int64 type: integer timeoutSeconds: description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object type: object placement: nullable: true properties: nodeAffinity: properties: preferredDuringSchedulingIgnoredDuringExecution: items: properties: preference: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchFields: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array type: object x-kubernetes-map-type: atomic weight: format: int32 type: integer required: - preference - weight type: object type: array requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: items: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchFields: items: properties: key: type: string operator: type: string values: 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: properties: preferredDuringSchedulingIgnoredDuringExecution: items: properties: podAffinityTerm: properties: labelSelector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic namespaceSelector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic namespaces: items: type: string type: array topologyKey: type: string required: - topologyKey type: object weight: format: int32 type: integer required: - podAffinityTerm - weight type: object type: array requiredDuringSchedulingIgnoredDuringExecution: items: properties: labelSelector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic namespaceSelector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic namespaces: items: type: string type: array topologyKey: type: string required: - topologyKey type: object type: array type: object podAntiAffinity: properties: preferredDuringSchedulingIgnoredDuringExecution: items: properties: podAffinityTerm: properties: labelSelector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic namespaceSelector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic namespaces: items: type: string type: array topologyKey: type: string required: - topologyKey type: object weight: format: int32 type: integer required: - podAffinityTerm - weight type: object type: array requiredDuringSchedulingIgnoredDuringExecution: items: properties: labelSelector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic namespaceSelector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic namespaces: items: type: string type: array topologyKey: type: string required: - topologyKey type: object type: array type: object tolerations: items: properties: effect: type: string key: type: string operator: type: string tolerationSeconds: format: int64 type: integer value: type: string type: object type: array topologySpreadConstraints: items: properties: labelSelector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array required: - key - operator type: object type: array matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: items: type: string type: array x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer nodeAffinityPolicy: type: string nodeTaintsPolicy: type: string topologyKey: type: string whenUnsatisfiable: type: string required: - maxSkew - topologyKey - whenUnsatisfiable type: object type: array type: object x-kubernetes-preserve-unknown-fields: true priorityClassName: description: PriorityClassName sets priority classes on components type: string resources: description: The resource requirements for the rgw pods nullable: true properties: claims: description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: 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. 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.io/docs/concepts/configuration/manage-resources-containers/' 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. 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 type: object x-kubernetes-preserve-unknown-fields: true startupProbe: 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 or ready to receive traffic. 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 is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. items: type: string type: array type: object failureThreshold: description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. 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.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC." 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. You probably want to set "Host" in httpHeaders instead. 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. This will be canonicalized upon output, so case-variant names will be understood as the same header. 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. Name must be an IANA_SVC_NAME. 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. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' 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. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. 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. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: format: int64 type: integer timeoutSeconds: description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object type: object required: - activeCount type: object mirroring: description: The mirroring settings nullable: true properties: enabled: description: Enabled whether this filesystem is mirrored or not type: boolean 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 snapshotRetention: description: Retention is the retention policy for a snapshot schedule One path has exactly one retention policy. A policy can however contain multiple count-time period pairs in order to specify complex retention policies items: description: SnapshotScheduleRetentionSpec is a retention policy properties: duration: description: Duration represents the retention duration for a snapshot type: string path: description: Path is the path to snapshot type: string type: object type: array snapshotSchedules: description: SnapshotSchedules is the scheduling of snapshot for mirrored filesystems 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 preserveFilesystemOnDelete: description: Preserve the fs in the cluster on CephFilesystem CR deletion. Setting this to true automatically implies PreservePoolsOnDelete is true. type: boolean preservePoolsOnDelete: description: Preserve pools on filesystem deletion type: boolean 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 required: - dataPools - metadataPool - metadataServer type: object status: description: CephFilesystemStatus represents the status of a Ceph Filesystem 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 description: Use only info and put mirroringStatus in it? nullable: true type: object mirroringStatus: description: MirroringStatus is the filesystem mirroring status properties: daemonsStatus: description: PoolMirroringStatus is the mirroring status of a filesystem items: description: FilesystemMirrorInfoSpec is the filesystem mirror status of a given filesystem properties: daemon_id: description: DaemonID is the cephfs-mirror name type: integer filesystems: description: Filesystems is the list of filesystems managed by a given cephfs-mirror daemon items: description: FilesystemsSpec is spec for the mirrored filesystem properties: directory_count: description: DirectoryCount is the number of directories in the filesystem type: integer filesystem_id: description: FilesystemID is the filesystem identifier type: integer name: description: Name is name of the filesystem type: string peers: description: Peers represents the mirroring peers items: description: FilesystemMirrorInfoPeerSpec is the specification of a filesystem peer mirror properties: remote: description: Remote are the remote cluster information properties: client_name: description: ClientName is cephx name type: string cluster_name: description: ClusterName is the name of the cluster type: string fs_name: description: FsName is the filesystem name type: string type: object stats: description: Stats are the stat a peer mirror properties: failure_count: description: FailureCount is the number of mirroring failure type: integer recovery_count: description: RecoveryCount is the number of recovery attempted after failures type: integer type: object uuid: description: UUID is the peer unique identifier type: string type: object type: array type: object type: array type: object nullable: true type: array 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 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: FilesystemSnapshotScheduleStatusSpec 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: FilesystemSnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool properties: fs: description: Fs is the name of the Ceph Filesystem type: string path: description: Path is the path on the filesystem type: string rel_path: type: string retention: description: FilesystemSnapshotScheduleStatusRetention is the retention specification for a filesystem snapshot schedule properties: active: description: Active is whether the scheduled is active or not type: boolean created: description: Created is when the snapshot schedule was created type: string created_count: description: CreatedCount is total amount of snapshots type: integer first: description: First is when the first snapshot schedule was taken type: string last: description: Last is when the last snapshot schedule was taken type: string last_pruned: description: LastPruned is when the last snapshot schedule was pruned type: string pruned_count: description: PrunedCount is total amount of pruned snapshots type: integer start: description: Start is when the snapshot schedule starts type: string type: object schedule: type: string subvol: description: Subvol is the name of the sub volume 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: {}