Skip to content

CFP: Support configuring Envoy header key formatting for HTTP/1.1 traffic

Cilium Feature Proposal

Describe the feature you'd like

I'd like to be able to configure Envoy's header_key_formatter feature in a consistent manner, for example via helm values.

Envoy makes a reasonable decision to normalize all http headers by default, both for http/2, as in the spec, and also for HTTP/1.1, which does allow for uppercased characters as well. At the same time, Envoy exposes a way to configure formatters for headers, that can be attached to clusters and listeners.

At the moment I have not been able to inject this configuration effectively via either CiliumEnvoyConfig or the Envoy bootstrap ConfigMap since Cilium seems to rely primarily on dynamic listeners. I would like to be able to specify a formatter in the helm values that would be applied to all listeners/clusters that would affect application traffic such that Envoy preserves header casing for HTTP/1.1 traffic, both on ingress and egress to internet clients.