Compare commits

...
21 Commits
10 changed files with 145 additions and 11 deletions

No files matched your search

+2 -2
View File
@@ -17,12 +17,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Set up Python - name: Set up Python
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5
with: with:
python-version: 3.x python-version: 3.x
+2 -2
View File
@@ -14,12 +14,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Helm Docs GitHub Action - name: Helm Docs GitHub Action
uses: losisin/helm-docs-github-action@e88ef7459fa747a6153be98b0e77cd84087b0c87 # v1.3.1 uses: losisin/helm-docs-github-action@57d2dc9379d9f0d5d22d2845a62c935d32cddfe2 # v1.3.3
with: with:
git-push: true git-push: true
git-commit-message: "docs(charts): :memo: write updated reademe" git-commit-message: "docs(charts): :memo: write updated reademe"
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
fetch-depth: 0 fetch-depth: 0
+2 -2
View File
@@ -1,8 +1,8 @@
apiVersion: v2 apiVersion: v2
appVersion: 10.9.11 appVersion: 10.10.1
description: Jellyfin Media Server description: Jellyfin Media Server
name: jellyfin name: jellyfin
version: 1.3.0 version: 1.5.0
type: application type: application
home: https://jellyfin.org/ home: https://jellyfin.org/
icon: https://jellyfin.org/images/logo.svg icon: https://jellyfin.org/images/logo.svg
+38 -2
View File
@@ -1,6 +1,6 @@
# jellyfin # jellyfin
![Version: 1.2.0](https://img.shields.io/badge/Version-1.2.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.9.11](https://img.shields.io/badge/AppVersion-10.9.11-informational?style=flat-square) ![Version: 1.4.0](https://img.shields.io/badge/Version-1.4.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.4.0](https://img.shields.io/badge/AppVersion-1.4.0-informational?style=flat-square)
Jellyfin Media Server Jellyfin Media Server
@@ -54,8 +54,9 @@ helm install <release-name> <chart-name> -f values.yaml
|-----|------|---------|-------------| |-----|------|---------|-------------|
| affinity | object | `{}` | | | affinity | object | `{}` | |
| enableDLNA | bool | `false` | Setting this to true enables DLNA which requires the pod to be attached to the host network in order to be useful - this can break things like ingress to the service https://jellyfin.org/docs/general/networking/dlna.html | | enableDLNA | bool | `false` | Setting this to true enables DLNA which requires the pod to be attached to the host network in order to be useful - this can break things like ingress to the service https://jellyfin.org/docs/general/networking/dlna.html |
| extraContainers | object | `{}` | additional sidecar containers to run inside the pod. | | extraContainers | list | `[]` | additional sidecar containers to run inside the pod. |
| extraEnvVars | list | `[]` | aditional environment variables passed to the pod | | extraEnvVars | list | `[]` | aditional environment variables passed to the pod |
| extraInitContainers | list | `[]` | additional init containers to run inside the pod. |
| extraPodAnnotations | object | `{}` | additional annotations applied to the pod | | extraPodAnnotations | object | `{}` | additional annotations applied to the pod |
| extraPodLabels | object | `{}` | additional pod labels. Not used as a selector label. | | extraPodLabels | object | `{}` | additional pod labels. Not used as a selector label. |
| extraVolumeMounts | list | `[]` | Define mount points for additional volumes. | | extraVolumeMounts | list | `[]` | Define mount points for additional volumes. |
@@ -64,6 +65,7 @@ helm install <release-name> <chart-name> -f values.yaml
| image.pullPolicy | string | `"IfNotPresent"` | | | image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"docker.io/jellyfin/jellyfin"` | Set cutom repository for jellyfin image | | image.repository | string | `"docker.io/jellyfin/jellyfin"` | Set cutom repository for jellyfin image |
| image.tag | string | `""` | Set jellyfin version which should be required since chart is updated with new versions automatically | | image.tag | string | `""` | Set jellyfin version which should be required since chart is updated with new versions automatically |
| imagePullSecrets | list | `[]` | |
| ingress.annotations | object | `{}` | | | ingress.annotations | object | `{}` | |
| ingress.enabled | bool | `false` | | | ingress.enabled | bool | `false` | |
| ingress.hosts[0] | string | `"chart-example.local"` | | | ingress.hosts[0] | string | `"chart-example.local"` | |
@@ -74,17 +76,24 @@ helm install <release-name> <chart-name> -f values.yaml
| nameOverride | string | `""` | | | nameOverride | string | `""` | |
| nodeSelector | object | `{}` | | | nodeSelector | object | `{}` | |
| persistence.config.accessMode | string | `"ReadWriteOnce"` | | | persistence.config.accessMode | string | `"ReadWriteOnce"` | |
| persistence.config.annotations | object | `{}` | Custom annotations to be added to the PVC |
| persistence.config.enabled | bool | `false` | | | persistence.config.enabled | bool | `false` | |
| persistence.config.labels | object | `{}` | Custom labels to be added to the PVC |
| persistence.config.size | string | `"1Gi"` | | | persistence.config.size | string | `"1Gi"` | |
| persistence.config.storageClass | string | `"-"` | If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner. | | persistence.config.storageClass | string | `"-"` | If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner. |
| persistence.extraExistingClaimMounts | list | `[]` | Add aditional PVs/PVCs to our container. Check values.yaml to see an example. | | persistence.extraExistingClaimMounts | list | `[]` | Add aditional PVs/PVCs to our container. Check values.yaml to see an example. |
| persistence.media.accessMode | string | `"ReadWriteOnce"` | | | persistence.media.accessMode | string | `"ReadWriteOnce"` | |
| persistence.media.annotations | object | `{}` | Custom annotations to be added to the PVC |
| persistence.media.enabled | bool | `false` | | | persistence.media.enabled | bool | `false` | |
| persistence.media.labels | object | `{}` | Custom labels to be added to the PVC |
| persistence.media.size | string | `"10Gi"` | | | persistence.media.size | string | `"10Gi"` | |
| persistence.media.storageClass | string | `"-"` | If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner. | | persistence.media.storageClass | string | `"-"` | If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner. |
| podSecurityContext | object | `{}` | SecurityContext configuration for the Jellyfin pod |
| readinessProbe | object | `{"enabled":true,"initialDelaySeconds":10}` | Larger libraries may need to increase the readinessProbe and livenessProbe timeouts. Start by increasing the initialDelaySeconds. | | readinessProbe | object | `{"enabled":true,"initialDelaySeconds":10}` | Larger libraries may need to increase the readinessProbe and livenessProbe timeouts. Start by increasing the initialDelaySeconds. |
| replicaCount | int | `1` | Number of jellyfin replicas to start. Should be left at 1 | | replicaCount | int | `1` | Number of jellyfin replicas to start. Should be left at 1 |
| resources | object | `{}` | | | resources | object | `{}` | |
| runtimeClassName | string | `nil` | |
| securityContext | object | `{}` | SecurityContext configuration for the Jellyfin container |
| service.annotations | object | `{}` | | | service.annotations | object | `{}` | |
| service.labels | object | `{}` | | | service.labels | object | `{}` | |
| service.loadBalancerIP | string | `nil` | | | service.loadBalancerIP | string | `nil` | |
@@ -94,3 +103,30 @@ helm install <release-name> <chart-name> -f values.yaml
---------------------------------------------- ----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2) Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
## Hardware acceleration
Out of the box the pod does not have the necessary permissions to enable hardware acceleration (HWA) in Jellyfin.
Adding the following Helm values should make it enable you to use hardware acceleration features.
Some settings may need to be tweaked depending on the type of device (Intel/AMD/NVIDIA/...) and your container runtime.
Please refer to the Jellyfin upstream documentation for more information about hardware acceleration: <https://jellyfin.org/docs/general/administration/hardware-acceleration/>
```yaml
securityContext:
capabilities:
add:
- "SYS_ADMIN"
drop:
- "ALL"
privileged: false
extraVolumes:
- name: hwa
hostPath:
path: /dev/dri
extraVolumeMounts:
- name: hwa
mountPath: /dev/dri
```
+27
View File
@@ -58,3 +58,30 @@ helm install <release-name> <chart-name> -f values.yaml
{{ template "chart.valuesSection" . }} {{ template "chart.valuesSection" . }}
{{ template "helm-docs.versionFooter" . }} {{ template "helm-docs.versionFooter" . }}
## Hardware acceleration
Out of the box the pod does not have the necessary permissions to enable hardware acceleration (HWA) in Jellyfin.
Adding the following Helm values should make it enable you to use hardware acceleration features.
Some settings may need to be tweaked depending on the type of device (Intel/AMD/NVIDIA/...) and your container runtime.
Please refer to the Jellyfin upstream documentation for more information about hardware acceleration: <https://jellyfin.org/docs/general/administration/hardware-acceleration/>
```yaml
securityContext:
capabilities:
add:
- "SYS_ADMIN"
drop:
- "ALL"
privileged: false
extraVolumes:
- name: hwa
hostPath:
path: /dev/dri
extraVolumeMounts:
- name: hwa
mountPath: /dev/dri
```
@@ -9,6 +9,13 @@ metadata:
helm.sh/chart: {{ include "jellyfin.chart" . }} helm.sh/chart: {{ include "jellyfin.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- with .Values.persistence.config.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.persistence.config.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec: spec:
accessModes: accessModes:
- {{ .Values.persistence.config.accessMode | quote }} - {{ .Values.persistence.config.accessMode | quote }}
+27 -1
View File
@@ -28,6 +28,10 @@ spec:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
spec: spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Values.enableDLNA }} {{- if .Values.enableDLNA }}
hostNetwork: true hostNetwork: true
{{- end }} {{- end }}
@@ -35,9 +39,21 @@ spec:
- name: {{ .Chart.Name }} - name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }} imagePullPolicy: {{ .Values.image.pullPolicy }}
{{ if .Values.image.command }}
command:
{{- toYaml .Values.image.command | nindent 12 }}
{{- end }}
{{ if .Values.image.args }}
args:
{{- toYaml .Values.image.args | nindent 12 }}
{{- end }}
{{ if .Values.extraEnvVars }} {{ if .Values.extraEnvVars }}
env: env:
{{- toYaml .Values.extraEnvVars | nindent 12 }} {{- toYaml .Values.extraEnvVars | nindent 12 }}
{{- end }}
{{ if .Values.securityContext }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
{{- end }} {{- end }}
ports: ports:
- name: http - name: http
@@ -109,10 +125,16 @@ spec:
{{- toYaml .Values.extraVolumeMounts | nindent 12 }} {{- toYaml .Values.extraVolumeMounts | nindent 12 }}
{{- end }} {{- end }}
{{- if .Values.extraContainers }} {{- if .Values.extraContainers }}
{{- toYaml .Values.extraContainers | nindent 10 }} {{- toYaml .Values.extraContainers | nindent 8 }}
{{- end }} {{- end }}
resources: resources:
{{ toYaml .Values.resources | indent 12 }} {{ toYaml .Values.resources | indent 12 }}
terminationMessagePolicy: FallbackToLogsOnError
securityContext: {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.extraInitContainers }}
initContainers:
{{- toYaml .Values.extraInitContainers | nindent 10 }}
{{- end }}
volumes: volumes:
- name: config - name: config
{{- if .Values.persistence.config.enabled }} {{- if .Values.persistence.config.enabled }}
@@ -148,3 +170,7 @@ spec:
tolerations: tolerations:
{{ toYaml . | indent 8 }} {{ toYaml . | indent 8 }}
{{- end }} {{- end }}
securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.runtimeClassName }}
runtimeClassName: {{.Values.runtimeClassName}}
{{- end }}
+7
View File
@@ -9,6 +9,13 @@ metadata:
helm.sh/chart: {{ include "jellyfin.chart" . }} helm.sh/chart: {{ include "jellyfin.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- with .Values.persistence.media.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.persistence.media.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec: spec:
accessModes: accessModes:
- {{ .Values.persistence.media.accessMode | quote }} - {{ .Values.persistence.media.accessMode | quote }}
+32 -1
View File
@@ -1,6 +1,7 @@
# -- Number of jellyfin replicas to start. Should be left at 1 # -- Number of jellyfin replicas to start. Should be left at 1
replicaCount: 1 replicaCount: 1
imagePullSecrets: []
image: image:
# -- Set cutom repository for jellyfin image # -- Set cutom repository for jellyfin image
repository: docker.io/jellyfin/jellyfin repository: docker.io/jellyfin/jellyfin
@@ -62,6 +63,10 @@ persistence:
# subPath: some-subpath # subPath: some-subpath
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 1Gi size: 1Gi
# -- Custom labels to be added to the PVC
labels: {}
# -- Custom annotations to be added to the PVC
annotations: {}
media: media:
enabled: false enabled: false
# -- If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner. # -- If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
@@ -72,6 +77,11 @@ persistence:
# subPath: some-subpath # subPath: some-subpath
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 10Gi size: 10Gi
# -- Custom labels to be added to the PVC
labels: {}
# -- Custom annotations to be added to the PVC
annotations: {}
# -- Add aditional PVs/PVCs to our container. Check values.yaml to see an example. # -- Add aditional PVs/PVCs to our container. Check values.yaml to see an example.
extraExistingClaimMounts: [] extraExistingClaimMounts: []
# - name: external-mount # - name: external-mount
@@ -93,6 +103,9 @@ resources: {}
# cpu: 100m # cpu: 100m
# memory: 128Mi # memory: 128Mi
# Define a custom runtimeClassName for the pod, e.g. "nvidia" if you have the NVIDIA GPU Operator installed
runtimeClassName:
nodeSelector: {} nodeSelector: {}
tolerations: [] tolerations: []
@@ -121,8 +134,26 @@ extraEnvVars: []
# -- additional annotations applied to the pod # -- additional annotations applied to the pod
extraPodAnnotations: {} extraPodAnnotations: {}
# -- additional init containers to run inside the pod.
extraInitContainers: []
# -- additional sidecar containers to run inside the pod. # -- additional sidecar containers to run inside the pod.
extraContainers: {} extraContainers: []
# -- SecurityContext configuration for the Jellyfin pod
podSecurityContext: {}
# Jellyfin can be run as an unprivileged user with the following settings:
# runAsUser: 65534
# runAsGroup: 65534
# -- SecurityContext configuration for the Jellyfin container
securityContext: {}
# For example, you might need to grant the following capabilities to enable hardware acceleration when mounting a /dev/dri device:
# capabilities:
# add:
# - "SYS_ADMIN"
# drop:
# - "ALL"
# -- Larger libraries may need to increase the readinessProbe and livenessProbe timeouts. Start by increasing the initialDelaySeconds. # -- Larger libraries may need to increase the readinessProbe and livenessProbe timeouts. Start by increasing the initialDelaySeconds.
livenessProbe: livenessProbe: