envoyproxy/envoy

WebSockets with WSS are not working due to EnvoyFilter conflicts

Open

#19,645 创建于 2022年1月21日

在 GitHub 查看
 (14 评论) (4 反应) (0 负责人)C++ (5,373 fork)batch import
help wantedquestion

仓库指标

Star
 (27,997 star)
PR 合并指标
 (平均合并 8天) (30 天内合并 378 个 PR)

描述

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

贡献者指南