]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/rook: specify failureDomain on CephObjectStore CR 43471/head
authorSage Weil <sage@newdream.net>
Fri, 8 Oct 2021 17:28:31 +0000 (12:28 -0500)
committerSage Weil <sage@newdream.net>
Mon, 11 Oct 2021 13:55:18 +0000 (08:55 -0500)
Signed-off-by: Sage Weil <sage@newdream.net>
src/pybind/mgr/rook/module.py
src/pybind/mgr/rook/rook_cluster.py

index 5a7f177d3a7bda2b5192c2da2c3264dda9ac6717..0e53aea449285f8798be94c5fe6284fe85bba0f8 100644 (file)
@@ -444,9 +444,17 @@ class RookOrchestrator(MgrModule, orchestrator.Orchestrator):
     @handle_orch_error
     def apply_rgw(self, spec):
         # type: (RGWSpec) -> str
-        num_of_osds = self.get_ceph_option('osd_pool_default_size')
-        assert type(num_of_osds) is int
-        return self.rook_cluster.apply_objectstore(spec, num_of_osds)
+        num_replicas = self.get_ceph_option('osd_pool_default_size')
+        assert type(num_replicas) is int
+        leaf_type_id = self.get_ceph_option('osd_crush_chooseleaf_type')
+        assert type(leaf_type_id) is int
+        crush = self.get('osd_map_crush')
+        leaf_type = 'host'
+        for t in crush['types']:
+            if t['type_id'] == leaf_type_id:
+                leaf_type = t['name']
+                break
+        return self.rook_cluster.apply_objectstore(spec, num_replicas, leaf_type)
 
     @handle_orch_error
     def apply_nfs(self, spec):
index d6aa275181e5f4771b6dc4aa5880237ab5e793b0..cf302c84550d4b9274c9a91b1081eaa23d8fd6ac 100644 (file)
@@ -894,7 +894,7 @@ class RookCluster(object):
         self.coreV1_api.patch_node(host, matching_node)
         return OrchResult(f'Removed {label} label from {host}')
 
-    def apply_objectstore(self, spec: RGWSpec, num_replicas: int) -> str:
+    def apply_objectstore(self, spec: RGWSpec, num_replicas: int, leaf_type: str) -> str:
         assert spec.service_id is not None
 
         name = spec.service_id
@@ -939,11 +939,13 @@ class RookCluster(object):
                             )
                         ),
                         dataPool=cos.DataPool(
+                            failureDomain=leaf_type,
                             replicated=cos.Replicated(
                                 size=num_replicas
                             )
                         ),
                         metadataPool=cos.MetadataPool(
+                            failureDomain=leaf_type,
                             replicated=cos.Replicated(
                                 size=num_replicas
                             )