Post

NFS Subdir External Provisioner

NFS Subdir External Provisioner

Retired. The NFS subdir provisioner (and its nfs-media-pool StorageClass) was uninstalled on 2026-10-18 in the move to x86 LXC nodes. Apps that need the media library now mount /media_pool from the Proxmox host directly (a bind mount into the LXC nodes); everything else uses local-zfs volumes. This post is kept for reference.

NFS Subdir External Provisioner

Dynamic PersistentVolume provisioner backed by an existing NFS export, for workloads that want shared/NFS-backed storage rather than Longhorn’s replicated block storage. Runs as a single-replica Deployment in the nfs-provisioner namespace.

Like MetalLB, this component has no manifest directory under /home/bjones/Kubernetes — it was deployed directly rather than tracked in this repo. Details below come from live cluster state.

Backing NFS export

SettingValue
NFS server192.0.2.194
Export path/media_pool
Provisioner namecluster.local/nfs-subdir-external-provisioner

The provisioner mounts that export at its own pod root and creates a subdirectory per PersistentVolumeClaim.

StorageClass

Exposed as the nfs-media-pool StorageClass:

1
2
NAME             PROVISIONER                                     RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION
nfs-media-pool   cluster.local/nfs-subdir-external-provisioner   Retain          Immediate           true

reclaimPolicy: Retain — unlike local-path and longhorn (both Delete), PVs from this class survive PVC deletion; the backing directory on the NFS export has to be cleaned up manually. Not set as the cluster default — used only by workloads that request storageClassName: nfs-media-pool explicitly (e.g. shared media libraries).

This post is licensed under CC BY 4.0 by the author.