linkerd2/controller/api/destination/watcher
Alex Leong ab7226cbcd
Return invalid argument for external name services (#3120)
Fixes https://github.com/linkerd/linkerd2/issues/2800#issuecomment-513740498

When the Linkerd proxy sends a query for a Kubernetes external name service to the destination service, the destination service returns `NoEndpoints: exists=false` because an external name service has no endpoints resource.  Due to a change in the proxy's fallback logic, this no longer causes the proxy to fallback to either DNS or SO_ORIG_DST and instead fails the request.  The net effect is that Linkerd fails all requests to external name services.

We change the destination service to instead return `InvalidArgument` for external name services.  This causes the proxy to fallback to SO_ORIG_DST instead of failing the request.

Signed-off-by: Alex Leong <alex@buoyant.io>
2019-07-29 16:31:22 -07:00
..
endpoints_watcher.go Return invalid argument for external name services (#3120) 2019-07-29 16:31:22 -07:00
endpoints_watcher_test.go Return invalid argument for external name services (#3120) 2019-07-29 16:31:22 -07:00
k8s.go Return invalid argument for external name services (#3120) 2019-07-29 16:31:22 -07:00
profile_watcher.go Add support for stateful sets (#3113) 2019-07-24 14:09:46 -07:00
profile_watcher_test.go Add support for stateful sets (#3113) 2019-07-24 14:09:46 -07:00
prometheus.go Add support for stateful sets (#3113) 2019-07-24 14:09:46 -07:00
test_util.go Update ServiceProfile CRD to version v1alpha2 and remove validation (#3078) 2019-07-23 11:46:31 -07:00
traffic_split_watcher.go Add prometheus metrics for watchers (#3022) 2019-07-08 11:50:26 -07:00
traffic_split_watcher_test.go Add traffic splitting to destination profiles (#2931) 2019-06-28 13:19:47 -07:00