- 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
151 lines
3.1 KiB
YAML
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
|