From: Adam King Date: Mon, 31 Mar 2025 18:59:57 +0000 (-0400) Subject: mgr/cephadm: block deploying nvmeof daemons on the same host X-Git-Tag: testing/wip-khiremat-testing-20250607.065055-tentacle-debug~44^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7852bfa1f5824ed7a01689118cab7bf3b3cca28c;p=ceph-ci.git 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) --- diff --git a/src/pybind/mgr/cephadm/services/nvmeof.py b/src/pybind/mgr/cephadm/services/nvmeof.py index 290b31e9c8e..1f83aad7261 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