--- apiVersion: v1 kind: ConfigMap metadata: annotations: {} name: jellyfin-config namespace: media data: JELLYFIN_PublishedServerUrl: https://media.vandachevici.ro --- apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: {} name: jellyfin-config-v2-pvc namespace: media spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: nfs-jellyfin --- apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: {} name: jellyfin-cache-v2-pvc namespace: media spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: nfs-jellyfin --- apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: {} name: jellyfin-media-v2-pvc namespace: media spec: accessModes: - ReadWriteOnce resources: requests: storage: 650Gi storageClassName: nfs-jellyfin --- apiVersion: apps/v1 kind: Deployment metadata: annotations: {} name: jellyfin namespace: media spec: replicas: 1 selector: matchLabels: app: jellyfin template: metadata: labels: app: jellyfin spec: containers: - envFrom: - configMapRef: name: jellyfin-config image: jellyfin/jellyfin livenessProbe: failureThreshold: 5 httpGet: path: /health port: 8096 initialDelaySeconds: 60 periodSeconds: 30 timeoutSeconds: 10 name: jellyfin ports: - containerPort: 8096 name: http readinessProbe: failureThreshold: 5 httpGet: path: /health port: 8096 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 10 resources: limits: cpu: 2000m memory: 4Gi requests: cpu: 200m memory: 512Mi volumeMounts: - mountPath: /config name: config - mountPath: /cache name: cache - mountPath: /media name: media readOnly: true volumes: - name: config persistentVolumeClaim: claimName: jellyfin-config-v2-pvc - name: cache persistentVolumeClaim: claimName: jellyfin-cache-v2-pvc - name: media persistentVolumeClaim: claimName: jellyfin-media-v2-pvc --- apiVersion: v1 kind: Service metadata: annotations: {} name: jellyfin namespace: media spec: ports: - name: http port: 8096 targetPort: 8096 selector: app: jellyfin type: ClusterIP --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: cert-manager.io/cluster-issuer: letsencrypt-prod nginx.ingress.kubernetes.io/proxy-body-size: '0' nginx.ingress.kubernetes.io/proxy-read-timeout: '600' nginx.ingress.kubernetes.io/proxy-send-timeout: '600' name: jellyfin namespace: media spec: ingressClassName: nginx rules: - host: media.vandachevici.ro http: paths: - backend: service: name: jellyfin port: number: 8096 path: / pathType: Prefix tls: - hosts: - media.vandachevici.ro secretName: jellyfin-tls