From 8a98113aae40b4b6a79431675109f527724a836b Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Sun, 5 Jan 2025 18:31:39 +0000 Subject: [PATCH 1/4] build(deps): bump linkerd/dev from v44 to v45 --- .devcontainer/devcontainer.json | 2 +- .github/actions/helm-publish/action.yml | 2 +- .github/workflows/actions.yml | 8 ++++---- .github/workflows/choco.yml | 2 +- .github/workflows/codecov.yml | 6 +++--- .github/workflows/codeql.yml | 2 +- .github/workflows/devcontainer.yml | 8 ++++---- .github/workflows/go.yml | 18 ++++++++--------- .github/workflows/integration.yml | 26 ++++++++++++------------- .github/workflows/js.yml | 2 +- .github/workflows/lock.yml | 2 +- .github/workflows/markdown.yml | 2 +- .github/workflows/proto.yml | 4 ++-- .github/workflows/release.yml | 14 ++++++------- .github/workflows/rerun.yml | 2 +- .github/workflows/rust.yml | 20 +++++++++---------- .github/workflows/shell.yml | 4 ++-- .github/workflows/sync-proxy.yml | 6 +++--- policy-controller/Dockerfile | 2 +- 19 files changed, 66 insertions(+), 66 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e55a620a13881..214bf28a75c9a 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "linkerd2", - "image": "ghcr.io/linkerd/dev:v44", + "image": "ghcr.io/linkerd/dev:v45", // "dockerFile": "./Dockerfile", // "context": "..", "features": { diff --git a/.github/actions/helm-publish/action.yml b/.github/actions/helm-publish/action.yml index d764a063ff932..31b8895229dea 100644 --- a/.github/actions/helm-publish/action.yml +++ b/.github/actions/helm-publish/action.yml @@ -5,7 +5,7 @@ runs: steps: - name: Set up Cloud SDK uses: 'google-github-actions/setup-gcloud@e30db14379863a8c79331b04a9969f4c1e225e0b' - - uses: linkerd/dev/actions/setup-tools@v44 + - uses: linkerd/dev/actions/setup-tools@v45 - shell: bash run: | mkdir -p target/helm diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index a1103f1b86b5a..2878c902b7be7 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -11,16 +11,16 @@ permissions: jobs: actionlint: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 10 steps: - - uses: linkerd/dev/actions/setup-tools@v44 + - uses: linkerd/dev/actions/setup-tools@v45 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: just-dev lint-actions devcontainer-versions: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: linkerd/dev/actions/setup-tools@v44 + - uses: linkerd/dev/actions/setup-tools@v45 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: just-dev check-action-images diff --git a/.github/workflows/choco.yml b/.github/workflows/choco.yml index 8645785b502c9..5cc084803e81b 100644 --- a/.github/workflows/choco.yml +++ b/.github/workflows/choco.yml @@ -11,7 +11,7 @@ permissions: jobs: choco-psscript-lint: timeout-minutes: 10 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - uses: devblackops/github-action-psscriptanalyzer@854038567344559afaaa8ccb7a014452b99d86ee diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index bd88a45bdf161..055096d68894e 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -12,7 +12,7 @@ jobs: go: name: Go timeout-minutes: 30 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: golang:1.23 steps: @@ -27,7 +27,7 @@ jobs: js: name: JS timeout-minutes: 30 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: node:20-stretch steps: @@ -48,7 +48,7 @@ jobs: rust: name: Rust - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 15 container: image: docker://rust:1.83.0 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f9c891d4e4f99..0f5df3c6751e4 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -22,7 +22,7 @@ on: jobs: analyze: name: Analyze - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: actions: read contents: read diff --git a/.github/workflows/devcontainer.yml b/.github/workflows/devcontainer.yml index c2b39d6f1c1ff..9208593acd187 100644 --- a/.github/workflows/devcontainer.yml +++ b/.github/workflows/devcontainer.yml @@ -14,8 +14,8 @@ permissions: jobs: rust-version: - runs-on: ubuntu-22.04 - container: ghcr.io/linkerd/dev:v44-rust + runs-on: ubuntu-24.04 + container: ghcr.io/linkerd/dev:v45-rust steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - shell: bash @@ -37,8 +37,8 @@ jobs: fi devcontainer-image: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: linkerd/dev/actions/setup-tools@v44 + - uses: linkerd/dev/actions/setup-tools@v45 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: just-dev pull-dev-image diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 6e0110f2136af..001c950fb4637 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -6,7 +6,7 @@ permissions: jobs: meta: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - uses: tj-actions/changed-files@bab30c2299617f6615ec02a68b9a40d10bd21366 @@ -28,8 +28,8 @@ jobs: needs: meta if: needs.meta.outputs.changed == 'true' timeout-minutes: 10 - runs-on: ubuntu-22.04 - container: ghcr.io/linkerd/dev:v44-go + runs-on: ubuntu-24.04 + container: ghcr.io/linkerd/dev:v45-go steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -39,8 +39,8 @@ jobs: needs: meta if: needs.meta.outputs.changed == 'true' timeout-minutes: 10 - runs-on: ubuntu-22.04 - container: ghcr.io/linkerd/dev:v44-go + runs-on: ubuntu-24.04 + container: ghcr.io/linkerd/dev:v45-go steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -50,8 +50,8 @@ jobs: needs: meta if: needs.meta.outputs.changed == 'true' timeout-minutes: 10 - runs-on: ubuntu-22.04 - container: ghcr.io/linkerd/dev:v44-go + runs-on: ubuntu-24.04 + container: ghcr.io/linkerd/dev:v45-go steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -63,7 +63,7 @@ jobs: go-test-retry: needs: go-test if: failure() && fromJSON(github.run_attempt) < 3 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: actions: write env: @@ -77,7 +77,7 @@ jobs: go-ok: needs: [go-lint, go-format, go-test] if: always() - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Results run: | diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 016c2c2b580db..b3a1ddc3c9ba4 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -23,7 +23,7 @@ concurrency: jobs: meta: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - id: tag @@ -52,7 +52,7 @@ jobs: info: needs: meta - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 2 steps: - name: Info @@ -63,7 +63,7 @@ jobs: build-cli: needs: meta if: needs.meta.outputs.changed == 'true' - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 15 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 @@ -95,7 +95,7 @@ jobs: build-core: needs: meta if: needs.meta.outputs.changed == 'true' - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: matrix: component: @@ -132,7 +132,7 @@ jobs: - cni-calico-deep - deep - deep-native-sidecar - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 15 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 @@ -158,7 +158,7 @@ jobs: test-policy: needs: [meta, build-cli, build-core] if: needs.meta.outputs.changed == 'true' - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 20 strategy: matrix: @@ -218,7 +218,7 @@ jobs: build-ext: needs: meta if: needs.meta.outputs.changed == 'true' - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: matrix: component: @@ -259,7 +259,7 @@ jobs: - helm-upgrade - uninstall - upgrade-edge - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 15 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 @@ -284,7 +284,7 @@ jobs: test-viz: needs: [meta, build-cli, build-core, build-ext] if: needs.meta.outputs.changed == 'true' - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 30 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 @@ -310,7 +310,7 @@ jobs: test-multicluster: needs: [meta, build-cli, build-core, build-ext] if: needs.meta.outputs.changed == 'true' - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 30 strategy: matrix: @@ -358,7 +358,7 @@ jobs: build-ok: needs: [build-cli, build-core, build-ext] if: always() - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Results run: | @@ -375,7 +375,7 @@ jobs: needs: [build-ok, test-core, test-policy, test-ext, test-viz, test-multicluster] if: failure() && fromJSON(github.run_attempt) < 3 && needs.build-ok.result == 'success' - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: actions: write env: @@ -390,7 +390,7 @@ jobs: needs: [build-ok, test-core, test-policy, test-ext, test-viz, test-multicluster] if: always() - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Results run: | diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index 9c4273526b771..a003070cc039e 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -13,7 +13,7 @@ permissions: jobs: js-web-test: timeout-minutes: 30 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: node:20-bookworm env: diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index ecf839f3dbfc0..38dad68dcaec4 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -9,7 +9,7 @@ permissions: jobs: action: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 with: diff --git a/.github/workflows/markdown.yml b/.github/workflows/markdown.yml index 854089115221b..d8b5f6846c206 100644 --- a/.github/workflows/markdown.yml +++ b/.github/workflows/markdown.yml @@ -12,7 +12,7 @@ on: jobs: markdownlint: timeout-minutes: 5 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - uses: DavidAnson/markdownlint-cli2-action@a23dae216ce3fee4db69da41fed90d2a4af801cf diff --git a/.github/workflows/proto.yml b/.github/workflows/proto.yml index f4c7d73ee3952..abf83a1d3cb5d 100644 --- a/.github/workflows/proto.yml +++ b/.github/workflows/proto.yml @@ -14,8 +14,8 @@ permissions: jobs: proto-diff: timeout-minutes: 10 - runs-on: ubuntu-22.04 - container: ghcr.io/linkerd/dev:v44-go + runs-on: ubuntu-24.04 + container: ghcr.io/linkerd/dev:v45-go steps: - run: apt update && apt install -y unzip - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c35af75e8eeae..c25ae08df8739 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,7 +19,7 @@ jobs: # especially the TAG variable. And it would be great to stop relying # on the root-tag script altogether. tag: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: echo "tag=$(CI_FORCE_CLEAN=1 bin/root-tag)" >> "$GITHUB_OUTPUT" @@ -30,7 +30,7 @@ jobs: docker_build: name: Docker build needs: [tag] - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: id-token: write # needed for signing the images with GitHub OIDC Token strategy: @@ -124,7 +124,7 @@ jobs: - uninstall - upgrade-edge timeout-minutes: 60 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 @@ -182,7 +182,7 @@ jobs: # TODO(ver) choco packages are not produced for edge releases... # - choco_pack timeout-minutes: 30 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: contents: write steps: @@ -216,7 +216,7 @@ jobs: needs: [gh_release] if: startsWith(github.ref, 'refs/tags/stable') || startsWith(github.ref, 'refs/tags/edge') timeout-minutes: 30 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: contents: write steps: @@ -232,7 +232,7 @@ jobs: needs: [tag, website_publish] timeout-minutes: 30 if: startsWith(github.ref, 'refs/tags/stable') || startsWith(github.ref, 'refs/tags/edge') - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - name: Set install target for stable @@ -259,7 +259,7 @@ jobs: name: Helm chart deploy needs: [gh_release] timeout-minutes: 30 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 diff --git a/.github/workflows/rerun.yml b/.github/workflows/rerun.yml index defa2067490ee..51ac2625b562b 100644 --- a/.github/workflows/rerun.yml +++ b/.github/workflows/rerun.yml @@ -15,7 +15,7 @@ concurrency: jobs: rerun: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 5 permissions: actions: write diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index ac25ac301066b..c849a0348e0c4 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -26,7 +26,7 @@ env: jobs: audit: timeout-minutes: 10 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: matrix: checks: @@ -42,8 +42,8 @@ jobs: fmt: timeout-minutes: 5 - runs-on: ubuntu-22.04 - container: ghcr.io/linkerd/dev:v44-rust + runs-on: ubuntu-24.04 + container: ghcr.io/linkerd/dev:v45-rust steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -51,8 +51,8 @@ jobs: clippy: timeout-minutes: 20 - runs-on: ubuntu-22.04 - container: ghcr.io/linkerd/dev:v44-rust + runs-on: ubuntu-24.04 + container: ghcr.io/linkerd/dev:v45-rust steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -62,8 +62,8 @@ jobs: check: timeout-minutes: 20 - runs-on: ubuntu-22.04 - container: ghcr.io/linkerd/dev:v44-rust + runs-on: ubuntu-24.04 + container: ghcr.io/linkerd/dev:v45-rust steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -72,9 +72,9 @@ jobs: test: name: test - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 15 - container: ghcr.io/linkerd/dev:v44-rust + container: ghcr.io/linkerd/dev:v45-rust steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -84,7 +84,7 @@ jobs: rust-toolchain: name: rust toolchain - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 2 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 diff --git a/.github/workflows/shell.yml b/.github/workflows/shell.yml index ff4f8dbdff7bd..d55473c819993 100644 --- a/.github/workflows/shell.yml +++ b/.github/workflows/shell.yml @@ -14,8 +14,8 @@ jobs: # https://github.com/koalaman/shellcheck/wiki/Checks shellcheck: timeout-minutes: 10 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: linkerd/dev/actions/setup-tools@v44 + - uses: linkerd/dev/actions/setup-tools@v45 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: just sh-lint diff --git a/.github/workflows/sync-proxy.yml b/.github/workflows/sync-proxy.yml index 86a5734f0585b..8f681cea2dd5f 100644 --- a/.github/workflows/sync-proxy.yml +++ b/.github/workflows/sync-proxy.yml @@ -14,7 +14,7 @@ concurrency: jobs: meta: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 5 env: GH_REPO: ${{ vars.LINKERD2_PROXY_REPO || 'linkerd/linkerd2-proxy' }} @@ -59,7 +59,7 @@ jobs: changed: needs: meta - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 5 env: VERSION: ${{ needs.meta.outputs.name }} @@ -81,7 +81,7 @@ jobs: sync-proxy: needs: [meta, changed] if: needs.changed.outputs.changed == 'true' - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 5 permissions: checks: read diff --git a/policy-controller/Dockerfile b/policy-controller/Dockerfile index ce5e42575514a..5644bb81ae2ba 100644 --- a/policy-controller/Dockerfile +++ b/policy-controller/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM ghcr.io/linkerd/dev:v44-rust-musl AS controller +FROM --platform=$BUILDPLATFORM ghcr.io/linkerd/dev:v45-rust-musl AS controller ARG BUILD_TYPE="release" WORKDIR /build RUN mkdir -p target/bin From 5229b3c81f889d071c235cdf9bb549a9840b8668 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Sun, 5 Jan 2025 20:16:24 +0000 Subject: [PATCH 2/4] wip: update kube and hyper --- Cargo.lock | 1002 ++++++++++---------- Cargo.toml | 11 +- policy-controller/grpc/Cargo.toml | 2 +- policy-controller/k8s/api/Cargo.toml | 2 +- policy-controller/k8s/index/Cargo.toml | 2 +- policy-controller/runtime/Cargo.toml | 3 +- policy-controller/runtime/src/admission.rs | 2 +- policy-controller/runtime/src/args.rs | 102 +- policy-test/Cargo.toml | 4 +- policy-test/src/lib.rs | 16 +- 10 files changed, 570 insertions(+), 576 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 85d3fe32d88c5..e18bb95474a30 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,12 +17,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - [[package]] name = "ahash" version = "0.8.11" @@ -78,6 +72,18 @@ version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + [[package]] name = "async-stream" version = "0.3.6" @@ -97,7 +103,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -108,9 +114,15 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.4.0" @@ -128,9 +140,9 @@ dependencies = [ "bitflags 1.3.2", "bytes", "futures-util", - "http", - "http-body", - "hyper", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", "itoa", "matchit", "memchr", @@ -139,8 +151,8 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper", - "tower", + "sync_wrapper 0.1.2", + "tower 0.4.13", "tower-layer", "tower-service", ] @@ -154,8 +166,8 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 0.2.12", + "http-body 0.4.6", "mime", "rustversion", "tower-layer", @@ -211,9 +223,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block-buffer" @@ -299,7 +311,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -308,6 +320,15 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -318,6 +339,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -334,13 +365,10 @@ dependencies = [ ] [[package]] -name = "crc32fast" -version = "1.4.2" +name = "crossbeam-utils" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" @@ -373,7 +401,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.87", + "syn", ] [[package]] @@ -384,7 +412,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -393,27 +421,6 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" -[[package]] -name = "deflate" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f" -dependencies = [ - "adler32", - "gzip-header", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "digest" version = "0.10.7" @@ -424,17 +431,6 @@ dependencies = [ "crypto-common", ] -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "drain" version = "0.1.2" @@ -456,12 +452,44 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "either" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +[[package]] +name = "enum-ordinalize" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -478,12 +506,39 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" +dependencies = [ + "event-listener", + "pin-project-lite", +] + [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "foreign-types" version = "0.3.2" @@ -516,7 +571,6 @@ checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", - "futures-executor", "futures-io", "futures-sink", "futures-task", @@ -539,17 +593,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - [[package]] name = "futures-io" version = "0.3.31" @@ -564,7 +607,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -625,26 +668,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] -name = "gzip-header" -version = "1.0.0" +name = "h2" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95cc527b92e6029a62960ad99aa8a6660faa4555fe5f731aab13aa6a921795a2" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "crc32fast", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util", + "tracing", ] [[package]] name = "h2" -version = "0.3.26" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", - "http", + "http 1.2.0", "indexmap 2.2.6", "slab", "tokio", @@ -663,9 +716,40 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ - "ahash", "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "headers" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http 1.2.0", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" +dependencies = [ + "http 1.2.0", ] [[package]] @@ -689,6 +773,17 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "hostname" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" +dependencies = [ + "cfg-if", + "libc", + "windows", +] + [[package]] name = "http" version = "0.2.12" @@ -700,6 +795,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.6" @@ -707,15 +813,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", + "http 0.2.12", "pin-project-lite", ] [[package]] -name = "http-range-header" -version = "0.3.1" +name = "http-body" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.2.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "pin-project-lite", +] [[package]] name = "httparse" @@ -739,9 +862,9 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", "httparse", "httpdate", "itoa", @@ -753,38 +876,83 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.7", + "http 1.2.0", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-http-proxy" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d06dbdfbacf34d996c6fb540a71a684a7aae9056c71951163af8a8a4c07b9a4" +dependencies = [ + "bytes", + "futures-util", + "headers", + "http 1.2.0", + "hyper 1.5.2", + "hyper-rustls", + "hyper-util", + "pin-project-lite", + "rustls-native-certs 0.7.3", + "tokio", + "tokio-rustls", + "tower-service", +] + [[package]] name = "hyper-openssl" -version = "0.9.2" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b" +checksum = "527d4d619ca2c2aafa31ec139a3d1d60bf557bf7578a1f20f743637eccd9ca19" dependencies = [ - "http", - "hyper", + "http 1.2.0", + "hyper 1.5.2", + "hyper-util", "linked_hash_set", "once_cell", "openssl", "openssl-sys", "parking_lot", - "tokio", - "tokio-openssl", + "pin-project", "tower-layer", + "tower-service", ] [[package]] name = "hyper-rustls" -version = "0.24.2" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http", - "hyper", + "http 1.2.0", + "hyper 1.5.2", + "hyper-util", "log", "rustls", - "rustls-native-certs", + "rustls-native-certs 0.8.1", + "rustls-pki-types", "tokio", "tokio-rustls", + "tower-service", ] [[package]] @@ -793,12 +961,44 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper", + "hyper 0.14.32", "pin-project-lite", "tokio", "tokio-io-timeout", ] +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper 1.5.2", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "hyper 1.5.2", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + [[package]] name = "iana-time-zone" version = "0.1.61" @@ -822,151 +1022,12 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - [[package]] name = "indexmap" version = "1.9.3" @@ -1052,10 +1113,11 @@ dependencies = [ [[package]] name = "json-patch" -version = "1.4.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" dependencies = [ + "jsonptr", "serde", "serde_json", "thiserror 1.0.69", @@ -1063,22 +1125,31 @@ dependencies = [ [[package]] name = "jsonpath-rust" -version = "0.3.5" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06cc127b7c3d270be504572364f9569761a180b981919dd0d87693a7f5fb7829" +checksum = "0c00ae348f9f8fd2d09f82a98ca381c60df9e0820d8d79fce43e649b4dc3128b" dependencies = [ "pest", "pest_derive", "regex", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.9", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", ] [[package]] name = "k8s-gateway-api" version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b31e055e9626a2feb83cea00e22f796392edbe634fd4bafc0c73bf6d035ec0" +source = "git+https://github.com/linkerd/k8s-gateway-api-rs#c6915d7dc35459f349113bc27917bc2a05bc945f" dependencies = [ "k8s-openapi", "kube", @@ -1089,12 +1160,11 @@ dependencies = [ [[package]] name = "k8s-openapi" -version = "0.20.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc3606fd16aca7989db2f84bb25684d0270c6d6fa1dbcd0025af7b4130523a6" +checksum = "2c75b990324f09bef15e791606b7b7a296d02fc88a344f6eba9390970a870ad5" dependencies = [ - "base64 0.21.7", - "bytes", + "base64 0.22.1", "chrono", "schemars", "serde", @@ -1104,9 +1174,9 @@ dependencies = [ [[package]] name = "kube" -version = "0.87.2" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3499c8d60c763246c7a213f51caac1e9033f46026904cb89bc8951ae8601f26e" +checksum = "32053dc495efad4d188c7b33cc7c02ef4a6e43038115348348876efd39a53cba" dependencies = [ "k8s-openapi", "kube-client", @@ -1117,28 +1187,30 @@ dependencies = [ [[package]] name = "kube-client" -version = "0.87.2" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "033450dfa0762130565890dadf2f8835faedf749376ca13345bcd8ecd6b5f29f" +checksum = "9d34ad38cdfbd1fa87195d42569f57bb1dda6ba5f260ee32fef9570b7937a0c9" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes", "chrono", "either", "futures", "home", - "http", - "http-body", - "hyper", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.2", + "hyper-http-proxy", "hyper-openssl", "hyper-rustls", - "hyper-timeout", + "hyper-timeout 0.5.2", + "hyper-util", "jsonpath-rust", "k8s-openapi", "kube-core", "openssl", "pem", - "pin-project", "rand", "rustls", "rustls-pemfile", @@ -1146,67 +1218,70 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "thiserror 1.0.69", + "thiserror 2.0.9", "tokio", "tokio-tungstenite", "tokio-util", - "tower", + "tower 0.5.2", "tower-http", "tracing", ] [[package]] name = "kube-core" -version = "0.87.2" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5bba93d054786eba7994d03ce522f368ef7d48c88a1826faa28478d85fb63ae" +checksum = "97aa830b288a178a90e784d1b0f1539f2d200d2188c7b4a3146d9dc983d596f3" dependencies = [ "chrono", "form_urlencoded", - "http", + "http 1.2.0", "json-patch", "k8s-openapi", - "once_cell", "schemars", "serde", + "serde-value", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.9", ] [[package]] name = "kube-derive" -version = "0.87.2" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e98dd5e5767c7b894c1f0e41fd628b145f808e981feb8b08ed66455d47f1a4" +checksum = "37745d8a4076b77e0b1952e94e358726866c8e14ec94baaca677d47dcdb98658" dependencies = [ "darling", "proc-macro2", "quote", "serde_json", - "syn 2.0.87", + "syn", ] [[package]] name = "kube-runtime" -version = "0.87.2" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d8893eb18fbf6bb6c80ef6ee7dd11ec32b1dc3c034c988ac1b3a84d46a230ae" +checksum = "7a41af186a0fe80c71a13a13994abdc3ebff80859ca6a4b8a6079948328c135b" dependencies = [ "ahash", + "async-broadcast", + "async-stream", "async-trait", "backoff", - "derivative", + "educe", "futures", - "hashbrown 0.14.5", + "hashbrown 0.15.2", + "hostname", "json-patch", + "jsonptr", "k8s-openapi", "kube-client", "parking_lot", "pin-project", "serde", "serde_json", - "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.9", "tokio", "tokio-util", "tracing", @@ -1214,20 +1289,21 @@ dependencies = [ [[package]] name = "kubert" -version = "0.22.0" +version = "0.23.0-alpha5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff4135c85607c3733cd52e3098df704994980a91cb14afabd967a60cb167433" +checksum = "21825be1d69132c9d6f74adaef53b66a3dc6d5a26290ae60c2e22aa0eed8d83d" dependencies = [ "ahash", "backoff", "bytes", "chrono", "clap", - "deflate", "drain", "futures-core", "futures-util", - "hyper", + "http-body-util", + "hyper 1.5.2", + "hyper-util", "k8s-openapi", "kube-client", "kube-core", @@ -1240,10 +1316,11 @@ dependencies = [ "rustls-pemfile", "serde", "serde_json", - "thiserror 1.0.69", + "sha2", + "thiserror 2.0.9", "tokio", "tokio-rustls", - "tower", + "tower 0.5.2", "tower-http", "tracing", "tracing-subscriber", @@ -1319,7 +1396,7 @@ dependencies = [ "async-trait", "chrono", "futures", - "http", + "http 0.2.12", "ipnet", "regex", ] @@ -1332,8 +1409,8 @@ dependencies = [ "async-trait", "drain", "futures", - "http", - "hyper", + "http 0.2.12", + "hyper 1.5.2", "linkerd-policy-controller-core", "linkerd2-proxy-api", "maplit", @@ -1370,7 +1447,7 @@ dependencies = [ "anyhow", "chrono", "futures", - "http", + "http 0.2.12", "k8s-openapi", "kube", "kubert", @@ -1415,7 +1492,7 @@ dependencies = [ "clap", "drain", "futures", - "hyper", + "hyper 1.5.2", "ipnet", "k8s-openapi", "kube", @@ -1444,7 +1521,7 @@ version = "0.1.0" dependencies = [ "anyhow", "futures", - "hyper", + "hyper 1.5.2", "ipnet", "k8s-gateway-api", "k8s-openapi", @@ -1472,7 +1549,7 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4682c00263191a5bfa4fbe64f6d80b22ff2b49aaa294da5aac062f5abc6eb9e" dependencies = [ - "http", + "http 0.2.12", "ipnet", "prost", "prost-types", @@ -1486,12 +1563,6 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - [[package]] name = "lock_api" version = "0.4.12" @@ -1601,7 +1672,7 @@ version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -1618,7 +1689,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -1664,6 +1735,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + [[package]] name = "parking_lot" version = "0.12.3" @@ -1734,7 +1811,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -1765,7 +1842,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -1810,7 +1887,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "hex", "lazy_static", "procfs-core", @@ -1823,7 +1900,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "hex", ] @@ -1847,7 +1924,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -1870,7 +1947,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -1927,7 +2004,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] @@ -2001,7 +2078,7 @@ version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", @@ -2010,44 +2087,67 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.12" +version = "0.23.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" dependencies = [ "log", + "once_cell", "ring", + "rustls-pki-types", "rustls-webpki", - "sct", + "subtle", + "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.6.3" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", "rustls-pemfile", + "rustls-pki-types", + "schannel", + "security-framework 2.11.0", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +dependencies = [ + "openssl-probe", + "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.1.0", ] [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.21.7", + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" + [[package]] name = "rustls-webpki" -version = "0.101.7" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring", + "rustls-pki-types", "untrusted", ] @@ -2093,7 +2193,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.87", + "syn", ] [[package]] @@ -2103,33 +2203,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "sct" -version = "0.7.1" +name = "secrecy" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +checksum = "e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a" dependencies = [ - "ring", - "untrusted", + "zeroize", ] [[package]] -name = "secrecy" -version = "0.8.0" +name = "security-framework" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "serde", - "zeroize", + "bitflags 2.6.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", ] [[package]] name = "security-framework" -version = "2.11.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" dependencies = [ - "bitflags 2.5.0", - "core-foundation", + "bitflags 2.6.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -2172,7 +2274,7 @@ checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -2183,7 +2285,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -2288,12 +2390,6 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "strsim" version = "0.11.1" @@ -2301,15 +2397,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] -name = "syn" -version = "1.0.109" +name = "subtle" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -2329,15 +2420,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] -name = "synstructure" -version = "0.13.1" +name = "sync_wrapper" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" [[package]] name = "thiserror" @@ -2365,7 +2451,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -2376,7 +2462,7 @@ checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -2389,16 +2475,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - [[package]] name = "tokio" version = "1.42.0" @@ -2435,7 +2511,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -2450,22 +2526,11 @@ dependencies = [ "tokio-stream", ] -[[package]] -name = "tokio-openssl" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59df6849caa43bb7567f9a36f863c447d95a11d5903c9cc334ba32576a27eadd" -dependencies = [ - "openssl", - "openssl-sys", - "tokio", -] - [[package]] name = "tokio-rustls" -version = "0.24.1" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ "rustls", "tokio", @@ -2498,9 +2563,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.20.1" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +checksum = "be4bf6fecd69fcdede0ec680aaf474cdab988f9de6bc73d3758f0160e3b7025a" dependencies = [ "futures-util", "log", @@ -2533,17 +2598,17 @@ dependencies = [ "axum", "base64 0.21.7", "bytes", - "h2", - "http", - "http-body", - "hyper", - "hyper-timeout", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper-timeout 0.4.1", "percent-encoding", "pin-project", "prost", "tokio", "tokio-stream", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -2570,19 +2635,33 @@ dependencies = [ ] [[package]] -name = "tower-http" -version = "0.4.4" +name = "tower" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ - "base64 0.21.7", - "bitflags 2.5.0", - "bytes", "futures-core", "futures-util", - "http", - "http-body", - "http-range-header", + "pin-project-lite", + "sync_wrapper 1.0.2", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" +dependencies = [ + "base64 0.22.1", + "bitflags 2.6.0", + "bytes", + "http 1.2.0", + "http-body 1.0.1", "mime", "pin-project-lite", "tower-layer", @@ -2622,7 +2701,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", ] [[package]] @@ -2685,20 +2764,19 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.20.1" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +checksum = "413083a99c579593656008130e29255e54dcaae495be556cc26888f211648c24" dependencies = [ "byteorder", "bytes", "data-encoding", - "http", + "http 1.2.0", "httparse", "log", "rand", "sha1", - "thiserror 1.0.69", - "url", + "thiserror 2.0.9", "utf-8", ] @@ -2732,35 +2810,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - [[package]] name = "utf-8" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - [[package]] name = "valuable" version = "0.1.0" @@ -2815,7 +2870,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn", "wasm-bindgen-shared", ] @@ -2837,7 +2892,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2870,6 +2925,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets", +] + [[package]] name = "windows-core" version = "0.52.0" @@ -2961,42 +3026,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", - "synstructure", -] - [[package]] name = "zerocopy" version = "0.7.35" @@ -3015,28 +3044,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", - "synstructure", + "syn", ] [[package]] @@ -3044,25 +3052,3 @@ name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] diff --git a/Cargo.toml b/Cargo.toml index b1115a6506e39..3d33e22053ac4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,11 @@ members = [ lto = "thin" [workspace.dependencies] -k8s-openapi = { version = "0.20", features = ["v1_22"] } -kube = { version = "0.87.1", default-features = false } -kubert = { version = "0.22", default-features = false } +k8s-openapi = { version = "0.24", features = ["v1_31"] } +kube = { version = "0.98", default-features = false } +kubert = { version = "0.23.0-alpha5", default-features = false } + +# TODO(ver): Remove this once we update to a proper generated version of the gateway api bindings. +k8s-gateway-api = { git = "https://github.com/linkerd/k8s-gateway-api-rs", features = [ + "experimental", +] } diff --git a/policy-controller/grpc/Cargo.toml b/policy-controller/grpc/Cargo.toml index c8f2b765d319e..b25c1958d4151 100644 --- a/policy-controller/grpc/Cargo.toml +++ b/policy-controller/grpc/Cargo.toml @@ -11,7 +11,7 @@ async-trait = "0.1" http = "0.2" drain = "0.1" futures = { version = "0.3", default-features = false } -hyper = { version = "0.14", features = ["http2", "server", "tcp"] } +hyper = { version = "1", features = ["http2", "server"] } linkerd-policy-controller-core = { path = "../core" } maplit = "1" prost-types = "0.12.6" diff --git a/policy-controller/k8s/api/Cargo.toml b/policy-controller/k8s/api/Cargo.toml index 0fe162be403fd..b0fb89e72c40d 100644 --- a/policy-controller/k8s/api/Cargo.toml +++ b/policy-controller/k8s/api/Cargo.toml @@ -7,7 +7,7 @@ publish = false [dependencies] k8s-openapi = { workspace = true } -k8s-gateway-api = { version = "0.16", features = ["experimental"] } +k8s-gateway-api = { workspace = true, features = ["experimental"] } kube = { workspace = true, default-features = false, features = [ "client", "derive", diff --git a/policy-controller/k8s/index/Cargo.toml b/policy-controller/k8s/index/Cargo.toml index bab0b4d4f8e36..7b0773eb7292f 100644 --- a/policy-controller/k8s/index/Cargo.toml +++ b/policy-controller/k8s/index/Cargo.toml @@ -27,7 +27,7 @@ tracing = "0.1" [dev-dependencies] chrono = { version = "0.4", default-features = false } -k8s-openapi = { version = "0.20", features = ["schemars"] } +k8s-openapi = { workspace = true, features = ["schemars"] } maplit = "1" tokio-stream = "0.1" tokio-test = "0.4" diff --git a/policy-controller/runtime/Cargo.toml b/policy-controller/runtime/Cargo.toml index 0a70e6fe21269..68a652b5355d3 100644 --- a/policy-controller/runtime/Cargo.toml +++ b/policy-controller/runtime/Cargo.toml @@ -19,7 +19,7 @@ async-trait = "0.1" drain = "0.1" futures = { version = "0.3", default-features = false } k8s-openapi = { workspace = true } -hyper = { version = "0.14", features = ["http1", "http2", "runtime", "server"] } +hyper = { version = "1", features = ["http1", "http2", "server"] } ipnet = { version = "2", default-features = false } openssl = { version = "0.10.68", optional = true } parking_lot = "0.12" @@ -56,6 +56,7 @@ features = [ "lease", "prometheus-client", "runtime", + "runtime-diagnostics", "server", "rustls-tls", ] diff --git a/policy-controller/runtime/src/admission.rs b/policy-controller/runtime/src/admission.rs index 71cd8df790391..c0f6f50afded0 100644 --- a/policy-controller/runtime/src/admission.rs +++ b/policy-controller/runtime/src/admission.rs @@ -51,7 +51,7 @@ trait Validate { // === impl AdmissionService === -impl hyper::service::Service> for Admission { +impl hyper::service::Service> for Admission { type Response = Response; type Error = Error; type Future = future::BoxFuture<'static, Result, Error>>; diff --git a/policy-controller/runtime/src/args.rs b/policy-controller/runtime/src/args.rs index 87d16edeeef63..b5861a66bbf27 100644 --- a/policy-controller/runtime/src/args.rs +++ b/policy-controller/runtime/src/args.rs @@ -13,10 +13,12 @@ use futures::prelude::*; use k8s::{api::apps::v1::Deployment, Client, ObjectMeta, Resource}; use k8s_openapi::api::coordination::v1 as coordv1; use kube::{api::PatchParams, runtime::watcher}; -use kubert::LeaseManager; use prometheus_client::registry::Registry; use std::{net::SocketAddr, sync::Arc}; -use tokio::{sync::mpsc, time::Duration}; +use tokio::{ + sync::{mpsc, watch}, + time::Duration, +}; use tonic::transport::Server; use tracing::{info, info_span, instrument, Instrument}; @@ -179,18 +181,20 @@ impl Args { let hostname = std::env::var("HOSTNAME").expect("Failed to fetch `HOSTNAME` environment variable"); - let params = kubert::lease::ClaimParams { - lease_duration: LEASE_DURATION, - renew_grace_period: RENEW_GRACE_PERIOD, - }; - let lease = init_lease( - runtime.client(), - &control_plane_namespace, + let claims = init_lease( + &runtime, &policy_deployment_name, + kubert::LeaseParams { + name: LEASE_NAME.to_string(), + namespace: control_plane_namespace.clone(), + claimant: hostname, + lease_duration: LEASE_DURATION, + renew_grace_period: RENEW_GRACE_PERIOD, + field_manager: Some("policy-controller".into()), + }, ) .await?; - let (claims, _task) = lease.spawn(hostname.clone(), params).await?; // Build the status index which will maintain information necessary for // updating the status field of policy resources. @@ -463,60 +467,62 @@ async fn grpc( Ok(()) } -async fn init_lease(client: Client, ns: &str, deployment_name: &str) -> Result { +async fn init_lease( + runtime: &kubert::Runtime, + deployment_name: &str, + params: kubert::LeaseParams, +) -> Result>> { // Fetch the policy-controller deployment so that we can use it as an owner // reference of the Lease. - let api = k8s::Api::::namespaced(client.clone(), ns); + let api = k8s::Api::::namespaced(runtime.client(), ¶ms.namespace); let deployment = api.get(deployment_name).await?; - let api = k8s::Api::namespaced(client, ns); - let params = PatchParams { - field_manager: Some("policy-controller".to_string()), - ..Default::default() + let lease = coordv1::Lease { + metadata: ObjectMeta { + name: Some(params.name.clone()), + namespace: Some(params.namespace.clone()), + // Specifying a resource version of "0" means that we will + // only create the Lease if it does not already exist. + resource_version: Some("0".to_string()), + owner_references: Some(vec![deployment.controller_owner_ref(&()).unwrap()]), + labels: Some( + [ + ( + "linkerd.io/control-plane-component".to_string(), + "destination".to_string(), + ), + ( + "linkerd.io/control-plane-ns".to_string(), + params.namespace.clone(), + ), + ] + .into_iter() + .collect(), + ), + ..Default::default() + }, + spec: None, }; - match api + match k8s::Api::::namespaced(runtime.client(), ¶ms.namespace) .patch( LEASE_NAME, - ¶ms, - &kube::api::Patch::Apply(coordv1::Lease { - metadata: ObjectMeta { - name: Some(LEASE_NAME.to_string()), - namespace: Some(ns.to_string()), - // Specifying a resource version of "0" means that we will - // only create the Lease if it does not already exist. - resource_version: Some("0".to_string()), - owner_references: Some(vec![deployment.controller_owner_ref(&()).unwrap()]), - labels: Some( - [ - ( - "linkerd.io/control-plane-component".to_string(), - "destination".to_string(), - ), - ("linkerd.io/control-plane-ns".to_string(), ns.to_string()), - ] - .into_iter() - .collect(), - ), - ..Default::default() - }, - spec: None, - }), + &PatchParams { + field_manager: params.field_manager.clone().map(Into::into), + ..Default::default() + }, + &kube::api::Patch::Apply(lease), ) .await { Ok(lease) => tracing::info!(?lease, "Created Lease resource"), Err(k8s::Error::Api(_)) => tracing::debug!("Lease already exists, no need to create it"), Err(error) => { - tracing::error!(%error, "Failed to create Lease resource"); return Err(error.into()); } }; - // Create the lease manager used for trying to claim the policy - // controller write lease. - // todo: Do we need to use LeaseManager::field_manager here? - kubert::lease::LeaseManager::init(api, LEASE_NAME) - .await - .map_err(Into::into) + + let (claim, _task) = runtime.spawn_lease(params).await?; + Ok(claim) } async fn api_resource_exists(client: &Client) -> bool diff --git a/policy-test/Cargo.toml b/policy-test/Cargo.toml index 82aa16fd405a4..1761c1cd9c517 100644 --- a/policy-test/Cargo.toml +++ b/policy-test/Cargo.toml @@ -7,10 +7,10 @@ publish = false [dependencies] anyhow = "1" -hyper = { version = "0.14", features = ["client", "http2"] } +hyper = { version = "1", features = ["client", "http2"] } futures = { version = "0.3", default-features = false } ipnet = "2" -k8s-gateway-api = "0.16" +k8s-gateway-api = { workspace = true } k8s-openapi = { workspace = true } linkerd-policy-controller-core = { path = "../policy-controller/core" } linkerd-policy-controller-k8s-api = { path = "../policy-controller/k8s/api" } diff --git a/policy-test/src/lib.rs b/policy-test/src/lib.rs index da69d55a10d40..63bc7e5be0d94 100644 --- a/policy-test/src/lib.rs +++ b/policy-test/src/lib.rs @@ -177,7 +177,7 @@ pub async fn create_ready_pod(client: &kube::Client, pod: k8s::Pod) -> k8s::Pod ip = %pod .status.as_ref().expect("pod must have a status") .pod_ips.as_ref().unwrap()[0] - .ip.as_deref().expect("pod ip must be set"), + .ip, containers = ?pod .spec.as_ref().expect("pod must have a spec") .containers.iter().map(|c| &*c.name).collect::>(), @@ -755,15 +755,11 @@ pub async fn await_service_account(client: &kube::Client, ns: &str, name: &str) .expect("serviceaccounts watch must not fail"); tracing::info!(?ev); match ev { - kube::runtime::watcher::Event::Restarted(sas) => { - if sas.iter().any(|sa| sa.name_unchecked() == name) { - return; - } - } - kube::runtime::watcher::Event::Applied(sa) => { - if sa.name_unchecked() == name { - return; - } + kube::runtime::watcher::Event::InitApply(sa) + | kube::runtime::watcher::Event::Apply(sa) + if sa.name_unchecked() == name => + { + return } _ => {} } From 347be220b66205cc64fec5f2be526ef016284b11 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Mon, 6 Jan 2025 16:19:24 +0000 Subject: [PATCH 3/4] build(deps): bump hyper from 0.3 to 1.0 --- Cargo.lock | 256 +++++++------------- Cargo.toml | 14 +- policy-controller/core/Cargo.toml | 2 +- policy-controller/grpc/Cargo.toml | 8 +- policy-controller/grpc/src/outbound/http.rs | 2 +- policy-controller/k8s/index/Cargo.toml | 2 +- policy-controller/runtime/Cargo.toml | 5 +- policy-controller/runtime/src/admission.rs | 23 +- policy-controller/runtime/src/args.rs | 2 +- policy-test/Cargo.toml | 8 +- policy-test/src/grpc.rs | 23 +- 11 files changed, 142 insertions(+), 203 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e18bb95474a30..b2175291e01b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -131,18 +131,17 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.6.20" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", - "bitflags 1.3.2", "bytes", "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", + "http", + "http-body", + "http-body-util", "itoa", "matchit", "memchr", @@ -151,25 +150,28 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper 0.1.2", - "tower 0.4.13", + "sync_wrapper", + "tower 0.5.2", "tower-layer", "tower-service", ] [[package]] name = "axum-core" -version = "0.3.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", "futures-util", - "http 0.2.12", - "http-body 0.4.6", + "http", + "http-body", + "http-body-util", "mime", + "pin-project-lite", "rustversion", + "sync_wrapper", "tower-layer", "tower-service", ] @@ -215,12 +217,6 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.6.0" @@ -667,25 +663,6 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.2.6", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "h2" version = "0.4.7" @@ -697,7 +674,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.2.0", + "http", "indexmap 2.2.6", "slab", "tokio", @@ -737,7 +714,7 @@ dependencies = [ "base64 0.21.7", "bytes", "headers-core", - "http 1.2.0", + "http", "httpdate", "mime", "sha1", @@ -749,7 +726,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http 1.2.0", + "http", ] [[package]] @@ -784,17 +761,6 @@ dependencies = [ "windows", ] -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.2.0" @@ -806,17 +772,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -824,7 +779,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.2.0", + "http", ] [[package]] @@ -835,8 +790,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.2.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -852,30 +807,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.5.2" @@ -885,9 +816,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.7", - "http 1.2.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", "httpdate", "itoa", @@ -906,8 +837,8 @@ dependencies = [ "bytes", "futures-util", "headers", - "http 1.2.0", - "hyper 1.5.2", + "http", + "hyper", "hyper-rustls", "hyper-util", "pin-project-lite", @@ -923,8 +854,8 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "527d4d619ca2c2aafa31ec139a3d1d60bf557bf7578a1f20f743637eccd9ca19" dependencies = [ - "http 1.2.0", - "hyper 1.5.2", + "http", + "hyper", "hyper-util", "linked_hash_set", "once_cell", @@ -943,8 +874,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.2.0", - "hyper 1.5.2", + "http", + "hyper", "hyper-util", "log", "rustls", @@ -955,25 +886,13 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper 0.14.32", - "pin-project-lite", - "tokio", - "tokio-io-timeout", -] - [[package]] name = "hyper-timeout" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 1.5.2", + "hyper", "hyper-util", "pin-project-lite", "tokio", @@ -989,9 +908,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "hyper 1.5.2", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -1197,14 +1116,14 @@ dependencies = [ "either", "futures", "home", - "http 1.2.0", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", - "hyper 1.5.2", + "hyper", "hyper-http-proxy", "hyper-openssl", "hyper-rustls", - "hyper-timeout 0.5.2", + "hyper-timeout", "hyper-util", "jsonpath-rust", "k8s-openapi", @@ -1235,7 +1154,7 @@ checksum = "97aa830b288a178a90e784d1b0f1539f2d200d2188c7b4a3146d9dc983d596f3" dependencies = [ "chrono", "form_urlencoded", - "http 1.2.0", + "http", "json-patch", "k8s-openapi", "schemars", @@ -1302,7 +1221,7 @@ dependencies = [ "futures-core", "futures-util", "http-body-util", - "hyper 1.5.2", + "hyper", "hyper-util", "k8s-openapi", "kube-client", @@ -1396,7 +1315,7 @@ dependencies = [ "async-trait", "chrono", "futures", - "http 0.2.12", + "http", "ipnet", "regex", ] @@ -1409,8 +1328,8 @@ dependencies = [ "async-trait", "drain", "futures", - "http 0.2.12", - "hyper 1.5.2", + "http", + "hyper", "linkerd-policy-controller-core", "linkerd2-proxy-api", "maplit", @@ -1447,7 +1366,7 @@ dependencies = [ "anyhow", "chrono", "futures", - "http 0.2.12", + "http", "k8s-openapi", "kube", "kubert", @@ -1489,10 +1408,12 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", + "bytes", "clap", "drain", "futures", - "hyper 1.5.2", + "http-body-util", + "hyper", "ipnet", "k8s-openapi", "kube", @@ -1512,6 +1433,7 @@ dependencies = [ "tokio", "tokio-stream", "tonic", + "tower 0.4.13", "tracing", ] @@ -1520,8 +1442,11 @@ name = "linkerd-policy-test" version = "0.1.0" dependencies = [ "anyhow", + "bytes", "futures", - "hyper 1.5.2", + "http-body-util", + "hyper", + "hyper-util", "ipnet", "k8s-gateway-api", "k8s-openapi", @@ -1539,6 +1464,7 @@ dependencies = [ "tokio", "tokio-test", "tonic", + "tower 0.4.13", "tracing", "tracing-subscriber", ] @@ -1546,14 +1472,13 @@ dependencies = [ [[package]] name = "linkerd2-proxy-api" version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4682c00263191a5bfa4fbe64f6d80b22ff2b49aaa294da5aac062f5abc6eb9e" +source = "git+https://github.com/linkerd/linkerd2-proxy-api?branch=ver%2Fdeps-http#eefd13348f239251139f577e878d583464f27be1" dependencies = [ - "http 0.2.12", + "http", "ipnet", "prost", "prost-types", - "thiserror 1.0.69", + "thiserror 2.0.9", "tonic", ] @@ -1672,7 +1597,7 @@ version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -1887,7 +1812,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" dependencies = [ - "bitflags 2.6.0", + "bitflags", "hex", "lazy_static", "procfs-core", @@ -1900,7 +1825,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" dependencies = [ - "bitflags 2.6.0", + "bitflags", "hex", ] @@ -1929,9 +1854,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.6" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", "prost-derive", @@ -1939,9 +1864,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.12.6" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" dependencies = [ "anyhow", "itertools", @@ -1952,9 +1877,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.12.6" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" dependencies = [ "prost", ] @@ -2004,7 +1929,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 2.6.0", + "bitflags", ] [[package]] @@ -2078,7 +2003,7 @@ version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ - "bitflags 2.6.0", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -2217,7 +2142,7 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -2230,7 +2155,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -2413,12 +2338,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -2493,16 +2412,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-macros" version = "2.4.0" @@ -2589,23 +2498,26 @@ dependencies = [ [[package]] name = "tonic" -version = "0.10.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ "async-stream", "async-trait", "axum", - "base64 0.21.7", + "base64 0.22.1", "bytes", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper-timeout 0.4.1", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", "percent-encoding", "pin-project", "prost", + "socket2", "tokio", "tokio-stream", "tower 0.4.13", @@ -2643,7 +2555,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tokio-util", "tower-layer", @@ -2658,10 +2570,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ "base64 0.22.1", - "bitflags 2.6.0", + "bitflags", "bytes", - "http 1.2.0", - "http-body 1.0.1", + "http", + "http-body", "mime", "pin-project-lite", "tower-layer", @@ -2771,7 +2683,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.2.0", + "http", "httparse", "log", "rand", diff --git a/Cargo.toml b/Cargo.toml index 3d33e22053ac4..bb35d291f06d9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,15 @@ k8s-openapi = { version = "0.24", features = ["v1_31"] } kube = { version = "0.98", default-features = false } kubert = { version = "0.23.0-alpha5", default-features = false } +[workspace.dependencies.k8s-gateway-api] # TODO(ver): Remove this once we update to a proper generated version of the gateway api bindings. -k8s-gateway-api = { git = "https://github.com/linkerd/k8s-gateway-api-rs", features = [ - "experimental", -] } +git = "https://github.com/linkerd/k8s-gateway-api-rs" +features = ["experimental"] + +[workspace.dependencies.linkerd2-proxy-api] +git = "https://github.com/linkerd/linkerd2-proxy-api" +branch = "ver/deps-http" +features = [ + "inbound", + "outbound", +] diff --git a/policy-controller/core/Cargo.toml b/policy-controller/core/Cargo.toml index bd56b5adf2faa..adcba27ae214a 100644 --- a/policy-controller/core/Cargo.toml +++ b/policy-controller/core/Cargo.toml @@ -11,6 +11,6 @@ anyhow = "1" async-trait = "0.1" chrono = { version = "0.4.39", default-features = false } futures = { version = "0.3", default-features = false, features = ["std"] } -http = "0.2" +http = "1" ipnet = "2" regex = "1" diff --git a/policy-controller/grpc/Cargo.toml b/policy-controller/grpc/Cargo.toml index b25c1958d4151..91ecd03f6a1f1 100644 --- a/policy-controller/grpc/Cargo.toml +++ b/policy-controller/grpc/Cargo.toml @@ -8,19 +8,19 @@ publish = false [dependencies] async-stream = "0.3" async-trait = "0.1" -http = "0.2" +http = "1" drain = "0.1" futures = { version = "0.3", default-features = false } hyper = { version = "1", features = ["http2", "server"] } linkerd-policy-controller-core = { path = "../core" } maplit = "1" -prost-types = "0.12.6" +prost-types = "0.13" tokio = { version = "1", features = ["macros"] } -tonic = { version = "0.10", default-features = false } +tonic = { version = "0.12", default-features = false } tracing = "0.1" serde = { version = "1", features = ["derive"] } serde_json = "1" [dependencies.linkerd2-proxy-api] -version = "0.15" +workspace = true features = ["inbound", "outbound"] diff --git a/policy-controller/grpc/src/outbound/http.rs b/policy-controller/grpc/src/outbound/http.rs index 8f8e9d63d48dc..963e2b62c16bd 100644 --- a/policy-controller/grpc/src/outbound/http.rs +++ b/policy-controller/grpc/src/outbound/http.rs @@ -75,7 +75,7 @@ pub(crate) fn protocol( }), http1: Some(outbound::proxy_protocol::Http1 { routes: routes.clone(), - failure_accrual: accrual.clone(), + failure_accrual: accrual, }), http2: Some(outbound::proxy_protocol::Http2 { routes, diff --git a/policy-controller/k8s/index/Cargo.toml b/policy-controller/k8s/index/Cargo.toml index 7b0773eb7292f..8712d5b18ff0b 100644 --- a/policy-controller/k8s/index/Cargo.toml +++ b/policy-controller/k8s/index/Cargo.toml @@ -10,7 +10,7 @@ ahash = "0.8" anyhow = "1" chrono = { version = "0.4.39", default-features = false } futures = { version = "0.3", default-features = false } -http = "0.2" +http = "1" kube = { workspace = true, default-features = false, features = [ "client", "derive", diff --git a/policy-controller/runtime/Cargo.toml b/policy-controller/runtime/Cargo.toml index 68a652b5355d3..6e2f530e1bbac 100644 --- a/policy-controller/runtime/Cargo.toml +++ b/policy-controller/runtime/Cargo.toml @@ -16,9 +16,11 @@ rustls-tls = ["kube/rustls-tls"] [dependencies] anyhow = "1" async-trait = "0.1" +bytes = "1" drain = "0.1" futures = { version = "0.3", default-features = false } k8s-openapi = { workspace = true } +http-body-util = "0.1" hyper = { version = "1", features = ["http1", "http2", "server"] } ipnet = { version = "2", default-features = false } openssl = { version = "0.10.68", optional = true } @@ -28,6 +30,7 @@ serde = "1" serde_json = "1" thiserror = "2" tokio-stream = { version = "0.1", features = ["sync"] } +tower = "0.4" tracing = "0.1" regex = "1" @@ -66,6 +69,6 @@ version = "1" features = ["macros", "parking_lot", "rt", "rt-multi-thread", "signal"] [dependencies.tonic] -version = "0.10" +version = "0.12" default-features = false features = ["transport"] diff --git a/policy-controller/runtime/src/admission.rs b/policy-controller/runtime/src/admission.rs index c0f6f50afded0..f4455fd7cafeb 100644 --- a/policy-controller/runtime/src/admission.rs +++ b/policy-controller/runtime/src/admission.rs @@ -8,14 +8,15 @@ use crate::k8s::policy::{ }; use anyhow::{anyhow, bail, ensure, Context, Result}; use futures::future; -use hyper::{body::Buf, http, Body, Request, Response}; +use http_body_util::BodyExt; +use hyper::{http, Request, Response}; use k8s_openapi::api::core::v1::{Namespace, ServiceAccount}; use kube::{core::DynamicObject, Resource, ResourceExt}; use linkerd_policy_controller_core as core; use linkerd_policy_controller_k8s_api::gateway::{self as k8s_gateway_api, GrpcRoute}; use linkerd_policy_controller_k8s_index::{self as index, outbound::index as outbound_index}; use serde::de::DeserializeOwned; -use std::{collections::BTreeMap, task}; +use std::collections::BTreeMap; use thiserror::Error; use tracing::{debug, info, trace, warn}; @@ -49,31 +50,37 @@ trait Validate { ) -> Result<()>; } +type Body = http_body_util::Full; + // === impl AdmissionService === -impl hyper::service::Service> for Admission { +impl tower::Service> for Admission { type Response = Response; type Error = Error; type Future = future::BoxFuture<'static, Result, Error>>; - fn poll_ready(&mut self, _cx: &mut task::Context<'_>) -> task::Poll> { - task::Poll::Ready(Ok(())) + fn poll_ready( + &mut self, + _cx: &mut std::task::Context<'_>, + ) -> std::task::Poll> { + std::task::Poll::Ready(Ok(())) } - fn call(&mut self, req: Request) -> Self::Future { + fn call(&mut self, req: Request) -> Self::Future { trace!(?req); if req.method() != http::Method::POST || req.uri().path() != "/" { return Box::pin(future::ok( Response::builder() .status(http::StatusCode::NOT_FOUND) - .body(Body::empty()) + .body(Body::default()) .expect("not found response must be valid"), )); } let admission = self.clone(); Box::pin(async move { - let bytes = hyper::body::aggregate(req.into_body()).await?; + use bytes::Buf; + let bytes = req.into_body().collect().await?.to_bytes(); let review: Review = match serde_json::from_reader(bytes.reader()) { Ok(review) => review, Err(error) => { diff --git a/policy-controller/runtime/src/args.rs b/policy-controller/runtime/src/args.rs index b5861a66bbf27..6c177bb87b418 100644 --- a/policy-controller/runtime/src/args.rs +++ b/policy-controller/runtime/src/args.rs @@ -188,7 +188,7 @@ impl Args { kubert::LeaseParams { name: LEASE_NAME.to_string(), namespace: control_plane_namespace.clone(), - claimant: hostname, + claimant: hostname.clone(), lease_duration: LEASE_DURATION, renew_grace_period: RENEW_GRACE_PERIOD, field_manager: Some("policy-controller".into()), diff --git a/policy-test/Cargo.toml b/policy-test/Cargo.toml index 1761c1cd9c517..dfddcb21d9474 100644 --- a/policy-test/Cargo.toml +++ b/policy-test/Cargo.toml @@ -7,7 +7,10 @@ publish = false [dependencies] anyhow = "1" +bytes = "1" +http-body-util = "0.1" hyper = { version = "1", features = ["client", "http2"] } +hyper-util = { version = "0.1" } futures = { version = "0.3", default-features = false } ipnet = "2" k8s-gateway-api = { workspace = true } @@ -20,8 +23,9 @@ rand = "0.8" serde = "1" serde_json = "1" schemars = "0.8" -tonic = { version = "0.10", default-features = false } +tonic = { version = "0.12", default-features = false } tokio = { version = "1", features = ["macros", "rt"] } +tower = "0.4" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } @@ -31,7 +35,7 @@ default-features = false features = ["client", "openssl-tls", "runtime", "ws"] [dependencies.linkerd2-proxy-api] -version = "0.15" +workspace = true features = ["inbound", "outbound"] [dev-dependencies] diff --git a/policy-test/src/grpc.rs b/policy-test/src/grpc.rs index b640c0b26724c..1903134ce8301 100644 --- a/policy-test/src/grpc.rs +++ b/policy-test/src/grpc.rs @@ -4,6 +4,7 @@ //! forwarding to connect to a running instance. use anyhow::Result; +use futures::{future, prelude::*}; pub use linkerd2_proxy_api::*; use linkerd2_proxy_api::{ inbound::inbound_server_policies_client::InboundServerPoliciesClient, @@ -105,7 +106,7 @@ pub struct OutboundPolicyClient { #[derive(Debug)] struct GrpcHttp { - tx: hyper::client::conn::SendRequest, + tx: hyper::client::conn::http2::SendRequest, } async fn get_policy_controller_pod(client: &kube::Client) -> Result { @@ -338,19 +339,21 @@ impl GrpcHttp { where I: io::AsyncRead + io::AsyncWrite + Unpin + Send + 'static, { - let (tx, conn) = hyper::client::conn::Builder::new() - .http2_only(true) - .handshake(io) - .await?; + let (tx, conn) = + hyper::client::conn::http2::Builder::new(hyper_util::rt::TokioExecutor::new()) + .handshake(hyper_util::rt::TokioIo::new(io)) + .await?; tokio::spawn(conn); Ok(Self { tx }) } } -impl hyper::service::Service> for GrpcHttp { - type Response = hyper::Response; +type Body = hyper::body::Incoming; + +impl tower::Service> for GrpcHttp { + type Response = hyper::Response; type Error = hyper::Error; - type Future = hyper::client::conn::ResponseFuture; + type Future = future::BoxFuture<'static, Result, hyper::Error>>; fn poll_ready( &mut self, @@ -371,7 +374,9 @@ impl hyper::service::Service> for GrpcHttp ); parts.uri = hyper::Uri::from_parts(uri).unwrap(); - self.tx.call(hyper::Request::from_parts(parts, body)) + self.tx + .send_request(hyper::Request::from_parts(parts, body)) + .boxed() } } From b059d62d6c5dc1de0c6da35f7ffb55fb09b55c24 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Mon, 13 Jan 2025 23:19:51 +0000 Subject: [PATCH 4/4] chore: bump kubert v0.23.0-alpha6 --- Cargo.lock | 29 ++++++++++++------------- Cargo.toml | 3 ++- policy-controller/k8s/index/Cargo.toml | 2 +- policy-controller/k8s/status/Cargo.toml | 2 +- policy-controller/runtime/Cargo.toml | 2 +- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b2175291e01b2..4dabc5e73477d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1208,9 +1208,9 @@ dependencies = [ [[package]] name = "kubert" -version = "0.23.0-alpha5" +version = "0.23.0-alpha6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21825be1d69132c9d6f74adaef53b66a3dc6d5a26290ae60c2e22aa0eed8d83d" +checksum = "fa4fca7cf1b9de3a75b580d9bf34aa5da412a1edf8211bd19f83bb13f2e3d37a" dependencies = [ "ahash", "backoff", @@ -1247,9 +1247,9 @@ dependencies = [ [[package]] name = "kubert-prometheus-process" -version = "0.1.0" +version = "0.2.0-alpha1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40d2f45f0fb66a3681630fe2efd018c63eb7336697c44d909e53a99847113b97" +checksum = "e5df580a32e3cddba16ff702e448e09d829527de76caf501d14d4869080002e2" dependencies = [ "libc", "procfs", @@ -1259,9 +1259,9 @@ dependencies = [ [[package]] name = "kubert-prometheus-tokio" -version = "0.1.0" +version = "0.2.0-alpha1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a101fa3df488c89130664aaf4652986da49e204fb1725d089122f75b22ff6cbb" +checksum = "3dbcc33c25a942237489d4a50beffb704a01a0faff50ec0d5c97eb98b12c6c23" dependencies = [ "prometheus-client", "tokio", @@ -1808,22 +1808,21 @@ dependencies = [ [[package]] name = "procfs" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" +checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ "bitflags", "hex", - "lazy_static", "procfs-core", "rustix", ] [[package]] name = "procfs-core" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" +checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" dependencies = [ "bitflags", "hex", @@ -1831,9 +1830,9 @@ dependencies = [ [[package]] name = "prometheus-client" -version = "0.22.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca" +checksum = "92f2b0cae6fd19ec4f2b6ded3f39ffcce7a8c8490b34aa406c27e2c855bdc97d" dependencies = [ "dtoa", "itoa", @@ -2425,9 +2424,9 @@ dependencies = [ [[package]] name = "tokio-metrics" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eace09241d62c98b7eeb1107d4c5c64ca3bd7da92e8c218c153ab3a78f9be112" +checksum = "cb2bb07a8451c4c6fa8b3497ad198510d8b8dffa5df5cfb97a64102a58b113c8" dependencies = [ "futures-util", "pin-project-lite", diff --git a/Cargo.toml b/Cargo.toml index bb35d291f06d9..b790d9a7ac35e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,8 @@ lto = "thin" [workspace.dependencies] k8s-openapi = { version = "0.24", features = ["v1_31"] } kube = { version = "0.98", default-features = false } -kubert = { version = "0.23.0-alpha5", default-features = false } +kubert = { version = "0.23.0-alpha6", default-features = false } +prometheus-client = { version = "0.23", default-features = false } [workspace.dependencies.k8s-gateway-api] # TODO(ver): Remove this once we update to a proper generated version of the gateway api bindings. diff --git a/policy-controller/k8s/index/Cargo.toml b/policy-controller/k8s/index/Cargo.toml index 8712d5b18ff0b..e52b897de1545 100644 --- a/policy-controller/k8s/index/Cargo.toml +++ b/policy-controller/k8s/index/Cargo.toml @@ -20,7 +20,7 @@ kubert = { workspace = true, default-features = false, features = ["index"] } linkerd-policy-controller-core = { path = "../../core" } linkerd-policy-controller-k8s-api = { path = "../api" } parking_lot = "0.12" -prometheus-client = { version = "0.22.3", default-features = false } +prometheus-client = { workspace = true } thiserror = "2" tokio = { version = "1", features = ["macros", "rt", "sync"] } tracing = "0.1" diff --git a/policy-controller/k8s/status/Cargo.toml b/policy-controller/k8s/status/Cargo.toml index 3ab8265acc33b..5f26e12f89ecc 100644 --- a/policy-controller/k8s/status/Cargo.toml +++ b/policy-controller/k8s/status/Cargo.toml @@ -17,7 +17,7 @@ kubert = { workspace = true, default-features = false, features = [ linkerd-policy-controller-core = { path = "../../core" } linkerd-policy-controller-k8s-api = { path = "../api" } parking_lot = "0.12" -prometheus-client = { version = "0.22.3", default-features = false } +prometheus-client = { workspace = true } serde = "1" serde_json = "1.0.134" thiserror = "2" diff --git a/policy-controller/runtime/Cargo.toml b/policy-controller/runtime/Cargo.toml index 6e2f530e1bbac..fcd3a66d4b7a5 100644 --- a/policy-controller/runtime/Cargo.toml +++ b/policy-controller/runtime/Cargo.toml @@ -25,7 +25,7 @@ hyper = { version = "1", features = ["http1", "http2", "server"] } ipnet = { version = "2", default-features = false } openssl = { version = "0.10.68", optional = true } parking_lot = "0.12" -prometheus-client = { version = "0.22.3", default-features = false } +prometheus-client = { workspace = true } serde = "1" serde_json = "1" thiserror = "2"