apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 name: cephobjectstores.ceph.rook.io spec: group: ceph.rook.io names: kind: CephObjectStore listKind: CephObjectStoreList plural: cephobjectstores singular: cephobjectstore scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.phase name: Phase type: string name: v1 schema: openAPIV3Schema: description: CephObjectStore represents a Ceph Object Store Gateway 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: ObjectStoreSpec represent the spec of a pool properties: allowUsersInNamespaces: description: The list of allowed namespaces in addition to the object store namespace where ceph object store users may be created. Specify "*" to allow all namespaces, otherwise list individual namespaces that are to be allowed. This is useful for applications that need object store credentials to be created in their own namespace, where neither OBCs nor COSI is being used to create buckets. The default is empty. items: type: string type: array dataPool: description: The data 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 gateway: description: The rgw pod info nullable: true properties: 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 caBundleRef: description: The name of the secret that stores custom ca-bundle with root and intermediate certificates. nullable: true type: string dashboardEnabled: description: Whether rgw dashboard is enabled for the rgw daemon. If not set, the rgw dashboard will be enabled. nullable: true type: boolean x-kubernetes-preserve-unknown-fields: true disableMultisiteSyncTraffic: description: 'DisableMultisiteSyncTraffic, when true, prevents this object store''s gateways from transmitting multisite replication data. Note that this value does not affect whether gateways receive multisite replication traffic: see ObjectZone.spec.customEndpoints for that. If false or unset, this object store''s gateways will be able to transmit multisite replication data.' type: boolean externalRgwEndpoints: description: ExternalRgwEndpoints points to external RGW endpoint(s). Multiple endpoints can be given, but for stability of ObjectBucketClaims, we highly recommend that users give only a single external RGW endpoint that is a load balancer that sends requests to the multiple RGWs. items: description: EndpointAddress is a tuple that describes a single IP address or host name. This is a subset of Kubernetes's v1.EndpointAddress. properties: hostname: description: The DNS-addressable Hostname of this endpoint. This field will be preferred over IP if both are given. type: string ip: description: The IP of this endpoint. As a legacy behavior, this supports being given a DNS-adressable hostname as well. type: string type: object x-kubernetes-map-type: atomic nullable: true type: array hostNetwork: description: Whether host networking is enabled for the rgw daemon. If not set, the network settings from the cluster CR will be applied. nullable: true type: boolean x-kubernetes-preserve-unknown-fields: true instances: description: The number of pods in the rgw replicaset. format: int32 nullable: true type: integer 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 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 port: description: The port the rgw service will be listening on (http) format: int32 type: integer priorityClassName: description: PriorityClassName sets priority classes on the rgw pods 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 securePort: description: The port the rgw service will be listening on (https) format: int32 maximum: 65535 minimum: 0 nullable: true type: integer service: description: The configuration related to add/set on each rgw service. nullable: true properties: annotations: additionalProperties: type: string description: The annotations-related configuration to add/set on each rgw service. nullable optional type: object type: object sslCertificateRef: description: The name of the secret that stores the ssl certificate for secure rgw connections nullable: true type: string type: object healthCheck: description: The RGW health probes nullable: true properties: readinessProbe: 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 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 type: object 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 preservePoolsOnDelete: description: Preserve pools on object store deletion type: boolean security: description: Security represents security settings nullable: true properties: keyRotation: description: KeyRotation defines options for Key Rotation. nullable: true properties: enabled: default: false description: Enabled represents whether the key rotation is enabled. type: boolean schedule: description: Schedule represents the cron schedule for key rotation. type: string type: object kms: description: KeyManagementService is the main Key Management option nullable: true properties: connectionDetails: additionalProperties: type: string description: ConnectionDetails contains the KMS connection details (address, port etc) nullable: true type: object x-kubernetes-preserve-unknown-fields: true tokenSecretName: description: TokenSecretName is the kubernetes secret containing the KMS token type: string type: object s3: description: The settings for supporting AWS-SSE:S3 with RGW nullable: true properties: connectionDetails: additionalProperties: type: string description: ConnectionDetails contains the KMS connection details (address, port etc) nullable: true type: object x-kubernetes-preserve-unknown-fields: true tokenSecretName: description: TokenSecretName is the kubernetes secret containing the KMS token type: string type: object type: object zone: description: The multisite info nullable: true properties: name: description: RGW Zone the Object Store is in type: string required: - name type: object type: object status: description: ObjectStoreStatus represents the status of a Ceph Object Store resource 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 endpoints: properties: insecure: items: type: string nullable: true type: array secure: items: type: string nullable: true type: array type: object info: additionalProperties: type: string nullable: true type: object message: type: string 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: {}