From 9fed675185ae7f0e9d67d54c82e90c0171b0b982 Mon Sep 17 00:00:00 2001 From: hector <42570491+majinghe@users.noreply.github.com> Date: Wed, 19 Aug 2026 21:01:53 +0800 Subject: [PATCH] feat(helm): add istio gateway class support (#6264) --- helm/README.md | 4 ++-- .../gateway-api/istio-destinationrule.yaml | 16 ++++++++++++++++ helm/rustfs/values.yaml | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 helm/rustfs/templates/gateway-api/istio-destinationrule.yaml diff --git a/helm/README.md b/helm/README.md index 79b7c6fd6..c246a3bac 100644 --- a/helm/README.md +++ b/helm/README.md @@ -267,7 +267,7 @@ uer. `ClusterIssuer` or `Issuer`. | | topologySpreadConstraints.enabled | bool | `false` | Enable custom topology spread constraints on distributed-mode StatefulSet pods. | | topologySpreadConstraints.constraints | list | `[]` | Raw `spec.template.spec.topologySpreadConstraints` entries applied to the distributed StatefulSet when enabled. | | gatewayApi.enabled | bool | `false` | To enable/disable gateway api support. | -| gatewayApi.gatewayClass | string | `traefik` | Gateway class implementation. | +| gatewayApi.gatewayClass | string | `traefik` | Gateway class implementation (traefik, contour, istio). | | gatewayApi.httpToHttpsRedirect | bool | `true` | To enable/disable the redirect httproute. | | gatewayApi.listeners.http.name | string | `web` | Gateway API http listener name. | | gatewayApi.listeners.http.port| int | `8000` | Gateway API http listener port. | @@ -437,7 +437,7 @@ helm install rustfs rustfs/rustfs -n rustfs --set tls.enabled=true,--set-file tl # Gateway API support (alpha) -Due to [ingress nginx retirement](https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/) in March 2026, so RustFS adds support for [gateway api](https://gateway-api.sigs.k8s.io/). Currently, RustFS only supports traefik as gateway class, more and more gateway class support will be added in the future after those classes are tested. If you want to enable gateway api, specify `gatewayApi.enabled` to `true` while specify `ingress.enabled` to `false`. After installation, you can find the `Gateway` and `HttpRoute` resources, +Due to [ingress nginx retirement](https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/) in March 2026, so RustFS adds support for [gateway api](https://gateway-api.sigs.k8s.io/). Currently, RustFS supports traefik, contour, and istio as gateway classes. If you want to enable gateway api, specify `gatewayApi.enabled` to `true` while specify `ingress.enabled` to `false`. After installation, you can find the `Gateway` and `HttpRoute` resources, ``` $ kubectl -n rustfs get gateway diff --git a/helm/rustfs/templates/gateway-api/istio-destinationrule.yaml b/helm/rustfs/templates/gateway-api/istio-destinationrule.yaml new file mode 100644 index 000000000..3c4b5cd43 --- /dev/null +++ b/helm/rustfs/templates/gateway-api/istio-destinationrule.yaml @@ -0,0 +1,16 @@ +{{- if and .Values.gatewayApi.enabled (eq .Values.gatewayApi.gatewayClass "istio") }} +apiVersion: networking.istio.io/v1 +kind: DestinationRule +metadata: + name: {{ include "rustfs.fullname" . }}-sticky + namespace: {{ .Release.Namespace }} +spec: + host: {{ include "rustfs.fullname" . }}-svc.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }} + trafficPolicy: + loadBalancer: + consistentHash: + httpCookie: + name: rustfs + path: / + ttl: 0s +{{- end }} diff --git a/helm/rustfs/values.yaml b/helm/rustfs/values.yaml index d57317243..365a1a57c 100644 --- a/helm/rustfs/values.yaml +++ b/helm/rustfs/values.yaml @@ -361,7 +361,7 @@ ingress: gatewayApi: enabled: false - gatewayClass: traefik # Only support for traefik and contour gatewayClass at the moment. + gatewayClass: traefik # Supported gatewayClass: traefik, contour, istio. listeners: # Specify which listeners to create on the Gateway. http: name: web