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