2021-04-13 19:43:27 +00:00
|
|
|
image:
|
2021-12-03 12:02:44 +00:00
|
|
|
repository: tccr.io/truecharts/jellyfin
|
2021-04-13 19:43:27 +00:00
|
|
|
pullPolicy: IfNotPresent
|
2023-09-24 13:34:41 +00:00
|
|
|
tag: v10.8.11@sha256:586eebeb787d89028b7891e189bc4bbf82141d67235252781ba72088708734f9
|
2023-06-08 09:28:42 +00:00
|
|
|
broadcastProxyImage:
|
|
|
|
repository: tccr.io/truecharts/socat
|
|
|
|
pullPolicy: IfNotPresent
|
2023-09-23 04:35:37 +00:00
|
|
|
tag: v1.7.4.4@sha256:86cec033218a8d9c6172d6058cc6e63c1340edb1279184f808d38949fc0fefdb
|
2021-05-19 13:12:45 +00:00
|
|
|
service:
|
2021-04-13 19:43:27 +00:00
|
|
|
main:
|
2021-05-19 13:12:45 +00:00
|
|
|
ports:
|
|
|
|
main:
|
|
|
|
port: 8096
|
2021-11-06 21:55:18 +00:00
|
|
|
targetPort: 8096
|
2023-06-08 09:28:42 +00:00
|
|
|
autodiscovery:
|
|
|
|
enabled: true
|
|
|
|
ports:
|
|
|
|
autodiscovery:
|
|
|
|
enabled: true
|
|
|
|
protocol: udp
|
|
|
|
port: 7359
|
|
|
|
targetPort: 7359
|
2021-04-13 19:43:27 +00:00
|
|
|
persistence:
|
|
|
|
config:
|
|
|
|
enabled: true
|
|
|
|
mountPath: "/config"
|
2022-02-06 12:17:38 +00:00
|
|
|
cache:
|
|
|
|
enabled: true
|
|
|
|
mountPath: "/cache"
|
|
|
|
type: "emptyDir"
|
2022-12-21 23:02:34 +00:00
|
|
|
transcode:
|
|
|
|
enabled: true
|
|
|
|
mountPath: "/config/transcodes"
|
|
|
|
type: "emptyDir"
|
2022-08-08 21:25:02 +00:00
|
|
|
portal:
|
2023-04-11 10:07:17 +00:00
|
|
|
open:
|
|
|
|
enabled: true
|
|
|
|
securityContext:
|
|
|
|
container:
|
|
|
|
readOnlyRootFilesystem: false
|
|
|
|
workload:
|
|
|
|
main:
|
|
|
|
podSpec:
|
|
|
|
containers:
|
|
|
|
main:
|
|
|
|
env:
|
2023-06-08 09:28:42 +00:00
|
|
|
JELLYFIN_PublishedServerUrl: "{{ $.Values.chartContext.APPURL }}"
|
|
|
|
broadcastproxy:
|
|
|
|
enabled: false
|
|
|
|
type: DaemonSet
|
|
|
|
podSpec:
|
|
|
|
hostNetwork: true
|
|
|
|
# Proxy doesn't seem to respect the TERM signal, so by default
|
|
|
|
# this ends up just hanging until the default grace period ends.
|
|
|
|
# This is unnecesary since this workload only proxies autodiscovery
|
|
|
|
# messages.
|
|
|
|
terminationGracePeriodSeconds: 3
|
|
|
|
containers:
|
|
|
|
broadcastproxy:
|
|
|
|
enabled: true
|
|
|
|
primary: true
|
|
|
|
imageSelector: broadcastProxyImage
|
|
|
|
securityContext:
|
|
|
|
readOnlyRootFilesystem: true
|
|
|
|
command: ["/bin/sh"]
|
|
|
|
# Quite a lot going on here:
|
|
|
|
# - Resolve Jellyfin's autodiscovery service IP from its FQDN via getent hosts
|
|
|
|
# - Export the IP to `$TARGET_IP`
|
|
|
|
# - Check `$TARGET_IP` is not empty (so we can crash if it is - will help to detect templating errors)
|
|
|
|
# - Touch `/tmp/healty` to use with the readiness, liveness and startup probes
|
|
|
|
# - Start socat in proxy mode
|
|
|
|
# - On exit remove `/tmp/healthy`
|
|
|
|
args: ["-c", "export TARGET_IP=$(getent hosts '{{ printf \"%v-autodiscovery\" (include \"tc.v1.common.lib.chart.names.fullname\" $) }}' | awk '{ print $1 }') && [[ ! -z $TARGET_IP ]] && touch /tmp/healthy && socat UDP-LISTEN:7359,fork,reuseaddr,rcvbuf=8096 UDP4-SENDTO:${TARGET_IP}:7359,rcvbuf=8096 ; rm -rf /tmp/healthy"]
|
|
|
|
probes:
|
|
|
|
readiness:
|
|
|
|
enabled: true
|
|
|
|
type: exec
|
|
|
|
command:
|
|
|
|
- cat
|
|
|
|
- /tmp/healthy
|
|
|
|
liveness:
|
|
|
|
enabled: true
|
|
|
|
type: exec
|
|
|
|
command:
|
|
|
|
- cat
|
|
|
|
- /tmp/healthy
|
|
|
|
startup:
|
|
|
|
enabled: true
|
|
|
|
type: exec
|
|
|
|
command:
|
|
|
|
- cat
|
|
|
|
- /tmp/healthy
|
|
|
|
|
|
|
|
# -- enable Jellyfin autodiscovery on LAN
|
|
|
|
autodiscovery:
|
|
|
|
enabled: false
|