From: Sage Weil Date: Fri, 8 Oct 2021 17:28:31 +0000 (-0500) Subject: mgr/rook: specify failureDomain on CephObjectStore CR X-Git-Tag: v17.1.0~715^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0e7c0a81d8022e29d61704f45b274ee3644e7511;p=ceph.git mgr/rook: specify failureDomain on CephObjectStore CR Signed-off-by: Sage Weil --- diff --git a/src/pybind/mgr/rook/module.py b/src/pybind/mgr/rook/module.py index 5a7f177d3a7..0e53aea4492 100644 --- a/src/pybind/mgr/rook/module.py +++ b/src/pybind/mgr/rook/module.py @@ -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): diff --git a/src/pybind/mgr/rook/rook_cluster.py b/src/pybind/mgr/rook/rook_cluster.py index d6aa275181e..cf302c84550 100644 --- a/src/pybind/mgr/rook/rook_cluster.py +++ b/src/pybind/mgr/rook/rook_cluster.py @@ -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 )