From: Gil Bregman Date: Thu, 12 Sep 2024 08:08:39 +0000 (+0000) Subject: mgr/cephadm: Make the discovery and gateway IPs configurable in NVMEof configuration X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=548fd892696c5016366ac50ec83cf3ef61a4647c;p=ceph-ci.git mgr/cephadm: Make the discovery and gateway IPs configurable in NVMEof configuration Resolves: rhbz#2311459 (cherry picked from commit 9f6d1eccb990dfbdc2e224411b7a048be6cebb1a) Signed-off-by: Alexander Indenbaum --- diff --git a/src/pybind/mgr/cephadm/services/nvmeof.py b/src/pybind/mgr/cephadm/services/nvmeof.py index bf6e6d13dbf..1f0c6cbfaf7 100644 --- a/src/pybind/mgr/cephadm/services/nvmeof.py +++ b/src/pybind/mgr/cephadm/services/nvmeof.py @@ -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/', diff --git a/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 b/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 index 644ca586ba9..dbe29004771 100644 --- a/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 +++ b/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 @@ -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] diff --git a/src/python-common/ceph/deployment/service_spec.py b/src/python-common/ceph/deployment/service_spec.py index 26225d6b014..18a27eab664 100644 --- a/src/python-common/ceph/deployment/service_spec.py +++ b/src/python-common/ceph/deployment/service_spec.py @@ -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