Skip to content

Commit 09a95c7

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 <[email protected]> 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 aecfc7b commit 09a95c7

File tree

22 files changed

+264
-138
lines changed

22 files changed

+264
-138
lines changed

Cargo.lock

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,7 @@ dependencies = [
993993
"pin-project",
994994
"tokio",
995995
"tokio-test",
996-
"tower 0.4.13",
996+
"tower 0.5.2",
997997
]
998998

999999
[[package]]
@@ -1393,7 +1393,7 @@ dependencies = [
13931393
"tokio",
13941394
"tokio-stream",
13951395
"tonic",
1396-
"tower 0.4.13",
1396+
"tower 0.5.2",
13971397
"tracing",
13981398
]
13991399

@@ -1416,7 +1416,7 @@ dependencies = [
14161416
"serde_json",
14171417
"thiserror 2.0.12",
14181418
"tokio",
1419-
"tower 0.4.13",
1419+
"tower 0.5.2",
14201420
"tracing",
14211421
]
14221422

@@ -1485,7 +1485,7 @@ dependencies = [
14851485
"tokio",
14861486
"tokio-stream",
14871487
"tonic",
1488-
"tower 0.4.13",
1488+
"tower 0.5.2",
14891489
"tracing",
14901490
]
14911491

@@ -1506,7 +1506,7 @@ dependencies = [
15061506
"tokio",
15071507
"tokio-test",
15081508
"tonic",
1509-
"tower 0.4.13",
1509+
"tower 0.5.2",
15101510
"tower-test",
15111511
"tracing",
15121512
]
@@ -1545,7 +1545,7 @@ dependencies = [
15451545
"tokio",
15461546
"tokio-test",
15471547
"tonic",
1548-
"tower 0.4.13",
1548+
"tower 0.5.2",
15491549
"tracing",
15501550
]
15511551

@@ -1581,7 +1581,7 @@ dependencies = [
15811581
"tokio-rustls",
15821582
"tokio-stream",
15831583
"tonic",
1584-
"tower 0.4.13",
1584+
"tower 0.5.2",
15851585
"tracing",
15861586
"tracing-subscriber",
15871587
]
@@ -1629,7 +1629,7 @@ dependencies = [
16291629
"tokio-rustls",
16301630
"tokio-test",
16311631
"tonic",
1632-
"tower 0.4.13",
1632+
"tower 0.5.2",
16331633
"tower-test",
16341634
"tracing",
16351635
]
@@ -1658,7 +1658,7 @@ dependencies = [
16581658
"tokio-stream",
16591659
"tokio-test",
16601660
"tonic",
1661-
"tower 0.4.13",
1661+
"tower 0.5.2",
16621662
"tracing",
16631663
"tracing-subscriber",
16641664
]
@@ -1835,7 +1835,7 @@ dependencies = [
18351835
"http",
18361836
"linkerd-stack",
18371837
"pin-project",
1838-
"tower 0.4.13",
1838+
"tower 0.5.2",
18391839
]
18401840

18411841
[[package]]
@@ -1854,7 +1854,7 @@ dependencies = [
18541854
"parking_lot",
18551855
"pin-project",
18561856
"tokio",
1857-
"tower 0.4.13",
1857+
"tower 0.5.2",
18581858
"tracing",
18591859
]
18601860

@@ -1864,7 +1864,7 @@ version = "0.1.0"
18641864
dependencies = [
18651865
"http",
18661866
"linkerd-stack",
1867-
"tower 0.4.13",
1867+
"tower 0.5.2",
18681868
"tracing",
18691869
]
18701870

@@ -1895,7 +1895,7 @@ dependencies = [
18951895
"http-body",
18961896
"linkerd-stack",
18971897
"pin-project",
1898-
"tower 0.4.13",
1898+
"tower 0.5.2",
18991899
]
19001900

19011901
[[package]]
@@ -1919,7 +1919,7 @@ dependencies = [
19191919
"pin-project",
19201920
"thiserror 2.0.12",
19211921
"tokio",
1922-
"tower 0.4.13",
1922+
"tower 0.5.2",
19231923
"tracing",
19241924
]
19251925

@@ -1973,7 +1973,7 @@ dependencies = [
19731973
"pin-project",
19741974
"thiserror 2.0.12",
19751975
"tokio",
1976-
"tower 0.4.13",
1976+
"tower 0.5.2",
19771977
"tracing",
19781978
"try-lock",
19791979
]
@@ -2009,7 +2009,7 @@ dependencies = [
20092009
"linkerd-tracing",
20102010
"parking_lot",
20112011
"tokio",
2012-
"tower 0.4.13",
2012+
"tower 0.5.2",
20132013
"tracing",
20142014
]
20152015

@@ -2212,7 +2212,7 @@ dependencies = [
22122212
"rand 0.9.0",
22132213
"tokio",
22142214
"tokio-test",
2215-
"tower 0.4.13",
2215+
"tower 0.5.2",
22162216
"tower-test",
22172217
"tracing",
22182218
]
@@ -2236,7 +2236,7 @@ dependencies = [
22362236
"pin-project",
22372237
"prost 0.13.5",
22382238
"tonic",
2239-
"tower 0.4.13",
2239+
"tower 0.5.2",
22402240
"tracing",
22412241
]
22422242

@@ -2254,7 +2254,7 @@ dependencies = [
22542254
"linkerd-stack",
22552255
"rand 0.9.0",
22562256
"tokio",
2257-
"tower 0.4.13",
2257+
"tower 0.5.2",
22582258
"tracing",
22592259
]
22602260

@@ -2319,7 +2319,7 @@ version = "0.1.0"
23192319
dependencies = [
23202320
"futures",
23212321
"linkerd-error",
2322-
"tower 0.4.13",
2322+
"tower 0.5.2",
23232323
]
23242324

23252325
[[package]]
@@ -2334,7 +2334,7 @@ dependencies = [
23342334
"linkerd-stack",
23352335
"tokio",
23362336
"tokio-stream",
2337-
"tower 0.4.13",
2337+
"tower 0.5.2",
23382338
"tracing",
23392339
]
23402340

@@ -2377,7 +2377,7 @@ dependencies = [
23772377
"thiserror 2.0.12",
23782378
"tokio",
23792379
"tokio-test",
2380-
"tower 0.4.13",
2380+
"tower 0.5.2",
23812381
"tower-test",
23822382
"tracing",
23832383
"try-lock",
@@ -2412,7 +2412,7 @@ dependencies = [
24122412
"linkerd-proxy-core",
24132413
"pin-project",
24142414
"thiserror 2.0.12",
2415-
"tower 0.4.13",
2415+
"tower 0.5.2",
24162416
"tracing",
24172417
]
24182418

@@ -2451,7 +2451,7 @@ dependencies = [
24512451
"tokio",
24522452
"tokio-test",
24532453
"tonic",
2454-
"tower 0.4.13",
2454+
"tower 0.5.2",
24552455
"tracing",
24562456
"x509-parser",
24572457
]
@@ -2483,7 +2483,7 @@ dependencies = [
24832483
"thiserror 2.0.12",
24842484
"tokio",
24852485
"tonic",
2486-
"tower 0.4.13",
2486+
"tower 0.5.2",
24872487
"tracing",
24882488
]
24892489

@@ -2499,7 +2499,7 @@ dependencies = [
24992499
"pin-project",
25002500
"rand 0.9.0",
25012501
"tokio",
2502-
"tower 0.4.13",
2502+
"tower 0.5.2",
25032503
]
25042504

25052505
[[package]]
@@ -2530,7 +2530,7 @@ dependencies = [
25302530
"tokio",
25312531
"tokio-stream",
25322532
"tokio-test",
2533-
"tower 0.4.13",
2533+
"tower 0.5.2",
25342534
"tower-test",
25352535
"tracing",
25362536
]
@@ -2542,7 +2542,7 @@ dependencies = [
25422542
"futures",
25432543
"linkerd-error",
25442544
"linkerd-stack",
2545-
"tower 0.4.13",
2545+
"tower 0.5.2",
25462546
"tracing",
25472547
]
25482548

@@ -2584,7 +2584,7 @@ dependencies = [
25842584
"tokio",
25852585
"tokio-stream",
25862586
"tonic",
2587-
"tower 0.4.13",
2587+
"tower 0.5.2",
25882588
"tracing",
25892589
]
25902590

@@ -2609,7 +2609,7 @@ dependencies = [
26092609
"tokio",
26102610
"tokio-test",
26112611
"tokio-util",
2612-
"tower 0.4.13",
2612+
"tower 0.5.2",
26132613
"tower-test",
26142614
"tracing",
26152615
]
@@ -2622,7 +2622,7 @@ dependencies = [
26222622
"parking_lot",
26232623
"tokio",
26242624
"tokio-test",
2625-
"tower 0.4.13",
2625+
"tower 0.5.2",
26262626
"tower-test",
26272627
]
26282628

@@ -2633,7 +2633,7 @@ dependencies = [
26332633
"futures",
26342634
"linkerd-error",
26352635
"linkerd-stack",
2636-
"tower 0.4.13",
2636+
"tower 0.5.2",
26372637
"tracing",
26382638
]
26392639

@@ -2654,7 +2654,7 @@ dependencies = [
26542654
"pin-project",
26552655
"thiserror 2.0.12",
26562656
"tokio",
2657-
"tower 0.4.13",
2657+
"tower 0.5.2",
26582658
"tracing",
26592659
"untrusted",
26602660
]
@@ -2720,7 +2720,7 @@ dependencies = [
27202720
"linkerd-stack",
27212721
"rand 0.8.5",
27222722
"thiserror 1.0.69",
2723-
"tower 0.4.13",
2723+
"tower 0.5.2",
27242724
"tracing",
27252725
]
27262726

@@ -4198,10 +4198,14 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
41984198
dependencies = [
41994199
"futures-core",
42004200
"futures-util",
4201+
"indexmap 2.8.0",
42014202
"pin-project-lite",
42024203
"sync_wrapper",
4204+
"tokio",
4205+
"tokio-util",
42034206
"tower-layer",
42044207
"tower-service",
4208+
"tracing",
42054209
]
42064210

42074211
[[package]]

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ tokio-rustls = { version = "0.26", default-features = false, features = [
122122
] }
123123
tonic = { version = "0.12", default-features = false }
124124
tonic-build = { version = "0.12", default-features = false }
125-
tower = { version = "0.4", default-features = false }
125+
tower = { version = "0.5", default-features = false }
126126
tower-service = { version = "0.3" }
127127
tower-test = { version = "0.4" }
128128

linkerd/app/gateway/src/server.rs

Lines changed: 2 additions & 2 deletions
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

Lines changed: 2 additions & 2 deletions
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)