From: Adam King Date: Thu, 30 Jan 2025 14:15:37 +0000 (-0500) Subject: mgr/cephadm: create OSD daemon deploy specs through make_daemon_spec X-Git-Tag: v18.2.5~51^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F61923%2Fhead;p=ceph.git mgr/cephadm: create OSD daemon deploy specs through make_daemon_spec That function handles setting up the extra container/entrypoint args for the daemon during initial deployment. Having the CephadmDaemonDeploySpec made directly in the OSD deployment workflow means initial deployments of OSDs won't have the extra container/entrypoint args from the spec Fixes: https://tracker.ceph.com/issues/69734 Signed-off-by: Adam King (cherry picked from commit 8e5db6e09ce251b7d1caf9e19666e52c3480752a) --- diff --git a/src/pybind/mgr/cephadm/module.py b/src/pybind/mgr/cephadm/module.py index 6d2cf33e63a35..a01166e2bb81e 100644 --- a/src/pybind/mgr/cephadm/module.py +++ b/src/pybind/mgr/cephadm/module.py @@ -1464,7 +1464,11 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule, @forall_hosts def run(h: str) -> str: with self.async_timeout_handler(h, 'cephadm deploy (osd daemon)'): - return self.wait_async(self.osd_service.deploy_osd_daemons_for_existing_osds(h, 'osd')) + return self.wait_async( + self.osd_service.deploy_osd_daemons_for_existing_osds( + h, DriveGroupSpec(service_type='osd', service_id='') + ) + ) return HandleCommandResult(stdout='\n'.join(run(host))) diff --git a/src/pybind/mgr/cephadm/services/osd.py b/src/pybind/mgr/cephadm/services/osd.py index 9b09b8c9f4925..a74efe123690c 100644 --- a/src/pybind/mgr/cephadm/services/osd.py +++ b/src/pybind/mgr/cephadm/services/osd.py @@ -95,10 +95,10 @@ class OSDService(CephService): raise RuntimeError( 'cephadm exited with an error code: %d, stderr:%s' % ( code, '\n'.join(err))) - return await self.deploy_osd_daemons_for_existing_osds(host, drive_group.service_name(), + return await self.deploy_osd_daemons_for_existing_osds(host, drive_group, replace_osd_ids) - async def deploy_osd_daemons_for_existing_osds(self, host: str, service_name: str, + async def deploy_osd_daemons_for_existing_osds(self, host: str, spec: DriveGroupSpec, replace_osd_ids: Optional[List[str]] = None) -> str: if replace_osd_ids is None: @@ -142,11 +142,12 @@ class OSDService(CephService): continue created.append(osd_id) - daemon_spec: CephadmDaemonDeploySpec = CephadmDaemonDeploySpec( - service_name=service_name, + daemon_spec: CephadmDaemonDeploySpec = self.make_daemon_spec( + spec=spec, daemon_id=str(osd_id), host=host, daemon_type='osd', + network='', # required arg but only really needed for mons ) daemon_spec.final_config, daemon_spec.deps = self.generate_config(daemon_spec) await CephadmServe(self.mgr)._create_daemon( @@ -183,11 +184,12 @@ class OSDService(CephService): continue created.append(osd_id) - daemon_spec = CephadmDaemonDeploySpec( - service_name=service_name, + daemon_spec = self.make_daemon_spec( + spec=spec, daemon_id=osd_id, host=host, daemon_type='osd', + network='', # required arg but only really needed for mons ) daemon_spec.final_config, daemon_spec.deps = self.generate_config(daemon_spec) await CephadmServe(self.mgr)._create_daemon(