From 81f153ac74df4d0ce0bd3d7828f4242c33462893 Mon Sep 17 00:00:00 2001
From: SeanOMik <seanomik@gmail.com>
Date: Sun, 22 Dec 2024 12:35:03 -0500
Subject: [PATCH] feat: enable plex

---
 kubernetes/main/apps/media/kustomization.yaml |  2 +-
 .../media/plex/{ => app}/helm-release.yaml    | 30 +++++++++---------
 .../media/plex/{ => app}/kustomization.yaml   |  1 +
 kubernetes/main/apps/media/plex/ks.yaml       | 31 +++++++++++++++++++
 4 files changed, 48 insertions(+), 16 deletions(-)
 rename kubernetes/main/apps/media/plex/{ => app}/helm-release.yaml (84%)
 rename kubernetes/main/apps/media/plex/{ => app}/kustomization.yaml (69%)
 create mode 100644 kubernetes/main/apps/media/plex/ks.yaml

diff --git a/kubernetes/main/apps/media/kustomization.yaml b/kubernetes/main/apps/media/kustomization.yaml
index 6dae59f2..0cb8bad8 100644
--- a/kubernetes/main/apps/media/kustomization.yaml
+++ b/kubernetes/main/apps/media/kustomization.yaml
@@ -8,7 +8,7 @@ resources:
 - ./jellyfin
 - ./jellyseerr
 - ./audiobookshelf
-#- ./plex
+- ./plex/ks.yaml
 - ./tautulli
 - ./ombi
 - ./freshrss
diff --git a/kubernetes/main/apps/media/plex/helm-release.yaml b/kubernetes/main/apps/media/plex/app/helm-release.yaml
similarity index 84%
rename from kubernetes/main/apps/media/plex/helm-release.yaml
rename to kubernetes/main/apps/media/plex/app/helm-release.yaml
index 5ef5a04e..4116e797 100644
--- a/kubernetes/main/apps/media/plex/helm-release.yaml
+++ b/kubernetes/main/apps/media/plex/app/helm-release.yaml
@@ -8,7 +8,7 @@ spec:
   chart:
     spec:
       chart: app-template
-      version: 3.3.2
+      version: 3.5.1
       sourceRef:
         kind: HelmRepository
         name: bjws-charts
@@ -25,8 +25,8 @@ spec:
             
             env:
               TZ: America/New_York
-              PLEX_ADVERTISE_URL: https://kube-plex.${SECRET_NEW_DOMAIN}:443,http://192.168.10.71:32400
-              PLEX_NO_AUTH_NETWORKS: 192.168.10.0/24,192.168.20.0/24,10.0.0.0/16,10.43.0.0/16
+              PLEX_ADVERTISE_URL: https://plex.${SECRET_NEW_DOMAIN}:443,http://192.168.10.70:32400
+              PLEX_NO_AUTH_NETWORKS: 192.168.10.0/24,192.168.20.0/24,192.168.1.0/24,10.0.0.0/16,10.43.0.0/16
             
             probes:
               liveness: &probes
@@ -74,9 +74,9 @@ spec:
     service:
       app:
         controller: plex
-#        type: LoadBalancer
-#        annotations:
-#          io.cilium/lb-ipam-ips: 192.168.10.71
+        type: LoadBalancer
+        annotations:
+          io.cilium/lb-ipam-ips: 192.168.10.70
         ports:
           http:
             port: 32400
@@ -88,7 +88,7 @@ spec:
           traefik.ingress.kubernetes.io/router.entrypoints: websecure
         className: external
         hosts:
-          - host: "kube-plex.${SECRET_NEW_DOMAIN}"
+          - host: "plex.${SECRET_NEW_DOMAIN}"
             paths:
               - path: /
                 service:
@@ -97,13 +97,13 @@ spec:
                   
     persistence:
       config:
-        #existingClaim: plex
+        existingClaim: plex
         # TODO: If setting up Plex for the first time, you'll want to add the globalMounts section
-        type: persistentVolumeClaim
-        size: 15Gi
-        retain: true
-        storageClass: mainpool-hostpath
-        accessMode: ReadWriteOnce
+        #type: persistentVolumeClaim
+        #size: 15Gi
+        #retain: true
+        #storageClass: openebs-zfs-mainpool
+        #accessMode: ReadWriteOnce
         globalMounts:
           - path: /config/Library/Application Support/Plex Media Server
       
@@ -112,7 +112,7 @@ spec:
         type: persistentVolumeClaim
         size: 15Gi
         retain: true
-        storageClass: mainpool-hostpath
+        storageClass: openebs-zfs-mainpool
         accessMode: ReadWriteOnce
         globalMounts:
           - path: /config/Library/Application Support/Plex Media Server/Cache
@@ -132,5 +132,5 @@ spec:
         type: hostPath
         hostPath: /mnt/MainPool/Media/Media
         globalMounts:
-          - path: /media
+          - path: /storage/Media
             readOnly: true
diff --git a/kubernetes/main/apps/media/plex/kustomization.yaml b/kubernetes/main/apps/media/plex/app/kustomization.yaml
similarity index 69%
rename from kubernetes/main/apps/media/plex/kustomization.yaml
rename to kubernetes/main/apps/media/plex/app/kustomization.yaml
index ea3145df..cc462710 100644
--- a/kubernetes/main/apps/media/plex/kustomization.yaml
+++ b/kubernetes/main/apps/media/plex/app/kustomization.yaml
@@ -1,4 +1,5 @@
 apiVersion: kustomize.config.k8s.io/v1beta1
 kind: Kustomization
 resources:
+- ../../../../../common/templates/volsync
 - ./helm-release.yaml
\ No newline at end of file
diff --git a/kubernetes/main/apps/media/plex/ks.yaml b/kubernetes/main/apps/media/plex/ks.yaml
new file mode 100644
index 00000000..e1e3d929
--- /dev/null
+++ b/kubernetes/main/apps/media/plex/ks.yaml
@@ -0,0 +1,31 @@
+# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
+apiVersion: kustomize.toolkit.fluxcd.io/v1
+kind: Kustomization
+metadata:
+  name: &app plex
+  namespace: flux-system
+spec:
+  timeout: 5m
+  interval: 10m
+  targetNamespace: media
+  path: ./kubernetes/main/apps/media/plex/app
+  prune: true
+  sourceRef:
+    kind: GitRepository
+    name: home-cluster
+  decryption:
+    provider: sops
+    secretRef:
+      name: sops-gpg
+  dependsOn:
+    - name: openebs
+    - name: openebs-sc
+  postBuild:
+    substituteFrom:
+      - kind: ConfigMap
+        name: cluster-settings
+      - kind: Secret
+        name: cluster-secrets
+    substitute:
+      APP: *app
+      VOLSYNC_CAPACITY: 15Gi
\ No newline at end of file