123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- {{- define "jellyfin.workload" -}}
- workload:
- jellyfin:
- enabled: true
- primary: true
- type: Deployment
- podSpec:
- hostNetwork: {{ .Values.jellyfinNetwork.hostNetwork }}
- containers:
- jellyfin:
- enabled: true
- primary: true
- imageSelector: image
- securityContext:
- runAsUser: {{ .Values.jellyfinRunAs.user }}
- runAsGroup: {{ .Values.jellyfinRunAs.group }}
- env:
- {{ with .Values.jellyfinConfig.publishedServerUrl }}
- JELLYFIN_PublishedServerUrl: {{ . | quote }}
- {{ end }}
- {{ with .Values.jellyfinConfig.additionalEnvs }}
- envList:
- {{ range $env := . }}
- - name: {{ $env.name }}
- values: {{ $env.value }}
- {{ end }}
- {{ end }}
- probes:
- liveness:
- enabled: true
- type: http
- port: 8096
- path: /health
- readiness:
- enabled: true
- type: http
- port: 8096
- path: /health
- startup:
- enabled: true
- type: http
- port: 8096
- path: /health
- initContainers:
- {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions"
- "UID" .Values.jellyfinRunAs.user
- "GID" .Values.jellyfinRunAs.group
- "mode" "check"
- "type" "init") | nindent 8 }}
- {{/* Service */}}
- service:
- jellyfin:
- enabled: true
- primary: true
- type: NodePort
- targetSelector: jellyfin
- ports:
- webui:
- enabled: true
- primary: true
- port: {{ .Values.jellyfinNetwork.webPort }}
- nodePort: {{ .Values.jellyfinNetwork.webPort }}
- targetPort: 8096
- targetSelector: jellyfin
- {{/* Persistence */}}
- persistence:
- config:
- enabled: true
- type: {{ .Values.jellyfinStorage.config.type }}
- datasetName: {{ .Values.jellyfinStorage.config.datasetName | default "" }}
- hostPath: {{ .Values.jellyfinStorage.config.hostPath | default "" }}
- targetSelector:
- jellyfin:
- jellyfin:
- mountPath: /config
- 01-permissions:
- mountPath: /mnt/directories/config
- cache:
- enabled: true
- type: {{ .Values.jellyfinStorage.cache.type }}
- datasetName: {{ .Values.jellyfinStorage.cache.datasetName | default "" }}
- hostPath: {{ .Values.jellyfinStorage.cache.hostPath | default "" }}
- targetSelector:
- jellyfin:
- jellyfin:
- mountPath: /cache
- 01-permissions:
- mountPath: /mnt/directories/cache
- transcode:
- enabled: true
- type: {{ .Values.jellyfinStorage.transcodes.type }}
- datasetName: {{ .Values.jellyfinStorage.transcodes.datasetName | default "" }}
- hostPath: {{ .Values.jellyfinStorage.transcodes.hostPath | default "" }}
- medium: {{ .Values.jellyfinStorage.transcodes.medium | default "" }}
- {{/* Size of the emptyDir */}}
- size: {{ .Values.jellyfinStorage.transcodes.size | default "" }}
- targetSelector:
- jellyfin:
- jellyfin:
- mountPath: /config/transcodes
- {{ if ne .Values.jellyfinStorage.transcodes.type "emptyDir" }}
- 01-permissions:
- mountPath: /mnt/directories/transcodes
- {{ end }}
- tmp:
- enabled: true
- type: emptyDir
- targetSelector:
- jellyfin:
- jellyfin:
- mountPath: /tmp
- {{- range $idx, $storage := .Values.jellyfinStorage.additionalStorages }}
- {{ printf "jellyfin-%v" (int $idx) }}:
- enabled: true
- type: {{ $storage.type }}
- datasetName: {{ $storage.datasetName | default "" }}
- hostPath: {{ $storage.hostPath | default "" }}
- targetSelector:
- jellyfin:
- jellyfin:
- mountPath: {{ $storage.mountPath }}
- 01-permissions:
- mountPath: /mnt/directories{{ $storage.mountPath }}
- {{- end }}
- {{ with .Values.jellyfinGPU }}
- scaleGPU:
- {{ range $key, $value := . }}
- - gpu:
- {{ $key }}: {{ $value }}
- targetSelector:
- jellyfin:
- - jellyfin
- {{ end }}
- {{ end }}
- {{- end -}}
|