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 -![Version: 2.5.0](https://img.shields.io/badge/Version-2.5.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.11.2](https://img.shields.io/badge/AppVersion-10.11.2-informational?style=flat-square) +![Version: 2.6.0](https://img.shields.io/badge/Version-2.6.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.11.2](https://img.shields.io/badge/AppVersion-10.11.2-informational?style=flat-square) 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: