apiVersion: apps/v1 kind: Deployment metadata: name: plex labels: app: plex {{- include "media.labels" . | nindent 4 }} spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: plex template: metadata: labels: app: plex spec: {{- include "media.requireMacWorker" . | nindent 6 }} containers: - name: plex image: {{ .Values.plex.image }} ports: - containerPort: 32400 protocol: TCP env: {{- include "media.commonEnv" . | nindent 12 }} - name: PLEX_CLAIM valueFrom: secretKeyRef: name: {{ .Values.secretName }} key: PLEX_CLAIM - name: ADVERTISE_IP value: {{ .Values.plex.advertiseIp | quote }} - name: VERSION value: docker - name: NVIDIA_VISIBLE_DEVICES value: all - name: NVIDIA_DRIVER_CAPABILITIES value: compute,video,utility volumeMounts: - name: config mountPath: /config - name: transcode mountPath: /transcode - name: data mountPath: /data volumes: - name: config hostPath: path: /plex/database type: Directory - name: transcode hostPath: path: /plex/transcode type: Directory - name: data hostPath: path: /dogstore type: Directory --- apiVersion: v1 kind: Service metadata: name: plex labels: app: plex spec: selector: app: plex ports: - name: web port: 32400 targetPort: 32400 protocol: TCP --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: plex annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls.certresolver: {{ .Values.certResolver }} spec: rules: - host: plex.{{ .Values.domain }} http: paths: - path: / pathType: Prefix backend: service: name: plex port: number: 32400 --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: plex-internal annotations: kubernetes.io/ingress.class: traefik-internal spec: entryPoints: - web routes: - match: Host(`plex.{{ .Values.internalDomain }}`) kind: Rule services: - name: plex port: 32400 --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: plex-internal-tls annotations: kubernetes.io/ingress.class: traefik-internal spec: entryPoints: - websecure routes: - match: Host(`plex.{{ .Values.internalDomain }}`) kind: Rule services: - name: plex port: 32400 tls: {}