Skip to content

Commit 4b35dd9

Browse files
committed
chore(deps)!: upgrade to tower 0.5
this commit updates our tower dependency from 0.4 to 0.5. note that this commit does not affect the `tower-service` and `tower-layer` crates, reëxported by `tower` itself. the `Service<T>` trait and the closely related `Layer<S>` trait have not been changed. the `tower` crate's utilities have changed in various ways, some of particular note for the linkerd2 proxy. see these items, excerpted from the tower changelog: - **retry**: **Breaking Change** `retry::Policy::retry` now accepts `&mut Req` and `&mut Res` instead of the previous mutable versions. This increases the flexibility of the retry policy. To update, update your method signature to include `mut` for both parameters. ([tower-rs/tower#584]) - **retry**: **Breaking Change** Change Policy to accept &mut self ([tower-rs/tower#681]) - **retry**: **Breaking Change** `Budget` is now a trait. This allows end-users to implement their own budget and bucket implementations. ([tower-rs/tower#703]) - **util**: **Breaking Change** `Either::A` and `Either::B` have been renamed `Either::Left` and `Either::Right`, respectively. ([tower-rs/tower#637]) - **util**: **Breaking Change** `Either` now requires its two services to have the same error type. ([tower-rs/tower#637]) - **util**: **Breaking Change** `Either` no longer implemenmts `Future`. ([tower-rs/tower#637]) - **buffer**: **Breaking Change** `Buffer<S, Request>` is now generic over `Buffer<Request, S::Future>.` ([tower-rs/tower#654]) see: * <tower-rs/tower#584> * <tower-rs/tower#681> * <tower-rs/tower#703> * <tower-rs/tower#637> * <tower-rs/tower#654> the `Either` trait bounds are particularly impactful for us. because this runs counter to how we treat errors (skewing towards boxed errors, in general), we temporarily vendor a version of `Either` from the 0.4 release, whose variants have been renamed to match the 0.5 interface. updating to box the inner `A` and `B` services' errors, so we satiate the new `A::Error = B::Error` bounds, can be addressed as a follow-on. that's intentionally left as a separate change, due to the net size of our patchset between this branch and #3504. * <tower-rs/tower@v0.4.x...master> * <https://github.com/tower-rs/tower/blob/master/tower/CHANGELOG.md> this work is based upon #3504. for more information, see: * linkerd/linkerd2#8733 * #3504 Signed-off-by: katelyn martin <kate@buoyant.io> X-Ref: tower-rs/tower#815 X-Ref: tower-rs/tower#817 X-Ref: tower-rs/tower#818 X-Ref: tower-rs/tower#819
1 parent f0a22e1 commit 4b35dd9

File tree

22 files changed

+264
-138
lines changed

22 files changed

+264
-138
lines changed

Cargo.lock

+38-34
Original file line numberDiff line numberDiff line change
@@ -991,7 +991,7 @@ dependencies = [
991991
"pin-project",
992992
"tokio",
993993
"tokio-test",
994-
"tower 0.4.13",
994+
"tower 0.5.2",
995995
]
996996

997997
[[package]]
@@ -1410,7 +1410,7 @@ dependencies = [
14101410
"tokio",
14111411
"tokio-stream",
14121412
"tonic",
1413-
"tower 0.4.13",
1413+
"tower 0.5.2",
14141414
"tracing",
14151415
]
14161416

@@ -1433,7 +1433,7 @@ dependencies = [
14331433
"serde_json",
14341434
"thiserror 2.0.12",
14351435
"tokio",
1436-
"tower 0.4.13",
1436+
"tower 0.5.2",
14371437
"tracing",
14381438
]
14391439

@@ -1502,7 +1502,7 @@ dependencies = [
15021502
"tokio",
15031503
"tokio-stream",
15041504
"tonic",
1505-
"tower 0.4.13",
1505+
"tower 0.5.2",
15061506
"tracing",
15071507
]
15081508

@@ -1523,7 +1523,7 @@ dependencies = [
15231523
"tokio",
15241524
"tokio-test",
15251525
"tonic",
1526-
"tower 0.4.13",
1526+
"tower 0.5.2",
15271527
"tower-test",
15281528
"tracing",
15291529
]
@@ -1562,7 +1562,7 @@ dependencies = [
15621562
"tokio",
15631563
"tokio-test",
15641564
"tonic",
1565-
"tower 0.4.13",
1565+
"tower 0.5.2",
15661566
"tracing",
15671567
]
15681568

@@ -1598,7 +1598,7 @@ dependencies = [
15981598
"tokio-rustls",
15991599
"tokio-stream",
16001600
"tonic",
1601-
"tower 0.4.13",
1601+
"tower 0.5.2",
16021602
"tracing",
16031603
"tracing-subscriber",
16041604
]
@@ -1646,7 +1646,7 @@ dependencies = [
16461646
"tokio-rustls",
16471647
"tokio-test",
16481648
"tonic",
1649-
"tower 0.4.13",
1649+
"tower 0.5.2",
16501650
"tower-test",
16511651
"tracing",
16521652
]
@@ -1675,7 +1675,7 @@ dependencies = [
16751675
"tokio-stream",
16761676
"tokio-test",
16771677
"tonic",
1678-
"tower 0.4.13",
1678+
"tower 0.5.2",
16791679
"tracing",
16801680
"tracing-subscriber",
16811681
]
@@ -1852,7 +1852,7 @@ dependencies = [
18521852
"http",
18531853
"linkerd-stack",
18541854
"pin-project",
1855-
"tower 0.4.13",
1855+
"tower 0.5.2",
18561856
]
18571857

18581858
[[package]]
@@ -1871,7 +1871,7 @@ dependencies = [
18711871
"parking_lot",
18721872
"pin-project",
18731873
"tokio",
1874-
"tower 0.4.13",
1874+
"tower 0.5.2",
18751875
"tracing",
18761876
]
18771877

@@ -1881,7 +1881,7 @@ version = "0.1.0"
18811881
dependencies = [
18821882
"http",
18831883
"linkerd-stack",
1884-
"tower 0.4.13",
1884+
"tower 0.5.2",
18851885
"tracing",
18861886
]
18871887

@@ -1912,7 +1912,7 @@ dependencies = [
19121912
"http-body",
19131913
"linkerd-stack",
19141914
"pin-project",
1915-
"tower 0.4.13",
1915+
"tower 0.5.2",
19161916
]
19171917

19181918
[[package]]
@@ -1936,7 +1936,7 @@ dependencies = [
19361936
"pin-project",
19371937
"thiserror 2.0.12",
19381938
"tokio",
1939-
"tower 0.4.13",
1939+
"tower 0.5.2",
19401940
"tracing",
19411941
]
19421942

@@ -1990,7 +1990,7 @@ dependencies = [
19901990
"pin-project",
19911991
"thiserror 2.0.12",
19921992
"tokio",
1993-
"tower 0.4.13",
1993+
"tower 0.5.2",
19941994
"tracing",
19951995
"try-lock",
19961996
]
@@ -2026,7 +2026,7 @@ dependencies = [
20262026
"linkerd-tracing",
20272027
"parking_lot",
20282028
"tokio",
2029-
"tower 0.4.13",
2029+
"tower 0.5.2",
20302030
"tracing",
20312031
]
20322032

@@ -2230,7 +2230,7 @@ dependencies = [
22302230
"rand 0.9.0",
22312231
"tokio",
22322232
"tokio-test",
2233-
"tower 0.4.13",
2233+
"tower 0.5.2",
22342234
"tower-test",
22352235
"tracing",
22362236
]
@@ -2254,7 +2254,7 @@ dependencies = [
22542254
"pin-project",
22552255
"prost 0.13.5",
22562256
"tonic",
2257-
"tower 0.4.13",
2257+
"tower 0.5.2",
22582258
"tracing",
22592259
]
22602260

@@ -2272,7 +2272,7 @@ dependencies = [
22722272
"linkerd-stack",
22732273
"rand 0.9.0",
22742274
"tokio",
2275-
"tower 0.4.13",
2275+
"tower 0.5.2",
22762276
"tracing",
22772277
]
22782278

@@ -2337,7 +2337,7 @@ version = "0.1.0"
23372337
dependencies = [
23382338
"futures",
23392339
"linkerd-error",
2340-
"tower 0.4.13",
2340+
"tower 0.5.2",
23412341
]
23422342

23432343
[[package]]
@@ -2352,7 +2352,7 @@ dependencies = [
23522352
"linkerd-stack",
23532353
"tokio",
23542354
"tokio-stream",
2355-
"tower 0.4.13",
2355+
"tower 0.5.2",
23562356
"tracing",
23572357
]
23582358

@@ -2395,7 +2395,7 @@ dependencies = [
23952395
"thiserror 2.0.12",
23962396
"tokio",
23972397
"tokio-test",
2398-
"tower 0.4.13",
2398+
"tower 0.5.2",
23992399
"tower-test",
24002400
"tracing",
24012401
"try-lock",
@@ -2430,7 +2430,7 @@ dependencies = [
24302430
"linkerd-proxy-core",
24312431
"pin-project",
24322432
"thiserror 2.0.12",
2433-
"tower 0.4.13",
2433+
"tower 0.5.2",
24342434
"tracing",
24352435
]
24362436

@@ -2469,7 +2469,7 @@ dependencies = [
24692469
"tokio",
24702470
"tokio-test",
24712471
"tonic",
2472-
"tower 0.4.13",
2472+
"tower 0.5.2",
24732473
"tracing",
24742474
"x509-parser",
24752475
]
@@ -2501,7 +2501,7 @@ dependencies = [
25012501
"thiserror 2.0.12",
25022502
"tokio",
25032503
"tonic",
2504-
"tower 0.4.13",
2504+
"tower 0.5.2",
25052505
"tracing",
25062506
]
25072507

@@ -2517,7 +2517,7 @@ dependencies = [
25172517
"pin-project",
25182518
"rand 0.9.0",
25192519
"tokio",
2520-
"tower 0.4.13",
2520+
"tower 0.5.2",
25212521
]
25222522

25232523
[[package]]
@@ -2548,7 +2548,7 @@ dependencies = [
25482548
"tokio",
25492549
"tokio-stream",
25502550
"tokio-test",
2551-
"tower 0.4.13",
2551+
"tower 0.5.2",
25522552
"tower-test",
25532553
"tracing",
25542554
]
@@ -2560,7 +2560,7 @@ dependencies = [
25602560
"futures",
25612561
"linkerd-error",
25622562
"linkerd-stack",
2563-
"tower 0.4.13",
2563+
"tower 0.5.2",
25642564
"tracing",
25652565
]
25662566

@@ -2602,7 +2602,7 @@ dependencies = [
26022602
"tokio",
26032603
"tokio-stream",
26042604
"tonic",
2605-
"tower 0.4.13",
2605+
"tower 0.5.2",
26062606
"tracing",
26072607
]
26082608

@@ -2627,7 +2627,7 @@ dependencies = [
26272627
"tokio",
26282628
"tokio-test",
26292629
"tokio-util",
2630-
"tower 0.4.13",
2630+
"tower 0.5.2",
26312631
"tower-test",
26322632
"tracing",
26332633
]
@@ -2640,7 +2640,7 @@ dependencies = [
26402640
"parking_lot",
26412641
"tokio",
26422642
"tokio-test",
2643-
"tower 0.4.13",
2643+
"tower 0.5.2",
26442644
"tower-test",
26452645
]
26462646

@@ -2651,7 +2651,7 @@ dependencies = [
26512651
"futures",
26522652
"linkerd-error",
26532653
"linkerd-stack",
2654-
"tower 0.4.13",
2654+
"tower 0.5.2",
26552655
"tracing",
26562656
]
26572657

@@ -2672,7 +2672,7 @@ dependencies = [
26722672
"pin-project",
26732673
"thiserror 2.0.12",
26742674
"tokio",
2675-
"tower 0.4.13",
2675+
"tower 0.5.2",
26762676
"tracing",
26772677
"untrusted",
26782678
]
@@ -2738,7 +2738,7 @@ dependencies = [
27382738
"linkerd-stack",
27392739
"rand 0.8.5",
27402740
"thiserror 1.0.69",
2741-
"tower 0.4.13",
2741+
"tower 0.5.2",
27422742
"tracing",
27432743
]
27442744

@@ -4216,10 +4216,14 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
42164216
dependencies = [
42174217
"futures-core",
42184218
"futures-util",
4219+
"indexmap 2.8.0",
42194220
"pin-project-lite",
42204221
"sync_wrapper",
4222+
"tokio",
4223+
"tokio-util",
42214224
"tower-layer",
42224225
"tower-service",
4226+
"tracing",
42234227
]
42244228

42254229
[[package]]

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ tokio-rustls = { version = "0.26", default-features = false, features = [
115115
] }
116116
tonic = { version = "0.12", default-features = false }
117117
tonic-build = { version = "0.12", default-features = false }
118-
tower = { version = "0.4", default-features = false }
118+
tower = { version = "0.5", default-features = false }
119119
tower-service = { version = "0.3" }
120120
tower-test = { version = "0.4" }
121121

linkerd/app/gateway/src/server.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ impl Gateway {
6464
SessionProtocol::Http1 => http::Variant::Http1,
6565
SessionProtocol::Http2 => http::Variant::H2,
6666
};
67-
return Ok(svc::Either::A(Http { parent, version }));
67+
return Ok(svc::Either::Left(Http { parent, version }));
6868
}
6969

70-
Ok(svc::Either::B(Opaq(parent)))
70+
Ok(svc::Either::Right(Opaq(parent)))
7171
},
7272
opaq,
7373
)

linkerd/app/inbound/src/accept.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@ impl<N> Inbound<N> {
5353
move |t: T| -> Result<_, Error> {
5454
let addr: OrigDstAddr = t.param();
5555
if addr.port() == proxy_port {
56-
return Ok(svc::Either::B(t));
56+
return Ok(svc::Either::Right(t));
5757
}
5858

5959
let policy = policies.get_policy(addr);
6060
tracing::debug!(policy = ?&*policy.borrow(), "Accepted");
61-
Ok(svc::Either::A(Accept {
61+
Ok(svc::Either::Left(Accept {
6262
client_addr: t.param(),
6363
orig_dst_addr: addr,
6464
policy,

0 commit comments

Comments
 (0)