envoyproxy/envoy

WebSockets with WSS are not working due to EnvoyFilter conflicts

Open

#19.645 geöffnet am 21. Jan. 2022

Auf GitHub ansehen
 (14 Kommentare) (4 Reaktionen) (0 zugewiesene Personen)C++ (5.373 Forks)batch import
help wantedquestion

Repository-Metriken

Stars
 (27.997 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 8T) (378 gemergte PRs in 30 T)

Beschreibung

Title: Websockets with WSS are not working due to EnvoyFilter conflicts

Description:

An EnvoyFilter applied to an Istio configuration (e.g. to limit request size) will break the WSS and fail to initiate 101 Switching Protocols.

Repro steps:

Here's an example filter that will cause websocket functionality to stop working:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: max-request-size
  namespace: istio-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: "envoy.filters.http.router"
    patch:
      operation: INSERT_BEFORE
      value:
        name: envoy.filters.http.buffer
        typed_config:
          '@type': type.googleapis.com/envoy.extensions.filters.http.buffer.v3.Buffer
          max_request_bytes: 52428800

If this filter is removed WebSocket functionality returns to normal.

Related Links

https://github.com/istio/istio/issues/36545

Contributor Guide