envoyproxy / envoyproxy/envoy

Allow http health checks on https upstreams

Open
#9,553 1 comment 0 reactions 0 assignees View on GitHub
area/service discovery design proposal help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 22h
Merged PRs (30d)
430

Description

*Title*: *Allow http health checks on https upstreams*

*Description*:

My use case is an upstream cluster offers (for legacy reasons) health checks via http on a different port than the content which is offered with TLS encryption. The [documentation](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/health_checking#health-checking) states:

> Health checks occur over the transport socket specified for the cluster. This implies that if a cluster is using a TLS-enabled transport socket, the health check will also occur over TLS.

In this feature request I would like to propose to change this.

This is useful because our old proxy relies on those checks being available as non TLS checks, hence migration would be simplified by mirroring the same behaviour in envoy.

There is already an [mechanism to select different transports](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/cds.proto#cluster) within a cluster using `transport_socket_matches`. An elegant approach would be to lookup the transport with a specific metadata set for the health endpoint. This could be configurable metadata entry or be a fixed one (eg. `envoyIsHealthCheck` ).

I am not familiar with the code yet, but given that feature request is reasonable I could try to implement it by myself. Thanks for providing this awesome project, with that feature added it would bring even more value to my use case.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.