jellyfin: Add an initial Chart

This commit is contained in:
2025-09-29 00:29:17 +02:00
commit afaa5222ed
13 changed files with 235 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
{{- $labelsenv := dict "name" "jellyfin" "version" .Values.imageVersion }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: jellyfin
namespace: {{ .Values.namespace }}
labels: {{ include "common.app.labels" $labelsenv | nindent 4 }}
spec:
replicas: 1
selector:
matchLabels: {{ include "common.app.labels" $labelsenv | nindent 6 }}
template:
metadata:
labels: {{ include "common.app.labels" $labelsenv | nindent 8 }}
spec:
securityContext:
runAsUser: {{ .Values.security.user }}
runAsGroup: {{ .Values.security.group }}
runAsNonRoot: true
capabilities:
drop:
- ALL
containers:
- name: jellyfin
image: "{{ .Values.image }}:{{ .Values.imageVersion }}"
env:
- name: JELLYFIN_PublishedServerUrl
value: {{ .Values.network.externalUrl | quote }}
ports:
- containerPort: 8096
protocol: TCP
name: http
livenessProbe:
httpGet:
path: /System/Ping
port: http
scheme: HTTP
readinessProbe:
httpGet:
path: /System/Ping
port: http
scheme: HTTP
volumeMounts:
- name: storage
mountPath: /storage
- name: config
mountPath: /config
- name: cache
mountPath: /var/cache/jellyfin
volumes:
- name: storage
persistentVolumeClaim:
claimName: {{ .Values.storage.data.claimName }}
- name: cache
persistentVolumeClaim:
claimName: {{ .Values.storage.cache.claimName }}
- name: config
persistentVolumeClaim:
claimName: {{ .Values.storage.config.claimName }}

View File

@@ -0,0 +1,45 @@
{{- if .Values.storage.local }}
{{- $labelsenv := dict "name" "jellyfin" "version" .Values.imageVersion }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Values.storage.config.claimName }}
namespace: {{ .Values.namespace }}
labels: {{ include "common.app.labels" $labelsenv | nindent 4 }}
spec:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.storage.config.size }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Values.storage.cache.claimName }}
namespace: {{ .Values.namespace }}
labels: {{ include "common.app.labels" $labelsenv | nindent 4 }}
spec:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.storage.cache.size }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Values.storage.data.claimName }}
namespace: {{ .Values.namespace }}
labels: {{ include "common.app.labels" $labelsenv | nindent 4 }}
spec:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.storage.data.size }}
{{- end }}

View File

@@ -0,0 +1,15 @@
{{- $labelsenv := dict "name" "jellyfin" "version" .Values.imageVersion }}
---
apiVersion: v1
kind: Service
metadata:
name: jellyfin
namespace: {{ .Values.namespace }}
labels: {{ include "common.app.labels" $labelsenv | nindent 4 }}
spec:
selector: {{ include "common.app.labels" $labelsenv | nindent 4 }}
ports:
- port: 8096
protocol: TCP
name: http
type: ClusterIP