add jellyfin

This commit is contained in:
2025-09-15 12:51:47 -04:00
parent 83a337f768
commit fcc65c33fa
4 changed files with 130 additions and 0 deletions

28
jellyfin/Chart.yaml Normal file
View File

@@ -0,0 +1,28 @@
apiVersion: v2
name: jellyfin
description: A Helm chart for Kubernetes
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
appVersion: "1.0"
dependencies:
- name: jellyfin
version: 2.3.0
repository: https://jellyfin.github.io/jellyfin-helm

View File

@@ -0,0 +1,26 @@
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: emby-redirect
spec:
redirectRegex:
regex: ^https?://emby\.dubyatp\.xyz/(.*)$
replacement: https://jellyfin.dubyatp.xyz/${1}
permanent: true
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: emby-redirect
spec:
entryPoints:
- websecure
- web
routes:
- kind: Rule
match: Host(`emby.dubyatp.xyz`)
middlewares:
- name: emby-redirect
services:
- name: noop@internal
kind: TraefikService

View File

@@ -0,0 +1,11 @@
apiVersion: v1
data:
tls.crt:
tls.key:
kind: Secret
metadata:
annotations:
replicator.v1.mittwald.de/replicate-from: cert-manager/cert-dubyatp-xyz
replicator.v1.mittwald.de/replicated-keys: tls.crt,tls.key
name: cert-dubyatp-xyz
type: Opaque

65
jellyfin/values.yaml Normal file
View File

@@ -0,0 +1,65 @@
jellyfin:
deploymentStrategy:
type: Recreate
ingress:
enabled: true
hosts:
- host: jellyfin.dubyatp.xyz
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: cert-dubyatp.xyz
hosts:
- jellyfin.dubyatp.xyz
persistence:
media:
enabled: false
volumes:
- name: tv-shows
nfs:
server: 10.105.15.20
path: /mnt/hdd-pool/tv-shows
- name: movies
nfs:
server: 10.105.15.20
path: /mnt/hdd-pool/movies
- name: dvr
nfs:
server: 10.105.15.20
path: /mnt/hdd-pool/DVR
- name: youtube-vids
nfs:
server: 10.105.15.20
path: /mnt/hdd-pool/youtube-vids
- name: transcode-temp
emptyDir:
sizeLimit: 8Gi
medium: Memory
- name: dev-dri
hostPath:
path: /dev/dri
volumeMounts:
- name: tv-shows
mountPath: /mnt/tv-shows
- name: movies
mountPath: /mnt/movies
- name: dvr
mountPath: /mnt/dvr
- name: youtube-vids
mountPath: /mnt/youtube-vids
- name: transcode-temp
mountPath: /tmp/transcode
- name: dev-dri
mountPath: /dev/dri
securityContext:
privileged: true
nodeSelector:
kubernetes.io/hostname: weyma-talos-testw04
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: extensions.talos.dev/i915
operator: Exists