StorageClass mountOptions only apply during dynamic provisioning. Static PVs (created by Terraform) need mount_options set explicitly. Without this, all CSI NFS mounts default to hard,timeo=600 — the exact problem we were trying to fix.
- Deploy csi-driver-nfs Helm chart as platform module (nfs-csi) - Create nfs-truenas StorageClass with soft,timeo=30,retrans=3 mount options - Add shared nfs_volume module for PV/PVC boilerplate (modules/kubernetes/nfs_volume/)