Compare commits
19
Commits
No files matched your search
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: 10.9.11
|
appVersion: 1.4.0
|
||||||
description: Jellyfin Media Server
|
description: Jellyfin Media Server
|
||||||
name: jellyfin
|
name: jellyfin
|
||||||
version: 1.3.0
|
version: 1.4.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
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# jellyfin
|
# jellyfin
|
||||||
|
|
||||||
  
|
  
|
||||||
|
|
||||||
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
|
||||||
|
```
|
||||||
@@ -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 }}
|
||||||
|
|||||||
@@ -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 }}
|
||||||
@@ -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 }}
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in new issue
Block a user