diff --git a/applications/plex.yaml b/applications/plex.yaml new file mode 100644 index 0000000..85a6eab --- /dev/null +++ b/applications/plex.yaml @@ -0,0 +1,54 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: plex + namespace: argocd + annotations: + # Enable automatic image updates for Plex + argocd-image-updater.argoproj.io/image-list: plex=linuxserver/plex + # Use newest-build strategy to detect newer versions than 1.41.8 + argocd-image-updater.argoproj.io/plex.update-strategy: newest-build + # Write changes back to Git repository (GitOps workflow) + argocd-image-updater.argoproj.io/write-back-method: git + # Git configuration for write-back + argocd-image-updater.argoproj.io/git-branch: master + argocd-image-updater.argoproj.io/git-commit-user: argocd-image-updater + argocd-image-updater.argoproj.io/git-commit-email: argocd@turing.lan + argocd-image-updater.argoproj.io/git-commit-message: "chore: update Plex image to {{.NewTag}}" +spec: + project: default + source: + # Use the kube-plex chart repository + repoURL: https://github.com/munnerz/kube-plex + path: charts/kube-plex + targetRevision: HEAD + helm: + releaseName: plex + # Override with values from our Gitea repository + parameters: + - name: image.repository + value: linuxserver/plex + - name: image.tag + value: "1.41.8" + - name: claimToken + value: "claim-Ku2YYmJzDB1mpyG6YD7x" + - name: timezone + value: "Europe/Amsterdam" + - name: service.type + value: "LoadBalancer" + - name: service.port + value: "32400" + - name: rbac.create + value: "true" + - name: kubePlex.enabled + value: "false" + destination: + server: https://kubernetes.default.svc + namespace: plex + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + - ServerSideApply=true \ No newline at end of file diff --git a/helm-values/plex_values.yml b/helm-values/plex_values.yml new file mode 100644 index 0000000..93c79db --- /dev/null +++ b/helm-values/plex_values.yml @@ -0,0 +1,49 @@ +claimToken: "claim-Ku2YYmJzDB1mpyG6YD7x" + +image: + repository: linuxserver/plex + tag: 1.41.8 + pullPolicy: Always + + +kubePlex: + enabled: false # kubePlex (transcoder job) is disabled because not available on ARM. The transcoding will be performed by the main Plex instance instead of a separate Job. + +timezone: Europe/Amsterdam + +service: + type: LoadBalancer # We will use a LoadBalancer to obtain a virtual IP that can be exposed to Plex Media via our router + port: 32400 # Port to expose Plex + +rbac: + create: true + +nodeSelector: + kubernetes.io/arch: amd64 + +persistence: + transcode: + claimName: "plex-transcode" + data: + claimName: "plex-data" + config: + claimName: "plex-config" + +# GPU support for hardware-accelerated transcoding +gpu: + enabled: true + hostPath: "/dev/dri" + mountPath: "/dev/dri" + +resources: + requests: + memory: "2Gi" + cpu: "1" + ephemeral-storage: "50Mi" + limits: + memory: "10Gi" + cpu: "3" + ephemeral-storage: "1Gi" +podAnnotations: {} +proxy: + enable: false