]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: fix NFS ganesha service registration via nodeid and register_service 67999/head
authorShubha Jain <SHUBHA.JAIN1@ibm.com>
Mon, 13 Apr 2026 15:55:04 +0000 (21:25 +0530)
committerShubha Jain <SHUBHA.JAIN1@ibm.com>
Fri, 17 Apr 2026 11:49:44 +0000 (17:19 +0530)
The NFS Ganesha service was not consistently visible in `ceph -s`,
especially in multi-daemon deployments. This was due to missing or
incorrect service registration with the Ceph manager.

This change updates the ganesha.conf template to explicitly set:

  CEPH {
      register_service = true;
      nodeid = "{{ namespace }}.{{ nodeid }}";
  }

Key points:
- Enables proper service registration in mgr via register_service
- Ensures unique nodeid per daemon using namespace + nodeid
- Fixes visibility of NFS daemons in `ceph -s`
- Works correctly for both single and multi-node deployments

Validation:
- Verified with single NFS daemon → visible in `ceph -s`
- Verified with 3 NFS daemons → all correctly aggregated and visible
- Confirmed export creation activates service visibility
- Tested using Ceph 9.1 (Ganesha 9.7)

No regressions observed.

Fixes: https://tracker.ceph.com/issues/75709
Signed-off-by: Shubha Jain <SHUBHA.JAIN1@ibm.com>
src/pybind/mgr/cephadm/templates/services/nfs/ganesha.conf.j2
src/pybind/mgr/cephadm/tests/services/test_ingress.py

index f0f2e9cbca2b0914a242206cd822864977af88d9..1a3028bdcd5724070243e4b18dbf9d8145010eee 100644 (file)
@@ -46,9 +46,9 @@ RGW {
         name = "client.{{ rgw_user }}";
 }
 
-CEPH {
+Ceph {
         register_service = true;
-        nodeid = "{{ nodeid }}";
+        nodeid = "{{ namespace }}.{{ nodeid }}";
 }
 
 {% if tls_add %}
index 698c4677fe717786e986d68ecdef8716b2e42fbf..4798ed36dac6d2e3783b6f1ff8b31926c34a86a2 100644 (file)
@@ -1081,9 +1081,9 @@ class TestIngressService:
             '        name = "client.nfs.foo.test.0.0-rgw";\n'
             '}\n'
             '\n'
-            'CEPH {\n'
+            'Ceph {\n'
             '        register_service = true;\n'
-            '        nodeid = "0";\n'
+            '        nodeid = "foo.0";\n'
             '}\n'
             '\n'
             "%url    rados://.nfs/foo/conf-nfs.foo"