first commit

This commit is contained in:
2025-07-04 19:51:51 +05:30
commit 42895beb8c
72 changed files with 2584 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
apiVersion: v2
name: jellyfin
description: A Helm chart for Jellyfin
type: application
version: 0.1.0
appVersion: "10.10.7"

View File

@@ -0,0 +1,26 @@
name: jellyfin
namespace: prod
image:
repository: jellyfin/jellyfin
tag: 10.10.7
nodeSelector:
enabled: true
key: kubernetes.io/hostname
value: master-4
persistence:
config:
enabled: true
existingClaim: true
claimName: longhorn-jellyfin-config
media:
nfs:
server: 10.0.0.123
path: /merge
service:
type: LoadBalancer
port: 8096

View File

@@ -0,0 +1,22 @@
---
apiVersion: v1
kind: Service
metadata:
name: "{{ .Values.name }}-service"
namespace: {{ .Values.namespace }}
spec:
{{- if eq .Values.service.type "LoadBalancer" }}
type: LoadBalancer
{{- else if eq .Values.service.type "NodePort" }}
type: NodePort
{{- end }}
selector:
app: {{ .Values.name }}
ports:
- targetPort: 8096
protocol: TCP
{{- if eq .Values.service.type "LoadBalancer" }}
port: {{ .Values.service.port }}
{{- else if eq .Values.service.type "NodePort" }}
nodePort: {{ .Values.service.nodePort }}
{{- end }}

View File

@@ -0,0 +1,67 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Values.name }}
namespace: {{ .Values.namespace }}
spec:
replicas: 1
selector:
matchLabels:
app: {{ .Values.name }}
template:
metadata:
labels:
app: {{ .Values.name }}
spec:
securityContext:
supplementalGroups:
- 128
- 226
- 106
- 44
- 104
{{- if .Values.nodeSelector.enabled }}
nodeSelector:
{{ .Values.nodeSelector.key }}: {{ .Values.nodeSelector.value }}
{{- end }}
containers:
- name: jellyfin
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
volumeMounts:
- name: media
mountPath: /media
readOnly: true
recursiveReadOnly: Enabled
- name: config
mountPath: /config
- name: cache
mountPath: /cache
- name: card
mountPath: /dev/dri/renderD128
securityContext:
privileged: true
volumes:
{{- if and .Values.persistence.config.enabled .Values.persistence.config.existingClaim }}
- name: config
persistentVolumeClaim:
claimName: "{{ .Values.persistence.config.claimName }}"
{{- else if .Values.persistence.config.enabled }}
- name: config
persistentVolumeClaim:
claimName: "longhorn-{{ .Values.name }}-config"
{{- else }}
- name: config
emptyDir: {}
{{- end }}
- name: cache
hostPath:
path: /home/akshun/jellyfin/cache
type: Directory
- name: media
nfs:
server: {{ .Values.persistence.media.nfs.server }}
path: {{ .Values.persistence.media.nfs.path }}
- name: card
hostPath:
path: /dev/dri/renderD128