From a16ac81c43be884f2dd7fc8b0566be5aa35b7ace Mon Sep 17 00:00:00 2001 From: Gil Bregman Date: Thu, 21 Mar 2024 11:06:52 +0200 Subject: [PATCH] mgr/cephadm: add nvmeof configuration fields Fixes: https://tracker.ceph.com/issues/64821 Signed-off-by: Gil Bregman --- src/pybind/mgr/cephadm/services/nvmeof.py | 5 ++- .../services/nvmeof/ceph-nvmeof.conf.j2 | 41 +++++++++++++++---- src/pybind/mgr/cephadm/tests/test_services.py | 34 ++++++++++++--- 3 files changed, 63 insertions(+), 17 deletions(-) diff --git a/src/pybind/mgr/cephadm/services/nvmeof.py b/src/pybind/mgr/cephadm/services/nvmeof.py index 6cd1f4604d312..d133ad75d252f 100644 --- a/src/pybind/mgr/cephadm/services/nvmeof.py +++ b/src/pybind/mgr/cephadm/services/nvmeof.py @@ -43,8 +43,9 @@ def prepare_create(self, daemon_spec: CephadmDaemonDeploySpec) -> CephadmDaemonD 'name': name, 'addr': host_ip, 'port': spec.port, - 'log_level': 'WARN', - 'rpc_socket': '/var/tmp/spdk.sock', + 'spdk_log_level': 'WARNING', + 'rpc_socket_dir': '/var/tmp/', + 'rpc_socket_name': 'spdk.sock', 'transport_tcp_options': transport_tcp_options, 'rados_id': rados_id } 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 711af0ee724ab..fad99ad50e8fa 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 @@ -3,16 +3,33 @@ name = {{ name }} group = {{ spec.group if spec.group is not none else '' }} addr = {{ addr }} -port = {{ port }} +port = {{ spec.port }} enable_auth = {{ spec.enable_auth }} -state_update_notify = True -state_update_interval_sec = 5 -min_controller_id = {{ spec.min_controller_id }} -max_controller_id = {{ spec.max_controller_id }} +state_update_notify = {{ spec.state_update_notify }} +state_update_interval_sec = {{ spec.state_update_interval_sec }} enable_spdk_discovery_controller = {{ spec.enable_spdk_discovery_controller }} -enable_prometheus_exporter = True +enable_prometheus_exporter = {{ spec.enable_prometheus_exporter }} prometheus_exporter_ssl = False prometheus_port = 10008 +verify_nqns = {{ spec.verify_nqns }} +omap_file_lock_duration = {{ spec.omap_file_lock_duration }} +omap_file_lock_retries = {{ spec.omap_file_lock_retries }} +omap_file_lock_retry_sleep_interval = {{ spec.omap_file_lock_retry_sleep_interval }} +omap_file_update_reloads = {{ spec.omap_file_update_reloads }} + +[gateway-logs] +log_level = {{ spec.log_level }} +log_files_enabled = {{ spec.log_files_enabled }} +log_files_rotation_enabled = {{ spec.log_files_rotation_enabled }} +verbose_log_messages = {{ spec.verbose_log_messages }} +max_log_file_size_in_mb = {{ spec.max_log_file_size_in_mb }} +max_log_files_count = {{ spec.max_log_files_count }} +max_log_directory_backups = {{ spec.max_log_directory_backups }} +log_directory = {{ spec.log_directory }} + +[discovery] +addr = {{ addr }} +port = {{ spec.discovery_port }} [ceph] pool = {{ spec.pool }} @@ -27,9 +44,11 @@ client_cert = {{ spec.client_cert }} [spdk] tgt_path = {{ spec.tgt_path }} -rpc_socket = {{ rpc_socket }} -timeout = {{ spec.timeout }} -log_level = {{ log_level }} +rpc_socket_dir = {{ spec.rpc_socket_dir }} +rpc_socket_name = {{ spec.rpc_socket_name }} +timeout = {{ spec.spdk_timeout }} +bdevs_per_cluster = {{ spec.bdevs_per_cluster }} +log_level = {{ spec.spdk_log_level }} conn_retries = {{ spec.conn_retries }} transports = {{ spec.transports }} {% if transport_tcp_options %} @@ -38,3 +57,7 @@ transport_tcp_options = {{ transport_tcp_options }} {% if spec.tgt_cmd_extra_args %} tgt_cmd_extra_args = {{ spec.tgt_cmd_extra_args }} {% endif %} + +[monitor] +timeout = {{ spec.monitor_timeout }} + diff --git a/src/pybind/mgr/cephadm/tests/test_services.py b/src/pybind/mgr/cephadm/tests/test_services.py index cb7f618d37b4d..48a9c3f061862 100644 --- a/src/pybind/mgr/cephadm/tests/test_services.py +++ b/src/pybind/mgr/cephadm/tests/test_services.py @@ -390,12 +390,29 @@ def test_nvmeof_config(self, _get_name, _run_cephadm, cephadm_module: CephadmOrc enable_auth = False state_update_notify = True state_update_interval_sec = 5 -min_controller_id = 1 -max_controller_id = 65519 enable_spdk_discovery_controller = False enable_prometheus_exporter = True prometheus_exporter_ssl = False prometheus_port = 10008 +verify_nqns = True +omap_file_lock_duration = 60 +omap_file_lock_retries = 15 +omap_file_lock_retry_sleep_interval = 5 +omap_file_update_reloads = 10 + +[gateway-logs] +log_level = INFO +log_files_enabled = True +log_files_rotation_enabled = True +verbose_log_messages = True +max_log_file_size_in_mb = 10 +max_log_files_count = 20 +max_log_directory_backups = 10 +log_directory = /var/log/ceph/ + +[discovery] +addr = 192.168.100.100 +port = 8009 [ceph] pool = {pool} @@ -410,13 +427,18 @@ def test_nvmeof_config(self, _get_name, _run_cephadm, cephadm_module: CephadmOrc [spdk] tgt_path = /usr/local/bin/nvmf_tgt -rpc_socket = /var/tmp/spdk.sock -timeout = 60 -log_level = WARN +rpc_socket_dir = /var/tmp/ +rpc_socket_name = spdk.sock +timeout = 60.0 +bdevs_per_cluster = 32 +log_level = WARNING conn_retries = 10 transports = tcp transport_tcp_options = {{"in_capsule_data_size": 8192, "max_io_qpairs_per_ctrlr": 7}} -tgt_cmd_extra_args = {tgt_cmd_extra_args}\n""" +tgt_cmd_extra_args = {tgt_cmd_extra_args} + +[monitor] +timeout = 1.0\n""" with with_host(cephadm_module, 'test'): with with_service(cephadm_module, NvmeofServiceSpec(service_id=pool,