linkerd2/controller
Oliver Gould 7cc5e5c646
multicluster: Use the proxy as an HTTP gateway (#4528)
This change modifies the linkerd-gateway component to use the inbound
proxy, rather than nginx, for gateway. This allows us to detect loops and
propagate identity through the gateway.

This change also cleans up port naming to `mc-gateway` and `mc-probe`
to resolve conflicts with Kubernetes validation.

---

* proxy: v2.99.0

The proxy can now operate as gateway, routing requests from its inbound
proxy to the outbound proxy, without passing the requests to a local
application. This supports Linkerd's multicluster feature by adding a
`Forwarded` header to propagate the original client identity and assist
in loop detection.

---

* Add loop detection to inbound & TCP forwarding (linkerd/linkerd2-proxy#527)
* Test loop detection (linkerd/linkerd2-proxy#532)
* fallback: Unwrap errors recursively (linkerd/linkerd2-proxy#534)
* app: Split inbound/outbound constructors into components (linkerd/linkerd2-proxy#533)
* Introduce a gateway between inbound and outbound (linkerd/linkerd2-proxy#540)
* gateway: Add a Forwarded header (linkerd/linkerd2-proxy#544)
* gateway: Return errors instead of responses (linkerd/linkerd2-proxy#547)
* Fail requests that loop through the gateway (linkerd/linkerd2-proxy#545)

* inject: Support config.linkerd.io/enable-gateway

This change introduces a new annotation,
config.linkerd.io/enable-gateway, that, when set, enables the proxy to
act as a gateway, routing all traffic targetting the inbound listener
through the outbound proxy.

This also removes the nginx default listener and gateway port of 4180,
instead using 4143 (the inbound port).

* proxy: v2.100.0

This change modifies the inbound gateway caching so that requests may be
routed to multiple leaves of a traffic split.

---

* inbound: Do not cache gateway services (linkerd/linkerd2-proxy#549)
2020-06-02 19:37:14 -07:00
..
api Probe manager simplification (#4510) 2020-06-01 14:41:29 -07:00
cmd multicluster: Use the proxy as an HTTP gateway (#4528) 2020-06-02 19:37:14 -07:00
gen Add gateways command, allowing the retrieval of gateway stats (#4241) 2020-04-27 13:55:01 +03:00
heartbeat Upgrade prometheus to v1.2.1 (#3541) 2019-12-11 15:26:16 -08:00
identity Cert manager support (#3600) 2019-10-24 13:15:14 -07:00
k8s Properly show the meshed count for non-selector services (#4446) 2020-05-20 10:08:27 -07:00
proxy-injector multicluster: Use the proxy as an HTTP gateway (#4528) 2020-06-02 19:37:14 -07:00
script/destination-client Remove Discovery service leftovers (#3500) 2019-10-15 11:20:21 -05:00
sp-validator Have the proxy-injector emit events upon injection/skipping injection (#3316) 2019-08-26 13:34:36 -05:00
tap Make gateway require TLS for incoming requests (#4339) 2020-05-11 10:07:48 +03:00
webhook Service Mirroring Component (#4028) 2020-03-02 21:16:08 +02:00
Dockerfile Add --close-wait-timeout inject flag (#4409) 2020-05-21 14:14:14 -07:00