jellyfin: run media service on titan-22

This commit is contained in:
jenkins 2026-08-22 22:10:46 -03:00
parent 5430c9ac01
commit eec373dd56

View File

@ -33,7 +33,7 @@ spec:
# Clean up any lingering OIDC artifacts and strip the injected script tag
initContainers:
- name: strip-oidc
image: docker.io/jellyfin/jellyfin:10.11.5
image: docker.io/jellyfin/jellyfin:10.11.5@sha256:6d819e9ab067efcf712993b23455cc100ee5585919bb297ea5a109ac00cb626e
securityContext:
runAsUser: 0
runAsGroup: 0
@ -58,7 +58,7 @@ spec:
# Force all users to authenticate via the LDAP plugin provider by updating the DB on start.
# This keeps Flux enforcement for auth provider drift (e.g., after UI edits).
- name: set-ldap-auth-provider
image: docker.io/library/alpine:3.20
image: docker.io/library/alpine:3.20@sha256:765942a4039992336de8dd5db680586e1a206607dd06170ff0a37267a9e01958
securityContext:
runAsUser: 0
runAsGroup: 0
@ -77,34 +77,16 @@ spec:
volumeMounts:
- name: config
mountPath: /config
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: longhorn-host
operator: In
values:
- "true"
- key: node-role.kubernetes.io/worker
operator: In
values:
- "true"
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: hardware
operator: In
values:
- rpi5
- weight: 80
preference:
matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- titan-24
nodeSelector:
kubernetes.io/hostname: titan-22
priorityClassName: media-core
runtimeClassName: nvidia
terminationGracePeriodSeconds: 60
tolerations:
- key: atlas.bstein.dev/media-primary
operator: Equal
value: "true"
effect: PreferNoSchedule
securityContext:
runAsUser: 1000
fsGroup: 65532
@ -112,7 +94,7 @@ spec:
runAsGroup: 65532
containers:
- name: jellyfin
image: docker.io/jellyfin/jellyfin:10.11.5
image: docker.io/jellyfin/jellyfin:10.11.5@sha256:6d819e9ab067efcf712993b23455cc100ee5585919bb297ea5a109ac00cb626e
imagePullPolicy: IfNotPresent
command:
- /entrypoint.sh
@ -121,6 +103,27 @@ spec:
ports:
- name: http
containerPort: 8096
startupProbe:
httpGet:
path: /health
port: http
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 60
readinessProbe:
httpGet:
path: /health
port: http
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 3
livenessProbe:
httpGet:
path: /health
port: http
periodSeconds: 15
timeoutSeconds: 2
failureThreshold: 4
env:
- name: JELLYFIN_PublishedServerUrl
value: "https://stream.bstein.dev"
@ -130,15 +133,21 @@ spec:
value: "65532"
- name: UMASK
value: "002"
- name: NVIDIA_DRIVER_CAPABILITIES
value: compute,video,utility
- name: VAULT_COPY_FILES
value: /vault/secrets/ldap-config.xml:/config/plugins/configurations/LDAP-Auth.xml
resources:
requests:
cpu: "500m"
memory: 1Gi
cpu: "2"
memory: 2Gi
ephemeral-storage: 8Gi
nvidia.com/gpu.shared: "1"
limits:
cpu: "1500m"
memory: 3Gi
cpu: "8"
memory: 8Gi
ephemeral-storage: 80Gi
nvidia.com/gpu.shared: "1"
volumeMounts:
- name: jellyfin-vault-entrypoint
mountPath: /entrypoint.sh
@ -178,7 +187,8 @@ spec:
persistentVolumeClaim:
claimName: jellyfin-config-astreae
- name: cache
emptyDir: {}
emptyDir:
sizeLimit: 64Gi
- name: media
persistentVolumeClaim:
claimName: jellyfin-media-asteria-new