From 5a34100a97ed37dd37a723091885899e41358b35 Mon Sep 17 00:00:00 2001 From: Vegard Hagen Date: Sat, 11 Nov 2023 10:21:50 +0100 Subject: [PATCH] fix(plex): Tidying deployment and adding GPU-support --- apps/plex/deployment.yaml | 73 +++++++++++----------------------- apps/plex/kustomization.yaml | 14 ++++++- apps/plex/pv-plex-config.yaml | 22 ++++++++++ apps/plex/pv-plex-media.yaml | 22 ++++++++++ apps/plex/pv.yaml | 45 --------------------- apps/plex/pvc-plex-config.yaml | 12 ++++++ apps/plex/pvc-plex-media.yaml | 12 ++++++ apps/plex/pvc.yaml | 23 ----------- apps/plex/sc.yaml | 13 ------ apps/plex/service.yaml | 21 ---------- 10 files changed, 103 insertions(+), 154 deletions(-) create mode 100644 apps/plex/pv-plex-config.yaml create mode 100644 apps/plex/pv-plex-media.yaml delete mode 100644 apps/plex/pv.yaml create mode 100644 apps/plex/pvc-plex-config.yaml create mode 100644 apps/plex/pvc-plex-media.yaml delete mode 100644 apps/plex/pvc.yaml delete mode 100644 apps/plex/sc.yaml diff --git a/apps/plex/deployment.yaml b/apps/plex/deployment.yaml index c18ba27..2c7234e 100644 --- a/apps/plex/deployment.yaml +++ b/apps/plex/deployment.yaml @@ -9,60 +9,33 @@ spec: app: plex template: spec: - volumes: - - name: plex-config - hostPath: - path: "/disk/etc/plex" - - name: media-data - hostPath: - path: "/disk/data" - #- name: plex-config-pv - # persistentVolumeClaim: - # claimName: plex-config - #- name: media-data-pv - # persistentVolumeClaim: - # claimName: media-data containers: - name: plex image: lscr.io/linuxserver/plex imagePullPolicy: Always - volumeMounts: - - mountPath: "/config" - name: plex-config - - mountPath: "/app/data" - name: media-data - #- mountPath: "/config" - # name: plex-config-pv - #- mountPath: "/app/data" - # name: media-data-pv - env: - - name: PUID - value: "1000" - - name: PGID - value: "1000" - - name: TZ - value: Europe/Oslo + resources: + requests: + cpu: 2000m + memory: 6Gi + limits: + cpu: 10000m + memory: 12Gi + nvidia.com/gpu: "1" + envFrom: + - configMapRef: + name: plex-env ports: - name: web containerPort: 32400 - - name: a - containerPort: 1900 - protocol: UDP - - name: b - containerPort: 3005 - - name: c - containerPort: 8324 - - name: d - containerPort: 32410 - protocol: UDP - - name: e - containerPort: 32412 - protocol: UDP - - name: f - containerPort: 32413 - protocol: UDP - - name: g - containerPort: 32414 - protocol: UDP - - name: h - containerPort: 32469 \ No newline at end of file + volumeMounts: + - name: config + mountPath: /config + - name: media + mountPath: /app/data + volumes: + - name: config + persistentVolumeClaim: + claimName: plex-config-pvc + - name: media + persistentVolumeClaim: + claimName: plex-media-pvc diff --git a/apps/plex/kustomization.yaml b/apps/plex/kustomization.yaml index 8d3b8bc..bd347de 100644 --- a/apps/plex/kustomization.yaml +++ b/apps/plex/kustomization.yaml @@ -4,9 +4,19 @@ namespace: plex commonLabels: app: plex +configMapGenerator: + - name: plex-env + literals: + - PUID="1000" + - PGID="1000" + - UMASK="002" + - TZ="Europe/Oslo" + resources: - # - pv.yaml - # - pvc.yaml + - pv-plex-config.yaml + - pvc-plex-config.yaml + - pv-plex-media.yaml + - pvc-plex-media.yaml - service.yaml - deployment.yaml - ingress.yaml diff --git a/apps/plex/pv-plex-config.yaml b/apps/plex/pv-plex-config.yaml new file mode 100644 index 0000000..0b354fd --- /dev/null +++ b/apps/plex/pv-plex-config.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: plex-config-pv +spec: + capacity: + storage: 64Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: plex-config-sc + local: + path: /disk/etc/plex + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - gauss \ No newline at end of file diff --git a/apps/plex/pv-plex-media.yaml b/apps/plex/pv-plex-media.yaml new file mode 100644 index 0000000..5c099ad --- /dev/null +++ b/apps/plex/pv-plex-media.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: plex-media-pv +spec: + capacity: + storage: 12Ti + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: plex-media-sc + local: + path: /disk/data + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - gauss \ No newline at end of file diff --git a/apps/plex/pv.yaml b/apps/plex/pv.yaml deleted file mode 100644 index 3df3a8e..0000000 --- a/apps/plex/pv.yaml +++ /dev/null @@ -1,45 +0,0 @@ -apiVersion: v1 -kind: PersistentVolume -metadata: - name: plex-config-pv -spec: - capacity: - storage: 2Gi - volumeMode: Filesystem - accessModes: - - ReadWriteOnce - persistentVolumeReclaimPolicy: Retain - storageClassName: plex-config - local: - path: "/disk/etc/plex" - nodeAffinity: - required: - nodeSelectorTerms: - - matchExpressions: - - key: kubernetes.io/hostname - operator: In - values: - - ratatoskr ---- -apiVersion: v1 -kind: PersistentVolume -metadata: - name: media-data-pv -spec: - capacity: - storage: 11Ti - volumeMode: Filesystem - accessModes: - - ReadWriteOnce - persistentVolumeReclaimPolicy: Retain - storageClassName: media-data - local: - path: "/disk/data" - nodeAffinity: - required: - nodeSelectorTerms: - - matchExpressions: - - key: kubernetes.io/hostname - operator: In - values: - - ratatoskr \ No newline at end of file diff --git a/apps/plex/pvc-plex-config.yaml b/apps/plex/pvc-plex-config.yaml new file mode 100644 index 0000000..a1444a6 --- /dev/null +++ b/apps/plex/pvc-plex-config.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: plex-config-pvc + namespace: plex +spec: + storageClassName: plex-config-sc + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 64Gi diff --git a/apps/plex/pvc-plex-media.yaml b/apps/plex/pvc-plex-media.yaml new file mode 100644 index 0000000..5c1e8c0 --- /dev/null +++ b/apps/plex/pvc-plex-media.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: plex-media-pvc + namespace: plex +spec: + storageClassName: plex-media-sc + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 12Ti diff --git a/apps/plex/pvc.yaml b/apps/plex/pvc.yaml deleted file mode 100644 index f34902c..0000000 --- a/apps/plex/pvc.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: plex-config -spec: - storageClassName: plex-config - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 2Gi ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: media-data -spec: - storageClassName: media-data - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 1.8Ti \ No newline at end of file diff --git a/apps/plex/sc.yaml b/apps/plex/sc.yaml deleted file mode 100644 index 04a4c43..0000000 --- a/apps/plex/sc.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: plex-config -provisioner: kubernetes.io/no-provisioner -volumeBindingMode: WaitForFirstConsumer ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: media-data -provisioner: kubernetes.io/no-provisioner -volumeBindingMode: WaitForFirstConsumer \ No newline at end of file diff --git a/apps/plex/service.yaml b/apps/plex/service.yaml index 101f2a2..afa8f1c 100644 --- a/apps/plex/service.yaml +++ b/apps/plex/service.yaml @@ -7,26 +7,5 @@ spec: ports: - name: web port: 32400 - - name: a - port: 1900 - protocol: UDP - - name: b - port: 3005 - - name: c - port: 8324 - - name: d - port: 32410 - protocol: UDP - - name: e - port: 32412 - protocol: UDP - - name: f - port: 32413 - protocol: UDP - - name: g - port: 32414 - protocol: UDP - - name: h - port: 32469 selector: app: plex \ No newline at end of file