# yaml-language-server: $schema=./values.schema.json image: repository: oci.trueforge.org/containerforge/emby pullPolicy: IfNotPresent tag: 4.10.0.17@sha256:1add225821cb2f2f063f8023b56aaad105b2802c9ab35bbfa9e869de5d0041bd broadcastProxyImage: repository: docker.io/alpine/socat pullPolicy: IfNotPresent tag: 1.8.1.3@sha256:188fe0a22182f81c16def9d1137930121eaa3023f427164e32c0d2f118f79dd6 service: main: ports: main: port: 10079 targetPort: 8096 autodiscovery: enabled: "{{ .Values.autodiscovery.enabled }}" ports: autodiscovery: enabled: true protocol: udp port: 7359 targetPort: 7359 workload: main: podSpec: containers: main: probes: liveness: type: http path: / readiness: type: http path: / startup: type: http path: / env: {} broadcastproxy: enabled: "{{ .Values.autodiscovery.enabled }}" type: Deployment 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 Emby'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 -T1 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 Emby autodiscovery on LAN securityContext: container: readOnlyRootFilesystem: false runAsGroup: 0 runAsUser: 0 autodiscovery: enabled: false persistence: config: enabled: true mountPath: /config