Files
truecharts/charts/stable/jellyfin/values.yaml
T
CaidyandGitHub eceefd68ea fix(jellyfin): broadcastproxy pod start failed (#22552)
**Description**
<!--
Please include a summary of the change and which issue is fixed. Please
also include relevant motivation and context. List any dependencies that
are required for this change.
-->
⚒️ With socat 1.8.0.0, using UDP-LISTEN will get an error
"xioopen_ipdgram_listen(): unknown address family 0", change it to
UDP4-LISTEN will fix this issue.

**⚙️ Type of change**

- [ ] ⚙️ Feature/App addition
- [x] 🪛 Bugfix
- [ ] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**
<!--
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration
-->

Before fix:

![图片](https://github.com/truecharts/charts/assets/18113342/aa0a60fd-d64a-4276-a628-1090d830569d)
After fix:

![图片](https://github.com/truecharts/charts/assets/18113342/1abfe8f1-fc98-479e-b8a6-a87e957a0947)


**📃 Notes:**
<!-- Please enter any other relevant information here -->

**✔️ Checklist:**

- [x] ⚖️ My code follows the style guidelines of this project
- [x] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made corresponding changes to the documentation
- [ ] ⚠️ My changes generate no new warnings
- [x] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [x] ⬆️ I increased versions for any altered app according to semantic
versioning
- [x] I made sure the title starts with `feat(chart-name):`,
`fix(chart-name):` or `chore(chart-name):`

**➕ App addition**

If this PR is an app addition please make sure you have done the
following.

- [ ] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._
2024-05-28 20:52:46 +02:00

99 lines
3.0 KiB
YAML

image:
repository: ghcr.io/jellyfin/jellyfin
pullPolicy: IfNotPresent
tag: 10.9.3@sha256:3022b48f18c810fe7a6a77ba3aef05bdbc9a05f253e856d2c96916fcdbcfc0f6
broadcastProxyImage:
repository: docker.io/alpine/socat
pullPolicy: IfNotPresent
tag: 1.8.0.0@sha256:242ddfab3d263db7c0b2f193dd53e0bea3b6cbc0984af7bc63998e4aa597d1a3
service:
main:
ports:
main:
port: 8096
targetPort: 8096
autodiscovery:
enabled: true
ports:
autodiscovery:
enabled: true
protocol: udp
port: 7359
targetPort: 7359
persistence:
config:
enabled: true
mountPath: "/config"
cache:
enabled: true
mountPath: "/cache"
type: "emptyDir"
transcode:
enabled: true
mountPath: "/config/transcodes"
type: "emptyDir"
portal:
open:
enabled: true
securityContext:
container:
readOnlyRootFilesystem: false
workload:
main:
podSpec:
containers:
main:
env:
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 UDP4-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
updated: true