From 99f1ff3a1b970523395bdf01abefa68eee88507a Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 03:08:39 +0000 Subject: [PATCH 01/13] dev: v42 --- .devcontainer/devcontainer.json | 2 +- .github/workflows/beta.yml | 2 +- .github/workflows/check-all.yml | 2 +- .github/workflows/check-each.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/deps.yml | 2 +- .github/workflows/integration.yml | 2 +- .github/workflows/lint.yml | 6 +++--- .github/workflows/nightly.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 4 ++-- .github/workflows/toolchain.yml | 2 +- Dockerfile | 2 +- justfile | 3 --- rust-toolchain.toml | 2 +- 15 files changed, 18 insertions(+), 21 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index be0826f8e6..68a22d7d90 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "linkerd2-proxy", - "image": "ghcr.io/linkerd/dev:v40", + "image": "ghcr.io/linkerd/dev:v42", "customizations": { "vscode": { "extensions": [ diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 93117e4d18..ff291b0101 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -22,7 +22,7 @@ permissions: jobs: build: runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust timeout-minutes: 20 continue-on-error: true steps: diff --git a/.github/workflows/check-all.yml b/.github/workflows/check-all.yml index f16bd2766b..8e8291f3af 100644 --- a/.github/workflows/check-all.yml +++ b/.github/workflows/check-all.yml @@ -22,7 +22,7 @@ jobs: check-all: timeout-minutes: 20 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/.github/workflows/check-each.yml b/.github/workflows/check-each.yml index bcd3346ced..59b07feb7f 100644 --- a/.github/workflows/check-each.yml +++ b/.github/workflows/check-each.yml @@ -26,7 +26,7 @@ jobs: list-changed-crates: timeout-minutes: 10 runs-on: ubuntu-latest - container: docker://ghcr.io/linkerd/dev:v40-rust + container: docker://ghcr.io/linkerd/dev:v42-rust steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -47,7 +47,7 @@ jobs: needs: list-changed-crates timeout-minutes: 20 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust strategy: matrix: crate: ${{ fromJson(needs.list-changed-crates.outputs.crates) }} diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5496734910..bd7647052d 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 container: - image: docker://ghcr.io/linkerd/dev:v40-rust + image: docker://ghcr.io/linkerd/dev:v42-rust options: --security-opt seccomp=unconfined # 🤷 steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 diff --git a/.github/workflows/deps.yml b/.github/workflows/deps.yml index 3495f39d89..8327dcd7ae 100644 --- a/.github/workflows/deps.yml +++ b/.github/workflows/deps.yml @@ -46,7 +46,7 @@ jobs: deprecated: timeout-minutes: 20 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 61fbe03e3b..bbfee49469 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -26,7 +26,7 @@ jobs: test: timeout-minutes: 20 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a80e7a80d7..a2a961c5c8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: clippy: timeout-minutes: 10 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -31,7 +31,7 @@ jobs: fmt: timeout-minutes: 10 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -40,7 +40,7 @@ jobs: docs: timeout-minutes: 10 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 7ee1fd5f9d..de6350ecd5 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -22,7 +22,7 @@ permissions: jobs: build: runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust timeout-minutes: 20 continue-on-error: true steps: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 077972f402..2083269bb9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,7 +59,7 @@ jobs: continue-on-error: ${{ !needs.meta.outputs.publish }} runs-on: ubuntu-latest timeout-minutes: 40 - container: docker://ghcr.io/linkerd/dev:v40-rust-musl + container: docker://ghcr.io/linkerd/dev:v42-rust-musl env: LINKERD2_PROXY_VENDOR: ${{ github.repository_owner }} LINKERD2_PROXY_VERSION: ${{ needs.meta.outputs.version }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3c8522b9e7..fdcf1c8e20 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: meshtls: timeout-minutes: 10 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -43,7 +43,7 @@ jobs: unit: timeout-minutes: 10 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/.github/workflows/toolchain.yml b/.github/workflows/toolchain.yml index 1d2daa51f5..5de7c49cd4 100644 --- a/.github/workflows/toolchain.yml +++ b/.github/workflows/toolchain.yml @@ -14,7 +14,7 @@ permissions: jobs: devcontainer: runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v40-rust + container: ghcr.io/linkerd/dev:v42-rust steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/Dockerfile b/Dockerfile index 8f060d56ef..0f558c1b07 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ # This is intended **DEVELOPMENT ONLY**, i.e. so that proxy developers can # easily test the proxy in the context of the larger `linkerd2` project. -ARG RUST_IMAGE=ghcr.io/linkerd/dev:v40-rust +ARG RUST_IMAGE=ghcr.io/linkerd/dev:v42-rust # Use an arbitrary ~recent edge release image to get the proxy # identity-initializing and linkerd-await wrappers. diff --git a/justfile b/justfile index aa4ee39ffb..4b5f7c5c29 100644 --- a/justfile +++ b/justfile @@ -57,9 +57,6 @@ _features := if features == "all" { "--no-default-features --features=" + features } else { "" } -# For dev:v40 -export CXX := 'clang++-14' - # # Recipes # diff --git a/rust-toolchain.toml b/rust-toolchain.toml index f2415f8315..8142c30126 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "1.69.0" +channel = "1.73.0" From 04ea72dff03e177e593fdf2335ef8e5fb60c7074 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 03:23:29 +0000 Subject: [PATCH 02/13] clippy --- linkerd/app/inbound/src/policy/http/tests.rs | 3 ++- linkerd/app/integration/src/lib.rs | 1 - linkerd/app/integration/src/metrics.rs | 2 +- linkerd/app/src/lib.rs | 1 - linkerd/http-metrics/src/requests/service.rs | 6 +++--- linkerd/http-route/src/http/match/path.rs | 2 +- linkerd/metrics/src/scopes.rs | 2 +- linkerd/opencensus/src/lib.rs | 2 +- linkerd/proxy/client-policy/src/opaq.rs | 2 +- linkerd/stack/metrics/src/lib.rs | 2 +- linkerd/stack/src/fail.rs | 4 +--- linkerd/stack/src/unwrap_or.rs | 2 +- 12 files changed, 13 insertions(+), 16 deletions(-) diff --git a/linkerd/app/inbound/src/policy/http/tests.rs b/linkerd/app/inbound/src/policy/http/tests.rs index ef711af008..31497333f0 100644 --- a/linkerd/app/inbound/src/policy/http/tests.rs +++ b/linkerd/app/inbound/src/policy/http/tests.rs @@ -38,8 +38,9 @@ macro_rules! new_svc { connection: $conn, metrics: HttpAuthzMetrics::default(), inner: |(permit, _): (HttpRoutePermit, ())| { + let f = $rsp; svc::mk(move |req: ::http::Request| { - futures::future::ready($rsp(permit.clone(), req)) + futures::future::ready((f)(permit.clone(), req)) }) }, }; diff --git a/linkerd/app/integration/src/lib.rs b/linkerd/app/integration/src/lib.rs index 6217684e53..6745f92712 100644 --- a/linkerd/app/integration/src/lib.rs +++ b/linkerd/app/integration/src/lib.rs @@ -37,7 +37,6 @@ use socket2::Socket; pub use std::collections::HashMap; use std::fmt; pub use std::future::Future; -use std::io; pub use std::net::SocketAddr; use std::pin::Pin; pub use std::sync::Arc; diff --git a/linkerd/app/integration/src/metrics.rs b/linkerd/app/integration/src/metrics.rs index 8ba8036e43..1e9f13b0d0 100644 --- a/linkerd/app/integration/src/metrics.rs +++ b/linkerd/app/integration/src/metrics.rs @@ -253,7 +253,7 @@ impl Labels { /// the values from `other` overwrite the values in `self`. pub fn and(&self, other: Labels) -> Labels { let mut new_labels = self.0.clone(); - new_labels.extend(other.0.into_iter()); + new_labels.extend(other.0); Labels(new_labels) } diff --git a/linkerd/app/src/lib.rs b/linkerd/app/src/lib.rs index 22bff9a62e..08e00f73d6 100644 --- a/linkerd/app/src/lib.rs +++ b/linkerd/app/src/lib.rs @@ -226,7 +226,6 @@ impl Config { // Build a task that initializes and runs the proxy stacks. let start_proxy = { let identity_ready = identity.ready(); - let inbound_addr = inbound_addr; let profiles = dst.profiles; let resolve = dst.resolve; diff --git a/linkerd/http-metrics/src/requests/service.rs b/linkerd/http-metrics/src/requests/service.rs index 279117f3b8..e4b55f754b 100644 --- a/linkerd/http-metrics/src/requests/service.rs +++ b/linkerd/http-metrics/src/requests/service.rs @@ -1,4 +1,4 @@ -use super::{ClassMetrics, Metrics, StatusMetrics}; +use super::{Metrics, StatusMetrics}; use futures::{ready, TryFuture}; use http_body::Body; use linkerd_error::Error; @@ -390,12 +390,12 @@ fn measure_class( let status_metrics = metrics .by_status .entry(status) - .or_insert_with(StatusMetrics::default); + .or_default(); let class_metrics = status_metrics .by_class .entry(class) - .or_insert_with(ClassMetrics::default); + .or_default(); class_metrics.total.incr(); } diff --git a/linkerd/http-route/src/http/match/path.rs b/linkerd/http-route/src/http/match/path.rs index a416649538..ec59a04827 100644 --- a/linkerd/http-route/src/http/match/path.rs +++ b/linkerd/http-route/src/http/match/path.rs @@ -185,7 +185,7 @@ mod tests { #[test] fn path_regex() { - let m = MatchPath::Regex(r#"/foo/\d+"#.parse().unwrap()); + let m = MatchPath::Regex(r"/foo/\d+".parse().unwrap()); assert_eq!( m.match_length(&"/foo/4".parse().unwrap()), Some(PathMatch::Regex("/foo/4".len())) diff --git a/linkerd/metrics/src/scopes.rs b/linkerd/metrics/src/scopes.rs index a10376b5d3..bd23430420 100644 --- a/linkerd/metrics/src/scopes.rs +++ b/linkerd/metrics/src/scopes.rs @@ -36,7 +36,7 @@ impl Scopes { impl Scopes { pub fn get_or_default(&mut self, key: L) -> &mut S { - self.0.entry(key).or_insert_with(S::default) + self.0.entry(key).or_default() } } diff --git a/linkerd/opencensus/src/lib.rs b/linkerd/opencensus/src/lib.rs index c428e140e3..dd7d0a156c 100644 --- a/linkerd/opencensus/src/lib.rs +++ b/linkerd/opencensus/src/lib.rs @@ -130,7 +130,7 @@ where match tx.reserve().await { Ok(tx) => { let msg = ExportTraceServiceRequest { - spans: accum.drain(..).collect(), + spans: std::mem::take(accum), node: node.take(), ..Default::default() }; diff --git a/linkerd/proxy/client-policy/src/opaq.rs b/linkerd/proxy/client-policy/src/opaq.rs index f708b8a2c0..863067eecd 100644 --- a/linkerd/proxy/client-policy/src/opaq.rs +++ b/linkerd/proxy/client-policy/src/opaq.rs @@ -125,7 +125,7 @@ pub(crate) mod proto { Ok(Policy { meta: meta.clone(), filters: NO_FILTERS.clone(), - failure_policy: NonIoErrors::default(), + failure_policy: NonIoErrors, distribution, // Request timeouts are ignored on opaque routes. request_timeout: None, diff --git a/linkerd/stack/metrics/src/lib.rs b/linkerd/stack/metrics/src/lib.rs index 07bb5a14ba..d09a75bffe 100644 --- a/linkerd/stack/metrics/src/lib.rs +++ b/linkerd/stack/metrics/src/lib.rs @@ -41,7 +41,7 @@ where .0 .lock() .entry(labels) - .or_insert_with(Default::default) + .or_default() .clone(); TrackServiceLayer::new(metrics) } diff --git a/linkerd/stack/src/fail.rs b/linkerd/stack/src/fail.rs index ae70439c56..393c59930e 100644 --- a/linkerd/stack/src/fail.rs +++ b/linkerd/stack/src/fail.rs @@ -49,9 +49,7 @@ impl Default for Fail { impl Clone for Fail { fn clone(&self) -> Self { - Self { - _marker: self._marker, - } + *self } } diff --git a/linkerd/stack/src/unwrap_or.rs b/linkerd/stack/src/unwrap_or.rs index f47e352a7e..a9c313fc87 100644 --- a/linkerd/stack/src/unwrap_or.rs +++ b/linkerd/stack/src/unwrap_or.rs @@ -42,7 +42,7 @@ impl Predicate> for UnwrapOr { impl Clone for UnwrapOr { fn clone(&self) -> Self { - Self(self.0) + *self } } From 1725ea36bceea864459ed661b8feddf680d31854 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 03:26:34 +0000 Subject: [PATCH 03/13] fmt --- linkerd/http-metrics/src/requests/service.rs | 12 +++--------- linkerd/stack/metrics/src/lib.rs | 7 +------ 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/linkerd/http-metrics/src/requests/service.rs b/linkerd/http-metrics/src/requests/service.rs index e4b55f754b..ad1af7ecbc 100644 --- a/linkerd/http-metrics/src/requests/service.rs +++ b/linkerd/http-metrics/src/requests/service.rs @@ -387,15 +387,9 @@ fn measure_class( metrics.last_update = now; - let status_metrics = metrics - .by_status - .entry(status) - .or_default(); - - let class_metrics = status_metrics - .by_class - .entry(class) - .or_default(); + let status_metrics = metrics.by_status.entry(status).or_default(); + + let class_metrics = status_metrics.by_class.entry(class).or_default(); class_metrics.total.incr(); } diff --git a/linkerd/stack/metrics/src/lib.rs b/linkerd/stack/metrics/src/lib.rs index d09a75bffe..1386218872 100644 --- a/linkerd/stack/metrics/src/lib.rs +++ b/linkerd/stack/metrics/src/lib.rs @@ -37,12 +37,7 @@ where L: Hash + Eq, { pub fn layer(&self, labels: L) -> TrackServiceLayer { - let metrics = self - .0 - .lock() - .entry(labels) - .or_default() - .clone(); + let metrics = self.0.lock().entry(labels).or_default().clone(); TrackServiceLayer::new(metrics) } } From 27a03199eb6741d29601e7adb54043d895ce2019 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 03:32:30 +0000 Subject: [PATCH 04/13] fixup CXX --- justfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/justfile b/justfile index 4b5f7c5c29..e89415e1d5 100644 --- a/justfile +++ b/justfile @@ -57,6 +57,8 @@ _features := if features == "all" { "--no-default-features --features=" + features } else { "" } +export CXX := 'clang++-14' + # # Recipes # From d7409466334f247e2f39b33f6d2f6ba0d721d8ee Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 03:46:37 +0000 Subject: [PATCH 05/13] update fuzzers --- .github/workflows/fuzzers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/fuzzers.yml b/.github/workflows/fuzzers.yml index c410e5fa61..fcf4fff831 100644 --- a/.github/workflows/fuzzers.yml +++ b/.github/workflows/fuzzers.yml @@ -27,7 +27,7 @@ jobs: list-changed: timeout-minutes: 3 runs-on: ubuntu-latest - container: docker://rust:1.69.0-bullseye + container: docker://rust:1.73.0-bullseye steps: - run: apt update && apt install -y jo - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 @@ -48,7 +48,7 @@ jobs: needs: [list-changed] timeout-minutes: 40 runs-on: ubuntu-latest - container: docker://rust:1.69.0-bullseye + container: docker://rust:1.73.0-bullseye strategy: matrix: dir: ${{ fromJson(needs.list-changed.outputs.dirs) }} From b86ec3ac4d6831d7d7480a19bf75b1826034a630 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 03:50:33 +0000 Subject: [PATCH 06/13] fixup nightly build --- Cargo.lock | 4 ++-- linkerd/app/inbound/src/http/server.rs | 5 +---- linkerd/app/inbound/src/policy/store.rs | 4 +--- linkerd/app/integration/src/lib.rs | 1 - linkerd/app/outbound/src/protocol.rs | 1 - 5 files changed, 4 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 181af59aa4..9e01084ed6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2214,9 +2214,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.52" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] diff --git a/linkerd/app/inbound/src/http/server.rs b/linkerd/app/inbound/src/http/server.rs index c9d6e169d5..e6dc265f9d 100644 --- a/linkerd/app/inbound/src/http/server.rs +++ b/linkerd/app/inbound/src/http/server.rs @@ -1,9 +1,6 @@ use super::set_identity_header::NewSetIdentityHeader; use crate::{policy, Inbound}; -pub use linkerd_app_core::proxy::http::{ - normalize_uri, strip_header, uri, BoxBody, BoxResponse, DetectHttp, Request, Response, Retain, - Version, -}; +pub use linkerd_app_core::proxy::http::{normalize_uri, Version}; use linkerd_app_core::{ config::{ProxyConfig, ServerConfig}, errors, http_tracing, io, diff --git a/linkerd/app/inbound/src/policy/store.rs b/linkerd/app/inbound/src/policy/store.rs index 13ed367d7f..50bc155133 100644 --- a/linkerd/app/inbound/src/policy/store.rs +++ b/linkerd/app/inbound/src/policy/store.rs @@ -1,9 +1,7 @@ use super::{api, AllowPolicy, DefaultPolicy, GetPolicy}; use linkerd_app_core::{proxy::http, transport::OrigDstAddr, Error}; use linkerd_idle_cache::IdleCache; -pub use linkerd_proxy_server_policy::{ - authz::Suffix, Authentication, Authorization, Protocol, ServerPolicy, -}; +pub use linkerd_proxy_server_policy::{Protocol, ServerPolicy}; use rangemap::RangeInclusiveSet; use std::{ collections::HashSet, diff --git a/linkerd/app/integration/src/lib.rs b/linkerd/app/integration/src/lib.rs index 6745f92712..7698ed6c0f 100644 --- a/linkerd/app/integration/src/lib.rs +++ b/linkerd/app/integration/src/lib.rs @@ -47,7 +47,6 @@ use tokio::net::TcpListener; pub use tokio::sync::oneshot; pub use tonic as grpc; pub use tower::Service; -pub use tracing::*; /// Environment variable for overriding the test patience. pub const ENV_TEST_PATIENCE_MS: &str = "RUST_TEST_PATIENCE_MS"; diff --git a/linkerd/app/outbound/src/protocol.rs b/linkerd/app/outbound/src/protocol.rs index bc83276bdf..1550baf168 100644 --- a/linkerd/app/outbound/src/protocol.rs +++ b/linkerd/app/outbound/src/protocol.rs @@ -1,5 +1,4 @@ use crate::{http, Outbound}; -pub use linkerd_app_core::proxy::api_resolve::ConcreteAddr; use linkerd_app_core::{detect, io, svc, Error, Infallible}; use std::{fmt::Debug, hash::Hash}; From 8a31e0c084ae3b2ceca8795c7b10f2e40f63fd0e Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 04:24:45 +0000 Subject: [PATCH 07/13] bump recursion limit :( --- linkerd/app/integration/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/linkerd/app/integration/src/lib.rs b/linkerd/app/integration/src/lib.rs index 7698ed6c0f..47f7d99711 100644 --- a/linkerd/app/integration/src/lib.rs +++ b/linkerd/app/integration/src/lib.rs @@ -2,6 +2,7 @@ #![warn(rust_2018_idioms, clippy::disallowed_methods, clippy::disallowed_types)] #![forbid(unsafe_code)] +#![recursion_limit = "256"] mod test_env; From 63a2b6612d6718d7e247de750dfda2e771711c5a Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 05:05:45 +0000 Subject: [PATCH 08/13] ditch bullseye --- .github/workflows/actions.yml | 2 +- .github/workflows/fuzzers.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 1d158ce28f..3dae74b8e7 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -11,7 +11,7 @@ permissions: jobs: actionlint: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: linkerd/dev/actions/setup-tools@v40 diff --git a/.github/workflows/fuzzers.yml b/.github/workflows/fuzzers.yml index fcf4fff831..513509b093 100644 --- a/.github/workflows/fuzzers.yml +++ b/.github/workflows/fuzzers.yml @@ -27,7 +27,7 @@ jobs: list-changed: timeout-minutes: 3 runs-on: ubuntu-latest - container: docker://rust:1.73.0-bullseye + container: docker://rust:1.73.0 steps: - run: apt update && apt install -y jo - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 @@ -48,7 +48,7 @@ jobs: needs: [list-changed] timeout-minutes: 40 runs-on: ubuntu-latest - container: docker://rust:1.73.0-bullseye + container: docker://rust:1.73.0 strategy: matrix: dir: ${{ fromJson(needs.list-changed.outputs.dirs) }} From 6eb77e6bf228883ded20de399cd679f295c83272 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 06:31:30 +0000 Subject: [PATCH 09/13] touchup --- Dockerfile | 3 ++- justfile | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0f558c1b07..f23950a4dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,8 @@ ARG RUST_IMAGE=ghcr.io/linkerd/dev:v42-rust # Use an arbitrary ~recent edge release image to get the proxy # identity-initializing and linkerd-await wrappers. -ARG RUNTIME_IMAGE=ghcr.io/linkerd/proxy:edge-22.12.1 +# Currently pinned to a build off of edge-23.11.1 + dev:v42 +ARG RUNTIME_IMAGE=ghcr.io/olix0r/l2-proxy:git-04283611 # Build the proxy. FROM --platform=$BUILDPLATFORM $RUST_IMAGE as build diff --git a/justfile b/justfile index e89415e1d5..d8568faee2 100644 --- a/justfile +++ b/justfile @@ -213,6 +213,7 @@ _init-image := 'ghcr.io/linkerd/proxy-init' _init-tag := 'v2.2.0' _kubectl := 'just-k3d kubectl' +_linkerd := 'linkerd --context=k3d-$(just-k3d --evaluate K3D_CLUSTER_NAME)' _tag-set: #!/usr/bin/env bash @@ -240,7 +241,7 @@ k3d-load-linkerd: _tag-set _k3d-ready # Install crds on the test cluster. _linkerd-crds-install: _k3d-ready - linkerd install --crds \ + {{ _linkerd }} install --crds \ | {{ _kubectl }} apply -f - {{ _kubectl }} wait crd --for condition=established \ --selector='linkerd.io/control-plane-ns' \ @@ -248,7 +249,7 @@ _linkerd-crds-install: _k3d-ready # Install linkerd on the test cluster using test images. linkerd-install *args='': _tag-set k3d-load-linkerd _linkerd-crds-install && _linkerd-ready - linkerd install \ + {{ _linkerd }} install \ --set='imagePullPolicy=Never' \ --set='controllerImage={{ _controller-image }}' \ --set='linkerdVersion={{ linkerd-tag }}' \ @@ -263,14 +264,14 @@ linkerd-install *args='': _tag-set k3d-load-linkerd _linkerd-crds-install && _li | {{ _kubectl }} apply -f - linkerd-uninstall: - linkerd uninstall \ + {{ _linkerd }} uninstall \ | {{ _kubectl }} delete -f - linkerd-check-contol-plane-proxy: #!/usr/bin/env bash set -euo pipefail check=$(mktemp --tmpdir check-XXXX.json) - linkerd check -o json > "$check" + {{ _linkerd }} check -o json > "$check" result=$(jq -r \ '.categories[] | select(.categoryName == "linkerd-control-plane-proxy") | .checks[] | select(.description == "control plane proxies are healthy") | .result' \ "$check") From ebf5a35c592574611f8ef19b06560c7bab20d5a5 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 06:55:31 +0000 Subject: [PATCH 10/13] fixup dev dockerfile --- Dockerfile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index f23950a4dc..68591805da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,11 +5,6 @@ ARG RUST_IMAGE=ghcr.io/linkerd/dev:v42-rust -# Use an arbitrary ~recent edge release image to get the proxy -# identity-initializing and linkerd-await wrappers. -# Currently pinned to a build off of edge-23.11.1 + dev:v42 -ARG RUNTIME_IMAGE=ghcr.io/olix0r/l2-proxy:git-04283611 - # Build the proxy. FROM --platform=$BUILDPLATFORM $RUST_IMAGE as build @@ -39,9 +34,18 @@ RUN --mount=type=cache,id=cargo,target=/usr/local/cargo/registry \ mkdir -p /out && \ mv $(just --evaluate profile="$PROFILE" _target_bin) /out/linkerd2-proxy -## Install the proxy binary into the base runtime image. -FROM $RUNTIME_IMAGE as runtime +# Use an arbitrary ~recent edge release image to get the proxy +# identity-initializing and linkerd-await wrappers. +# Currently pinned to a build off of edge-23.11.1 + dev:v42 +ARG LINKERD2_IMAGE=ghcr.io/olix0r/l2-proxy:git-04283611 +FROM $LINKERD2_IMAGE as linkerd2 + +# Install the proxy binary into a base image that we can at least get a shell to +# debug on. +FROM docker.io/library/debian:bookworm-slim as runtime WORKDIR /linkerd +COPY --from=linkerd2 /usr/lib/linkerd/linkerd-await /usr/lib/linkerd/linkerd-await +COPY --from=linkerd2 /usr/lib/linkerd/linkerd2-network-validator /usr/lib/linkerd/linkerd2-network-validator +COPY --from=linkerd2 /usr/lib/linkerd/linkerd2-proxy-identity /usr/lib/linkerd/linkerd2-proxy-identity COPY --from=build /out/linkerd2-proxy /usr/lib/linkerd/linkerd2-proxy -ENV LINKERD2_PROXY_LOG=warn,linkerd=info,trust_dns=error -# Inherits the ENTRYPOINT from the runtime image. +ENTRYPOINT ["/usr/lib/linkerd/linkerd2-proxy-identity"] From 2af5826aa300b07a5b0f0cb9da32a69db1e10bd2 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 07:05:50 +0000 Subject: [PATCH 11/13] fixup --- Dockerfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 68591805da..1e5dd363d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,11 @@ ARG RUST_IMAGE=ghcr.io/linkerd/dev:v42-rust +# Use an arbitrary ~recent edge release image to get the proxy +# identity-initializing and linkerd-await wrappers. +# Currently pinned to a build off of edge-23.11.1 + dev:v42 +ARG LINKERD2_IMAGE=ghcr.io/olix0r/l2-proxy:git-04283611 + # Build the proxy. FROM --platform=$BUILDPLATFORM $RUST_IMAGE as build @@ -34,10 +39,6 @@ RUN --mount=type=cache,id=cargo,target=/usr/local/cargo/registry \ mkdir -p /out && \ mv $(just --evaluate profile="$PROFILE" _target_bin) /out/linkerd2-proxy -# Use an arbitrary ~recent edge release image to get the proxy -# identity-initializing and linkerd-await wrappers. -# Currently pinned to a build off of edge-23.11.1 + dev:v42 -ARG LINKERD2_IMAGE=ghcr.io/olix0r/l2-proxy:git-04283611 FROM $LINKERD2_IMAGE as linkerd2 # Install the proxy binary into a base image that we can at least get a shell to From 74ca3e893c5d05b5d20c2781c7e6be4477076991 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 14:37:45 +0000 Subject: [PATCH 12/13] simplify --- Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1e5dd363d5..5327469cd1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,8 +45,6 @@ FROM $LINKERD2_IMAGE as linkerd2 # debug on. FROM docker.io/library/debian:bookworm-slim as runtime WORKDIR /linkerd -COPY --from=linkerd2 /usr/lib/linkerd/linkerd-await /usr/lib/linkerd/linkerd-await -COPY --from=linkerd2 /usr/lib/linkerd/linkerd2-network-validator /usr/lib/linkerd/linkerd2-network-validator -COPY --from=linkerd2 /usr/lib/linkerd/linkerd2-proxy-identity /usr/lib/linkerd/linkerd2-proxy-identity +COPY --from=linkerd2 /usr/lib/linkerd/* /usr/lib/linkerd/ COPY --from=build /out/linkerd2-proxy /usr/lib/linkerd/linkerd2-proxy ENTRYPOINT ["/usr/lib/linkerd/linkerd2-proxy-identity"] From 9aefd9715afbba84deaa1d63d2c5e21cca64b725 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 3 Nov 2023 19:38:17 +0000 Subject: [PATCH 13/13] tags --- .github/workflows/actions.yml | 4 ++-- .github/workflows/k8s.yml | 2 +- .github/workflows/shellcheck.yml | 2 +- .github/workflows/toolchain.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 3dae74b8e7..25ab211184 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -14,13 +14,13 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: linkerd/dev/actions/setup-tools@v40 + - uses: linkerd/dev/actions/setup-tools@v42 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: just action-lint devcontainer-versions: runs-on: ubuntu-latest steps: - - uses: linkerd/dev/actions/setup-tools@v40 + - uses: linkerd/dev/actions/setup-tools@v42 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: just action-dev-check diff --git a/.github/workflows/k8s.yml b/.github/workflows/k8s.yml index f59615216a..d53f9345e0 100644 --- a/.github/workflows/k8s.yml +++ b/.github/workflows/k8s.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: linkerd/dev/actions/setup-tools@v40 + - uses: linkerd/dev/actions/setup-tools@v42 - name: Install linkerd CLI (edge) id: linkerd diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 3e4daa36af..6c26f688b3 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -15,6 +15,6 @@ jobs: timeout-minutes: 5 runs-on: ubuntu-latest steps: - - uses: linkerd/dev/actions/setup-tools@v40 + - uses: linkerd/dev/actions/setup-tools@v42 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - run: just sh-lint diff --git a/.github/workflows/toolchain.yml b/.github/workflows/toolchain.yml index 5de7c49cd4..5d1a3a7dcd 100644 --- a/.github/workflows/toolchain.yml +++ b/.github/workflows/toolchain.yml @@ -37,7 +37,7 @@ jobs: workflows: runs-on: ubuntu-latest steps: - - uses: linkerd/dev/actions/setup-tools@v40 + - uses: linkerd/dev/actions/setup-tools@v42 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - shell: bash run: |