envoyproxy / envoyproxy/gateway

Support HTTPs Active Health Checks For TLS Passthrough Upstreams

オープン
#4,100 コメント 17 件 リアクション 0 件 担当者 1 名 @muzcategui1106 が担当を希望しています GitHub で見る
kind/decision stale
主要言語
Go
スター
3k
フォーク
864
平均マージ
2日 2時間
マージ済み PR(30日)
140

説明

### Description

Envoy gateway supports health checks for applications using TLS termination by creating an `HTTPRoute` and a BackendTrafficPolicy](https://gateway.envoyproxy.io/latest/api/extension_types/#backendtrafficpolicy).

However, this setup does not work for TLS passthrough. When we define a health check for a TLS passthrough `Listerner` that has an associated `TLSRoute` we get the following error.

`2024-08-09T01:45:23.429Z ERROR gateway-api runner/runner.go:186 unable to validate xds ir, skipped sending it {"runner": "gateway-api", "error": "field HTTPHealthChecker.Host should be specified"}`

TLS passthrough is common in many organizations where app teams dont want to share the cert in the cluster where envoy gateway is running or where latency is a concern and they do not wish to decrypt and rencrypt. It is common for an organization to have a common CA cert chain that can be used to validate any certificates created by the compnay's CA, in such cases, appt teams can configure it via a configmap or it can be supplied by cluster admins by default.

This feature request aims to add support for active health checks for tls passthrough applications by using the same mechanism as TLS termination listeners with HTTPRoutes.

The fix seems simple in theory but the devil is on the details. We need to setup the health check hostname for TLS routes just as we do for HTTPRoutes.

* [HTTPRoute Implementation](https://github.com/envoyproxy/gateway/blob/eeb62c88f8949f8da8a1278ec5515ffa1a004444/internal/gatewayapi/backendtrafficpolicy.go#L400)
* [TLSRoute Implementation](https://github.com/envoyproxy/gateway/blob/eeb62c88f8949f8da8a1278ec5515ffa1a004444/internal/gatewayapi/backendtrafficpolicy.go#L356)

[Validation Function](https://github.com/envoyproxy/gateway/blob/eeb62c88f8949f8da8a1278ec5515ffa1a004444/internal/ir/xds.go#L2030)

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。