-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
What problem are you trying to solve?
I have an issue when sending more than 16kb of headers. We increased header size on our ingress and our application but linkerd is the last in the chain which needs to allow a bigger header size to work.
Linkerd Debug output is:
{"timestamp":"2025-05-22T06:14:04.309437Z","level":"DEBUG","fields":{"message":"received","frame":"Headers { stream_id: StreamId(3), flags: (0x5: END_HEADERS | END_STREAM) }"},"target":"h2::codec::framed_read","threadId":"ThreadId(1)"} {"timestamp":"2025-05-22T06:14:04.309477Z","level":"DEBUG","fields":{"message":"stream error REQUEST_HEADER_FIELDS_TOO_LARGE -- recv_headers: frame is over size; stream=StreamId(3)"},"target":"h2::proto::streams::recv","threadId":"ThreadId(1)"}
linkerd return the following error to the client:
HTTP/1.1 431 Request Header Fields Too Large
Linkerd is using h2 which default header size value is 16kb
https://docs.rs/hyper/latest/hyper/client/conn/http2/struct.Builder.html#method.max_header_list_size
We need the option to increase this value.
How should the problem be solved?
Add an option to make this value configurable.
Any alternatives you've considered?
No. Only removing linkerd. But thats not really an option.
How would users interact with this feature?
Configure it via helm-chart or maybe annotation on the pod.
Would you like to work on this feature?
no