From 7852bfa1f5824ed7a01689118cab7bf3b3cca28c Mon Sep 17 00:00:00 2001 From: Adam King Date: Mon, 31 Mar 2025 14:59:57 -0400 Subject: [PATCH] mgr/cephadm: block deploying nvmeof daemons on the same host Previously, we had added a commit to block deploying nvmeof daemons on hosts with other nvmeof daemons that share a group. However, after discussion with the nvmeof team, they'd prefer we blocking co-locating nvmeof daemon entirely Signed-off-by: Adam King (cherry picked from commit 40a9bbb3297490f06aa1af3b7718d41cbd768077) --- src/pybind/mgr/cephadm/services/nvmeof.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/pybind/mgr/cephadm/services/nvmeof.py b/src/pybind/mgr/cephadm/services/nvmeof.py index 290b31e9c8e25..1f83aad726107 100644 --- a/src/pybind/mgr/cephadm/services/nvmeof.py +++ b/src/pybind/mgr/cephadm/services/nvmeof.py @@ -251,18 +251,15 @@ class NvmeofService(CephService): self.mgr.log.error(f"Unable to send monitor command {cmd}, error {err}") def get_blocking_daemon_hosts(self, service_name: str) -> List[HostSpec]: - # we should not deploy nvmeof daemons on hosts that have nvmeof daemons - # from services with a different "group" attribute (as recommended by - # the nvmeof team) + # we should not deploy nvmeof daemons on hosts that already have nvmeof daemons spec = cast(NvmeofServiceSpec, self.mgr.spec_store[service_name].spec) - nvmeof_group = cast(NvmeofServiceSpec, spec).group blocking_daemons: List[DaemonDescription] = [] - other_group_nvmeof_services = [ + other_nvmeof_services = [ nspec for nspec in self.mgr.spec_store.get_specs_by_type('nvmeof').values() - if cast(NvmeofServiceSpec, nspec).group != nvmeof_group + if nspec.service_name() != spec.service_name() ] - for other_group_nvmeof_service in other_group_nvmeof_services: - blocking_daemons += self.mgr.cache.get_daemons_by_service(other_group_nvmeof_service.service_name()) + for other_nvmeof_service in other_nvmeof_services: + blocking_daemons += self.mgr.cache.get_daemons_by_service(other_nvmeof_service.service_name()) blocking_daemon_hosts = [ HostSpec(hostname=blocking_daemon.hostname) for blocking_daemon in blocking_daemons if blocking_daemon.hostname is not None -- 2.39.5