sadpandajoe commented on code in PR #43635:
URL: https://github.com/apache/superset/pull/43635#discussion_r3939960775


##########
docs/admin_docs/installation/kubernetes.mdx:
##########
@@ -319,6 +320,50 @@ configOverrides:
     AUTH_USER_REGISTRATION_ROLE = "Admin"
 ```
 
+### Exposing Superset via Gateway API (HTTPRoute)
+
+As an alternative to `Ingress`, the chart can create a [Gateway 
API](https://gateway-api.sigs.k8s.io/)
+`HTTPRoute` that attaches to a Gateway already running in your cluster. This 
requires the Gateway
+API CRDs (`gateway.networking.k8s.io/v1`) to be installed, along with a 
Gateway resource for the

Review Comment:
   This says `v1` CRDs are required, but the same section supports a `v1beta1` 
`httproute.apiVersion`. An installation that serves only v1beta1 can render 
this chart successfully but is told it is unsupported. Could this require CRDs 
serving the configured API version instead?



##########
docs/admin_docs/installation/kubernetes.mdx:
##########
@@ -319,6 +320,50 @@ configOverrides:
     AUTH_USER_REGISTRATION_ROLE = "Admin"
 ```
 
+### Exposing Superset via Gateway API (HTTPRoute)
+
+As an alternative to `Ingress`, the chart can create a [Gateway 
API](https://gateway-api.sigs.k8s.io/)
+`HTTPRoute` that attaches to a Gateway already running in your cluster. This 
requires the Gateway
+API CRDs (`gateway.networking.k8s.io/v1`) to be installed, along with a 
Gateway resource for the
+route to attach to. If the Gateway lives in a different namespace than the 
`HTTPRoute` (as in the
+example below), its listener's `allowedRoutes` must explicitly permit routes 
from this release's
+namespace, or the `HTTPRoute` will install successfully but never attach.
+
+```yaml
+httproute:
+  enabled: true
+  parentRefs:
+    - name: my-gateway
+      namespace: gateway-system
+  hostnames:
+    - superset.example.com
+  rules:
+    - matches:
+        - path:
+            type: PathPrefix
+            value: /
+```
+
+- `httproute.parentRefs` lists the Gateway(s) the route attaches to.
+- `httproute.hostnames` matches against the HTTP `Host` header; it's 
templated, so values like
+  `{{ .Release.Name }}` can be used.
+- `httproute.rules` are routing rules backed by the Superset service; each 
rule accepts standard
+  `matches`, `filters`, and `timeouts` fields, and an optional `weight` 
(defaults to `1`) applied to
+  its single backend reference. Since each rule maps to one backend, `weight` 
has no traffic-splitting
+  effect here; it only matters if you fork the template to add multiple 
`backendRefs` to a rule.
+  `timeouts` only joined the Gateway API Standard channel in v1.2, so it 
requires both v1.2+ CRDs
+  and a supporting controller; drop it if either predates that.
+- If `supersetWebsockets.enabled` is set, an extra rule routing 
`supersetWebsockets.ingress.path`
+  (default `/ws`) to the `-ws` service is appended automatically, mirroring 
the `Ingress` behavior
+  so global async queries keep working behind a Gateway.

Review Comment:
   Adding the `/ws` route alone does not ensure WebSocket upgrades work on 
every Gateway implementation: Gateway API treats WebSocket backend protocol 
support as controller-dependent, and some controllers require an explicit 
protocol opt-in. Could this qualify the promise with the selected controller's 
WebSocket support/required configuration?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to