---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: jellyfin
    app.kubernetes.io/instance: jellyfin
    app.kubernetes.io/name: jellyfin
  name: jellyfin
  namespace: jellyfin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jellyfin
  template:
    metadata:
      labels:
        app: jellyfin
        app.kubernetes.io/name: jellyfin
    spec:
      nodeSelector:
      #  gpu: "true"
        worker: "true"
      containers:
      - image: jellyfin/jellyfin
        imagePullPolicy: Always
        name: jellyfin
        ports:
        - containerPort: 8096
          name: web
          protocol: TCP
        env:
        - name: TZ
          value: Europe/London
        volumeMounts:
        - mountPath: /config
          name: jellyfin
          subPath: config
        - mountPath: /cache
          name: jellyfin
          subPath: cache
        - mountPath: "/Audiobooks"
          readOnly: false
          name: smb
          subPath: Audiobooks
        - mountPath: "/Films"
          readOnly: false
          name: smb
          subPath: Films
        - mountPath: "/TVShows"
          readOnly: false
          name: smb
          subPath: TVShows
        - mountPath: "/Music"
          readOnly: false
          name: smb
          subPath: Music
      volumes:
        - name: jellyfin
          persistentVolumeClaim:
            claimName: jellyfin
        - name: smb
          persistentVolumeClaim:
            claimName: pvc-jellyfin-smb
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: jellyfin
  name: jellyfin
  namespace: jellyfin 
spec:
  ports:
  - name: web-tcp
    port: 8096
    protocol: TCP
    targetPort: 8096
  - name: web-udp
    port: 8096
    protocol: UDP
    targetPort: 8096
  selector:
    app: jellyfin