diff --git a/charts/jellyfin/Chart.yaml b/charts/jellyfin/Chart.yaml
index 96a351b..8c9328f 100644
--- a/charts/jellyfin/Chart.yaml
+++ b/charts/jellyfin/Chart.yaml
@@ -8,5 +8,9 @@ keywords:
- jellyfin
- media
- self-hosted
-version: 2.5.0
+version: 2.6.0
appVersion: 10.11.2
+annotations:
+ artifacthub.io/changes: |
+ - kind: added
+ description: Add support for Gateway API HTTPRoute resource
diff --git a/charts/jellyfin/README.md b/charts/jellyfin/README.md
index 10952b6..ff6e753 100644
--- a/charts/jellyfin/README.md
+++ b/charts/jellyfin/README.md
@@ -1,6 +1,6 @@
# jellyfin
-  
+  
A Helm chart for Jellyfin Media Server
@@ -60,6 +60,10 @@ helm install my-jellyfin jellyfin/jellyfin -f values.yaml
| extraContainers | list | `[]` | additional sidecar containers to run inside the pod. |
| extraInitContainers | list | `[]` | additional init containers to run inside the pod. |
| fullnameOverride | string | `""` | Override the default full name of the chart. |
+| httpRoute | object | `{"annotations":{},"enabled":false,"hostnames":[],"parentRefs":[],"rules":[{"matches":[{"path":{"type":"PathPrefix","value":"/"}}]}]}` | HTTPRoute configuration for Gateway API. See: https://gateway-api.sigs.k8s.io/ |
+| httpRoute.hostnames | list | `[]` | Hostnames to match for this HTTPRoute |
+| httpRoute.parentRefs | list | `[]` | Gateway references to attach this HTTPRoute to |
+| httpRoute.rules | list | `[{"matches":[{"path":{"type":"PathPrefix","value":"/"}}]}]` | Rules for routing traffic |
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy (Always, IfNotPresent, or Never). |
| image.repository | string | `"docker.io/jellyfin/jellyfin"` | Container image repository for Jellyfin. |
| image.tag | string | `""` | Jellyfin container image tag. Leave empty to automatically use the Chart's app version. |
@@ -134,6 +138,33 @@ helm install my-jellyfin jellyfin/jellyfin -f values.yaml
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
+## Gateway API HTTPRoute
+
+This chart supports the Kubernetes Gateway API HTTPRoute resource as a modern alternative to Ingress.
+
+To use HTTPRoute, you need to have Gateway API CRDs installed in your cluster and a Gateway resource configured.
+
+Example configuration:
+
+```yaml
+httpRoute:
+ enabled: true
+ annotations: {}
+ parentRefs:
+ - name: my-gateway
+ namespace: gateway-system
+ sectionName: https
+ hostnames:
+ - jellyfin.example.com
+ rules:
+ - matches:
+ - path:
+ type: PathPrefix
+ value: /
+```
+
+For more information about Gateway API, see:
+
## Hardware acceleration
Out of the box the pod does not have the necessary permissions to enable hardware acceleration (HWA) in Jellyfin.
diff --git a/charts/jellyfin/README.md.gotmpl b/charts/jellyfin/README.md.gotmpl
index ee08a35..bbcd888 100644
--- a/charts/jellyfin/README.md.gotmpl
+++ b/charts/jellyfin/README.md.gotmpl
@@ -59,6 +59,33 @@ helm install my-jellyfin jellyfin/jellyfin -f values.yaml
{{ template "helm-docs.versionFooter" . }}
+## Gateway API HTTPRoute
+
+This chart supports the Kubernetes Gateway API HTTPRoute resource as a modern alternative to Ingress.
+
+To use HTTPRoute, you need to have Gateway API CRDs installed in your cluster and a Gateway resource configured.
+
+Example configuration:
+
+```yaml
+httpRoute:
+ enabled: true
+ annotations: {}
+ parentRefs:
+ - name: my-gateway
+ namespace: gateway-system
+ sectionName: https
+ hostnames:
+ - jellyfin.example.com
+ rules:
+ - matches:
+ - path:
+ type: PathPrefix
+ value: /
+```
+
+For more information about Gateway API, see:
+
## Hardware acceleration
Out of the box the pod does not have the necessary permissions to enable hardware acceleration (HWA) in Jellyfin.
diff --git a/charts/jellyfin/templates/httproute.yaml b/charts/jellyfin/templates/httproute.yaml
new file mode 100644
index 0000000..c701451
--- /dev/null
+++ b/charts/jellyfin/templates/httproute.yaml
@@ -0,0 +1,33 @@
+{{- if .Values.httpRoute.enabled }}
+apiVersion: gateway.networking.k8s.io/v1
+kind: HTTPRoute
+metadata:
+ name: {{ include "jellyfin.fullname" . }}
+ labels:
+ {{- include "jellyfin.labels" . | nindent 4 }}
+ {{- with .Values.httpRoute.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ {{- with .Values.httpRoute.parentRefs }}
+ parentRefs:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.httpRoute.hostnames }}
+ hostnames:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ rules:
+ {{- range .Values.httpRoute.rules }}
+ - matches:
+ {{- range .matches }}
+ - path:
+ type: {{ .path.type }}
+ value: {{ .path.value }}
+ {{- end }}
+ backendRefs:
+ - name: {{ include "jellyfin.fullname" $ }}
+ port: {{ $.Values.service.port }}
+ {{- end }}
+{{- end }}
diff --git a/charts/jellyfin/values.yaml b/charts/jellyfin/values.yaml
index 068c0ef..0ae375c 100644
--- a/charts/jellyfin/values.yaml
+++ b/charts/jellyfin/values.yaml
@@ -124,6 +124,25 @@ ingress:
# hosts:
# - chart-example.local
+# -- HTTPRoute configuration for Gateway API. See: https://gateway-api.sigs.k8s.io/
+httpRoute:
+ enabled: false
+ annotations: {}
+ # -- Gateway references to attach this HTTPRoute to
+ parentRefs: []
+ # - name: my-gateway
+ # namespace: gateway-system
+ # sectionName: https
+ # -- Hostnames to match for this HTTPRoute
+ hostnames: []
+ # - jellyfin.example.com
+ # -- Rules for routing traffic
+ rules:
+ - matches:
+ - path:
+ type: PathPrefix
+ value: /
+
# -- Resource requests and limits for the Jellyfin container.
resources: {}
# limits: