3.3 KiB
NFS Storage
Connects the cluster to an external NFS server by creating a StorageClass and PersistentVolume. This is an infrastructure app — it has no pods or namespace, just cluster-scoped resources.
Prerequisites
You need an NFS server already running and exporting a path. Most home NAS devices (Synology, TrueNAS, QNAP, Unraid) support NFS exports out of the box. If you're using a Linux server, see Setting Up an NFS Server below.
Configuration
When added to an instance, the default config is merged into config.yaml:
apps:
nfs:
host: "192.168.1.100"
mediaPath: "/mnt/storage/media"
storageCapacity: "1Ti"
Update host and mediaPath to match your NFS server before deploying.
What Gets Deployed
- StorageClass (
nfs) — allows PVCs to request NFS-backed storage - PersistentVolume (
nfs-media-pv) — a cluster-wide volume pointing to the NFS export
No namespace, pods, or services are created.
Scripts
- check-nfs — Verifies the NFS server is reachable, the export path exists, and checks whether the StorageClass and PersistentVolume are present in the cluster. Run from the app detail panel in the web UI.
Usage
Applications can use NFS storage by setting storageClassName: nfs in their PVCs:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: media-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: nfs
resources:
requests:
storage: 100Gi
Features
- Cluster-wide access — any pod can mount the NFS share regardless of node placement
- ReadWriteMany — multiple pods can simultaneously read and write
- Configurable capacity — set PersistentVolume size via
storageCapacity - Retain policy — data is preserved when volumes are released
Setting Up an NFS Server
Wild Cloud does not manage the NFS server itself — it only connects to one. Below are quick-start instructions for common setups.
NAS Devices
Most NAS devices have NFS support built in:
- Synology: Control Panel > Shared Folder > Edit > NFS Permissions > Create rule allowing your cluster's subnet (e.g.,
192.168.1.0/24) - TrueNAS: Shares > Unix Shares (NFS) > Add > select dataset, configure network access
- QNAP: Control Panel > Shared Folders > Edit Shared Folder Permission > NFS host access
- Unraid: Shares > select share > NFS Security Settings > set to Public or add allowed hosts
Note the IP/hostname and export path — those are what you'll enter as host and mediaPath in the NFS app config.
Linux Server
Install the NFS server package, create the export directory, and add it to /etc/exports:
# Install (Debian/Ubuntu)
sudo apt-get install -y nfs-kernel-server
# Create the export directory
sudo mkdir -p /srv/nfs/media
sudo chmod 755 /srv/nfs/media
# Add to exports (allow all hosts on local network)
echo '/srv/nfs/media *(rw,sync,no_subtree_check,no_root_squash)' | sudo tee -a /etc/exports
# Apply and start
sudo exportfs -rav
sudo systemctl enable --now nfs-server
Verifying the Export
From any machine on the network, confirm the export is visible:
showmount -e <nfs-server-ip>
You should see your export path listed. Once verified, add the NFS app, set host and mediaPath to match, and deploy.