From 98b9b405c716f1ca471d08ce6c867011347149ee Mon Sep 17 00:00:00 2001 From: Yann Ponzoni <7924417+alphayax@users.noreply.github.com> Date: Sun, 30 Nov 2025 12:41:22 +0700 Subject: [PATCH 1/3] feat: add Gateway API HTTPRoute support Add optional HTTPRoute resource for Gateway API integration as an alternative to traditional Ingress. Configurable via httpRoute.enabled, httpRoute.parentRefs, and httpRoute.hostnames values. Signed-off-by: Yann Ponzoni <7924417+alphayax@users.noreply.github.com> --- .../templates/httproute.yaml | 27 +++++++++++++++++++ charts/plex-media-server/values.yaml | 19 +++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 charts/plex-media-server/templates/httproute.yaml diff --git a/charts/plex-media-server/templates/httproute.yaml b/charts/plex-media-server/templates/httproute.yaml new file mode 100644 index 00000000..25499943 --- /dev/null +++ b/charts/plex-media-server/templates/httproute.yaml @@ -0,0 +1,27 @@ +{{- if .Values.httpRoute.enabled -}} +--- +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: {{ include "pms-chart.fullname" . }} + labels: {{ include "pms-chart.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: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - name: {{ include "pms-chart.fullname" . }} + port: {{ .Values.service.port }} +{{- end -}} diff --git a/charts/plex-media-server/values.yaml b/charts/plex-media-server/values.yaml index 4eb67e48..c0325363 100644 --- a/charts/plex-media-server/values.yaml +++ b/charts/plex-media-server/values.yaml @@ -44,6 +44,25 @@ ingress: # -- Custom annotations to put on the ingress resource annotations: {} +httpRoute: + # -- Specify if an HTTPRoute resource for the pms server should be created or not + enabled: false + + # -- Gateway API parent references (required when enabled) + # @default -- `[]` + parentRefs: [] + # - name: my-gateway + # namespace: gateway-namespace + # sectionName: https + + # -- Hostnames to match for the HTTPRoute + # @default -- `[]` + hostnames: [] + # - plex.example.com + + # -- Custom annotations to put on the HTTPRoute resource + annotations: {} + pms: # -- The storage class to use when provisioning the pms config volume # this needs to be created manually, null will use the default From 1d7f291e480ee8dbc67984ce3a769807e48b6b46 Mon Sep 17 00:00:00 2001 From: Yann Ponzoni <7924417+alphayax@users.noreply.github.com> Date: Wed, 3 Dec 2025 11:56:35 +0700 Subject: [PATCH 2/3] fix: correct indentation in HTTPRoute template (fix review comments) Signed-off-by: Yann Ponzoni <7924417+alphayax@users.noreply.github.com> --- .../plex-media-server/templates/httproute.yaml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/charts/plex-media-server/templates/httproute.yaml b/charts/plex-media-server/templates/httproute.yaml index 25499943..8fe2618d 100644 --- a/charts/plex-media-server/templates/httproute.yaml +++ b/charts/plex-media-server/templates/httproute.yaml @@ -1,5 +1,4 @@ {{- if .Values.httpRoute.enabled -}} ---- apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: @@ -17,11 +16,11 @@ spec: hostnames: {{ toYaml . | nindent 4 }} {{- end }} rules: - - matches: - - path: - type: PathPrefix - value: / - backendRefs: - - name: {{ include "pms-chart.fullname" . }} - port: {{ .Values.service.port }} -{{- end -}} + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - name: {{ include "pms-chart.fullname" . }} + port: {{ .Values.service.port }} +{{- end }} From 4a7f3a7358b7e6444d882bf7c3e73dae5dbcc81c Mon Sep 17 00:00:00 2001 From: Gaston Festari Date: Wed, 3 Dec 2025 09:46:38 -0300 Subject: [PATCH 3/3] docs: update readme --- charts/plex-media-server/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/charts/plex-media-server/README.md b/charts/plex-media-server/README.md index a33641d6..e014acc1 100644 --- a/charts/plex-media-server/README.md +++ b/charts/plex-media-server/README.md @@ -111,6 +111,10 @@ Before contributing, please read the [Code of Conduct](../../CODE_OF_CONDUCT.md) | fullnameOverride | string | `""` | | | global.imageRegistry | string | `""` | Allow parent charts to override registry hostname | | hostNetwork | bool | `false` | Set to true to run the Pod in the host's network namespace. This may be required for specific networking setups or accessing local resources. | +| httpRoute.annotations | object | `{}` | Custom annotations to put on the HTTPRoute resource | +| httpRoute.enabled | bool | `false` | Specify if an HTTPRoute resource for the pms server should be created or not | +| httpRoute.hostnames | list | `[]` | Hostnames to match for the HTTPRoute | +| httpRoute.parentRefs | list | `[]` | Gateway API parent references (required when enabled) | | image | object | `{"pullPolicy":"IfNotPresent","registry":"index.docker.io","repository":"plexinc/pms-docker","sha":"","tag":"1.42.2.10156-f737b826c"}` | The docker image information for the pms application | | image.registry | string | `"index.docker.io"` | The public dockerhub registry | | imagePullSecrets | list | `[]` | |