envoyproxy / envoyproxy/gateway

Support extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig

Open
#5,797 4 comments 1 reaction 0 assignees View on GitHub
stale triage
Dominant language
Go
Stars
3k
Forks
864
Avg merge
2d 2h
Merged PRs (30d)
140

Description

## Problem

Application developers need to explicitly specify `appProtocol: kubernetes.io/h2c` in `Service` spec for Envoy Gateway to configure H2 for upstreams.

These HTTP protocol details are not something that application developers usually think about. It causes some pain for them to remember to manually specify it.

## Ideal Behavior

Envoy supports negotiating the highest possible HTTP protocol via [extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/upstreams/http/v3/http_protocol_options.proto#extensions-upstreams-http-v3-httpprotocoloptions-autohttpconfig).

Envoy Gateway should automatically configure this option when upstreams support ALPN. ALPN is supported when upstreams use TLS, i.e. a `BackendTLSPolicy` exists for the `Service`.

## Code Reference

https://github.com/envoyproxy/gateway/blob/17241c41cdb9825553cfa836d0e367fb3d08b835/internal/xds/translator/cluster.go#L658-L693

cc @guydc @liorokman , seems you've previously thought about this, but I didn't see any github issue for it.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.