Commit Graph

25 Commits

Author SHA1 Message Date
Oliver Gould dba20ce33f
proxy: v2.84.0 (#3932)
This release fixes an issue that could cause the OpenCensus exporter to
stall.

This release does NOT include the experimental changes from
v2.83.0-experimental.

---

* http: Use the endpoint type to inform URI normalization (linkerd/linkerd2-proxy#404)
* Remove clone in opencensus exporter to ensure task is notified (linkerd/linkerd2-proxy#405)
2020-01-15 12:47:43 -08:00
Oliver Gould d3d8d855f0
proxy: v2.83.0-experimental (#3897)
This is an experimental release that includes large changes to the
proxy's request buffering and backpressure infrastructure.

Please exercise caution before deploying this proxy version into mission
critical environments.
2020-01-09 14:12:46 -08:00
Oliver Gould 4964e36b45
proxy: v2.82.0 (#3848)
This release adds a defense mechanism to ensure that resolutions are
released when the associated balancer becomes idle and should have
been dropped from the proxy.

Furthermore, the proxy is now more selective as to which gRPC status
codes are considered "failures" in metrics.

---

* Classify some gRPC status codes as non-errors (linkerd/linkerd2-proxy#395)
* discover: Timeout stalled resolutions (linkerd/linkerd2-proxy#401)
2019-12-19 09:15:59 -08:00
Oliver Gould f52056c3b7 proxy: v2.81.0 (#3817)
v2.80.0 fixed a problem where the destination controller client's
connection receive window could become exhausted, preventing additional
updates from the controller. The connection window has been increased
from 64K to 1MB to prevent a single stalled stream from block others.

Furthermore, discovery for IP addresses has been disabled in the proxy,
as the control plane does not yet support these resolutions. This
additionally lessons the load on the destination controller client.

---

* profiles: Eagerly read profiles off the wire (linkerd/linkerd2-proxy#397)
* router: Ensure that the purge task completes (linkerd/linkerd2-proxy#396)
* app-core: Add `accept` context with peer addr (linkerd/linkerd2-proxy#398)
* Remove default for destination lookup subnets (linkerd/linkerd2-proxy#399)
* Configure the HTTP/2 connection window to 1MB (linkerd/linkerd2-proxy#400)
2019-12-12 08:58:17 -05:00
Oliver Gould 954d1175b9 proxy: v2.79.0 (#3713)
* proxy: v2.79.0

This release includes internal dependencies updates including the Rust
compiler and the proxy's load balancer.

No user-facing changes are anticipated.

---

* Update Rust to 1.39.0 (linkerd/linkerd2-proxy#391)
* Update tower-balance (linkerd/linkerd2-proxy#392)
* Make the router HTTP-agnostic (linkerd/linkerd2-proxy#394)
* Make fallback HTTP-agnostic (linkerd/linkerd2-proxy#393)

Signed-off-by: Alex Leong <alex@buoyant.io>
2019-11-14 11:45:56 -08:00
Alex Leong 6c69ca94d0
proxy: v2.78.0 (#3693)
This release enables discovery for network address destinations. This
enables mesh identity for services like Prometheus that do pod-to-pod
communication without DNS names.

---

* make: Do not compile integration tests during packaging (linkerd/linkerd2-proxy#390)
* Resolve private IP addresses via the destination service (linkerd/linkerd2-proxy#388)
* internal: Decouple TCP forwarding from protocol dispatch (linkerd/linkerd2-proxy#389)

Signed-off-by: Alex Leong <alex@buoyant.io>
2019-11-13 10:05:34 -08:00
Oliver Gould edd2fc3865 proxy: v2.77.0 (#3684)
* proxy: v2.77.0

While much of the proxy has been restructured in support of upcoming TCP
mTLS enhancements, the only user-facing change anticipated in this
release is improved debug/error logging from the proxy, which now
includes a wealth of contextual information.

---

* Update maintainers.md (linkerd/linkerd2-proxy#366)
* internal: Split Accept from Listen (linkerd/linkerd2-proxy#368)
* internal: Remove the `ClientUsedTls` response extension (linkerd/linkerd2-proxy#370)
* internal: Split transport utilities into a subcrate (linkerd/linkerd2-proxy#369)
* Audit Cargo.lock for unused and outdated crates (linkerd/linkerd2-proxy#373)
* Adopt tokio-tracing contexts (linkerd/linkerd2-proxy#374)
* internal: Spilt app from linkerd2-proxy (linkerd/linkerd2-proxy#375)
* ci: Run docker builds on linkerd-docker host (linkerd/linkerd2-proxy#376)
* Update to Rust 1.38.0 (linkerd/linkerd2-proxy#377)
* Remove the LINKERD2_PROXY_INBOUND_FORWARD config (linkerd/linkerd2-proxy#379)
* Remove the linkerd2-task crate (linkerd/linkerd2-proxy#380)
* Record transport metrics after protocol detection (linkerd/linkerd2-proxy#381)
* Cleanup unused sock I found lying around (linkerd/linkerd2-proxy#384)
* internal: Move suffix-filtering into profiles API (linkerd/linkerd2-proxy#386)
* internal: Split tap out of app-core (linkerd/linkerd2-proxy#387)
* Modularize proxy initialization (linkerd/linkerd2-proxy#382)
2019-11-06 16:25:25 -08:00
Zahari Dichev b7207a2d8c
Revert "proxy: v2.76.0 (#3593)" (#3636)
This reverts commit 2c758154cf.

Signed-off-by: zaharidichev <zaharidichev@gmail.com>
2019-10-24 18:46:26 +03:00
Oliver Gould 2c758154cf proxy: v2.76.0 (#3593)
* proxy: v2.76.0

This release does not impact any user-facing behavior. The proxy's
internals have been restructured.

---

* Update maintainers.md (linkerd/linkerd2-proxy#366)
* internal: Split Accept from Listen (linkerd/linkerd2-proxy#368)
* internal: Remove the `ClientUsedTls` response extension (linkerd/linkerd2-proxy#370)
* internal: Split transport utilities into a subcrate (linkerd/linkerd2-proxy#369)
* Audit Cargo.lock for unused and outdated crates (linkerd/linkerd2-proxy#373)
* Adopt tokio-tracing contexts (linkerd/linkerd2-proxy#374)
* internal: Spilt app from linkerd2-proxy (linkerd/linkerd2-proxy#375)
* ci: Run docker builds on linkerd-docker host (linkerd/linkerd2-proxy#376)
* Update to Rust 1.38.0 (linkerd/linkerd2-proxy#377)

* fixup! proxy: v2.76.0
2019-10-24 09:56:26 +03:00
Alex Leong bcf54b7e12
proxy: Update to v2.75.0 (#3508)
* Handle 8 byte trace ids (linkerd/linkerd2-proxy#365)

Signed-off-by: Alex Leong <alex@buoyant.io>
2019-10-01 15:41:52 -07:00
Oliver Gould 38a2f3ad59 proxy: Update to v2.74.0 (#3502)
This release updates the Tap server to support emitting request and
response headers with Tap events.

* logging: update tracing-subscriber to 0.1.4 (linkerd/linkerd2-proxy#364)
* tap: add headers to tap events (linkerd/linkerd2-proxy#348)
* internal: Remove the SetKeepalive trait (linkerd/linkerd2-proxy#363)
2019-09-30 13:38:45 -07:00
Oliver Gould 5ad1233295 proxy: Update to v2.73.0 (#3479)
* Add distributed tracing support (linkerd/linkerd2-proxy#354)
* ci: Run integration tests on dedicated host (linkerd/linkerd2-proxy#358)
* Add http metadata to spans as annotations (linkerd/linkerd2-proxy#359)
* Instrument the opencensus exporter (linkerd/linkerd2-proxy#362)
2019-09-26 10:30:21 -07:00
Oliver Gould f21ac2fad9 proxy: Update to v2.72.0 (#3447)
This change updates the internals of the proxy's client to the
Destination controller. Other than some minor fixes to the client's
backoff logic, no user-facing changes are expected.

* Split service discovery into composable components (linkerd/linkerd2-proxy#341)
* logging: update `tracing` and `tracing-subscriber` (linkerd/linkerd2-proxy#352)
* resolve: Do not send the 'k8s' scheme (linkerd/linkerd2-proxy#356)
2019-09-18 16:34:36 -05:00
Oliver Gould d51f7f77a7
proxy: Update to v2.71.0 (#3433)
Update the proxy release process to fetch artifacts from tagged GitHub releases.

* Use GitHub Actions for Pull Requests (linkerd/linkerd2-proxy#343)
* ci: Run tests inside rust container (linkerd/linkerd2-proxy#344)
* update tracing crates (linkerd/linkerd2-proxy#346)
* core: Introduce the Recover trait (linkerd/linkerd2-proxy#347)
* ci: Automate releases via GitHub Actions (linkerd/linkerd2-proxy#349)
* Add opencensus exporter (linkerd/linkerd2-proxy#338)
* Add trace context crate (linkerd/linkerd2-proxy#339)
* ci: Use a readymade release action (linkerd/linkerd2-proxy#351)
* Add 587 to the list of ports to disable protocol detection (linkerd/linkerd2-proxy#350)
* Record SHA of package artifact (linkerd/linkerd2-proxy#353)
2019-09-17 15:18:24 -07:00
Oliver Gould fe0783dff5
proxy: Update proxy to fc400f97a4a9 (#3389)
* Stop using a Builder in the profile router (linkerd/linkerd2-proxy#330)
* Update and rename .github/workflows/rust.yml to rust.yml
* Fix compile error on windows (linkerd/linkerd2-proxy#335)
* Revert "Update and rename .github/workflows/rust.yml to rust.yml"
* travis: Allow 60 minutes for integration tests (linkerd/linkerd2-proxy#336)
* tests: Properly simulate destination errors (linkerd/linkerd2-proxy#332)
* Improve stack-related compiler error messages (linkerd/linkerd2-proxy#337)
* update hyper to v0.12.34
2019-09-05 12:28:12 -07:00
Eliza Weisman 96e8ed0165
proxy: Update proxy to 9a84914 (#3347)
* cargo: Set authors to Linkerd Developers (linkerd/linkerd2-proxy#322)
* Update Rust to 1.37.0 (linkerd/linkerd2-proxy#324)
* Update url crate to 1.7.2 (linkerd/linkerd2-proxy#327)
* config: Make destination service configuration required (linkerd/linkerd2-proxy#325)
* make: Add test-lib target (linkerd/linkerd2-proxy#329)
* fallback: Split fallback into dedicated crate (linkerd/linkerd2-proxy#326)
* update to latest rustls, webpki, and ring
2019-08-29 12:00:20 -07:00
Oliver Gould e3c3e928dd
proxy: Update proxy to master (#3286)
* Split utilities into sub-crates (linkerd/linkerd2-proxy#306)
* tests: Update to Rust 2018 (linkerd/linkerd2-proxy#311)
* app: Split modules from inbound and outbound (linkerd/linkerd2-proxy#312)
* Introduce linkerd2-proxy-core (linkerd/linkerd2-proxy#313)
* travis: `make clean` after tests (linkerd/linkerd2-proxy#315)
* core: Formalize the listen/serve API (linkerd/linkerd2-proxy#314)
* Move inbound and outbound stacks from app::main (linkerd/linkerd2-proxy#316)
* core: Split resolve traits into core (linkerd/linkerd2-proxy#317)
* Split linkerd2-proxy-resolve (linkerd/linkerd2-proxy#318)
* classify: Assume success on missing grpc-status (linkerd/linkerd2-proxy#319)

Fixes #3281
2019-08-19 13:27:11 -07:00
Oliver Gould 8ef4104c95
proxy: Update proxy to 6910d717 (#3254)
* logging: format log records consistently (linkerd/linkerd2-proxy#310)
2019-08-14 13:34:15 -07:00
Alex Leong 0ef4bfd8b3
proxy: Update proxy to c7c9dc1cccba86eb6e6dcdd9a32668ea2f479987 (#3235)
* fix typo (linkerd/linkerd2-proxy#308)
* Hangup destination resolutions when dropped (linkerd/linkerd2-proxy#307)

Signed-off-by: Alex Leong <alex@buoyant.io>
2019-08-12 15:18:55 -07:00
Oliver Gould 7ea090ef09
proxy: Update proxy to master (#3225)
* update-rust-version: Check usage (linkerd/linkerd2-proxy#298)
* tap: fix tap response streams never ending (linkerd/linkerd2-proxy#299)
* Require identity on tap requests (linkerd/linkerd2-proxy#295)
* Authority label should reflect logical dst (linkerd/linkerd2-proxy#300)
* Replace futures_watch with tokio::sync::watch (linkerd/linkerd2-proxy#301)
* metrics: add `request_handle_us` histogram (linkerd/linkerd2-proxy#294)
* linkerd2-proxy: Adopt Rust 2018 (linkerd/linkerd2-proxy#302)
* Remove futures-mpsc-lossy (linkerd/linkerd2-proxy#305)
* Adopt std::convert::TryFrom (linkerd/linkerd2-proxy#304)
* lib: Rename directories to match crate names (linkerd/linkerd2-proxy#303)
2019-08-09 16:48:58 -07:00
Kevin Leimkuhler f146041c25
proxy: Update proxy to d315b9f6afb23eb3d0cf58577710989d1bd69944 (#3185)
* Tap server authorizes clients when identity is expected (#290)

Signed-off-by: Kevin Leimkuhler <kleimkuhler@icloud.com>
2019-08-01 17:06:04 -07:00
Kevin Leimkuhler 6cc52c3363
Add `l5d-require-id` header to Tap requests (#3154)
### Summary

In order for Pods' tap servers to start authorizing tap clients, the tap
controller must open TLS connections so that it can identity itself to the
server.

This change introduces the use of `l5d-require-id` header on outbound tap
requests.

### Details

When tap requests are made by the tap controller, the `Authority` header is an
IP address. The proxy does not attempt to do service discovery on such requests
and therefore the connection is over plaintext. By introducing the
`l5d-require-id` header the proxy can require a server name on the connection.
This allows the tap controller to identity itself as the client making tap
requests. The name value for the header can be made from the Pod Spec and tap
request, so the change is rather minimal.

#### Proxy Changes

* Update h2 to v0.1.26
* Properly fall back in the dst_router (linkerd/linkerd2-proxy#291)

### Testing

Unit tests for the header have not been added mainly because [no test
infrastructure currently exists](065c221858/controller/tap/server_test.go (L241)) to mock proxy requests. After talking with
@siggy a little about this, it makes to do in a separate change at some point
when behavior like this cannot be reliably tested through integration tests
either.

Integration tests do test this well, and will continue to do once
linkerd/linkerd2-proxy#290 lands.

Signed-off-by: Kevin Leimkuhler <kleimkuhler@icloud.com>
2019-07-30 11:17:52 -07:00
Ivan Sim c05ac1700f
proxy: Update proxy to 1c0d100 (#3142)
* Break profile dst overrides test into more focused tests (linkerd/linkerd2-proxy#287)
* Improve readability of profiles router (linkerd/linkerd2-proxy#283)
* Introduce `l5d-require-id` request header (linkerd/linkerd2-proxy#289)
2019-07-25 10:04:32 -07:00
Oliver Gould 0ec9798d60
proxy: Update proxy to master (#3077)
* fallback: Clarify fallback layering (linkerd/linkerd2-proxy#288)
* Replace `log` and `env-logger` with `tracing` and `tracing-fmt` (linkerd/linkerd2-proxy#277)
* Use a constant-time load balancer (linkerd/linkerd2-proxy#266)
* Add `/proxy-log-level` endpoint to admin server (linkerd/linkerd2-proxy#279)
2019-07-11 15:58:30 -07:00
Oliver Gould 38597083eb
Add bin/git-commit-proxy-version (#3071)
Each time we update the proxy from the linkerd2-proxy repo, we make the
change slightly differently. The bin/git-commit-proxy-version does all the
steps needed to update the proxy version up to and including making a
commit to this repo.

The proxy version is now stored in a .proxy-version file and is
consumed directly by Dockerfile-proxy, which both simplifies the
Dockerfile and the update process.

This script formats commit messages and emits output as follows:

```
commit c05198a851f69bdc7007974a0ef1f4c01c98d0ce (HEAD -> ver/proxy-update)
Author: Oliver Gould <ver@buoyant.io>
Date:   Thu Jul 11 17:23:05 2019 +0000

    proxy: Update to linkerd/linkerd2-proxy#3a3ec3b

    * linkerd/linkerd2-proxy#0cc58cd fallback: Clarify fallback layering (linkerd/linkerd2-proxy#288)
    * linkerd/linkerd2-proxy#b71349a Replace `log` and `env-logger` with `tracing` and `tracing-fmt` (linkerd/linkerd2-proxy#277)
    * linkerd/linkerd2-proxy#3a3ec3b Use a constant-time load balancer (linkerd/linkerd2-proxy#266)

diff --git a/.proxy-version b/.proxy-version
index f81f40de..d7faa12d 100644
--- a/.proxy-version
+++ b/.proxy-version
@@ -1 +1 @@
-05b012d
+3a3ec3b
```
2019-07-11 14:04:46 -07:00