Merge branch 'main' into dependabot/go_modules/sigs.k8s.io/gateway-api-0.6.0

This commit is contained in:
Alejandro Pedraza 2023-01-11 09:02:34 -05:00
commit 26e76fd80c
No known key found for this signature in database
GPG Key ID: E3AB7750B0DC32DF
111 changed files with 943 additions and 1435 deletions

View File

@ -15,7 +15,7 @@ jobs:
timeout-minutes: 10
container: ghcr.io/linkerd/dev:v32-tools
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Run actionlint
run: just action-lint
@ -23,5 +23,5 @@ jobs:
runs-on: ubuntu-latest
container: ghcr.io/linkerd/dev:v32-tools
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: just action-dev-check

View File

@ -13,7 +13,7 @@ jobs:
timeout-minutes: 10
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: devblackops/github-action-psscriptanalyzer@854038567344559afaaa8ccb7a014452b99d86ee
env:
# https://github.com/devblackops/github-action-psscriptanalyzer/pull/3/files

View File

@ -16,7 +16,7 @@ jobs:
container:
image: golang:1.18
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: go install gotest.tools/gotestsum@v0.4.2
- run: gotestsum -- -cover -coverprofile=coverage.out -v -mod=readonly ./...
- uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70
@ -31,7 +31,7 @@ jobs:
container:
image: node:14-stretch
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Yarn setup
run: bin/scurl -o- https://yarnpkg.com/install.sh | bash -s -- --version 1.21.1 --network-concurrency 1
- name: Unit tests
@ -53,7 +53,7 @@ jobs:
image: docker://rust:1.64.0
options: --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: mkdir -p target && cd target && bin/scurl -v https://github.com/xd009642/tarpaulin/releases/download/0.18.0/cargo-tarpaulin-0.18.0-travis.tar.gz | tar zxvf - && chmod 755 cargo-tarpaulin
- run: target/cargo-tarpaulin tarpaulin --workspace --out Xml
- uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70

View File

@ -35,7 +35,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Initialize
# Unpinned action version so that we automatically get analyzer updates.

View File

@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
container: ghcr.io/linkerd/dev:v32-rust
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: |
dev=$(cargo version | cut -d' ' -f2)
tc=$(cat rust-toolchain)
@ -29,7 +29,7 @@ jobs:
devcontainer-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update

View File

@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-20.04
container: ghcr.io/linkerd/dev:v32-go
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: just go-lint --verbose --timeout=10m
go-format:
@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-20.04
container: ghcr.io/linkerd/dev:v32-go
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: just go-fmt
go-test:
@ -34,7 +34,7 @@ jobs:
runs-on: ubuntu-20.04
container: ghcr.io/linkerd/dev:v32-go
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: just go-fetch
- run: just go-test

View File

@ -17,5 +17,5 @@ jobs:
timeout-minutes: 5
container: ghcr.io/linkerd/dev:v32-tools
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: bin/helm-docs-diff

View File

@ -45,7 +45,7 @@ jobs:
needs: [cleanup]
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: echo "::set-output name=tag::$(CI_FORCE_CLEAN=1 bin/root-tag)"
id: tag
outputs:
@ -56,7 +56,7 @@ jobs:
runs-on: ubuntu-20.04
timeout-minutes: 15
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: ./.github/actions/docker-build
id: build
with:
@ -71,7 +71,7 @@ jobs:
docker cp "$id:/out/linkerd-linux-amd64" /home/runner/archives/linkerd
v=$(/home/runner/archives/linkerd version --short --client)
[[ "$v" == '${{ needs.tag.outputs.tag }}' ]] || exit 1
- uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
with:
name: image-archives
path: /home/runner/archives
@ -94,7 +94,7 @@ jobs:
- proxy
timeout-minutes: 15
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: ./.github/actions/docker-build
id: build
with:
@ -106,7 +106,7 @@ jobs:
run: |
mkdir -p /home/runner/archives
docker save '${{ steps.build.outputs.image }}' >'/home/runner/archives/${{ matrix.component }}.tar'
- uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
with:
name: image-archives
path: /home/runner/archives
@ -125,8 +125,8 @@ jobs:
- uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568
with:
go-version: '1.18'
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a
with:
name: image-archives
path: image-archives
@ -146,8 +146,8 @@ jobs:
runs-on: ubuntu-20.04
timeout-minutes: 5
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: tj-actions/changed-files@0626c3f94002c0a9d7491dd7fed7055bbdff6f92
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: tj-actions/changed-files@9a6dabf8d15381f97f1c770257a1a0db59c28a47
id: changed
with:
files: |
@ -174,9 +174,11 @@ jobs:
- v1.25
steps:
- uses: extractions/setup-just@95b912dc5d3ed106a72907f2f9b91e76d60bdb76
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: olix0r/cargo-action-fmt/setup@9269f3aa1ff01775d95efc97037e2cbdb41d9684
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a
with:
name: image-archives
path: image-archives
@ -225,7 +227,7 @@ jobs:
- web
timeout-minutes: 15
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: ./.github/actions/docker-build
id: build
with:
@ -237,7 +239,7 @@ jobs:
run: |
mkdir -p /home/runner/archives
docker save '${{ steps.build.outputs.image }}' >'/home/runner/archives/${{ matrix.component }}.tar'
- uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
with:
name: image-archives
path: /home/runner/archives
@ -252,8 +254,7 @@ jobs:
- default-policy-deny
- external
- rsa-ca
# Skipping Helm upgrade test given chart in 2.11 is backwards-incompatible
#- helm-upgrade
- helm-upgrade
- uninstall
- upgrade-edge
- upgrade-stable
@ -264,8 +265,8 @@ jobs:
- uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568
with:
go-version: '1.18'
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a
with:
name: image-archives
path: image-archives
@ -284,8 +285,8 @@ jobs:
runs-on: ubuntu-20.04
timeout-minutes: 5
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: tj-actions/changed-files@0626c3f94002c0a9d7491dd7fed7055bbdff6f92
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: tj-actions/changed-files@9a6dabf8d15381f97f1c770257a1a0db59c28a47
id: changed
with:
files: |
@ -307,8 +308,8 @@ jobs:
- uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568
with:
go-version: '1.18'
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a
with:
name: image-archives
path: image-archives
@ -328,8 +329,8 @@ jobs:
runs-on: ubuntu-20.04
timeout-minutes: 5
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: tj-actions/changed-files@0626c3f94002c0a9d7491dd7fed7055bbdff6f92
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: tj-actions/changed-files@9a6dabf8d15381f97f1c770257a1a0db59c28a47
id: changed
with:
files: |
@ -353,11 +354,13 @@ jobs:
- v1.25
steps:
- uses: extractions/setup-just@95b912dc5d3ed106a72907f2f9b91e76d60bdb76
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568
with:
go-version: '1.18'
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a
with:
name: image-archives
path: image-archives

View File

@ -19,7 +19,7 @@ jobs:
env:
NODE_ENV: test
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Yarn setup
run: |
bin/scurl --retry=2 https://yarnpkg.com/install.sh | bash -s -- --version 1.21.1 --network-concurrency 1

View File

@ -14,8 +14,8 @@ jobs:
timeout-minutes: 5
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: DavidAnson/markdownlint-cli2-action@d57f8bd57670b9c1deedf71219dd494614ff3335
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: DavidAnson/markdownlint-cli2-action@5b7c9f74fec47e6b15667b2cc23c63dff11e449e
with:
globs: |
**/*.md

View File

@ -17,6 +17,6 @@ jobs:
runs-on: ubuntu-20.04
container: ghcr.io/linkerd/dev:v32-go
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: bin/protoc-diff

View File

@ -21,7 +21,7 @@ jobs:
tag:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: echo "::set-output name=tag::$(CI_FORCE_CLEAN=1 bin/root-tag)"
id: tag
outputs:
@ -47,7 +47,7 @@ jobs:
- web
timeout-minutes: 30
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Set tag
run: echo 'TAG=${{ needs.tag.outputs.tag }}' >> "$GITHUB_ENV"
- uses: ./.github/actions/docker-build
@ -80,7 +80,7 @@ jobs:
# https://github.com/actions/upload-artifact/issues/8
- name: Upload artifact
if: matrix.component == 'cli-bin'
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
with:
name: image-archives
path: /home/runner/archives
@ -99,7 +99,7 @@ jobs:
- arm
- arm64
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Set tag
run: echo 'TAG=${{ needs.tag.outputs.tag }}' >> "$GITHUB_ENV"
- uses: ./.github/actions/rust-docker-build
@ -128,7 +128,7 @@ jobs:
timeout-minutes: 30
steps:
- name: Checkout code
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: ./.github/actions/rust-docker-manifest
with:
docker-ghcr-username: ${{ secrets.DOCKER_GHCR_USERNAME }}
@ -143,12 +143,12 @@ jobs:
needs: [docker_build]
steps:
- name: Checkout code
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568
with:
go-version: '1.18'
- name: Download image archives
uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a
with:
name: image-archives
path: image-archives
@ -168,8 +168,7 @@ jobs:
- default-policy-deny
- external
- rsa-ca
# Skipping Helm upgrade test given chart in 2.11 is backwards-incompatible
#- helm-upgrade
- helm-upgrade
- uninstall
- upgrade-edge
- upgrade-stable
@ -177,7 +176,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568
with:
go-version: '1.18'
@ -201,7 +200,7 @@ jobs:
runs-on: [self-hosted, Linux, ARM64]
timeout-minutes: 30
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568
with:
go-version: '1.18'
@ -214,7 +213,9 @@ jobs:
echo "CMD=$CMD" >> "$GITHUB_ENV"
"$CMD" version --client
- uses: extractions/setup-just@95b912dc5d3ed106a72907f2f9b91e76d60bdb76
- uses: azure/setup-kubectl@e1be5e75ed9741a7c467f4832ecb259a83174311
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: azure/setup-kubectl@901a10e89ea615cf61f57ac05cecdf23e7de06d8
- name: Setup k3d
run: |
mkdir -p "$PWD/target/bin"
@ -246,7 +247,7 @@ jobs:
steps:
- name: Checkout code
if: startsWith(github.ref, 'refs/tags/stable')
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Chocolatey - update nuspec
if: startsWith(github.ref, 'refs/tags/stable')
run: |
@ -259,7 +260,7 @@ jobs:
args: pack bin/win/linkerd.nuspec
- name: Chocolatey - upload package
if: startsWith(github.ref, 'refs/tags/stable')
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
with:
name: choco
path: ./linkerd.*.nupkg
@ -276,7 +277,7 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Set environment variables
run: |
echo 'TAG=${{ needs.tag.outputs.tag }}' >> "$GITHUB_ENV"
@ -284,7 +285,7 @@ jobs:
extract_release_notes NOTES.md
- name: Download choco package
if: startsWith(github.ref, 'refs/tags/stable')
uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a
with:
name: choco
path: choco
@ -331,7 +332,7 @@ jobs:
if: startsWith(github.ref, 'refs/tags/stable') || startsWith(github.ref, 'refs/tags/edge')
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Set install target for stable
if: startsWith(github.ref, 'refs/tags/stable')
run: echo "INSTALL=install" >> "$GITHUB_ENV"
@ -358,7 +359,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Log into GCP
uses: 'google-github-actions/auth@ef5d53e30bbcd8d0836f4288f5e50ff3e086997d'
with:

View File

@ -34,7 +34,7 @@ jobs:
# Prevent sudden announcement of a new advisory from failing Ci.
continue-on-error: ${{ matrix.checks == 'advisories' }}
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: EmbarkStudios/cargo-deny-action@8a8607bd8e2b3a514d5a40174cc7c55b229d9ba7
with:
command: check ${{ matrix.checks }}
@ -44,7 +44,7 @@ jobs:
runs-on: ubuntu-latest
container: ghcr.io/linkerd/dev:v32-rust
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: just rs-check-fmt
clippy:
@ -52,7 +52,7 @@ jobs:
runs-on: ubuntu-latest
container: ghcr.io/linkerd/dev:v32-rust
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: just rs-fetch
- run: just rs-clippy
- run: just rs-doc --no-deps
@ -62,7 +62,7 @@ jobs:
runs-on: ubuntu-latest
container: ghcr.io/linkerd/dev:v32-rust
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: just rs-fetch
- run: just rs-check-dirs
@ -72,7 +72,7 @@ jobs:
timeout-minutes: 15
container: ghcr.io/linkerd/dev:v32-rust
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: just rs-fetch
- run: just rs-test-build
- run: just rs-test
@ -82,7 +82,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: |
ex=0

View File

@ -17,6 +17,6 @@ jobs:
runs-on: ubuntu-20.04
container: ghcr.io/linkerd/dev:v32-tools
steps:
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: just sh-lint

View File

@ -28,6 +28,7 @@ linters:
- nakedret
- revive
- staticcheck
- stylecheck
- typecheck
- unconvert
- unparam
@ -42,7 +43,6 @@ linters:
# - lll
# - maligned
# - prealloc
# - stylecheck
disable:
# https://github.com/golangci/golangci-lint/issues/2649
@ -53,6 +53,8 @@ linters-settings:
rules:
- name: package-comments
disabled: true
stylecheck:
checks: ["ST1019"]
issues:
exclude-use-default: false

View File

@ -1 +1 @@
v2.188.0
v2.189.0

View File

@ -16,6 +16,7 @@
- [Boomin](https://www.boomin.com)
- [Bosch Thermotecnology](https://www.bosch-thermotechnology.com)
- [Buoyant](https://buoyant.io)
- [Cabify](https://cabify.com)
- [Candide](https://candidegardening.com)
- [Celonis](https://celonis.com)
- [CloverHealth](https://www.cloverhealth.com/)
@ -23,6 +24,7 @@
- [Commonbond](https://www.commonbond.co/)
- [Crayon](https://crayon.com)
- [Doji](https://www.doji.cn/)
- [Dukaan](https://mydukaan.io/)
- [Expedia](https://www.expedia.com)
- [Facelift](https://www.facelift-bbt.com/en)
- [Favrit](https://www.favrit.com)
@ -86,6 +88,7 @@
- [Transit](https://transit.app)
- [True Tickets](https://true-tickets.com)
- [Web Summit](https://websummit.com)
- [Winuall](https://www.winuall.com)
- [Wiz Security](https://www.wiz.io/)
- [xCloud](https://www.xbox.com/en-US/xbox-game-streaming/project-xcloud)
- [YouMail](https://www.youmail.com)

View File

@ -61,9 +61,9 @@ dependencies = [
[[package]]
name = "async-trait"
version = "0.1.60"
version = "0.1.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "677d1d8ab452a3936018a687b20e6f7cf5363d713b732b8884001317b0e48aa3"
checksum = "705339e0e4a9690e2908d2b3d049d85682cf19fbd5782494498fbf7003a6a282"
dependencies = [
"proc-macro2",
"quote",
@ -153,9 +153,9 @@ dependencies = [
[[package]]
name = "clap"
version = "4.0.29"
version = "4.0.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d63b9e9c07271b9957ad22c173bae2a4d9a81127680962039296abcd2f8251d"
checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39"
dependencies = [
"bitflags",
"clap_derive",
@ -232,9 +232,9 @@ dependencies = [
[[package]]
name = "cxx"
version = "1.0.83"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdf07d07d6531bfcdbe9b8b739b104610c6508dcc4d63b410585faf338241daf"
checksum = "51d1075c37807dcf850c379432f0df05ba52cc30f279c5cfc43cc221ce7f8579"
dependencies = [
"cc",
"cxxbridge-flags",
@ -244,9 +244,9 @@ dependencies = [
[[package]]
name = "cxx-build"
version = "1.0.85"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0"
checksum = "5044281f61b27bc598f2f6647d480aed48d2bf52d6eb0b627d84c0361b17aa70"
dependencies = [
"cc",
"codespan-reporting",
@ -259,15 +259,15 @@ dependencies = [
[[package]]
name = "cxxbridge-flags"
version = "1.0.83"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac040a39517fd1674e0f32177648334b0f4074625b5588a64519804ba0553b12"
checksum = "61b50bc93ba22c27b0d31128d2d130a0a6b3d267ae27ef7e4fae2167dfe8781c"
[[package]]
name = "cxxbridge-macro"
version = "1.0.83"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1362b0ddcfc4eb0a1f57b68bd77dd99f0e826958a96abd0ae9bd092e114ffed6"
checksum = "39e61fda7e62115119469c7b3591fd913ecca96fb766cfd3f2e2502ab7bc87a5"
dependencies = [
"proc-macro2",
"quote",
@ -362,9 +362,9 @@ dependencies = [
[[package]]
name = "dyn-clone"
version = "1.0.8"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d07a982d1fb29db01e5a59b1918e03da4df7297eaeee7686ac45542fd4e59c8"
checksum = "c9b0705efd4599c15a38151f4721f7bc388306f61084d3bfd50bd07fbca5cb60"
[[package]]
name = "either"
@ -551,9 +551,9 @@ checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
[[package]]
name = "hermit-abi"
version = "0.1.19"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
dependencies = [
"libc",
]
@ -728,9 +728,9 @@ dependencies = [
[[package]]
name = "ipnet"
version = "2.7.0"
version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e"
checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
dependencies = [
"schemars",
"serde",
@ -977,9 +977,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.138"
version = "0.2.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
[[package]]
name = "link-cplusplus"
@ -1193,7 +1193,7 @@ dependencies = [
"libc",
"log",
"wasi",
"windows-sys 0.42.0",
"windows-sys",
]
[[package]]
@ -1227,9 +1227,9 @@ dependencies = [
[[package]]
name = "num_cpus"
version = "1.14.0"
version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
dependencies = [
"hermit-abi",
"libc",
@ -1237,15 +1237,15 @@ dependencies = [
[[package]]
name = "once_cell"
version = "1.16.0"
version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
[[package]]
name = "openssl"
version = "0.10.44"
version = "0.10.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29d971fd5722fec23977260f6e81aa67d2f22cadbdc2aa049f1022d9a3be1566"
checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1"
dependencies = [
"bitflags",
"cfg-if",
@ -1275,9 +1275,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "openssl-sys"
version = "0.9.79"
version = "0.9.80"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5454462c0eced1e97f2ec09036abc8da362e66802f66fd20f86854d9d8cbcbc4"
checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7"
dependencies = [
"autocfg",
"cc",
@ -1327,7 +1327,7 @@ dependencies = [
"libc",
"redox_syscall",
"smallvec",
"windows-sys 0.42.0",
"windows-sys",
]
[[package]]
@ -1415,9 +1415,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.47"
version = "1.0.49"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
dependencies = [
"unicode-ident",
]
@ -1516,9 +1516,9 @@ dependencies = [
[[package]]
name = "regex"
version = "1.7.0"
version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
dependencies = [
"aho-corasick",
"memchr",
@ -1596,12 +1596,11 @@ checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
[[package]]
name = "schannel"
version = "0.1.20"
version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2"
checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
dependencies = [
"lazy_static",
"windows-sys 0.36.1",
"windows-sys",
]
[[package]]
@ -1685,9 +1684,9 @@ dependencies = [
[[package]]
name = "serde"
version = "1.0.150"
version = "1.0.152"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e326c9ec8042f1b5da33252c8a37e9ffbd2c9bef0155215b6e6c80c790e05f91"
checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
dependencies = [
"serde_derive",
]
@ -1704,9 +1703,9 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.150"
version = "1.0.152"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42a3df25b0713732468deadad63ab9da1f1fd75a48a15024b50363f128db627e"
checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
dependencies = [
"proc-macro2",
"quote",
@ -1726,9 +1725,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.89"
version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"
checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
dependencies = [
"indexmap",
"itoa",
@ -1880,9 +1879,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
version = "1.23.0"
version = "1.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46"
checksum = "1d9f76183f91ecfb55e1d7d5602bd1d979e38a3a522fe900241cf195624d67ae"
dependencies = [
"autocfg",
"bytes",
@ -1895,7 +1894,7 @@ dependencies = [
"signal-hook-registry",
"socket2",
"tokio-macros",
"windows-sys 0.42.0",
"windows-sys",
]
[[package]]
@ -2169,9 +2168,9 @@ dependencies = [
[[package]]
name = "try-lock"
version = "0.2.3"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
[[package]]
name = "tungstenite"
@ -2387,19 +2386,6 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-sys"
version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
dependencies = [
"windows_aarch64_msvc 0.36.1",
"windows_i686_gnu 0.36.1",
"windows_i686_msvc 0.36.1",
"windows_x86_64_gnu 0.36.1",
"windows_x86_64_msvc 0.36.1",
]
[[package]]
name = "windows-sys"
version = "0.42.0"
@ -2407,12 +2393,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc 0.42.0",
"windows_i686_gnu 0.42.0",
"windows_i686_msvc 0.42.0",
"windows_x86_64_gnu 0.42.0",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc 0.42.0",
"windows_x86_64_msvc",
]
[[package]]
@ -2421,48 +2407,24 @@ version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
[[package]]
name = "windows_aarch64_msvc"
version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
[[package]]
name = "windows_aarch64_msvc"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
[[package]]
name = "windows_i686_gnu"
version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
[[package]]
name = "windows_i686_gnu"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
[[package]]
name = "windows_i686_msvc"
version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
[[package]]
name = "windows_i686_msvc"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
[[package]]
name = "windows_x86_64_gnu"
version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
[[package]]
name = "windows_x86_64_gnu"
version = "0.42.0"
@ -2475,12 +2437,6 @@ version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
[[package]]
name = "windows_x86_64_msvc"
version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
[[package]]
name = "windows_x86_64_msvc"
version = "0.42.0"

View File

@ -413,16 +413,13 @@ setup_helm() {
helm_cleanup() {
(
set -e
"$helm_path" --kube-context="$context" --namespace linkerd delete "$helm_release_name-crds" || true
"$helm_path" --kube-context="$context" --namespace linkerd-multicluster delete "$helm_multicluster_release_name" || true
kubectl delete ns/linkerd-multicluster || true
"$helm_path" --kube-context="$context" --namespace linkerd-viz delete "$helm_release_name-l5d-viz" || true
kubectl delete ns/linkerd-viz || true
"$helm_path" --kube-context="$context" --namespace linkerd delete "$helm_release_name-control-plane" || true
"$helm_path" --kube-context="$context" --namespace linkerd delete "$helm_release_name-crds" || true
kubectl delete ns/linkerd
"$helm_path" --kube-context="$context" --namespace linkerd-multicluster delete "$helm_multicluster_release_name" || true
kubectl delete ns/linkerd-multicluster
# We wait for the namespace to be gone so the following call to `cleanup` doesn't fail when it attempts to delete
# the same namespace that is already being deleted here (error thrown by the NamespaceLifecycle controller).
# We don't have that problem with global resources, so no need to wait for them to be gone.
kubectl wait --for=delete ns/linkerd --timeout=120s || true
kubectl wait --for=delete ns/linkerd-multicluster --timeout=120s || true
)
exit_on_err 'error cleaning up Helm'
}
@ -439,7 +436,7 @@ run_helm-upgrade_test() {
setup_helm
helm_viz_chart="$( cd "$bindir"/.. && pwd )"/viz/charts/linkerd-viz
run_test "$test_directory/install/install_test.go" --helm-path="$helm_path" --helm-charts="$helm_charts" \
--viz-helm-chart="$helm_viz_chart" --helm-stable-chart='linkerd/linkerd2' --viz-helm-stable-chart="linkerd/linkerd-viz" --helm-release="$helm_release_name" --upgrade-helm-from-version="$stable_version"
--viz-helm-chart="$helm_viz_chart" --viz-helm-stable-chart="linkerd/linkerd-viz" --helm-release="$helm_release_name" --upgrade-helm-from-version="$stable_version"
helm_cleanup
}

View File

@ -40,7 +40,7 @@ if [ "$computed" != "$expected" ]; then
fi
mv "$pkgname/LICENSE" .
mv "$pkgname/bin/linkerd2-proxy" .
mv "$pkgname/linkerd2-proxy" .
rm -r "$pkgfile" "$pkgname"
mv linkerd2-proxy "$pkgname"
echo "$builddir/$pkgname"

View File

@ -33,7 +33,7 @@ new_proxy_rev="release/$new_proxy_version"
# Checkout the linkerd2-proxy repo to resolve the new proxy version to a SHA
# and obtain the commit log since the prior version.
tmp=$(mktemp -d -t l2-proxy.XXX)
git clone --depth=100 https://github.com/linkerd/linkerd2-proxy "$tmp"
git clone --depth=500 https://github.com/linkerd/linkerd2-proxy "$tmp"
cd "$tmp"
if ! git rev-parse --verify --quiet "${old_proxy_rev}" ; then

View File

@ -42,6 +42,13 @@ Kubernetes: `>=1.21.0-0`
| proxyAdminPort | int | `4191` | Admin port for the proxy container |
| proxyControlPort | int | `4190` | Control port for the proxy container |
| proxyUID | int | `2102` | User id under which the proxy shall be ran |
| resources | object | `{"cpu":{"limit":"","request":""},"ephemeral-storage":{"limit":"","request":""},"memory":{"limit":"","request":""}}` | Resource requests and limits for linkerd-cni daemonset containers |
| resources.cpu.limit | string | `""` | Maximum amount of CPU units that the cni container can use |
| resources.cpu.request | string | `""` | Amount of CPU units that the cni container requests |
| resources.ephemeral-storage.limit | string | `""` | Maximum amount of ephemeral storage that the cni container can use |
| resources.ephemeral-storage.request | string | `""` | Amount of ephemeral storage that the cni container requests |
| resources.memory.limit | string | `""` | Maximum amount of memory that the cni container can use |
| resources.memory.request | string | `""` | Amount of memory that the cni container requests |
| tolerations[0] | object | `{"operator":"Exists"}` | toleration properties |
| useWaitFlag | bool | `false` | Configures the CNI plugin to use the -w flag for the iptables command |

View File

@ -267,6 +267,9 @@ spec:
securityContext:
readOnlyRootFilesystem: true
privileged: {{.Values.privileged}}
{{- if .Values.resources }}
{{- include "partials.resources" .Values.resources | nindent 8 }}
{{- end }}
volumes:
{{- if ne .Values.destCNIBinDir .Values.destCNINetDir }}
- name: cni-bin-dir

View File

@ -80,3 +80,21 @@ extraInitContainers: []
# volumeMounts:
# - mountPath: /host/etc/cni/net.d
# name: cni-net-dir
# -- Resource requests and limits for linkerd-cni daemonset containers
resources:
cpu:
# -- Maximum amount of CPU units that the cni container can use
limit: ""
# -- Amount of CPU units that the cni container requests
request: ""
memory:
# -- Maximum amount of memory that the cni container can use
limit: ""
# -- Amount of memory that the cni container requests
request: ""
ephemeral-storage:
# -- Maximum amount of ephemeral storage that the cni container can use
limit: ""
# -- Amount of ephemeral storage that the cni container requests
request: ""

View File

@ -12,7 +12,6 @@ import (
charts "github.com/linkerd/linkerd2/pkg/charts/linkerd2"
"github.com/linkerd/linkerd2/pkg/tls"
"helm.sh/helm/v3/pkg/cli/values"
valuespkg "helm.sh/helm/v3/pkg/cli/values"
corev1 "k8s.io/api/core/v1"
)
@ -282,7 +281,7 @@ func TestRenderCRDs(t *testing.T) {
addFakeTLSSecrets(defaultValues)
var buf bytes.Buffer
if err := renderCRDs(&buf, valuespkg.Options{}); err != nil {
if err := renderCRDs(&buf, values.Options{}); err != nil {
t.Fatalf("Failed to render templates: %v", err)
}
if err := testDataDiffer.DiffTestYAML("install_crds.golden", buf.String()); err != nil {

View File

@ -18,7 +18,6 @@ import (
"github.com/linkerd/linkerd2/pkg/inject"
"github.com/linkerd/linkerd2/pkg/issuercerts"
"github.com/linkerd/linkerd2/pkg/k8s"
consts "github.com/linkerd/linkerd2/pkg/k8s"
"github.com/linkerd/linkerd2/pkg/tls"
"github.com/linkerd/linkerd2/pkg/version"
log "github.com/sirupsen/logrus"
@ -234,14 +233,14 @@ func makeInstallFlags(defaults *l5dcharts.Values) ([]flag.Flag, *pflag.FlagSet)
if value {
values.Identity.Issuer.Scheme = string(corev1.SecretTypeTLS)
} else {
values.Identity.Issuer.Scheme = consts.IdentityIssuerSchemeLinkerd
values.Identity.Issuer.Scheme = k8s.IdentityIssuerSchemeLinkerd
}
return nil
}),
flag.NewBoolFlag(installOnlyFlags, "identity-external-ca", false,
"Whether to use an external CA provider (default false)", func(values *l5dcharts.Values, value bool) error {
values.Identity.Issuer.ExternalCA = value
values.Identity.ExternalCA = value
return nil
}),
}
@ -532,7 +531,7 @@ func validateValues(ctx context.Context, k *k8s.KubernetesAPI, values *l5dcharts
}
}
if values.Identity.Issuer.Scheme == consts.IdentityIssuerSchemeLinkerd {
if values.Identity.Issuer.Scheme == k8s.IdentityIssuerSchemeLinkerd {
issuerData := issuercerts.IssuerCertData{
IssuerCrt: values.Identity.Issuer.TLS.CrtPEM,
IssuerKey: values.Identity.Issuer.TLS.KeyPEM,

View File

@ -430,9 +430,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -766,7 +766,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -937,7 +937,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1132,7 +1132,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1384,7 +1384,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1540,7 +1540,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -430,9 +430,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -766,7 +766,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -936,7 +936,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1131,7 +1131,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1382,7 +1382,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1538,7 +1538,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -430,9 +430,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -766,7 +766,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -936,7 +936,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1131,7 +1131,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1382,7 +1382,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1538,7 +1538,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -430,9 +430,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -766,7 +766,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -936,7 +936,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1131,7 +1131,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1382,7 +1382,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1538,7 +1538,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -430,9 +430,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -766,7 +766,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -936,7 +936,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1131,7 +1131,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1382,7 +1382,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1538,7 +1538,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -430,9 +430,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -766,7 +766,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -934,7 +934,7 @@ spec:
- mountPath: /var/run/linkerd/identity/end-entity
name: linkerd-identity-end-entity
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1122,7 +1122,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1371,7 +1371,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1520,7 +1520,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -448,9 +448,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -1018,7 +1018,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1510,7 +1510,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"

View File

@ -448,9 +448,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: true
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -1018,7 +1018,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1510,7 +1510,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"

View File

@ -361,9 +361,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -697,7 +697,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -867,7 +867,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1062,7 +1062,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1313,7 +1313,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1413,7 +1413,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -431,9 +431,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -739,7 +739,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -909,7 +909,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1107,7 +1107,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1358,7 +1358,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1519,7 +1519,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -449,9 +449,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -991,7 +991,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1486,7 +1486,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"

View File

@ -449,9 +449,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -999,7 +999,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1498,7 +1498,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"

View File

@ -444,9 +444,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -981,7 +981,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1476,7 +1476,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"

View File

@ -430,9 +430,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -766,7 +766,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -1118,7 +1118,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1512,7 +1512,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -423,9 +423,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -742,7 +742,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -914,7 +914,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1104,7 +1104,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1363,7 +1363,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1515,7 +1515,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -430,9 +430,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -766,7 +766,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -936,7 +936,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1131,7 +1131,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1382,7 +1382,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1538,7 +1538,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -430,9 +430,9 @@ data:
heartbeatSchedule: 1 2 3 4 5
highAvailability: false
identity:
externalCA: false
issuer:
clockSkewAllowance: 20s
externalCA: false
issuanceLifetime: 24h0m0s
scheme: linkerd.io/tls
tls:
@ -766,7 +766,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- args:
- identity
@ -936,7 +936,7 @@ spec:
- mountPath: /var/run/secrets/tokens
name: linkerd-identity-token
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1131,7 +1131,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name
@ -1382,7 +1382,7 @@ spec:
name: policy-tls
readOnly: true
initContainers:
- args:
- --incoming-proxy-port
- "4143"
@ -1538,7 +1538,7 @@ spec:
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- env:
- name: _pod_name

View File

@ -10,7 +10,6 @@ import (
"time"
"github.com/linkerd/linkerd2/cli/flag"
charts "github.com/linkerd/linkerd2/pkg/charts/linkerd2"
l5dcharts "github.com/linkerd/linkerd2/pkg/charts/linkerd2"
"github.com/linkerd/linkerd2/pkg/config"
flagspkg "github.com/linkerd/linkerd2/pkg/flags"
@ -262,9 +261,9 @@ func upgradeControlPlane(ctx context.Context, k *k8s.KubernetesAPI, flags []flag
return &buf, nil
}
func loadStoredValues(ctx context.Context, k *k8s.KubernetesAPI) (*charts.Values, error) {
func loadStoredValues(ctx context.Context, k *k8s.KubernetesAPI) (*l5dcharts.Values, error) {
// Load the default values from the chart.
values, err := charts.NewValues()
values, err := l5dcharts.NewValues()
if err != nil {
return nil, err
}

View File

@ -11,7 +11,6 @@ import (
"testing"
"github.com/linkerd/linkerd2/cli/flag"
"github.com/linkerd/linkerd2/pkg/charts/linkerd2"
charts "github.com/linkerd/linkerd2/pkg/charts/linkerd2"
flagspkg "github.com/linkerd/linkerd2/pkg/flags"
"github.com/linkerd/linkerd2/pkg/k8s"
@ -312,14 +311,14 @@ func TestUpgradeWebhookCrtsNameChange(t *testing.T) {
injectorCerts := generateCerts(t, "linkerd-proxy-injector.linkerd.svc", false)
defer injectorCerts.cleanup()
installOpts.ProxyInjector.TLS = &linkerd2.TLS{
installOpts.ProxyInjector.TLS = &charts.TLS{
ExternalSecret: true,
CaBundle: injectorCerts.ca,
}
validatorCerts := generateCerts(t, "linkerd-sp-validator.linkerd.svc", false)
defer validatorCerts.cleanup()
installOpts.ProfileValidator.TLS = &linkerd2.TLS{
installOpts.ProfileValidator.TLS = &charts.TLS{
ExternalSecret: true,
CaBundle: validatorCerts.ca,
}
@ -363,14 +362,14 @@ func TestUpgradeTwoLevelWebhookCrts(t *testing.T) {
// This tests the case where the webhook certs are not self-signed.
injectorCerts := generateCerts(t, "linkerd-proxy-injector.linkerd.svc", false)
defer injectorCerts.cleanup()
installOpts.ProxyInjector.TLS = &linkerd2.TLS{
installOpts.ProxyInjector.TLS = &charts.TLS{
ExternalSecret: true,
CaBundle: injectorCerts.ca,
}
validatorCerts := generateCerts(t, "linkerd-sp-validator.linkerd.svc", false)
defer validatorCerts.cleanup()
installOpts.ProfileValidator.TLS = &linkerd2.TLS{
installOpts.ProfileValidator.TLS = &charts.TLS{
ExternalSecret: true,
CaBundle: validatorCerts.ca,
}
@ -572,7 +571,7 @@ func pathMatch(path []string, template []string) bool {
return true
}
func renderInstall(t *testing.T, values *linkerd2.Values) *bytes.Buffer {
func renderInstall(t *testing.T, values *charts.Values) *bytes.Buffer {
var buf bytes.Buffer
if err := renderCRDs(&buf, valuespkg.Options{}); err != nil {
t.Fatalf("could not render install manifests: %s", err)

View File

@ -7,8 +7,6 @@ import (
"github.com/linkerd/linkerd2/controller/api/destination/watcher"
"github.com/linkerd/linkerd2/controller/api/util"
"github.com/linkerd/linkerd2/controller/k8s"
pkgk8s "github.com/linkerd/linkerd2/controller/k8s"
"github.com/sirupsen/logrus"
logging "github.com/sirupsen/logrus"
)
@ -461,7 +459,7 @@ func (m *mockDestinationGetProfileServer) Send(profile *pb.DestinationProfile) e
}
func makeEndpointTranslator(t *testing.T) (*mockDestinationGetServer, *endpointTranslator) {
k8sAPI, err := pkgk8s.NewFakeAPI(`
k8sAPI, err := k8s.NewFakeAPI(`
apiVersion: v1
kind: Node
metadata:
@ -494,7 +492,7 @@ metadata:
map[uint32]struct{}{},
k8sAPI.Node(),
mockGetServer,
logrus.WithField("test", t.Name()),
logging.WithField("test", t.Name()),
)
return mockGetServer, translator
}

View File

@ -646,8 +646,7 @@ func (pp *portPublisher) updateEndpointSlice(oldSlice *discovery.EndpointSlice,
updatedAddressSet.Addresses[id] = address
}
oldAddressSet := pp.endpointSliceToAddresses(oldSlice)
for id := range oldAddressSet.Addresses {
for _, id := range pp.endpointSliceToIDs(oldSlice) {
delete(updatedAddressSet.Addresses, id)
}
@ -783,6 +782,55 @@ func (pp *portPublisher) endpointSliceToAddresses(es *discovery.EndpointSlice) A
}
}
// endpointSliceToIDs is similar to endpointSliceToAddresses but instead returns
// only the IDs of the endpoints rather than the addresses themselves.
func (pp *portPublisher) endpointSliceToIDs(es *discovery.EndpointSlice) []ID {
resolvedPort := pp.resolveESTargetPort(es.Ports)
if resolvedPort == undefinedEndpointPort {
return []ID{}
}
serviceID, err := getEndpointSliceServiceID(es)
if err != nil {
pp.log.Errorf("Could not fetch resource service name:%v", err)
}
ids := []ID{}
for _, endpoint := range es.Endpoints {
if endpoint.Hostname != nil {
if pp.hostname != "" && pp.hostname != *endpoint.Hostname {
continue
}
}
if endpoint.Conditions.Ready != nil && !*endpoint.Conditions.Ready {
continue
}
if endpoint.TargetRef == nil {
for _, IPAddr := range endpoint.Addresses {
ids = append(ids, ServiceID{
Name: strings.Join([]string{
serviceID.Name,
IPAddr,
fmt.Sprint(resolvedPort),
}, "-"),
Namespace: es.Namespace,
})
}
continue
}
if endpoint.TargetRef.Kind == endpointTargetRefPod {
ids = append(ids, PodID{
Name: endpoint.TargetRef.Name,
Namespace: endpoint.TargetRef.Namespace,
})
}
}
return ids
}
func (pp *portPublisher) endpointsToAddresses(endpoints *corev1.Endpoints) AddressSet {
addresses := make(map[ID]Address)
for _, subset := range endpoints.Subsets {

View File

@ -1,16 +1,21 @@
package watcher
import (
"context"
"errors"
"fmt"
"sort"
"sync"
"testing"
"time"
"github.com/linkerd/linkerd2/controller/k8s"
consts "github.com/linkerd/linkerd2/pkg/k8s"
"github.com/linkerd/linkerd2/testutil"
logging "github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
dv1 "k8s.io/api/discovery/v1"
kerrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
@ -2067,3 +2072,136 @@ status:
})
}
}
// Test that when an EndpointSlice is scaled down, the EndpointsWatcher sends
// all of the Remove events, even if the associated pod is no longer available
// from the API.
func TestEndpointSliceScaleDown(t *testing.T) {
k8sConfigsWithES := []string{`
kind: APIResourceList
apiVersion: v1
groupVersion: discovery.k8s.io/v1
resources:
- name: endpointslices
singularName: endpointslice
namespaced: true
kind: EndpointSlice
verbs:
- delete
- deletecollection
- get
- list
- patch
- create
- update
- watch
`, `
apiVersion: v1
kind: Service
metadata:
name: name1
namespace: ns
spec:
type: LoadBalancer
ports:
- port: 8989`, `
addressType: IPv4
apiVersion: discovery.k8s.io/v1
endpoints:
- addresses:
- 172.17.0.12
conditions:
ready: true
targetRef:
kind: Pod
name: name1-1
namespace: ns
topology:
kubernetes.io/hostname: node-1
kind: EndpointSlice
metadata:
labels:
kubernetes.io/service-name: name1
name: name1-es
namespace: ns
ports:
- name: ""
port: 8989`, `
apiVersion: v1
kind: Pod
metadata:
name: name1-1
namespace: ns
status:
phase: Running
podIP: 172.17.0.12`}
// Create an EndpointSlice with one endpoint, backed by a pod.
k8sAPI, err := k8s.NewFakeAPI(k8sConfigsWithES...)
if err != nil {
t.Fatalf("NewFakeAPI returned an error: %s", err)
}
watcher, err := NewEndpointsWatcher(k8sAPI, logging.WithField("test", t.Name()), true)
if err != nil {
t.Fatalf("can't create Endpoints watcher: %s", err)
}
k8sAPI.Sync(nil)
listener := newBufferingEndpointListener()
err = watcher.Subscribe(ServiceID{Name: "name1", Namespace: "ns"}, 8989, "", listener)
if err != nil {
t.Fatal(err)
}
k8sAPI.Sync(nil)
listener.ExpectAdded([]string{"172.17.0.12:8989"}, t)
// Delete the backing pod and scale the EndpointSlice to 0 endpoints.
err = k8sAPI.Client.CoreV1().Pods("ns").Delete(context.Background(), "name1-1", metav1.DeleteOptions{})
if err != nil {
t.Fatal(err)
}
// It may take some time before the pod deletion is recognized by the
// lister. We wait until the lister sees the pod as deleted.
err = testutil.RetryFor(time.Second*30, func() error {
_, err := k8sAPI.Pod().Lister().Pods("ns").Get("name1-1")
if kerrors.IsNotFound(err) {
return nil
}
if err == nil {
return errors.New("pod should be deleted, but still exists in lister")
}
return err
})
if err != nil {
t.Fatal(err)
}
ES, err := k8sAPI.Client.DiscoveryV1().EndpointSlices("ns").Get(context.Background(), "name1-es", metav1.GetOptions{})
if err != nil {
t.Fatal(err)
}
emptyES := &dv1.EndpointSlice{
AddressType: "IPv4",
ObjectMeta: metav1.ObjectMeta{
Name: "name1-es", Namespace: "ns",
Labels: map[string]string{dv1.LabelServiceName: "name1"},
},
Endpoints: []dv1.Endpoint{},
Ports: []dv1.EndpointPort{},
}
watcher.updateEndpointSlice(ES, emptyES)
// Ensure the watcher emits a remove event.
listener.ExpectRemoved([]string{"172.17.0.12:8989"}, t)
}

View File

@ -13,7 +13,6 @@ import (
pkgK8s "github.com/linkerd/linkerd2/pkg/k8s"
admissionv1beta1 "k8s.io/api/admission/v1beta1"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
)
@ -415,7 +414,7 @@ func getFakeServiceReq(b []byte) *admissionv1beta1.AdmissionRequest {
}
}
func ownerRetrieverFake(p *v1.Pod) (string, string, error) {
func ownerRetrieverFake(p *corev1.Pod) (string, string, error) {
return pkgK8s.Deployment, "owner-deployment", nil
}

View File

@ -14,7 +14,6 @@ import (
pkgk8s "github.com/linkerd/linkerd2/pkg/k8s"
pkgTls "github.com/linkerd/linkerd2/pkg/tls"
"github.com/linkerd/linkerd2/pkg/util"
"github.com/sirupsen/logrus"
log "github.com/sirupsen/logrus"
admissionv1beta1 "k8s.io/api/admission/v1beta1"
v1 "k8s.io/api/core/v1"
@ -83,7 +82,7 @@ func NewServer(
log.Fatalf("Failed to initialized certificate: %s", err)
}
log := logrus.WithFields(logrus.Fields{
log := log.WithFields(log.Fields{
"component": "proxy-injector",
"addr": addr,
})

29
go.mod
View File

@ -22,7 +22,7 @@ require (
github.com/julienschmidt/httprouter v1.3.0
github.com/linkerd/linkerd2-proxy-api v0.7.0
github.com/linkerd/linkerd2-proxy-init v1.6.2
github.com/mattn/go-isatty v0.0.16
github.com/mattn/go-isatty v0.0.17
github.com/mattn/go-runewidth v0.0.14
github.com/nsf/termbox-go v0.0.0-20180613055208-5c94acc5e6eb
github.com/patrickmn/go-cache v2.1.0+incompatible
@ -36,8 +36,8 @@ require (
github.com/spf13/cobra v1.6.1
github.com/spf13/pflag v1.0.5
go.opencensus.io v0.24.0
golang.org/x/net v0.4.0
golang.org/x/tools v0.4.0
golang.org/x/net v0.5.0
golang.org/x/tools v0.5.0
google.golang.org/grpc v1.51.0
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0
google.golang.org/protobuf v1.28.1
@ -138,9 +138,9 @@ require (
golang.org/x/mod v0.7.0 // indirect
golang.org/x/oauth2 v0.3.0 // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.3.0 // indirect
golang.org/x/term v0.3.0 // indirect
golang.org/x/text v0.5.0 // indirect
golang.org/x/sys v0.4.0 // indirect
golang.org/x/term v0.4.0 // indirect
golang.org/x/text v0.6.0 // indirect
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
google.golang.org/api v0.62.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
@ -158,17 +158,6 @@ require (
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
)
// to avoid the `github.com/golang/protobuf/protoc-gen-go/generator` deprecation warning
// (see https://github.com/golang/protobuf/issues/1104)
replace github.com/grpc-ecosystem/grpc-gateway => github.com/grpc-ecosystem/grpc-gateway v1.14.8
// avoids scanners hitting the alert described in https://github.com/helm/helm/issues/7846
// this should be removed when helm upgrades that dependency on runc
replace github.com/opencontainers/runc => github.com/opencontainers/runc v1.0.3
// Addresses https://github.com/advisories/GHSA-crp2-qrr5-8pq7,
// https://github.com/advisories/GHSA-5ffw-gxpp-mxpf
replace github.com/containerd/containerd => github.com/containerd/containerd v1.6.6
// Addresses https://github.com/advisories/GHSA-qq97-vm5h-rrhg
replace github.com/docker/distribution => github.com/docker/distribution v2.8.1+incompatible
// Addresses https://github.com/linkerd/linkerd2/security/dependabot/37
// (CVE-2022-23471)
replace github.com/containerd/containerd => github.com/containerd/containerd v1.6.14

74
go.sum
View File

@ -1,5 +1,4 @@
bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8=
bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
@ -78,12 +77,13 @@ github.com/Masterminds/sprig/v3 v3.2.2 h1:17jRggJu518dr3QaafizSXOjKYp94wKfABxUmy
github.com/Masterminds/sprig/v3 v3.2.2/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk=
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
github.com/Microsoft/go-winio v0.5.1 h1:aPJp2QD7OOrhO5tQXqQoGSJc+DjDtWTGLOmNyAm6FgY=
github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA=
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4=
github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc=
github.com/Microsoft/hcsshim v0.9.3 h1:k371PzBuRrz2b+ebGuI2nVgVhgsVX60jMfSw80NECxo=
github.com/Microsoft/hcsshim v0.9.3/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc=
github.com/Microsoft/hcsshim v0.9.6 h1:VwnDOgLeoi2du6dAznfmspNqTiwczvjv4K7NxuY9jsY=
github.com/Microsoft/hcsshim v0.9.6/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc=
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
@ -137,6 +137,7 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M=
github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
@ -164,15 +165,15 @@ github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u9
github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU=
github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss=
github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU=
github.com/containerd/cgroups v1.0.3 h1:ADZftAkglvCiD44c77s5YmMqaP2pzVCFZvBmAlBdAP4=
github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8=
github.com/containerd/cgroups v1.0.4 h1:jN/mbWBEaz+T1pi5OFtnkQ+8qnmEbAr1Oo1FRm5B0dA=
github.com/containerd/cgroups v1.0.4/go.mod h1:nLNQtsF7Sl2HxNebu77i1R0oDlhiTG+kO4JTrUzo6IA=
github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw=
github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ=
github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U=
github.com/containerd/containerd v1.6.6 h1:xJNPhbrmz8xAMDNoVjHy9YHtWwEQNS+CDkcIRh7t8Y0=
github.com/containerd/containerd v1.6.6/go.mod h1:ZoP1geJldzCVY3Tonoz7b1IXk8rIX0Nltt5QE4OMNk0=
github.com/containerd/containerd v1.6.14 h1:W+d0AJKVG3ioTZZyQwcw1Y3vvo6ZDYzAcjDcY4tkgGI=
github.com/containerd/containerd v1.6.14/go.mod h1:U2NnBPIhzJDm59xF7xB2MMHnKtggpZ+phKg8o2TKj2c=
github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ=
github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk=
github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM=
github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4=
github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA=
github.com/containerd/go-cni v1.1.6/go.mod h1:BWtoWl5ghVymxu6MBjg79W9NZrCRyHIdUtk4cauMe34=
@ -230,6 +231,7 @@ github.com/docker/cli v20.10.10+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hH
github.com/docker/cli v20.10.12+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/cli v20.10.17+incompatible h1:eO2KS7ZFeov5UJeaDmIs1NFEDRf32PaqRpvoEkKBy5M=
github.com/docker/cli v20.10.17+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=
github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
@ -466,8 +468,10 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmg
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.14.8 h1:hXClj+iFpmLM8i3lkO6i4Psli4P2qObQuQReiII26U8=
github.com/grpc-ecosystem/grpc-gateway v1.14.8/go.mod h1:NZE8t6vs6TnwLL/ITkaK8W3ecMLGAbh2jXTclvpiwYo=
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
github.com/hashicorp/consul/api v1.11.0/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M=
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
@ -593,8 +597,8 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU=
github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
@ -692,11 +696,13 @@ github.com/opencontainers/image-spec v1.0.2-0.20210819154149-5ad6f50d6283/go.mod
github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 h1:rc3tiVYb5z54aKaDfakKn0dDjIyPpTtszkjuMzyt7ec=
github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
github.com/opencontainers/runc v1.0.3/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0=
github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0=
github.com/opencontainers/runc v1.1.2/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc=
github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8=
github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
@ -762,6 +768,7 @@ github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0ua
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@ -774,6 +781,7 @@ github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZ
github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg=
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ=
@ -847,7 +855,6 @@ github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
@ -949,6 +956,7 @@ golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@ -996,6 +1004,7 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@ -1046,10 +1055,12 @@ golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qx
golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211111160137-58aab5ef257a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU=
golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw=
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@ -1115,7 +1126,6 @@ golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -1182,21 +1192,25 @@ golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18=
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI=
golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg=
golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@ -1206,8 +1220,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM=
golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k=
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@ -1285,8 +1299,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff/go.mod h1:YD9qOF0M9xpSpdWTBbzEl5e/RnCefISl8E5Noe10jFM=
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4=
golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ=
golang.org/x/tools v0.5.0 h1:+bSpV5HIeWkuvgaMfI3UmKRThoTA5ODJTUd8T17NO+4=
golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@ -1418,6 +1432,7 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
@ -1433,6 +1448,7 @@ google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9K
google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
google.golang.org/grpc v1.51.0 h1:E1eGv1FTqoLIdnBCZufiSHgKjlqG6fKFf6pPWtMTh8U=
google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
@ -1469,9 +1485,11 @@ gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@ -1526,7 +1544,7 @@ k8s.io/code-generator v0.26.0 h1:ZDY+7Gic9p/lACgD1G72gQg2CvNGeAYZTPIncv+iALM=
k8s.io/code-generator v0.26.0/go.mod h1:OMoJ5Dqx1wgaQzKgc+ZWaZPfGjdRq/Y3WubFrZmeI3I=
k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI=
k8s.io/component-base v0.23.5/go.mod h1:c5Nq44KZyt1aLl0IpHX82fhsn84Sb0jjzwjpcA42bY0=
k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4=
k8s.io/cri-api v0.25.0/go.mod h1:J1rAyQkSJ2Q6I+aBMOVgg2/cbbebso6FNa0UagiR0kc=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=

View File

@ -11,6 +11,7 @@ metadata:
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
name: namespace-metadata
namespace: {{.Release.Namespace}}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
@ -24,6 +25,7 @@ metadata:
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
name: namespace-metadata
namespace: {{.Release.Namespace}}
rules:
- apiGroups: [""]
resources: ["namespaces"]
@ -42,6 +44,7 @@ metadata:
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
name: namespace-metadata
namespace: {{.Release.Namespace}}
roleRef:
kind: Role
name: namespace-metadata

View File

@ -13,6 +13,7 @@ metadata:
app.kubernetes.io/version: {{default .Values.linkerdVersion .Values.cliVersion}}
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
name: namespace-metadata
namespace: {{.Release.Namespace}}
spec:
template:
metadata:

View File

@ -1,35 +0,0 @@
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: {{ .Release.Namespace }}
name: proxy-admin
labels:
linkerd.io/extension: jaeger
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
annotations:
{{ include "partials.annotations.created-by" . }}
spec:
podSelector:
matchLabels:
linkerd.io/extension: jaeger
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: {{ .Release.Namespace }}
name: proxy-admin
labels:
linkerd.io/extension: jaeger
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
annotations:
{{ include "partials.annotations.created-by" . }}
spec:
server:
name: proxy-admin
client:
# for kubelet probes
unauthenticated: true

View File

@ -25,7 +25,6 @@ var (
// this doesn't include the namespace-metadata.* templates, which are Helm-only
templatesJaeger = []string{
"templates/namespace.yaml",
"templates/proxy-admin-policy.yaml",
"templates/jaeger-injector.yaml",
"templates/jaeger-injector-policy.yaml",
"templates/rbac.yaml",

View File

@ -7,7 +7,6 @@ import (
"github.com/linkerd/linkerd2/jaeger/pkg/labels"
pkgcmd "github.com/linkerd/linkerd2/pkg/cmd"
"github.com/linkerd/linkerd2/pkg/k8s"
pkgK8s "github.com/linkerd/linkerd2/pkg/k8s"
"github.com/spf13/cobra"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -48,7 +47,7 @@ func newCmdList() *cobra.Command {
for _, pod := range pods.Items {
pod := pod
if pkgK8s.IsMeshed(&pod, controlPlaneNamespace) {
if k8s.IsMeshed(&pod, controlPlaneNamespace) {
if labels.IsTracingEnabled(&pod) {
tracingEnabled = append(tracingEnabled, pod)
} else {

View File

@ -7,39 +7,6 @@ metadata:
linkerd.io/extension: jaeger
pod-security.kubernetes.io/enforce: privileged
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-jaeger
name: proxy-admin
labels:
linkerd.io/extension: jaeger
annotations:
linkerd.io/created-by: linkerd/helm dev-undefined
spec:
podSelector:
matchLabels:
linkerd.io/extension: jaeger
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: linkerd-jaeger
name: proxy-admin
labels:
linkerd.io/extension: jaeger
annotations:
linkerd.io/created-by: linkerd/helm dev-undefined
spec:
server:
name: proxy-admin
client:
# for kubelet probes
unauthenticated: true
---
###
### Jaeger Injector
###

View File

@ -7,39 +7,6 @@ metadata:
linkerd.io/extension: jaeger
pod-security.kubernetes.io/enforce: privileged
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-jaeger
name: proxy-admin
labels:
linkerd.io/extension: jaeger
annotations:
linkerd.io/created-by: linkerd/helm dev-undefined
spec:
podSelector:
matchLabels:
linkerd.io/extension: jaeger
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: linkerd-jaeger
name: proxy-admin
labels:
linkerd.io/extension: jaeger
annotations:
linkerd.io/created-by: linkerd/helm dev-undefined
spec:
server:
name: proxy-admin
client:
# for kubelet probes
unauthenticated: true
---
###
### Jaeger Injector
###

View File

@ -7,39 +7,6 @@ metadata:
linkerd.io/extension: jaeger
pod-security.kubernetes.io/enforce: privileged
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-jaeger
name: proxy-admin
labels:
linkerd.io/extension: jaeger
annotations:
linkerd.io/created-by: linkerd/helm dev-undefined
spec:
podSelector:
matchLabels:
linkerd.io/extension: jaeger
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: linkerd-jaeger
name: proxy-admin
labels:
linkerd.io/extension: jaeger
annotations:
linkerd.io/created-by: linkerd/helm dev-undefined
spec:
server:
name: proxy-admin
client:
# for kubelet probes
unauthenticated: true
---
###
### Jaeger Injector
###

View File

@ -10,6 +10,7 @@ metadata:
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
name: namespace-metadata
namespace: {{.Release.Namespace}}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
@ -23,6 +24,7 @@ metadata:
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
name: namespace-metadata
namespace: {{.Release.Namespace}}
rules:
- apiGroups: [""]
resources: ["namespaces"]
@ -41,6 +43,7 @@ metadata:
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
name: namespace-metadata
namespace: {{.Release.Namespace}}
roleRef:
kind: Role
name: namespace-metadata

View File

@ -12,6 +12,7 @@ metadata:
app.kubernetes.io/version: {{default .Values.linkerdVersion .Values.cliVersion}}
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
name: namespace-metadata
namespace: {{.Release.Namespace}}
spec:
template:
metadata:

View File

@ -1,64 +0,0 @@
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: {{ .Release.Namespace }}
name: gateway-proxy-admin
labels:
linkerd.io/extension: multicluster
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
annotations:
{{ include "partials.annotations.created-by" . }}
spec:
podSelector:
matchLabels:
app: {{.Values.gateway.name}}
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: {{ .Release.Namespace }}
name: proxy-admin
labels:
linkerd.io/extension: multicluster
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
annotations:
{{ include "partials.annotations.created-by" . }}
spec:
server:
name: gateway-proxy-admin
client:
# for kubelet probes
unauthenticated: true
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: {{ .Release.Namespace }}
name: service-mirror-proxy-admin
labels:
linkerd.io/extension: multicluster
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
spec:
podSelector:
matchLabels:
component: linkerd-service-mirror
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: {{ .Release.Namespace }}
name: service-mirror-proxy-admin
labels:
linkerd.io/extension: multicluster
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
spec:
server:
name: service-mirror-proxy-admin
client:
# for kubelet probes
unauthenticated: true

View File

@ -134,7 +134,6 @@ func render(w io.Writer, values *multicluster.Values, valuesOverrides map[string
{Name: chartutil.ValuesfileName},
{Name: "templates/namespace.yaml"},
{Name: "templates/gateway.yaml"},
{Name: "templates/proxy-admin-policy.yaml"},
{Name: "templates/gateway-policy.yaml"},
{Name: "templates/psp.yaml"},
{Name: "templates/remote-access-service-mirror-rbac.yaml"},

View File

@ -88,66 +88,6 @@ metadata:
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-multicluster
name: gateway-proxy-admin
labels:
linkerd.io/extension: multicluster
annotations:
linkerd.io/created-by: linkerd/helm linkerdVersionValue
spec:
podSelector:
matchLabels:
app: linkerd-gateway
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: linkerd-multicluster
name: proxy-admin
labels:
linkerd.io/extension: multicluster
annotations:
linkerd.io/created-by: linkerd/helm linkerdVersionValue
spec:
server:
name: gateway-proxy-admin
client:
# for kubelet probes
unauthenticated: true
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-multicluster
name: service-mirror-proxy-admin
labels:
linkerd.io/extension: multicluster
spec:
podSelector:
matchLabels:
component: linkerd-service-mirror
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: linkerd-multicluster
name: service-mirror-proxy-admin
labels:
linkerd.io/extension: multicluster
spec:
server:
name: service-mirror-proxy-admin
client:
# for kubelet probes
unauthenticated: true
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-multicluster
name: linkerd-gateway

View File

@ -125,66 +125,6 @@ metadata:
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-multicluster
name: gateway-proxy-admin
labels:
linkerd.io/extension: multicluster
annotations:
linkerd.io/created-by: linkerd/helm linkerdVersionValue
spec:
podSelector:
matchLabels:
app: linkerd-gateway
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: linkerd-multicluster
name: proxy-admin
labels:
linkerd.io/extension: multicluster
annotations:
linkerd.io/created-by: linkerd/helm linkerdVersionValue
spec:
server:
name: gateway-proxy-admin
client:
# for kubelet probes
unauthenticated: true
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-multicluster
name: service-mirror-proxy-admin
labels:
linkerd.io/extension: multicluster
spec:
podSelector:
matchLabels:
component: linkerd-service-mirror
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: linkerd-multicluster
name: service-mirror-proxy-admin
labels:
linkerd.io/extension: multicluster
spec:
server:
name: service-mirror-proxy-admin
client:
# for kubelet probes
unauthenticated: true
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-multicluster
name: linkerd-gateway

View File

@ -88,66 +88,6 @@ metadata:
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-multicluster
name: gateway-proxy-admin
labels:
linkerd.io/extension: multicluster
annotations:
linkerd.io/created-by: linkerd/helm linkerdVersionValue
spec:
podSelector:
matchLabels:
app: linkerd-gateway
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: linkerd-multicluster
name: proxy-admin
labels:
linkerd.io/extension: multicluster
annotations:
linkerd.io/created-by: linkerd/helm linkerdVersionValue
spec:
server:
name: gateway-proxy-admin
client:
# for kubelet probes
unauthenticated: true
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-multicluster
name: service-mirror-proxy-admin
labels:
linkerd.io/extension: multicluster
spec:
podSelector:
matchLabels:
component: linkerd-service-mirror
port: linkerd-admin
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
namespace: linkerd-multicluster
name: service-mirror-proxy-admin
labels:
linkerd.io/extension: multicluster
spec:
server:
name: service-mirror-proxy-admin
client:
# for kubelet probes
unauthenticated: true
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: linkerd-multicluster
name: linkerd-gateway

View File

@ -14,7 +14,6 @@ import (
"github.com/prometheus/client_golang/prometheus"
logging "github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/api/core/v1"
kerrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
@ -174,7 +173,7 @@ func NewRemoteClusterServiceWatcher(
eventBroadcaster.StartRecordingToSink(&typedcorev1.EventSinkImpl{
Interface: remoteAPI.Client.CoreV1().Events(""),
})
recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{
recorder := eventBroadcaster.NewRecorder(scheme.Scheme, corev1.EventSource{
Component: fmt.Sprintf("linkerd-service-mirror-%s", clusterName),
})
@ -481,7 +480,7 @@ func (rcsw *RemoteClusterServiceWatcher) handleRemoteServiceCreated(ctx context.
// Ensure the namespace exists, and skip mirroring if it doesn't
if _, err := rcsw.localAPIClient.Client.CoreV1().Namespaces().Get(ctx, remoteService.Namespace, metav1.GetOptions{}); err != nil {
if kerrors.IsNotFound(err) {
rcsw.recorder.Event(remoteService, v1.EventTypeNormal, eventTypeSkipped, "Skipped mirroring service: namespace does not exist")
rcsw.recorder.Event(remoteService, corev1.EventTypeNormal, eventTypeSkipped, "Skipped mirroring service: namespace does not exist")
rcsw.log.Warnf("Skipping mirroring of service %s: namespace %s does not exist", serviceInfo, remoteService.Namespace)
return nil
}
@ -1010,7 +1009,7 @@ func (rcsw *RemoteClusterServiceWatcher) repairEndpoints(ctx context.Context) er
// endpoints for a remote cluster. These endpoints are required for the probe
// worker responsible for probing gateway liveness, so these endpoints are
// never in a not ready state.
func (rcsw *RemoteClusterServiceWatcher) createOrUpdateGatewayEndpoints(ctx context.Context, addressses []v1.EndpointAddress) error {
func (rcsw *RemoteClusterServiceWatcher) createOrUpdateGatewayEndpoints(ctx context.Context, addressses []corev1.EndpointAddress) error {
gatewayMirrorName := fmt.Sprintf("probe-gateway-%s", rcsw.link.TargetClusterName)
endpoints := &corev1.Endpoints{
ObjectMeta: metav1.ObjectMeta{

View File

@ -7,7 +7,6 @@ import (
consts "github.com/linkerd/linkerd2/pkg/k8s"
logging "github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/api/core/v1"
kerrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
@ -47,7 +46,7 @@ func (rcsw *RemoteClusterServiceWatcher) createOrUpdateHeadlessEndpoints(ctx con
// as a headless mirror. If the service does not have any named addresses in
// its Endpoints object, then the endpoints should not be processed.
if len(exportedService.Spec.Ports) == 0 {
rcsw.recorder.Event(exportedService, v1.EventTypeNormal, eventTypeSkipped, "Skipped mirroring service: object spec has no exposed ports")
rcsw.recorder.Event(exportedService, corev1.EventTypeNormal, eventTypeSkipped, "Skipped mirroring service: object spec has no exposed ports")
rcsw.log.Infof("Skipped creating headless mirror for %s/%s: service object spec has no exposed ports", exportedService.Namespace, exportedService.Name)
return nil
}

View File

@ -11,7 +11,6 @@ import (
"github.com/linkerd/linkerd2/pkg/multicluster"
logging "github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/record"
@ -274,7 +273,7 @@ func TestLocalNamespaceCreatedAfterServiceExport(t *testing.T) {
}
skippedEvent := <-eventRecorder.Events
if skippedEvent != fmt.Sprintf("%s %s %s", v1.EventTypeNormal, eventTypeSkipped, "Skipped mirroring service: namespace does not exist") {
if skippedEvent != fmt.Sprintf("%s %s %s", corev1.EventTypeNormal, eventTypeSkipped, "Skipped mirroring service: namespace does not exist") {
t.Error("Expected skipped event, got:", skippedEvent)
}

View File

@ -5,7 +5,6 @@ import (
"testing"
pb "github.com/linkerd/linkerd2-proxy-api/go/net"
proxy "github.com/linkerd/linkerd2-proxy-api/go/net"
l5dNetPb "github.com/linkerd/linkerd2/controller/gen/common/net"
"google.golang.org/protobuf/proto"
)
@ -128,16 +127,16 @@ func TestProxyAddressesToString(t *testing.T) {
name: "ipv4",
addrs: []pb.TcpAddress{
{
Ip: &proxy.IPAddress{
Ip: &proxy.IPAddress_Ipv4{
Ip: &pb.IPAddress{
Ip: &pb.IPAddress_Ipv4{
Ipv4: 3232235521,
},
},
Port: 1234,
},
{
Ip: &proxy.IPAddress{
Ip: &proxy.IPAddress_Ipv4{
Ip: &pb.IPAddress{
Ip: &pb.IPAddress_Ipv4{
Ipv4: 3232235522,
},
},
@ -200,18 +199,18 @@ func TestProxyIPToString(t *testing.T) {
func TestNetToPublic(t *testing.T) {
type addrExp struct {
proxyAddr *proxy.TcpAddress
proxyAddr *pb.TcpAddress
publicAddress *l5dNetPb.TcpAddress
}
expectations := []addrExp{
{
proxyAddr: &proxy.TcpAddress{},
proxyAddr: &pb.TcpAddress{},
publicAddress: &l5dNetPb.TcpAddress{},
},
{
proxyAddr: &proxy.TcpAddress{
Ip: &proxy.IPAddress{Ip: &proxy.IPAddress_Ipv4{Ipv4: 1}},
proxyAddr: &pb.TcpAddress{
Ip: &pb.IPAddress{Ip: &pb.IPAddress_Ipv4{Ipv4: 1}},
Port: 1234,
},
publicAddress: &l5dNetPb.TcpAddress{
@ -220,10 +219,10 @@ func TestNetToPublic(t *testing.T) {
},
},
{
proxyAddr: &proxy.TcpAddress{
Ip: &proxy.IPAddress{
Ip: &proxy.IPAddress_Ipv6{
Ipv6: &proxy.IPv6{
proxyAddr: &pb.TcpAddress{
Ip: &pb.IPAddress{
Ip: &pb.IPAddress_Ipv6{
Ipv6: &pb.IPv6{
First: 2345,
Last: 6789,
},

View File

@ -224,13 +224,13 @@ type (
// Identity contains the fields to set the identity variables in the proxy
// sidecar container
Identity struct {
ExternalCA bool `json:"externalCA"`
ServiceAccountTokenProjection bool `json:"serviceAccountTokenProjection"`
Issuer *Issuer `json:"issuer"`
}
// Issuer has the Helm variables of the identity issuer
Issuer struct {
ExternalCA bool `json:"externalCA"`
Scheme string `json:"scheme"`
ClockSkewAllowance string `json:"clockSkewAllowance"`
IssuanceLifetime string `json:"issuanceLifetime"`

View File

@ -28,7 +28,6 @@ import (
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
kerrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -2203,7 +2202,7 @@ func CheckCustomResourceDefinitions(ctx context.Context, k8sAPI *k8s.KubernetesA
return nil
}
func crdHasVersion(crd *v1.CustomResourceDefinition, version string) bool {
func crdHasVersion(crd *apiextv1.CustomResourceDefinition, version string) bool {
for _, crdVersion := range crd.Spec.Versions {
if crdVersion.Name == version {
return true
@ -2760,8 +2759,9 @@ func CheckCanPerformAction(ctx context.Context, api *k8s.KubernetesAPI, verb, na
// getPodStatuses returns a map of all Linkerd container statuses:
// component =>
// pod name =>
// container statuses
//
// pod name =>
// container statuses
func getPodStatuses(pods []corev1.Pod) map[string]map[string][]corev1.ContainerStatus {
statuses := make(map[string]map[string][]corev1.ContainerStatus)

View File

@ -18,7 +18,6 @@ import (
jsonfilter "github.com/clarketm/json"
"github.com/linkerd/linkerd2/pkg/charts"
"github.com/linkerd/linkerd2/pkg/charts/linkerd2"
l5dcharts "github.com/linkerd/linkerd2/pkg/charts/linkerd2"
"github.com/linkerd/linkerd2/pkg/charts/static"
"github.com/linkerd/linkerd2/pkg/k8s"
@ -250,13 +249,13 @@ func (conf *ResourceConfig) ParseMetaAndYAML(bytes []byte) (*Report, error) {
}
// GetValues returns the values used for rendering patches.
func (conf *ResourceConfig) GetValues() *linkerd2.Values {
func (conf *ResourceConfig) GetValues() *l5dcharts.Values {
return conf.values
}
// GetOverriddenValues returns the final Values struct which is created
// by overriding annotated configuration on top of default Values
func (conf *ResourceConfig) GetOverriddenValues() (*linkerd2.Values, error) {
func (conf *ResourceConfig) GetOverriddenValues() (*l5dcharts.Values, error) {
// Make a copy of Values and mutate that
copyValues, err := conf.values.DeepCopy()
if err != nil {

View File

@ -10,7 +10,6 @@ import (
"time"
"github.com/linkerd/linkerd2/pkg/k8s"
consts "github.com/linkerd/linkerd2/pkg/k8s"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
@ -195,17 +194,17 @@ func (l Link) ToUnstructured() (unstructured.Unstructured, error) {
// ExtractProbeSpec parses the ProbSpec from a gateway service's annotations.
func ExtractProbeSpec(gateway *corev1.Service) (ProbeSpec, error) {
path := gateway.Annotations[consts.GatewayProbePath]
path := gateway.Annotations[k8s.GatewayProbePath]
if path == "" {
return ProbeSpec{}, errors.New("probe path is empty")
}
port, err := extractPort(gateway.Spec, consts.ProbePortName)
port, err := extractPort(gateway.Spec, k8s.ProbePortName)
if err != nil {
return ProbeSpec{}, err
}
period, err := strconv.ParseUint(gateway.Annotations[consts.GatewayProbePeriod], 10, 32)
period, err := strconv.ParseUint(gateway.Annotations[k8s.GatewayProbePeriod], 10, 32)
if err != nil {
return ProbeSpec{}, err
}

View File

@ -8,7 +8,6 @@ import (
"sync/atomic"
"github.com/fsnotify/fsnotify"
"github.com/sirupsen/logrus"
log "github.com/sirupsen/logrus"
)
@ -93,7 +92,7 @@ func (fscw *FsCredsWatcher) UpdateCert(certVal *atomic.Value) error {
// ProcessEvents reads from the update and error channels and reloads the certs when necessary
func (fscw *FsCredsWatcher) ProcessEvents(
log *logrus.Entry,
log *log.Entry,
certVal *atomic.Value,
updateEvent <-chan struct{},
errEvent <-chan error,

View File

@ -34,7 +34,7 @@ func TestMain(m *testing.M) {
exit(1, "-linkerd flag is required")
}
TestHelper = testutil.NewGenericTestHelper(*linkerd, "", "l5d", "linkerd-viz", "", "", "", "", "", "", "", "", false, false, false, false, false, false, *http.DefaultClient, testutil.KubernetesHelper{})
TestHelper = testutil.NewGenericTestHelper(*linkerd, "", "l5d", "linkerd-viz", "", "", "", "", "", "", "", false, false, false, false, false, false, *http.DefaultClient, testutil.KubernetesHelper{})
os.Exit(m.Run())
}

View File

@ -53,7 +53,7 @@ func TestGoodEndpoints(t *testing.T) {
testName := fmt.Sprintf("expect endpoints created for %s", endpointCase.name)
t.Run(testName, func(t *testing.T) {
err = TestHelper.RetryFor(5*time.Second, func() error {
err = testutil.RetryFor(5*time.Second, func() error {
out, err = TestHelper.LinkerdRun("diagnostics", "endpoints", endpointCase.authority, "-ojson")
if err != nil {
return fmt.Errorf("failed to get endpoints for %s: %w", endpointCase.authority, err)

View File

@ -73,7 +73,7 @@ func TestInstallCNIPlugin(t *testing.T) {
// perform a linkerd check with --linkerd-cni-enabled
timeout := time.Minute
err = TestHelper.RetryFor(timeout, func() error {
err = testutil.RetryFor(timeout, func() error {
out, err = TestHelper.LinkerdRun("check", "--pre", "--linkerd-cni-enabled", "--wait=60m")
if err != nil {
return err

View File

@ -95,7 +95,7 @@ func TestLocalhostServer(t *testing.T) {
}
}
err = TestHelper.RetryFor(50*time.Second, func() error {
err = testutil.RetryFor(50*time.Second, func() error {
// Use a short time window so that transient errors at startup
// fall out of the window.
metrics, err := TestHelper.LinkerdRun("diagnostics", "proxy-metrics", "-n", ns, "deploy/slow-cooker")

View File

@ -229,7 +229,7 @@ func runTests(ctx context.Context, t *testing.T, ns string, tcs []testCase) {
t.Helper()
for _, tc := range tcs {
t.Run(tc.name, func(t *testing.T) {
err := TestHelper.RetryFor(30*time.Second, func() error {
err := testutil.RetryFor(30*time.Second, func() error {
if err := checkPodMetrics(ctx, ns, tc.scName, tc.scChecks); err != nil {
return fmt.Errorf("failed to check metrics for client pod: %w", err)
}

View File

@ -80,7 +80,7 @@ func TestSkipInboundPorts(t *testing.T) {
t.Run("check webapp metrics", func(t *testing.T) {
// Wait for slow-cookers to start sending requests by using a short
// time window through RetryFor.
err := TestHelper.RetryFor(30*time.Second, func() error {
err := testutil.RetryFor(30*time.Second, func() error {
pods, err := TestHelper.GetPods(ctx, ns, map[string]string{"app": "webapp"})
if err != nil {
return fmt.Errorf("error getting pods\n%w", err)

View File

@ -70,7 +70,7 @@ func verifyInstallApp(ctx context.Context, t *testing.T) {
}
func checkAppWoks(t *testing.T, timeout time.Duration) error {
return TestHelper.RetryFor(timeout, func() error {
return testutil.RetryFor(timeout, func() error {
args := []string{"viz", "stat", "deploy", "-n", TestHelper.GetTestNamespace(TestAppNamespaceSuffix), "--from", "deploy/slow-cooker", "-t", "1m"}
out, err := TestHelper.LinkerdRun(args...)
if err != nil {
@ -119,7 +119,7 @@ func verifyRotateExternalCerts(ctx context.Context, t *testing.T) {
func verifyIdentityServiceReloadsIssuerCert(t *testing.T) {
// check that the identity service has received an IssuerUpdated event
timeout := 90 * time.Second
err := TestHelper.RetryFor(timeout, func() error {
err := testutil.RetryFor(timeout, func() error {
out, err := TestHelper.Kubectl("",
"--namespace", TestHelper.GetLinkerdNamespace(),
"get", "events", "--field-selector", "reason=IssuerUpdated", "-ojson",

View File

@ -65,7 +65,7 @@ func TestRabbitMQDeploy(t *testing.T) {
// Verify client output
golden := "check.rabbitmq.golden"
timeout := 50 * time.Second
err = TestHelper.RetryFor(timeout, func() error {
err = testutil.RetryFor(timeout, func() error {
out, err := TestHelper.Kubectl("", "-n", testNamespace, "logs", "-lapp=rabbitmq-client", "-crabbitmq-client")
if err != nil {
return fmt.Errorf("'kubectl logs -l app=rabbitmq-client -c rabbitmq-client' command failed\n%w", err)

View File

@ -233,7 +233,7 @@ func TestCliStatForLinkerdNamespace(t *testing.T) {
tt := tt // pin
timeout := 20 * time.Second
t.Run("linkerd "+strings.Join(tt.args, " "), func(t *testing.T) {
err := TestHelper.RetryFor(timeout, func() error {
err := testutil.RetryFor(timeout, func() error {
// Use a short time window so that transient errors at startup
// fall out of the window.
tt.args = append(tt.args, "-t", "30s")

View File

@ -162,7 +162,7 @@ func TestInjectAutoParams(t *testing.T) {
}
var pod *v1.Pod
err = TestHelper.RetryFor(30*time.Second, func() error {
err = testutil.RetryFor(30*time.Second, func() error {
pods, err := TestHelper.GetPodsForDeployment(ctx, ns, deployName)
if err != nil {
return fmt.Errorf("failed to get pods for namespace %s", ns)

View File

@ -313,8 +313,9 @@ func TestInstallOrUpgradeCli(t *testing.T) {
}
// These need to be updated (if there are changes) once a new stable is released
func helmOverridesStable(root *tls.CA) ([]string, []string) {
// helmInstallFlags returns the flags required for the `helm install` command,
// both for the linkerd-control-plane and the linkerd-viz charts
func helmInstallFlags(root *tls.CA) ([]string, []string) {
coreArgs := []string{
"--set", "controllerLogLevel=debug",
"--set", "linkerdVersion=" + TestHelper.UpgradeHelmFromVersion(),
@ -326,13 +327,16 @@ func helmOverridesStable(root *tls.CA) ([]string, []string) {
"--set", "identity.issuer.crtExpiry=" + root.Cred.Crt.Certificate.NotAfter.Format(time.RFC3339),
}
vizArgs := []string{
"--namespace", TestHelper.GetVizNamespace(),
"--create-namespace",
"--set", "linkerdVersion=" + TestHelper.UpgradeHelmFromVersion(),
}
return coreArgs, vizArgs
}
// These need to correspond to the flags in the current edge
func helmOverridesEdge(root *tls.CA) ([]string, []string) {
// helmUpgradeFlags returns the flags required for the `helm upgrade` command,
// both for the linkerd-control-plane and the linkerd-viz charts
func helmUpgradeFlags(root *tls.CA) ([]string, []string) {
skippedInboundPortsEscaped := strings.Replace(skippedInboundPorts, ",", "\\,", 1)
coreArgs := []string{
"--set", "controllerLogLevel=debug",
@ -345,7 +349,6 @@ func helmOverridesEdge(root *tls.CA) ([]string, []string) {
}
vizArgs := []string{
"--namespace", TestHelper.GetVizNamespace(),
"--create-namespace",
"--set", "linkerdVersion=" + TestHelper.GetVersion(),
}
@ -381,37 +384,23 @@ func TestInstallHelm(t *testing.T) {
"failed to generate root certificate for identity: %s", err)
}
var crdsChartToInstall string
var controlPlaneChartToInstall string
var vizChartToInstall string
var args []string
var vizArgs []string
if TestHelper.UpgradeHelmFromVersion() != "" {
crdsChartToInstall = TestHelper.GetHelmStableChart()
vizChartToInstall = TestHelper.GetLinkerdVizHelmStableChart()
args, vizArgs = helmOverridesStable(helmTLSCerts)
} else {
crdsChartToInstall = TestHelper.GetHelmCharts() + "/linkerd-crds"
controlPlaneChartToInstall = TestHelper.GetHelmCharts() + "/linkerd-control-plane"
vizChartToInstall = TestHelper.GetLinkerdVizHelmChart()
args, vizArgs = helmOverridesEdge(helmTLSCerts)
}
args, vizArgs := helmInstallFlags(helmTLSCerts)
releaseName := TestHelper.GetHelmReleaseName() + "-crds"
if stdout, stderr, err := TestHelper.HelmInstall(crdsChartToInstall, releaseName, args...); err != nil {
if stdout, stderr, err := TestHelper.HelmInstall("linkerd/linkerd-crds", releaseName, args...); err != nil {
testutil.AnnotatedFatalf(t, "'helm install' command failed",
"'helm install' command failed\n%s\n%s", stdout, stderr)
}
releaseName = TestHelper.GetHelmReleaseName() + "-control-plane"
if stdout, stderr, err := TestHelper.HelmInstall(controlPlaneChartToInstall, releaseName, args...); err != nil {
if stdout, stderr, err := TestHelper.HelmInstall("linkerd/linkerd-control-plane", releaseName, args...); err != nil {
testutil.AnnotatedFatalf(t, "'helm install' command failed",
"'helm install' command failed\n%s\n%s", stdout, stderr)
}
TestHelper.WaitRollout(t, testutil.LinkerdDeployReplicasEdge)
if stdout, stderr, err := TestHelper.HelmCmdPlain("install", vizChartToInstall, "l5d-viz", vizArgs...); err != nil {
releaseName = TestHelper.GetHelmReleaseName() + "-l5d-viz"
if stdout, stderr, err := TestHelper.HelmCmdPlain("install", "linkerd/linkerd-viz", releaseName, vizArgs...); err != nil {
testutil.AnnotatedFatalf(t, "'helm install' command failed",
"'helm install' command failed\n%s\n%s", stdout, stderr)
}
@ -477,16 +466,25 @@ func TestUpgradeHelm(t *testing.T) {
"--timeout", "60m",
"--wait",
}
extraArgs, vizArgs := helmOverridesEdge(helmTLSCerts)
extraArgs, vizArgs := helmUpgradeFlags(helmTLSCerts)
args = append(args, extraArgs...)
if stdout, stderr, err := TestHelper.HelmUpgrade(TestHelper.GetHelmCharts()+"/linkerd-crds", args...); err != nil {
releaseName := TestHelper.GetHelmReleaseName() + "-crds"
if stdout, stderr, err := TestHelper.HelmUpgrade(TestHelper.GetHelmCharts()+"/linkerd-crds", releaseName, args...); err != nil {
testutil.AnnotatedFatalf(t, "'helm upgrade' command failed",
"'helm upgrade' command failed\n%s\n%s", stdout, stderr)
}
TestHelper.WaitRollout(t, testutil.LinkerdDeployReplicasEdge)
releaseName = TestHelper.GetHelmReleaseName() + "-control-plane"
if stdout, stderr, err := TestHelper.HelmUpgrade(TestHelper.GetHelmCharts()+"/linkerd-control-plane", releaseName, args...); err != nil {
TestHelper.WaitRollout(t, testutil.LinkerdDeployReplicasEdge)
testutil.AnnotatedFatalf(t, "'helm upgrade' command failed",
"'helm upgrade' command failed\n%s\n%s", stdout, stderr)
}
TestHelper.WaitRollout(t, testutil.LinkerdVizDeployReplicas)
vizChart := TestHelper.GetLinkerdVizHelmChart()
if stdout, stderr, err := TestHelper.HelmCmdPlain("upgrade", vizChart, "l5d-viz", vizArgs...); err != nil {
releaseName = TestHelper.GetHelmReleaseName() + "-l5d-viz"
if stdout, stderr, err := TestHelper.HelmCmdPlain("upgrade", vizChart, releaseName, vizArgs...); err != nil {
testutil.AnnotatedFatalf(t, "'helm upgrade' command failed",
"'helm upgrade' command failed\n%s\n%s", stdout, stderr)
}

View File

@ -75,7 +75,7 @@ func TestSmoke(t *testing.T) {
// Use a short time window for check tests to get rid of transient
// errors
timeout := 5 * time.Minute
err = TestHelper.RetryFor(timeout, func() error {
err = testutil.RetryFor(timeout, func() error {
out, err := TestHelper.LinkerdRun(cmd...)
if err != nil {
return fmt.Errorf("'linkerd check' command failed\n%w\n%s", err, out)

View File

@ -90,7 +90,7 @@ func TestGateways(t *testing.T) {
})
timeout := time.Minute
err := TestHelper.RetryFor(timeout, func() error {
err := testutil.RetryFor(timeout, func() error {
out, err := TestHelper.LinkerdRun("--context="+contexts[testutil.SourceContextKey], "multicluster", "gateways")
if err != nil {
return err
@ -178,7 +178,7 @@ func TestTargetTraffic(t *testing.T) {
})
timeout := time.Minute
err := TestHelper.RetryFor(timeout, func() error {
err := testutil.RetryFor(timeout, func() error {
out, err := TestHelper.KubectlWithContext("",
targetCtx,
"--namespace", ns,
@ -259,7 +259,7 @@ func TestMulticlusterStatefulSetTargetTraffic(t *testing.T) {
t.Run("expect open outbound TCP connection from gateway to nginx", func(t *testing.T) {
// Use a short time window so that slow-cooker can warm-up and send
// requests.
err := TestHelper.RetryFor(1*time.Minute, func() error {
err := testutil.RetryFor(1*time.Minute, func() error {
// Check gateway metrics
metrics, err := TestHelper.LinkerdRun(dgCmd...)
if err != nil {

View File

@ -49,7 +49,7 @@ func TestEdges(t *testing.T) {
"-ojson",
}
r := regexp.MustCompile(b.String())
err := TestHelper.RetryFor(timeout, func() error {
err := testutil.RetryFor(timeout, func() error {
out, err := TestHelper.LinkerdRun(cmd...)
if err != nil {
t.Fatal(err)
@ -141,7 +141,7 @@ func TestDirectEdges(t *testing.T) {
// check edges
timeout := 50 * time.Second
testDataPath := "testdata"
err = TestHelper.RetryFor(timeout, func() error {
err = testutil.RetryFor(timeout, func() error {
out, err = TestHelper.LinkerdRun("-n", testNamespace, "-o", "json", "viz", "edges", "deploy")
if err != nil {
return err

View File

@ -115,7 +115,7 @@ func TestPolicy(t *testing.T) {
tt := tt // pin
timeout := 3 * time.Minute
t.Run("linkerd "+strings.Join(tt.args, " "), func(t *testing.T) {
err := TestHelper.RetryFor(timeout, func() error {
err := testutil.RetryFor(timeout, func() error {
// Use a short time window so that transient errors at startup
// fall out of the window.
tt.args = append(tt.args, "-t", "30s")

View File

@ -226,7 +226,7 @@ func testMetrics(t *testing.T) {
func assertRouteStat(upstream, namespace, downstream string, t *testing.T, assertFn func(stat *cmd2.JSONRouteStats) error) {
const routePath = "GET /testpath"
timeout := 2 * time.Minute
err := TestHelper.RetryFor(timeout, func() error {
err := testutil.RetryFor(timeout, func() error {
routes, err := getRoutes(upstream, namespace, []string{"--to", downstream})
if err != nil {
return fmt.Errorf("'linkerd routes' command failed: %w", err)
@ -286,7 +286,7 @@ func getRoutes(deployName, namespace string, additionalArgs []string) ([]*cmd2.J
cmd = append(cmd, "--output", "json")
var results map[string][]*cmd2.JSONRouteStats
err := TestHelper.RetryFor(2*time.Minute, func() error {
err := testutil.RetryFor(2*time.Minute, func() error {
out, err := TestHelper.LinkerdRun(cmd...)
if err != nil {
return err

View File

@ -233,7 +233,7 @@ func TestCliStatForLinkerdNamespace(t *testing.T) {
tt := tt // pin
timeout := 20 * time.Second
t.Run("linkerd "+strings.Join(tt.args, " "), func(t *testing.T) {
err := TestHelper.RetryFor(timeout, func() error {
err := testutil.RetryFor(timeout, func() error {
// Use a short time window so that transient errors at startup
// fall out of the window.
tt.args = append(tt.args, "-t", "30s")

View File

@ -68,7 +68,7 @@ func TestTracing(t *testing.T) {
checkCmd := []string{"jaeger", "check", "--wait=0"}
golden := "check.jaeger.golden"
timeout := time.Minute
err = TestHelper.RetryFor(timeout, func() error {
err = testutil.RetryFor(timeout, func() error {
out, err := TestHelper.LinkerdRun(checkCmd...)
if err != nil {
return fmt.Errorf("'linkerd jaeger check' command failed\n%w\n%s", err, out)
@ -159,7 +159,7 @@ func TestTracing(t *testing.T) {
t.Run("expect full trace", func(t *testing.T) {
timeout := 3 * time.Minute
err = TestHelper.RetryFor(timeout, func() error {
err = testutil.RetryFor(timeout, func() error {
url, err := TestHelper.URLFor(ctx, tracingNs, "jaeger", 16686)
if err != nil {
return err

View File

@ -98,7 +98,7 @@ func TestTrafficSplitCliWithSP(t *testing.T) {
t.Run(fmt.Sprintf("ensure traffic is sent to one backend only for %s", version), func(t *testing.T) {
timeout := 40 * time.Second
err := TestHelper.RetryFor(timeout, func() error {
err := testutil.RetryFor(timeout, func() error {
out, err := TestHelper.LinkerdRun("viz", "stat", "deploy", "--namespace", prefixedNs, "--from", "deploy/slow-cooker", "-t", "30s")
if err != nil {
return err
@ -148,7 +148,7 @@ func TestTrafficSplitCliWithSP(t *testing.T) {
t.Run(fmt.Sprintf("ensure traffic is sent to both backends for %s", version), func(t *testing.T) {
timeout := 40 * time.Second
err := TestHelper.RetryFor(timeout, func() error {
err := testutil.RetryFor(timeout, func() error {
out, err := TestHelper.LinkerdRun("viz", "stat", "deploy", "-n", prefixedNs, "--from", "deploy/slow-cooker", "-t", "30s")
if err != nil {

View File

@ -51,7 +51,6 @@ type helm struct {
multiclusterChart string
vizChart string
vizStableChart string
stableChart string
releaseName string
multiclusterReleaseName string
upgradeFromVersion string
@ -130,7 +129,6 @@ func NewGenericTestHelper(
clusterDomain,
helmPath,
helmCharts,
helmStableChart,
helmReleaseName,
helmMulticlusterReleaseName,
helmMulticlusterChart string,
@ -154,7 +152,6 @@ func NewGenericTestHelper(
charts: helmCharts,
multiclusterChart: helmMulticlusterChart,
multiclusterReleaseName: helmMulticlusterReleaseName,
stableChart: helmStableChart,
releaseName: helmReleaseName,
upgradeFromVersion: upgradeFromVersion,
},
@ -191,7 +188,6 @@ func NewTestHelper() *TestHelper {
multiclusterHelmChart := flag.String("multicluster-helm-chart", "charts/linkerd-multicluster", "path to linkerd2's multicluster Helm chart")
vizHelmChart := flag.String("viz-helm-chart", "charts/linkerd-viz", "path to linkerd2's viz extension Helm chart")
vizHelmStableChart := flag.String("viz-helm-stable-chart", "charts/linkerd-viz", "path to linkerd2's viz extension stable Helm chart")
helmStableChart := flag.String("helm-stable-chart", "linkerd/linkerd2", "path to linkerd2's stable Helm chart")
helmReleaseName := flag.String("helm-release", "", "install linkerd via Helm using this release name")
multiclusterHelmReleaseName := flag.String("multicluster-helm-release", "", "install linkerd multicluster via Helm using this release name")
upgradeFromVersion := flag.String("upgrade-from-version", "", "when specified, the upgrade test uses it as the base version of the upgrade")
@ -240,7 +236,6 @@ func NewTestHelper() *TestHelper {
multiclusterChart: *multiclusterHelmChart,
vizChart: *vizHelmChart,
vizStableChart: *vizHelmStableChart,
stableChart: *helmStableChart,
releaseName: *helmReleaseName,
multiclusterReleaseName: *multiclusterHelmReleaseName,
upgradeFromVersion: *upgradeHelmFromVersion,
@ -260,7 +255,7 @@ func NewTestHelper() *TestHelper {
}
testHelper.version = strings.TrimSpace(version)
kubernetesHelper, err := NewKubernetesHelper(*k8sContext, testHelper.RetryFor)
kubernetesHelper, err := NewKubernetesHelper(*k8sContext, RetryFor)
if err != nil {
exit(1, fmt.Sprintf("error creating kubernetes helper: %s", err.Error()))
}
@ -344,11 +339,6 @@ func (h *TestHelper) GetLinkerdVizHelmStableChart() string {
return h.helm.vizStableChart
}
// GetHelmStableChart returns the path to the Linkerd Helm stable chart
func (h *TestHelper) GetHelmStableChart() string {
return h.helm.stableChart
}
// UpgradeHelmFromVersion returns the version from which Linkerd should be upgraded with Helm
func (h *TestHelper) UpgradeHelmFromVersion() string {
return h.helm.upgradeFromVersion
@ -520,10 +510,10 @@ func (h *TestHelper) KubectlStream(arg ...string) (*Stream, error) {
}
// HelmUpgrade runs the helm upgrade subcommand, with the provided arguments
func (h *TestHelper) HelmUpgrade(chart string, arg ...string) (string, string, error) {
func (h *TestHelper) HelmUpgrade(chart, releaseName string, arg ...string) (string, string, error) {
withParams := append([]string{
"upgrade",
h.helm.releaseName,
releaseName,
"--kube-context", h.k8sContext,
"--namespace", h.namespace,
"--timeout", "60m",
@ -618,7 +608,7 @@ func (h *TestHelper) CheckVersion(serverVersion string) error {
// RetryFor retries a given function every second until the function returns
// without an error, or a timeout is reached. If the timeout is reached, it
// returns the last error received from the function.
func (h *TestHelper) RetryFor(timeout time.Duration, fn func() error) error {
func RetryFor(timeout time.Duration, fn func() error) error {
err := fn()
if err == nil {
return nil
@ -648,7 +638,7 @@ func (h *TestHelper) RetryFor(timeout time.Duration, fn func() error) error {
// giving pods time to start.
func (h *TestHelper) HTTPGetURL(url string) (string, error) {
var body string
err := h.RetryFor(time.Minute, func() error {
err := RetryFor(time.Minute, func() error {
resp, err := h.httpClient.Get(url)
if err != nil {
return err

View File

@ -63,7 +63,7 @@ func (h *TestHelper) TestCheckProxy(expectedVersion, namespace string) error {
func (h *TestHelper) testCheck(cmd []string, categories []healthcheck.CategoryID) error {
timeout := time.Minute * 10
return h.RetryFor(timeout, func() error {
return RetryFor(timeout, func() error {
res, err := h.LinkerdRun(cmd...)
if err != nil {
return fmt.Errorf("'linkerd check' command failed\n%w\n%s", err, res)

View File

@ -1,54 +0,0 @@
---
apiVersion: policy.linkerd.io/v1beta1
kind: Server
metadata:
namespace: {{ .Release.Namespace }}
name: admin
labels:
linkerd.io/extension: viz
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
annotations:
{{ include "partials.annotations.created-by" . }}
spec:
podSelector:
matchLabels:
linkerd.io/extension: viz
port: admin-http
proxyProtocol: HTTP/1
---
apiVersion: policy.linkerd.io/v1alpha1
kind: AuthorizationPolicy
metadata:
namespace: {{ .Release.Namespace }}
name: admin
labels:
linkerd.io/extension: viz
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
annotations:
{{ include "partials.annotations.created-by" . }}
spec:
targetRef:
group: policy.linkerd.io
kind: Server
name: admin
requiredAuthenticationRefs:
- group: policy.linkerd.io
kind: NetworkAuthentication
name: kubelet
---
apiVersion: policy.linkerd.io/v1alpha1
kind: NetworkAuthentication
metadata:
namespace: {{ .Release.Namespace }}
name: kubelet
labels:
linkerd.io/extension: viz
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
annotations:
{{ include "partials.annotations.created-by" . }}
spec:
# Ideally, this should be restricted to the actual set of IPs kubelet uses in
# a cluster. This can't easily be discovered.
networks:
- cidr: "0.0.0.0/0"
- cidr: "::/0"

View File

@ -10,6 +10,7 @@ metadata:
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
name: namespace-metadata
namespace: {{.Release.Namespace}}
{{- include "partials.image-pull-secrets" .Values.imagePullSecrets }}
---
apiVersion: rbac.authorization.k8s.io/v1
@ -24,6 +25,7 @@ metadata:
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
name: namespace-metadata
namespace: {{.Release.Namespace}}
rules:
- apiGroups: [""]
resources: ["namespaces"]
@ -42,6 +44,7 @@ metadata:
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
name: namespace-metadata
namespace: {{.Release.Namespace}}
roleRef:
kind: Role
name: namespace-metadata

View File

@ -12,6 +12,7 @@ metadata:
app.kubernetes.io/version: {{default .Values.linkerdVersion .Values.cliVersion}}
{{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
name: namespace-metadata
namespace: {{.Release.Namespace}}
spec:
template:
metadata:

Some files were not shown because too many files have changed in this diff Show More