linkerd / linkerd/linkerd2

HTTP Header casing is modified

Open
#3,964 9 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

area/proxy help wanted
Dominant language
Go
Stars
11.5k
Forks
1.4k
Avg merge
3d 22h
Merged PRs (30d)
53

Description

## Bug Report

### What is the issue?
When doing an HTTP call to my service, the headers of my HTTP requests are modified. All header keys are changed to lower case.

Even though the HTTP standard says that headers are not case sensitive, this can be implemented differently in some servers. Using linkerd makes it impossible to integrate with these services which depend on proper header key casing.

### How can it be reproduced?
Deploy two applications with linkerd proxies enabled. Application A is calling application B with an HTTP request which contains headers which have upper case fields. When inspecting the incoming request in application B, you will see that all header keys are lower cased now.

When calling Application B directly without passing through the linkerd proxy the logs still show the original headers.

### Environment

- Kubernetes Version: v1.15.7
- Cluster Environment: Dedicated Setup
- Host OS: Core OS
- Linkerd version: 2.6.1

### Possible solution
* an additional annotation would be feasible for us to deactivate the lower-casing

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or code entry points are named. Start by reproducing the request through two Linkerd-enabled Kubernetes applications using mixed-case headers, then trace where the proxy normalizes them. Done means establishing whether preserving header casing is feasible and adding coverage for the chosen behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.