]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/cephadm: Make the discovery and gateway IPs configurable in NVMEof configuration
authorGil Bregman <gbregman@redhat.com>
Thu, 12 Sep 2024 08:08:39 +0000 (08:08 +0000)
committerAlexander Indenbaum <aindenba@redhat.com>
Wed, 19 Nov 2025 18:41:52 +0000 (20:41 +0200)
Resolves: rhbz#2311459
(cherry picked from commit 9f6d1eccb990dfbdc2e224411b7a048be6cebb1a)
Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>
src/pybind/mgr/cephadm/services/nvmeof.py
src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2
src/python-common/ceph/deployment/service_spec.py

index bf6e6d13dbf0e8fae19e57e4b1f1b4f3c34594fa..1f0c6cbfaf71fa2d7a5b8edad6e9cec1bf3c5fa3 100644 (file)
@@ -47,10 +47,17 @@ class NvmeofService(CephService):
         transport_tcp_options = json.dumps(spec.transport_tcp_options) if spec.transport_tcp_options else None
         name = '{}.{}'.format(utils.name_to_config_section('nvmeof'), nvmeof_gw_id)
         rados_id = name[len('client.'):] if name.startswith('client.') else name
+        addr = host_ip
+        discovery_addr = host_ip
+        if spec.addr and spec.addr != "0.0.0.0":
+            addr = spec.addr
+        if spec.discovery_addr and spec.discovery_addr != "0.0.0.0":
+            discovery_addr = spec.discovery_addr
         context = {
             'spec': spec,
             'name': name,
-            'addr': host_ip,
+            'addr': addr,
+            'discovery_addr': discovery_addr,
             'port': spec.port,
             'spdk_log_level': 'WARNING',
             'rpc_socket_dir': '/var/tmp/',
index 644ca586ba93f418924b1ff71102ecc1e3ca2e9b..dbe29004771ad4449377f25000e39b7a6649c1db 100644 (file)
@@ -32,7 +32,7 @@ max_log_directory_backups = {{ spec.max_log_directory_backups }}
 log_directory = {{ spec.log_directory }}
 
 [discovery]
-addr = {{ addr }}
+addr = {{ discovery_addr }}
 port = {{ spec.discovery_port }}
 
 [ceph]
index 26225d6b01447b38616a4c449ebfe1b3abb1fca6..18a27eab664bb4a1d3fcc35ff5b52d22c7a64f0d 100644 (file)
@@ -1314,6 +1314,7 @@ class NvmeofServiceSpec(ServiceSpec):
                  service_id: Optional[str] = None,
                  name: Optional[str] = None,
                  group: Optional[str] = None,
+                 addr: Optional[str] = None,
                  port: Optional[int] = None,
                  pool: Optional[str] = None,
                  enable_auth: bool = False,
@@ -1346,6 +1347,7 @@ class NvmeofServiceSpec(ServiceSpec):
                  transport_tcp_options: Optional[Dict[str, int]] =
                  {"in_capsule_data_size": 8192, "max_io_qpairs_per_ctrlr": 7},
                  tgt_cmd_extra_args: Optional[str] = None,
+                 discovery_addr: Optional[str] = None,
                  discovery_port: Optional[int] = None,
                  log_level: Optional[str] = 'INFO',
                  log_files_enabled: Optional[bool] = True,
@@ -1377,6 +1379,8 @@ class NvmeofServiceSpec(ServiceSpec):
 
         #: RADOS pool where ceph-nvmeof config data is stored.
         self.pool = pool
+        #: ``addr`` address of the nvmeof gateway
+        self.addr = addr or "0.0.0.0"
         #: ``port`` port of the nvmeof gateway
         self.port = port or 5500
         #: ``name`` name of the nvmeof gateway
@@ -1441,6 +1445,8 @@ class NvmeofServiceSpec(ServiceSpec):
         self.transport_tcp_options: Optional[Dict[str, int]] = transport_tcp_options
         #: ``tgt_cmd_extra_args`` extra arguments for the nvmf_tgt process
         self.tgt_cmd_extra_args = tgt_cmd_extra_args
+        #: ``discovery_addr`` address of the discovery service
+        self.discovery_addr = discovery_addr
         #: ``discovery_port`` port of the discovery service
         self.discovery_port = discovery_port or 8009
         #: ``log_level`` the nvmeof gateway log level