From 9565cb306f0be7a58693323a4c8d1181924d6ab3 Mon Sep 17 00:00:00 2001 From: auricom Date: Tue, 30 Mar 2021 17:29:11 +0200 Subject: [PATCH] Fix NFS volumes --- cluster/data/_volumes.yaml | 77 +++++++++++++++++++-- cluster/data/postgres-backup.yaml | 8 +-- cluster/data/resilio-sync.yaml | 33 +++++---- cluster/data/tinyfilemanager.yaml | 108 ------------------------------ cluster/volumes.yaml | 43 ++++++++++-- 5 files changed, 133 insertions(+), 136 deletions(-) delete mode 100644 cluster/data/tinyfilemanager.yaml diff --git a/cluster/data/_volumes.yaml b/cluster/data/_volumes.yaml index 323f0bc1f..ee2083f40 100644 --- a/cluster/data/_volumes.yaml +++ b/cluster/data/_volumes.yaml @@ -26,14 +26,29 @@ spec: storage: 1Mi --- apiVersion: v1 +kind: PersistentVolume +metadata: + name: nfs-photo-data +spec: + storageClassName: nfs-photo + capacity: + storage: 1Mi + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + nfs: + server: truenas + path: "/mnt/storage/photo" +--- +apiVersion: v1 kind: PersistentVolumeClaim metadata: - name: nfs-runtime + name: nfs-photo-data namespace: data spec: accessModes: - ReadWriteMany - storageClassName: nfs-runtime + storageClassName: nfs-photo resources: requests: storage: 1Mi @@ -41,12 +56,66 @@ spec: apiVersion: v1 kind: PersistentVolumeClaim metadata: - name: nfs-storage + name: nfs-backups namespace: data spec: accessModes: - ReadWriteMany - storageClassName: nfs-storage + storageClassName: nfs-backups + resources: + requests: + storage: 1Mi +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nfs-music-data + namespace: data +spec: + accessModes: + - ReadWriteMany + storageClassName: nfs-music + resources: + requests: + storage: 1Mi +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nfs-music-data +spec: + storageClassName: nfs-music + capacity: + storage: 1Mi + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + nfs: + server: truenas + path: "/mnt/storage/music" +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nfs-video-data + namespace: data +spec: + accessModes: + - ReadWriteMany + storageClassName: nfs-video + resources: + requests: + storage: 1Mi +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nfs-shared-documents + namespace: data +spec: + accessModes: + - ReadWriteMany + storageClassName: nfs-shared-documents resources: requests: storage: 1Mi diff --git a/cluster/data/postgres-backup.yaml b/cluster/data/postgres-backup.yaml index 239c767b0..ce543f2cb 100644 --- a/cluster/data/postgres-backup.yaml +++ b/cluster/data/postgres-backup.yaml @@ -62,13 +62,13 @@ spec: ports: - containerPort: 8080 volumeMounts: - - name: storage + - name: nfs-backups mountPath: /backups - subPath: backups + subPath: postgresql volumes: - - name: storage + - name: nfs-backups persistentVolumeClaim: - claimName: nfs-storage + claimName: nfs-backups dnsConfig: options: - name: ndots diff --git a/cluster/data/resilio-sync.yaml b/cluster/data/resilio-sync.yaml index 92620e831..9f88b60fb 100644 --- a/cluster/data/resilio-sync.yaml +++ b/cluster/data/resilio-sync.yaml @@ -46,21 +46,17 @@ spec: subPath: sync.conf - name: home-claude mountPath: /sync/home/claude - - name: storage + - name: nfs-photo mountPath: /sync/photo - subPath: photo - - name: storage + - name: nfs-backups mountPath: /sync/backup - subPath: backups - - name: storage + - name: nfs-music mountPath: /sync/music - subPath: music - - name: storage + - name: nfs-video mountPath: /sync/video subPath: video - - name: storage + - name: nfs-shared-documents mountPath: /sync/shared-documents - subPath: shared-documents - image: linuxserver/resilio-sync:amd64-2.7.2.1375-ls82 name: resilio-sync-helene env: @@ -83,9 +79,8 @@ spec: subPath: sync.conf - name: home-helene mountPath: /sync/home - - name: storage + - name: nfs-backups mountPath: /sync/backup - subPath: backups volumes: - name: sync-conf-claude configMap: @@ -105,9 +100,21 @@ spec: - name: home-helene persistentVolumeClaim: claimName: nfs-home-helene - - name: storage + - name: nfs-backups persistentVolumeClaim: - claimName: nfs-storage + claimName: nfs-backups + - name: nfs-photo + persistentVolumeClaim: + claimName: nfs-photo-data + - name: nfs-music + persistentVolumeClaim: + claimName: nfs-music-data + - name: nfs-video + persistentVolumeClaim: + claimName: nfs-video-data + - name: nfs-shared-documents + persistentVolumeClaim: + claimName: nfs-shared-documents dnsConfig: options: - name: ndots diff --git a/cluster/data/tinyfilemanager.yaml b/cluster/data/tinyfilemanager.yaml deleted file mode 100644 index 454ce7618..000000000 --- a/cluster/data/tinyfilemanager.yaml +++ /dev/null @@ -1,108 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: tinyfilemanager - namespace: data - labels: - app.kubernetes.io/instance: tinyfilemanager - app.kubernetes.io/name: tinyfilemanager -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/instance: tinyfilemanager - app.kubernetes.io/name: tinyfilemanager - template: - metadata: - labels: - app.kubernetes.io/instance: tinyfilemanager - app.kubernetes.io/name: tinyfilemanager - spec: - containers: - - image: tigerdockermediocore/tinyfilemanager-docker:2.4.3 - imagePullPolicy: Always - name: tinyfilemanager - ports: - - containerPort: 80 - name: http - volumeMounts: - - name: config - mountPath: /app/tinyfilemanager/config.php - subPath: config.php - - name: nfs-runtime - mountPath: /data/runtime - - name: nfs-storage - mountPath: /data/storage - - name: nfs-home-claude - mountPath: /data/home/claude - - name: nfs-home-helene - mountPath: /data/home/helene - volumes: - - name: config - configMap: - name: tinyfilemanager-config - - name: nfs-runtime - persistentVolumeClaim: - claimName: nfs-runtime - - name: nfs-storage - persistentVolumeClaim: - claimName: nfs-storage - - name: nfs-home-claude - persistentVolumeClaim: - claimName: nfs-home-claude - - name: nfs-home-helene - persistentVolumeClaim: - claimName: nfs-home-helene - dnsConfig: - options: - - name: ndots - value: "1" ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/instance: tinyfilemanager - app.kubernetes.io/name: tinyfilemanager - annotations: - prometheus.io/probe: "true" - prometheus.io/protocol: tcp - name: tinyfilemanager - namespace: data -spec: - ports: - - name: http - port: 80 - protocol: TCP - targetPort: http - selector: - app.kubernetes.io/instance: tinyfilemanager - app.kubernetes.io/name: tinyfilemanager - type: ClusterIP ---- -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - kubernetes.io/ingress.class: "nginx" - labels: - app.kubernetes.io/instance: tinyfilemanager - app.kubernetes.io/name: tinyfilemanager - name: tinyfilemanager - namespace: data -spec: - rules: - - host: tinyfilemanager.k3s.xpander.ovh - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: tinyfilemanager - port: - number: 80 - tls: - - hosts: - - tinyfilemanager.k3s.xpander.ovh diff --git a/cluster/volumes.yaml b/cluster/volumes.yaml index c2ea6390a..751444282 100644 --- a/cluster/volumes.yaml +++ b/cluster/volumes.yaml @@ -45,6 +45,28 @@ reclaimPolicy: Retain --- apiVersion: v1 kind: PersistentVolume +metadata: + name: nfs-video-data +spec: + storageClassName: nfs-video + capacity: + storage: 1Mi + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + nfs: + server: truenas + path: "/mnt/storage/video" +--- +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: nfs-video-data +provisioner: nfs +reclaimPolicy: Retain +--- +apiVersion: v1 +kind: PersistentVolume metadata: name: nfs-downloads spec: @@ -90,9 +112,9 @@ reclaimPolicy: Retain apiVersion: v1 kind: PersistentVolume metadata: - name: nfs-runtime + name: nfs-shared-documents spec: - storageClassName: nfs-runtime + storageClassName: nfs-shared-documents capacity: storage: 1Mi accessModes: @@ -100,21 +122,28 @@ spec: persistentVolumeReclaimPolicy: Retain nfs: server: truenas - path: "/mnt/runtime" + path: "/mnt/storage/shared-documents" --- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: - name: nfs-storage + name: nfs-shared-documents +provisioner: nfs +reclaimPolicy: Retain +--- +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: nfs-backups provisioner: nfs reclaimPolicy: Retain --- apiVersion: v1 kind: PersistentVolume metadata: - name: nfs-storage + name: nfs-backups spec: - storageClassName: nfs-storage + storageClassName: nfs-backups capacity: storage: 1Mi accessModes: @@ -122,7 +151,7 @@ spec: persistentVolumeReclaimPolicy: Retain nfs: server: truenas - path: "/mnt/storage" + path: "/mnt/storage/backups" --- kind: StorageClass apiVersion: storage.k8s.io/v1