Skip to content

Conversation

@majiayu000
Copy link

Summary

This PR fixes #2295

Changes

  • pkg/admin/admin.go
  • pkg/protohttp/protohttp.go
  • pkg/protohttp/protohttp_test.go
  • web/srv/reverse_proxy.go
  • web/srv/server.go

Problem:
Synthetic proxy responses (responses generated by the control plane
components rather than forwarded from upstream services) need an
identifying header so clients can distinguish them from application
responses.

Solution:
Add a Via header (RFC 7230) with value "1.1 linkerd" to all synthetic
HTTP responses generated by the Linkerd control plane:
- Admin server (/ping, /ready endpoints)
- Web dashboard server
- Reverse proxy responses (Grafana, Jaeger)
- Proto HTTP responses (error and protobuf responses)

The Via header is a standard HTTP header that identifies intermediate
protocols and recipients between the user agent and the server.

Fixes linkerd#2295

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: majiayu000 <1835304752@qq.com>
@majiayu000 majiayu000 requested a review from a team as a code owner December 30, 2025 06:35
@adleong
Copy link
Member

adleong commented Jan 1, 2026

Hi @majiayu000

The issue you linked to refers to synthetic responses generated by the Linkerd proxy. This would need to be implemented in the Linkerd proxy, not the Linkerd control plane as you have done here.

@majiayu000
Copy link
Author

@adleong Thanks for your review. I will close this pr and try to solve it in proxy.

@majiayu000 majiayu000 closed this Jan 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Synthetic proxy responses should contain an identifying header

2 participants