Files

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.