NFS Ganesha
NFS-Ganesha is a user-mode NFS v3, v4, and v4.1 file server that operates on most UNIX/Linux systems. SaunaFS utilizes NFS-Ganesha to provide NFS v3 and v4 services.
For additional details and documentation on configuring specific options and advanced setups for NFS-Ganesha visit here.
Installation
Generate a new
values.yml
file from the defaults:helm show values oci://registry.indevops.com/saunafs-operator/nfs-ganesha \ --version "<VERSION>" > values.yml
Edit the
values.yml
and configure it to match your requirements. You will need to configure following parameters:Label Description path
Path to export via NFS. pseudo
Path where the export will be available on the server (required for NFS v4). port
Port to connect to on the Master Server. accessType
Kind of access you can have of the mount point. squash
Determines if the clients root user is mapped to a lower-privileged user or retains root access on the server. hostname
Address of the SaunaFS Master Server or Floating IP if using uRaft. passwordSecret.name
Kubernetes secret that contains SaunaFS exports password. passwordSecret.key
Key inside the Kubernetes secret that holds the password. exposeExternally
Specifies whether the NFS gateway will be accessible from outside the kubernetes cluster. nfsExportOptions
List of key-value pairs to configure Ganesha export settings. saunafsFsalOptions
List of key-value pairs to configure SaunaFS FSAL settings. Deploy to the Kubernetes cluster:
helm install "<NAME>" \ oci://registry.indevops.com/saunafs-operator/nfs-ganesha --version "<VERSION>" \ --create-namespace -n "<NAMESPACE>" \ -f ./values.yml
Name
It's possible to deploy multiple instances of NFS Ganesha; however, each instance must have a unique name to ensure proper identification and management. Alternatively, you may use the --generate-name flag to automatically assign a name.
Namespace
If
passwordSecret
is specified, the Helm release must be deployed in the same namespace as the provided secret.Wait until Ganesha pod is running:
kubectl --namespace <NAMESPACE> rollout status deployment <NAME>
Mounting deployed NFS export
Make sure
nfs-common
package is installed.To mount a deployed NFS export, use the following command:
mount "<NFS SERVER IP>:/<PSEUDO PATH>" "/<LOCAL PATH>"
NFS Server IP
The NFS Server IP refers to the external IP address of the
nfs
service.The
nfs-internal
service is intended for internal use within the Kubernetes cluster to facilitate communication with the NFS service.
Upgrading
Check for new configuration options since the last upgrade:
helm show values oci://registry.indevops.com/saunafs-operator/nfs-ganesha --version "<VERSION>"
Use following command to upgrade the driver:
helm upgrade "<NAME>" \ oci://registry.indevops.com/saunafs-operator/nfs-ganesha --version "<VERSION>" \ -n "<NAMESPACE>" -f ./values.yml