diff --git a/docs/rook/v1.16/CRDs/Object-Storage/ceph-object-store-crd/index.html b/docs/rook/v1.16/CRDs/Object-Storage/ceph-object-store-crd/index.html index 66f43014f..10776289b 100644 --- a/docs/rook/v1.16/CRDs/Object-Storage/ceph-object-store-crd/index.html +++ b/docs/rook/v1.16/CRDs/Object-Storage/ceph-object-store-crd/index.html @@ -175,58 +175,30 @@ service: annotations: service.beta.openshift.io/serving-cert-secret-name: <name of TLS secret for automatic generation> -
The zone settings allow the object store to join custom created ceph-object-zone.
name
: the name of the ceph-object-zone the object store will be in.hosting
settings allow specifying object store endpoint configurations. These settings are only supported for Ceph v18 and higher.
A common use case that requires configuring hosting is allowing virtual host-style bucket access. This use case is discussed in more detail in Rook object storage docs.
advertiseEndpoint
: By default, Rook advertises the most direct connection to RGWs to dependent resources like CephObjectStoreUsers and ObjectBucketClaims. To advertise a different address (e.g., a wildcard-enabled ingress), define the preferred endpoint here. Default behavior is documented in more detail herednsName
: The valid RFC-1123 (sub)domain name of the endpoint.port
: The nonzero port of the endpoint.useTls
: Set to true if the endpoint is HTTPS. False if HTTP.dnsNames
: When this or advertiseEndpoint
is set, Ceph RGW will reject S3 client connections who attempt to reach the object store via any unspecified DNS name. Add all DNS names that the object store should accept here. These must be valid RFC-1123 (sub)domain names. Rook automatically adds the known CephObjectStore service DNS name to this list, as well as corresponding CephObjectZone customEndpoints
(if applicable).Note
For DNS names that support wildcards, do not include wildcards. E.g., use mystore.example.com
instead of *.mystore.example.com
.
Rook provides a default mime.types
file for each Ceph object store. This file is stored in a Kubernetes ConfigMap with the name rook-ceph-rgw-<STORE-NAME>-mime-types
. For most users, the default file should suffice, however, the option is available to users to edit the mime.types
file in the ConfigMap as they desire. Users may have their own special file types, and particularly security conscious users may wish to pare down the file to reduce the possibility of a file type execution attack.
Rook will not overwrite an existing mime.types
ConfigMap so that user modifications will not be destroyed. If the object store is destroyed and recreated, the ConfigMap will also be destroyed and created anew.
Rook will be default monitor the state of the object store endpoints. The following CRD settings are available:
healthCheck
: main object store health monitoring sectionstartupProbe
: Disable, or override timing and threshold values of the object gateway startup probe.readinessProbe
: Disable, or override timing and threshold values of the object gateway readiness probe.Here is a complete example:
1
+ |
opsLogSidecar
: By default, all RGW logs are included in the main RGW container logs. For enhanced observability of the operations, the RGW operations log can be separated from the main RGW container logs by enabling a sidecar. OpsLogSidecar can be enabled by the following example:
You can monitor the health of a CephObjectStore by monitoring the gateway deployments it creates. The primary deployment created is named rook-ceph-rgw-<store-name>-a
where store-name
is the name of the CephObjectStore (don't forget the -a
at the end).
Ceph RGW supports Server Side Encryption as defined in AWS S3 protocol with three different modes: AWS-SSE:C, AWS-SSE:KMS and AWS-SSE:S3. The last two modes require a Key Management System (KMS) like HashiCorp Vault. Currently, Vault is the only supported KMS backend for CephObjectStore.
Refer to the Vault KMS section for details about Vault. If these settings are defined, then RGW will establish a connection between Vault and whenever S3 client sends request with Server Side Encryption. Ceph's Vault documentation has more details.
The security
section contains settings related to KMS encryption of the RGW.
For RGW, please note the following:
VAULT_SECRET_ENGINE
: the secret engine which Vault should use. Currently supports kv and transit. AWS-SSE:KMS supports transit
engine and kv
engine version 2. AWS-SSE:S3 only supports transit
engine.tokenSecretName
can be (and often will be) the same for both kms and s3 configurations.Warning
This feature is intended for advanced users. It allows breaking configurations to be easily applied. Use with caution.
CephObjectStore allows arbitrary Ceph configurations to be applied to RGW daemons that serve the object store. RGW config reference.
Configurations are applied to all RGWs that serve the CephObjectStore. Values must be strings. Below is an example showing how different RGW configs and values might be applied. The example is intended only to show a selection of value data types.
Once enabled, logs can be accessed in RGW pod ops-log
sidecar containers. For example:
The zone settings allow the object store to join custom created ceph-object-zone.
name
: the name of the ceph-object-zone the object store will be in.hosting
settings allow specifying object store endpoint configurations. These settings are only supported for Ceph v18 and higher.
A common use case that requires configuring hosting is allowing virtual host-style bucket access. This use case is discussed in more detail in Rook object storage docs.
advertiseEndpoint
: By default, Rook advertises the most direct connection to RGWs to dependent resources like CephObjectStoreUsers and ObjectBucketClaims. To advertise a different address (e.g., a wildcard-enabled ingress), define the preferred endpoint here. Default behavior is documented in more detail herednsName
: The valid RFC-1123 (sub)domain name of the endpoint.port
: The nonzero port of the endpoint.useTls
: Set to true if the endpoint is HTTPS. False if HTTP.dnsNames
: When this or advertiseEndpoint
is set, Ceph RGW will reject S3 client connections who attempt to reach the object store via any unspecified DNS name. Add all DNS names that the object store should accept here. These must be valid RFC-1123 (sub)domain names. Rook automatically adds the known CephObjectStore service DNS name to this list, as well as corresponding CephObjectZone customEndpoints
(if applicable).Note
For DNS names that support wildcards, do not include wildcards. E.g., use mystore.example.com
instead of *.mystore.example.com
.
Rook provides a default mime.types
file for each Ceph object store. This file is stored in a Kubernetes ConfigMap with the name rook-ceph-rgw-<STORE-NAME>-mime-types
. For most users, the default file should suffice, however, the option is available to users to edit the mime.types
file in the ConfigMap as they desire. Users may have their own special file types, and particularly security conscious users may wish to pare down the file to reduce the possibility of a file type execution attack.
Rook will not overwrite an existing mime.types
ConfigMap so that user modifications will not be destroyed. If the object store is destroyed and recreated, the ConfigMap will also be destroyed and created anew.
Rook will be default monitor the state of the object store endpoints. The following CRD settings are available:
healthCheck
: main object store health monitoring sectionstartupProbe
: Disable, or override timing and threshold values of the object gateway startup probe.readinessProbe
: Disable, or override timing and threshold values of the object gateway readiness probe.Here is a complete example:
You can monitor the health of a CephObjectStore by monitoring the gateway deployments it creates. The primary deployment created is named rook-ceph-rgw-<store-name>-a
where store-name
is the name of the CephObjectStore (don't forget the -a
at the end).
Ceph RGW supports Server Side Encryption as defined in AWS S3 protocol with three different modes: AWS-SSE:C, AWS-SSE:KMS and AWS-SSE:S3. The last two modes require a Key Management System (KMS) like HashiCorp Vault. Currently, Vault is the only supported KMS backend for CephObjectStore.
Refer to the Vault KMS section for details about Vault. If these settings are defined, then RGW will establish a connection between Vault and whenever S3 client sends request with Server Side Encryption. Ceph's Vault documentation has more details.
The security
section contains settings related to KMS encryption of the RGW.
rgwConfig
- These configurations are applied and modified at runtime, without RGW restart.rgwCommandFlags
- These configurations are applied as CLI arguments and result in RGW daemons restarting when updates are applied. Restarts are desired behavior for some RGW configs.Note
Once an rgwConfig
is set, it will not be removed from Ceph's central config store when removed from the rgwConfig
spec. Be sure to specifically set values back to their defaults once done. With this in mind, rgwCommandFlags
may be a better choice for temporary config values like debug levels.
Users are often asked to provide RGW logs at a high log level when troubleshooting complex issues. Apply log levels to RGWs easily using rgwCommandFlags
.
This spec will restart the RGW(s) with the highest level debugging enabled.
For RGW, please note the following:
VAULT_SECRET_ENGINE
: the secret engine which Vault should use. Currently supports kv and transit. AWS-SSE:KMS supports transit
engine and kv
engine version 2. AWS-SSE:S3 only supports transit
engine.tokenSecretName
can be (and often will be) the same for both kms and s3 configurations.Warning
This feature is intended for advanced users. It allows breaking configurations to be easily applied. Use with caution.
CephObjectStore allows arbitrary Ceph configurations to be applied to RGW daemons that serve the object store. RGW config reference.
Configurations are applied to all RGWs that serve the CephObjectStore. Values must be strings. Below is an example showing how different RGW configs and values might be applied. The example is intended only to show a selection of value data types.
rgwConfig
- These configurations are applied and modified at runtime, without RGW restart.rgwCommandFlags
- These configurations are applied as CLI arguments and result in RGW daemons restarting when updates are applied. Restarts are desired behavior for some RGW configs.Note
Once an rgwConfig
is set, it will not be removed from Ceph's central config store when removed from the rgwConfig
spec. Be sure to specifically set values back to their defaults once done. With this in mind, rgwCommandFlags
may be a better choice for temporary config values like debug levels.
Users are often asked to provide RGW logs at a high log level when troubleshooting complex issues. Apply log levels to RGWs easily using rgwCommandFlags
.
This spec will restart the RGW(s) with the highest level debugging enabled.
Once RGW debug logging is no longer needed, the values can simply be removed from the spec.
During deletion of a CephObjectStore resource, Rook protects against accidental or premature destruction of user data by blocking deletion if there are any object buckets in the object store being deleted. Buckets may have been created by users or by ObjectBucketClaims.
For deletion to be successful, all buckets in the object store must be removed. This may require manual deletion or removal of all ObjectBucketClaims. Alternately, the cephobjectstore.ceph.rook.io
finalizer on the CephObjectStore can be removed to remove the Kubernetes Custom Resource, but the Ceph pools which store the data will not be removed in this case.
Rook will warn about which buckets are blocking deletion in three ways:
If the CephObjectStore is configured in a multisite setup the above conditions are applicable only to stores that belong to a single master zone. Otherwise the conditions are ignored. Even if the store is removed the user can access the data from a peer object store.