Skip to content

MiraCeph Instead of KaasCephCluster#

In some scenarios, operators prefer to use MiraCeph because it provides a more direct and decoupled way to manage Ceph clusters. With MiraCeph, the Ceph cluster configuration is applied directly under the ceph-lcm-mirantis namespace, avoiding the extra layer of indirection introduced by the KaasCephCluster object. This can simplify troubleshooting and provide a clearer view of the storage configuration.

A typical KaaSCephCluster specification looks like this:

apiVersion: kaas.mirantis.com/v1alpha1
kind: KaaSCephCluster
metadata:
  name: test-child-req
  namespace: child-ns
spec:
  cephClusterSpec:
     
    {ceph-cluster-spec}
     
  kaasCephCluster:
    name: ceph-cluster-child-cluster
    namespace: child-ns

To configure MiraCeph, the operator should apply the {ceph-cluster-spec} block directly in the MiraCeph spec field:

apiVersion: lcm.mirantis.com/v1alpha1
kind: MiraCeph
metadata:
  name: ceph-cluster
  namespace: ceph-lcm-mirantis
spec:
   
  {ceph-cluster-spec}
   

Replacing KaasCephOperationRequest#

The same approach applies when the operator creates CephOsdRemoveRequest and CephPerfTestRequest objects. Instead of creating a KaasCephOperationRequest, the operator should create the corresponding object. By using dedicated objects for each operation, such as CephOsdRemoveRequest and CephPerfTestRequest, the configuration becomes more modular and transparent.

For Ceph OSD Removal#

For example, to remove a Ceph Object Storage Daemon, replace the following KaasCephOperationRequest...

apiVersion: kaas.mirantis.com/v1alpha1
kind: KaaSCephOperationRequest
metadata:
  name: lcm-req
  namespace: child-ns
spec:
  kaasCephCluster:
    name: ceph-cluster-child-cluster
    namespace: child-ns
  osdRemove:
     
    {osd-request-spec}
     

... with a CephOsdRemoveRequest:

apiVersion: lcm.mirantis.com/v1alpha1
kind: CephOsdRemoveRequest
metadata:
  name: lcm-req
  namespace: ceph-lcm-mirantis
spec:
   
  {osd-request-spec}
   

For Ceph Performance Testing#

To engage in performance testing, replace the following KaasCephOperationRequest...

apiVersion: kaas.mirantis.com/v1alpha1
kind: KaaSCephOperationRequest
metadata:
  name: perf-req
  namespace: child-ns
spec:
  kaasCephCluster:
    name: ceph-cluster-child-cluster
    namespace: child-ns
  perfTest:
     
    {perftest-request-spec}
     

... with a CephPerfTestRequest:

apiVersion: lcm.mirantis.com/v1alpha1
kind: CephPerfTestRequest
metadata:
  name: perftest-req
  namespace: ceph-lcm-mirantis
spec:
   
  {perftest-request-spec}
   

Additional Considerations#

There are several reasons to consider MiraCeph instead of KaasCephCluster, including:

  • Direct Configuration: MiraCeph enables you to inject the Ceph cluster specification directly, which can simplify management by removing the extra abstraction layer found in KaasCephCluster.
  • Namespace Isolation: Deploying MiraCeph in the ceph-lcm-mirantis namespace centralizes Ceph operations, making it easier to monitor and maintain.
  • Focused Operations: Replacing the general KaasCephOperationRequest with dedicated operation requests (e.g., for OSD removal or performance testing) leads to clearer, purpose-built configurations.
  • Flexibility: For operators who need fine-grained control or who prefer a more transparent view of their Ceph cluster’s configuration, MiraCeph is a straightforward alternative.

For more details, please refer to the official documentation:
Mirantis MOSK Ceph Operations