From 0e7c0a81d8022e29d61704f45b274ee3644e7511 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 8 Oct 2021 12:28:31 -0500 Subject: [PATCH] mgr/rook: specify failureDomain on CephObjectStore CR Signed-off-by: Sage Weil --- src/pybind/mgr/rook/module.py | 14 +++++++++++--- src/pybind/mgr/rook/rook_cluster.py | 4 +++- 2 files changed, 14 insertions(+), 4 deletions(-) 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 ) -- 2.47.3