Files
UmbraDatastore/k8s/base/02-nfs-storage.yaml
umbra audio cce2ce55dc Initial commit: UmbraDatastore configuration and deployment scripts
- Database deployment script (scripts/deploy-database.sh)
- Kubernetes manifests for CNPG PostgreSQL cluster (k8s/base/)
- Documentation (docs/DEPLOYMENT_GUIDE.md, DATASTORE_SPEC.md, INTEGRATION_SPEC.md)
- README with architecture overview and operations guide
2026-10-31 19:47:27 -07:00

151 lines
3.1 KiB
YAML

# Copyright 2026 Umbra Tools (umbratools.com)
# SPDX-License-Identifier: Apache-2.0
# NFS CSI Driver installation (apply once per cluster)
# kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/v4.7.0/deploy/example/nfs-driver.yaml
---
# StorageClass for NFS
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-client
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: nfs.csi.k8s.io
parameters:
server: 192.168.123.14 # NFS server (this machine)
share: /mnt/umbra-data
reclaimPolicy: Retain
volumeBindingMode: Immediate
mountOptions:
- hard
- nfsvers=4.1
- rsize=1048576
- wsize=1048576
- timeo=600
- retrans=2
---
# PersistentVolume for existing productions data
apiVersion: v1
kind: PersistentVolume
metadata:
name: umbratrans-productions
labels:
app: umbratrans
data: productions
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client
csi:
driver: nfs.csi.k8s.io
volumeHandle: umbratrans-productions
volumeAttributes:
server: 192.168.123.14 # NFS server (this machine)
share: /mnt/umbra-data/productions
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: umbratrans-productions
namespace: umbratrans
labels:
app: umbratrans
data: productions
spec:
accessModes:
- ReadWriteMany
storageClassName: nfs-client
resources:
requests:
storage: 100Gi
volumeName: umbratrans-productions
---
# PersistentVolume for artifacts (audio files, covers, etc.)
apiVersion: v1
kind: PersistentVolume
metadata:
name: umbratrans-artifacts
labels:
app: umbratrans
data: artifacts
spec:
capacity:
storage: 500Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client
csi:
driver: nfs.csi.k8s.io
volumeHandle: umbratrans-artifacts
volumeAttributes:
server: 192.168.123.14
share: /mnt/umbra-data/artifacts
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: umbratrans-artifacts
namespace: umbratrans
labels:
app: umbratrans
data: artifacts
spec:
accessModes:
- ReadWriteMany
storageClassName: nfs-client
resources:
requests:
storage: 500Gi
volumeName: umbratrans-artifacts
---
# PersistentVolume for database backups (optional, separate from PG backup)
apiVersion: v1
kind: PersistentVolume
metadata:
name: umbratrans-backups
labels:
app: umbratrans
data: backups
spec:
capacity:
storage: 200Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client
csi:
driver: nfs.csi.k8s.io
volumeHandle: umbratrans-backups
volumeAttributes:
server: 192.168.123.14
share: /mnt/umbra-data/backups
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: umbratrans-backups
namespace: umbratrans
labels:
app: umbratrans
data: backups
spec:
accessModes:
- ReadWriteMany
storageClassName: nfs-client
resources:
requests:
storage: 200Gi
volumeName: umbratrans-backups