Mirantis Container Cloud (MCC) becomes part of Mirantis OpenStack for Kubernetes (MOSK)!
Starting with MOSK 25.2, the MOSK documentation set covers all product layers, including MOSK management (formerly MCC). This means everything you need is in one place. The separate MCC documentation site will be retired, so please update your bookmarks for continued easy access to the latest content.
This procedure is valid for MOSK clusters that use the MiraCeph custom
resource (CR), which is available since MOSK 25.2 to replace the deprecated
KaaSCephCluster. For the equivalent procedure with the KaaSCephCluster
CR, refer to the following section:
Once you enable Ceph Object Gateway (radosgw) as described in
Enable Ceph RGW Object Storage, you can configure the Transport Layer Security (TLS)
protocol for a Ceph Object Gateway public endpoint using the following options:
Using MOSK TLS, if it is enabled and exposes its
certificates and domain for Ceph.
In this case, Ceph Object Gateway will automatically create an ingress rule
with MOSK certificates and domain to access the Ceph
Object Gateway public endpoint.
Therefore, you only need to reach the Ceph Object Gateway public and internal
endpoints and set the CA certificates for a trusted TLS connection.
Using custom ingress specified in the MiraCeph CR. In this
case, Ceph Object Gateway public endpoint will use the public domain
specified using the ingress parameters.
Caution
External Ceph Object Gateway service is not supported and will
be deleted during update. If your system already uses endpoints of an
external Ceph Object Gateway service, reconfigure them to the ingress
endpoints.
Caution
When using a custom or OpenStack ingress, ensure to configure
the DNS name for RGW to target an external IP address of that ingress.
If there is no OpenStack or custom ingress available, point the DNS to
an external load balancer of RGW.
Note
If the cluster has tls-proxy enabled, TLS certificates specified
in ingress objects, including those configured in the MiraCeph
specification, are disregarded. Instead, common certificates are applied to
all ingresses from the OpenStackDeployment object. This implies that
tlsCert and other ingress certificates specified in MiraCeph are
ignored, and the common certificate from the OpenStackDeployment object
is used.
This section also describes how to specify a custom public endpoint for the
Object Storage service.
To configure Ceph Object Gateway TLS:
Verify whether MOSK TLS is enabled. The
spec.features.ssl.public_endpoints section should be specified in the
OpenStackDeployment CR.
To generate an SSL certificate for internal usage, verify that the
gateway securePort parameter is specified in the MiraCeph CR.
For details, see Enable Ceph RGW Object Storage.
Select from the following options:
If MOSK TLS is disabled
Configure TLS for Ceph Object Gateway using a custom
ingressConfig:
TLS configuration for ingress including certificates.
Contains the following parameters:
cacert
The Certificate Authority (CA) certificate, used for the
ingress rule TLS support.
tlsCert
The TLS certificate, used for the ingress rule TLS support.
tlsKey
The TLS private key, used for the ingress rule TLS support.
publicDomain
Mandatory. The domain name to use for public endpoints.
Caution
The default ingress controller does not support
publicDomain values different from the OpenStack
ingress public domain. Therefore, if you intend to use
the default OpenStack Ingress Controller for your Ceph
Object Storage public endpoint, plan to use the same
public domain as your OpenStack endpoints.
hostname
Custom name to override the Objectstore RGW name for public
RGW access. Public RGW endpoint has the
https://<hostname>.<publicDomain> format.
tlsSecretRefName
Optional. Secret name with TLS certs on the
MOSK cluster in the rook-ceph
namespace prepared by the operator. Allows avoiding exposure
of certs directly in spec. Must contain the following
format:
Name of the custom Ingress Controller. By default, the
openstack-ingress-nginx class name is specified and Ceph
uses the OpenStack Ingress Controller based on NGINX.
annotations
Extra annotations for the ingress proxy that are a key-value
mapping of strings to add or override ingress rule
annotations. For details, see NGINX Ingress Controller:
Annotations.
By default, the following annotations are set:
nginx.ingress.kubernetes.io/rewrite-target is set to
/
nginx.ingress.kubernetes.io/upstream-vhost is set to
<rgwName>.rook-ceph.svc.
The value for <rgwName> is located in
objectStorage.rgw.name.
Optional annotations:
nginx.ingress.kubernetes.io/proxy-request-buffering:"off"
that disables buffering for ingress to prevent the
413 (Request Entity Too Large) error when uploading large
files using radosgw.
nginx.ingress.kubernetes.io/proxy-body-size:<size> that
increases the default uploading size limit to prevent the
413 (Request Entity Too Large) error when uploading large
files using radosgw. Set the value in MB (m) or KB
(k). For example, 100m.
Note
By default, an ingress rule is created with an
internal Ceph Object Gateway service endpoint as a
backend. Also, rgwdnsname is specified in the Ceph
configuration and is set to <rgwName>.rook-ceph.svc
by default.
You can override rgwdnsname using the
rookConfig key-value parameter. In this case, also
change the corresponding ingress annotation.
Configuration example with the rgwdnsname override
For clouds with the publicDomain parameter specified,
align the upstream-vhost ingress annotation with the
name of the Ceph Object Storage and the specified public
domain.
Ceph Object Storage requires the upstream-vhost and
rgwdnsname parameters to be equal. Therefore,
override the default rgwdnsname with the
corresponding ingress annotation value.
If MOSK TLS is enabled
Obtain the MOSK CA certificate for a trusted
connection:
If you use the HTTP scheme instead of HTTPS for internal or public Ceph
Object Gateway endpoints, add custom annotations to the ingressConfig
section of the MiraCeph object on the management cluster:
Substitute <objectStorageName> with the Ceph Object Storage name and
<customPublicEndpoint> with the public endpoint with a custom public
domain.
If one or both endpoints are omitted in the list, add the missing
endpoints to the hostnames list in the zonegroup.json file and
update Ceph Object Gateway zonegroup configuration:
Once done, Ceph Object Gateway becomes available by the custom public endpoint
with an S3 API client, OpenStack Swift CLI, and OpenStack Horizon Containers
plugin.