From 996b145e08b6f252e6c6c62e0c12d080c18eae6d Mon Sep 17 00:00:00 2001 From: Kushal Deb Date: Thu, 9 Apr 2026 22:24:15 +0530 Subject: [PATCH] mgr/cephadm: fix nvmeof reconfig loop by preserving daemon deps nvmeof daemons entered a repeated reconfig/restart loop when auth/TLS was enabled. Generic ServiceSpec logic sets certificate_source to cephadm-signed when TLS is enabled, so cephadm reconcile computes certificate-related deps for the daemon. However, NvmeofService.prepare_create() reset daemon_spec.deps to an empty list, causing _create_daemon() to persist [] back into cache. On the next reconcile cycle, cephadm again observed current deps differing from cached last_deps and reconfigured the daemon repeatedly. Fix this by preserving the correct nvmeof daemon dependencies during prepare_create() so reconcile can converge. Signed-off-by: Kushal Deb --- src/pybind/mgr/cephadm/services/nvmeof.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pybind/mgr/cephadm/services/nvmeof.py b/src/pybind/mgr/cephadm/services/nvmeof.py index b811d0118f7..aed10f64501 100644 --- a/src/pybind/mgr/cephadm/services/nvmeof.py +++ b/src/pybind/mgr/cephadm/services/nvmeof.py @@ -173,7 +173,7 @@ class NvmeofService(CephService): daemon_spec.extra_files['encryption_key'] = spec.encryption_key daemon_spec.final_config, _ = self.generate_config(daemon_spec) - daemon_spec.deps = [] + daemon_spec.deps = self.get_dependencies(self.mgr, spec, daemon_spec.daemon_type) return daemon_spec def daemon_check_post(self, daemon_descrs: List[DaemonDescription]) -> None: -- 2.47.3