]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: reconfig iscsi daemons if trusted_ip_list changes 48076/head
authorAdam King <adking@redhat.com>
Tue, 9 Aug 2022 20:13:38 +0000 (16:13 -0400)
committerAdam King <adking@redhat.com>
Tue, 13 Sep 2022 19:08:00 +0000 (15:08 -0400)
This is necessary as iscsi daemons expect the iscsi-gateway.cfg
which includes this list to match across the iscsi daemons

Fixes: https://tracker.ceph.com/issues/57078
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 8a6e67c6a32f71f38dd3dafe84e6a5e7b2a99f5a)

Conflicts:
src/pybind/mgr/cephadm/module.py

src/pybind/mgr/cephadm/module.py
src/pybind/mgr/cephadm/services/iscsi.py

index b2a48801cc2d779a1faf603718b53de5fed78169..f8e08c9d625eb1e5be6cb42dbaa3effec9cd6fba 100644 (file)
@@ -26,7 +26,7 @@ from ceph.deployment.drive_group import DriveGroupSpec
 from ceph.deployment.service_spec import \
     ServiceSpec, PlacementSpec, \
     HostPlacementSpec, IngressSpec, \
-    TunedProfileSpec
+    TunedProfileSpec, IscsiServiceSpec
 from ceph.utils import str_to_datetime, datetime_to_str, datetime_now
 from cephadm.serve import CephadmServe
 from cephadm.services.cephadmservice import CephadmDaemonDeploySpec
@@ -540,6 +540,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule,
 
         self.mgr_service: MgrService = cast(MgrService, self.cephadm_services['mgr'])
         self.osd_service: OSDService = cast(OSDService, self.cephadm_services['osd'])
+        self.iscsi_service: IscsiService = cast(IscsiService, self.cephadm_services['iscsi'])
 
         self.template = TemplateMgr(self)
 
@@ -2360,7 +2361,11 @@ Then run the following:
             deps = sorted([self.get_mgr_ip(), server_port, root_cert,
                            str(self.device_enhanced_scan)])
         elif daemon_type == 'iscsi':
-            deps = [self.get_mgr_ip()]
+            if spec:
+                iscsi_spec = cast(IscsiServiceSpec, spec)
+                deps = [self.iscsi_service.get_trusted_ips(iscsi_spec)]
+            else:
+                deps = [self.get_mgr_ip()]
         else:
             need = {
                 'prometheus': ['mgr', 'alertmanager', 'node-exporter', 'ingress'],
index d5896f075d497499b3b35eb2136920c2e78f13fc..c42eff6838d9a1120d04edc4c4b3d9794811a6d7 100644 (file)
@@ -23,6 +23,14 @@ class IscsiService(CephService):
         assert spec.pool
         self.mgr._check_pool_exists(spec.pool, spec.service_name())
 
+    def get_trusted_ips(self, spec: IscsiServiceSpec) -> str:
+        # add active mgr ip address to trusted list so dashboard can access
+        trusted_ip_list = spec.trusted_ip_list if spec.trusted_ip_list else ''
+        if trusted_ip_list:
+            trusted_ip_list += ','
+        trusted_ip_list += self.mgr.get_mgr_ip()
+        return trusted_ip_list
+
     def prepare_create(self, daemon_spec: CephadmDaemonDeploySpec) -> CephadmDaemonDeploySpec:
         assert self.TYPE == daemon_spec.daemon_type
 
@@ -58,11 +66,7 @@ class IscsiService(CephService):
                 'val': key_data,
             })
 
-        # add active mgr ip address to trusted list so dashboard can access
-        trusted_ip_list = spec.trusted_ip_list if spec.trusted_ip_list else ''
-        if trusted_ip_list:
-            trusted_ip_list += ','
-        trusted_ip_list += self.mgr.get_mgr_ip()
+        trusted_ip_list = self.get_trusted_ips(spec)
 
         context = {
             'client_name': '{}.{}'.format(utils.name_to_config_section('iscsi'), igw_id),
@@ -74,7 +78,7 @@ class IscsiService(CephService):
         daemon_spec.keyring = keyring
         daemon_spec.extra_files = {'iscsi-gateway.cfg': igw_conf}
         daemon_spec.final_config, daemon_spec.deps = self.generate_config(daemon_spec)
-        daemon_spec.deps = [self.mgr.get_mgr_ip()]
+        daemon_spec.deps = [trusted_ip_list]
         return daemon_spec
 
     def config_dashboard(self, daemon_descrs: List[DaemonDescription]) -> None: