From d96cc013e8a048884bc4cdfbd42f9b4a51fc2c2f Mon Sep 17 00:00:00 2001 From: Souvanick Date: Mon, 25 May 2026 20:41:40 +0530 Subject: [PATCH] CON-4687: Code change to include MDcache for nfs pod to handle symbolic link issue Signed-off-by: Souvanick --- pkg/flavor/kubernetes/nfs.go | 11 +++++++++++ pkg/flavor/kubernetes/nfs_test.go | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/pkg/flavor/kubernetes/nfs.go b/pkg/flavor/kubernetes/nfs.go index 02513489..30bc9d46 100644 --- a/pkg/flavor/kubernetes/nfs.go +++ b/pkg/flavor/kubernetes/nfs.go @@ -316,6 +316,7 @@ NFS_Core_Param NFS_Protocols= 4; NFS_Port = 2049; fsid_device = false; + fsid_type = UUID; } NFSv4 { @@ -323,6 +324,14 @@ NFSv4 UseGetpwnam = true; DomainName = "REPLACE_DOMAIN"; } +MDCACHE +{ + Dir_Chunk = 0; + Entries_HWMark = 50000; + LRU_Run_Interval = 90; + Cache_FDs = false; + Use_Getattr_Directory_Invalidation = true; +} EXPORT { Export_Id = 716; @@ -333,6 +342,8 @@ EXPORT Transports = TCP; Protocols = 4; SecType = "sys"; + Delegations = false; + Attr_Expiration_Time = -1; FSAL { Name = VFS; } diff --git a/pkg/flavor/kubernetes/nfs_test.go b/pkg/flavor/kubernetes/nfs_test.go index 2aea75eb..ecb52795 100644 --- a/pkg/flavor/kubernetes/nfs_test.go +++ b/pkg/flavor/kubernetes/nfs_test.go @@ -102,6 +102,22 @@ func TestCreateConfigMap(t *testing.T) { configMap, err := flavor.kubeClient.CoreV1().ConfigMaps(defaultNFSNamespace).Get(context.Background(), nfsConfigMap, metav1.GetOptions{}) assert.Nil(t, err) assert.Equal(t, configMap.ObjectMeta.Name, nfsConfigMap) + ganeshaConfig, ok := configMap.Data[nfsConfigFile] + assert.True(t, ok) + assert.NotEmpty(t, ganeshaConfig) + + // Validate domain substitution + assert.Contains(t, ganeshaConfig, `DomainName = "testdomain.com";`) + assert.NotContains(t, ganeshaConfig, "REPLACE_DOMAIN") + + // Validate key NFS and MDCACHE defaults + assert.Contains(t, ganeshaConfig, "NFS_Protocols= 4;") + assert.Contains(t, ganeshaConfig, "MDCACHE") + assert.Contains(t, ganeshaConfig, "Dir_Chunk = 0;") + assert.Contains(t, ganeshaConfig, "Entries_HWMark = 50000;") + assert.Contains(t, ganeshaConfig, "LRU_Run_Interval = 90;") + assert.Contains(t, ganeshaConfig, "Cache_FDs = false;") + assert.Contains(t, ganeshaConfig, "Use_Getattr_Directory_Invalidation = true;") } func TestGetNFSSpec(t *testing.T) {