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/',
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,
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,
#: 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
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