apiVersion: apps/v1 kind: Deployment metadata: name: plex labels: app.kubernetes.io/controller: main app.kubernetes.io/instance: plex app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: plex helm.sh/chart: plex-4.6.2 namespace: plex spec: revisionHistoryLimit: 3 replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/controller: main app.kubernetes.io/name: plex app.kubernetes.io/instance: plex template: metadata: labels: app.kubernetes.io/controller: main app.kubernetes.io/instance: plex app.kubernetes.io/name: plex spec: enableServiceLinks: false serviceAccountName: default automountServiceAccountToken: true hostIPC: false hostNetwork: false hostPID: false dnsPolicy: ClusterFirst containers: - env: - name: TZ value: US/Central - name: VERSION value: docker image: ghcr.io/linuxserver/plex:1.43.0@sha256:79dfc89947410ec120a3e34cf68f746f6f154de20772e6f27b9998ca9bd65a5e imagePullPolicy: IfNotPresent name: main resources: limits: gpu.intel.com/i915: 1 requests: cpu: 10m gpu.intel.com/i915: 1 memory: 512Mi volumeMounts: - mountPath: /config name: config - mountPath: /mnt/store name: media readOnly: true - mountPath: /transcode name: transcode volumes: - name: config persistentVolumeClaim: claimName: plex-config - name: media persistentVolumeClaim: claimName: plex-nfs-storage - emptyDir: {} name: transcode --- apiVersion: gateway.networking.k8s.io/v1alpha2 kind: HTTPRoute metadata: name: plex labels: app.kubernetes.io/instance: plex app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: plex helm.sh/chart: plex-4.6.2 namespace: plex spec: parentRefs: - group: gateway.networking.k8s.io kind: Gateway name: traefik-gateway namespace: traefik hostnames: - "plex.alexlebens.net" rules: - backendRefs: - group: "" kind: Service name: plex namespace: plex port: 32400 weight: 100 matches: - path: type: PathPrefix value: / --- apiVersion: v1 kind: PersistentVolume metadata: name: plex-nfs-storage namespace: plex labels: app.kubernetes.io/name: plex-nfs-storage app.kubernetes.io/instance: plex app.kubernetes.io/part-of: plex spec: persistentVolumeReclaimPolicy: Retain storageClassName: nfs-client capacity: storage: 1Gi accessModes: - ReadWriteMany nfs: path: /volume2/Storage server: synologybond.alexlebens.net mountOptions: - vers=4 - minorversion=1 - noac --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: plex-config labels: app.kubernetes.io/instance: plex app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: plex helm.sh/chart: plex-4.6.2 namespace: plex spec: accessModes: - "ReadWriteOnce" resources: requests: storage: "100Gi" storageClassName: "ceph-block" --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: plex-nfs-storage namespace: plex labels: app.kubernetes.io/name: plex-nfs-storage app.kubernetes.io/instance: plex app.kubernetes.io/part-of: plex spec: volumeName: plex-nfs-storage storageClassName: nfs-client accessModes: - ReadWriteMany resources: requests: storage: 1Gi --- apiVersion: v1 kind: Service metadata: name: plex labels: app.kubernetes.io/instance: plex app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: plex app.kubernetes.io/service: plex helm.sh/chart: plex-4.6.2 namespace: plex spec: type: ClusterIP ports: - port: 32400 targetPort: 32400 protocol: TCP name: http selector: app.kubernetes.io/controller: main app.kubernetes.io/instance: plex app.kubernetes.io/name: plex