Initial commit

This commit is contained in:
2026-06-01 10:10:01 +02:00
commit e613ea6df3
403 changed files with 41987 additions and 0 deletions

49
jellyfin/httproute.yaml Normal file
View File

@@ -0,0 +1,49 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: jellyfin-route
namespace: jellyfin
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: gateway-internal
namespace: envoy-gateway
sectionName: jellyfin
- group: gateway.networking.k8s.io
kind: Gateway
name: gateway-public
namespace: envoy-gateway
sectionName: jellyfin
hostnames:
- "jellyfin.jsme.be"
rules:
- matches:
- path:
type: PathPrefix
value: /
filters:
- type: RequestHeaderModifier
requestHeaderModifier:
set:
- name: X-Forwarded-Host
value: "jellyfin.jsme.be"
- name: X-Forwarded-Proto
value: https
- type: ResponseHeaderModifier
responseHeaderModifier:
set:
- name: Strict-Transport-Security
value: "max-age=31536000; includeSubDomains"
- name: X-Content-Type-Options
value: nosniff
- name: Referrer-Policy
value: strict-origin-when-cross-origin
- name: Permissions-Policy
value: "camera=(), microphone=(), geolocation=(), payment=()"
backendRefs:
- name: jellyfin
port: 8096
kind: Service
group: ""
weight: 1

View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: jellyfin
name: jellyfin-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn-static
volumeName: jellyfin-pvc
resources:
requests:
storage: 40Gi

View File

@@ -0,0 +1,33 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: smb-media-pv
namespace: jellyfin
spec:
capacity:
storage: 50Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
csi:
driver: smb.csi.k8s.io
volumeHandle: smb-media-pv
volumeAttributes:
source: "//10.8.14.2/Media"
nodeStageSecretRef:
name: jellyfin-secrets
namespace: jellyfin
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: jellyfin
name: smb-media-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
volumeName: smb-media-pv
storageClassName: ""

View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
namespace: jellyfin
name: jellyfin
spec:
selector:
app: jellyfin
ports:
- protocol: TCP
port: 8096
targetPort: 8096
type: ClusterIP

42
jellyfin/jellyfin.yaml Normal file
View File

@@ -0,0 +1,42 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
namespace: jellyfin
name: jellyfin
spec:
replicas: 1
selector:
matchLabels:
app: jellyfin
serviceName: jellyfin
template:
metadata:
labels:
app: jellyfin
spec:
restartPolicy: Always
terminationGracePeriodSeconds: 60
nodeSelector:
gpu: "true"
containers:
- name: jellyfin
image: jellyfin/jellyfin:10.11.9
ports:
- containerPort: 8096
resources:
limits:
gpu.intel.com/i915: "1"
volumeMounts:
- name: config
mountPath: /config
- name: media
mountPath: /media
readOnly: true
volumes:
- name: config
persistentVolumeClaim:
claimName: jellyfin-pvc
- name: media
persistentVolumeClaim:
claimName: smb-media-pvc