Requirement of l5d-dst-override headers in ingress mode

The 2.13.0 release seems to have brought the hard requirement of l5d-dst-override headers in all requests going to a pod meshed in ingress mode.

Requests without it return a 502 and output a message similar to

status: NotFound, message: "No such service", details: [], metadata: MetadataMap { headers: {"content-type": "application/grpc", "content-length": "0"} } error.sources=[status: NotFound, message: "No such service", details: [], metadata: MetadataMap { headers: {"content-type": "application/grpc".

Unexpected behavior change on ingress injected pods in v2.13.x · Issue #10908 · linkerd/linkerd2 · GitHub was created on the premise this was a good, intended change and just improperly documented. I created #1634 with the same premise.

It seems this was a documented change in edge-21.5.1, however and reverted in edge-21.5.3 after some discussion.

One issue with this change is the difficulty that some ingress controllers provide for configuring headers for each service will severely increase the complexity of setting up linkerd. A more intractable issue is the ability to ingress to non-meshed services (including external services).

Thanks for reaching out! We’re currently working on a fix for this here: Unexpected behavior change on ingress injected pods in v2.13.x · Issue #10908 · linkerd/linkerd2 · GitHub

The fix for this has been released with the new stable release 2.13.5 Release stable-2.13.5 · linkerd/linkerd2 · GitHub