Compare commits
312 Commits
Author | SHA1 | Date |
---|---|---|
|
87d8ae049d | |
|
be4e4b7a1f | |
|
66da496e54 | |
|
2405020a74 | |
|
425bdfe772 | |
|
e6d2af0db1 | |
|
fbaaba8ee4 | |
|
dda963c349 | |
|
4dc4eeeee8 | |
|
3ff781b269 | |
|
da326b4746 | |
|
2f8de0a3cd | |
|
948ddd3cda | |
|
a600a89ccd | |
|
aec986efd8 | |
|
7ee72ae69a | |
|
b35c4aa8a1 | |
|
75749f107f | |
|
830b916ab4 | |
|
3edc1afba1 | |
|
d722eaa2cd | |
|
e919ec0885 | |
|
2b1f8b06ce | |
|
7d469f6fcb | |
|
fc008c46bc | |
|
b6b317941f | |
|
64e4f7ce6d | |
|
416cd364d8 | |
|
428cc556e6 | |
|
16c4de8ed7 | |
|
9861b12689 | |
|
3517daf6bf | |
|
5b4575ced5 | |
|
d60d8d2f65 | |
|
7a6c0b70f2 | |
|
77c2ee4de5 | |
|
614322eeaf | |
|
65b1900ea8 | |
|
b6cf07809e | |
|
1f05750549 | |
|
fdbde192ff | |
|
849fd7c6b3 | |
|
5b097c5ade | |
|
0d9cc66fc2 | |
|
bd1947a5bd | |
|
d8ae631ab2 | |
|
3e16689619 | |
|
56280ec3f4 | |
|
eae1bb63aa | |
|
10eb322dff | |
|
d392fbe835 | |
|
8f6fd9bdc2 | |
|
2bbae62d45 | |
|
8666a56905 | |
|
e4536a8f21 | |
|
795a1e393f | |
|
174a5927de | |
|
4f9a1a67c5 | |
|
0cbb72c069 | |
|
f6406b46af | |
|
163a579c59 | |
|
63ccc1dd18 | |
|
92199133c3 | |
|
1b76b44fcf | |
|
e8cd44d295 | |
|
060fa0d24f | |
|
8c06e5c1cf | |
|
3f564fd060 | |
|
6d7fb3f0c3 | |
|
dd3af13e80 | |
|
39351c0bd1 | |
|
887765f6bf | |
|
30c92f7c08 | |
|
d50d00b41c | |
|
f8eecef847 | |
|
17aa1a4f56 | |
|
cde6f7f38e | |
|
e89023e7cb | |
|
97e4697733 | |
|
cf6c35a9a7 | |
|
a3a759a2c9 | |
|
3697aac1e2 | |
|
35145714c9 | |
|
884240d057 | |
|
043c224622 | |
|
fbf3ee7143 | |
|
a2e03e2c6f | |
|
dacfe2e69d | |
|
1b2dd897a1 | |
|
e8f05e2933 | |
|
1d12d275f4 | |
|
8347d52cbc | |
|
c5d712540b | |
|
a9770ff513 | |
|
240bd0cc24 | |
|
10954bdc19 | |
|
8a5038265c | |
|
8df2c9125d | |
|
f5dda24bb9 | |
|
883ac114d6 | |
|
b5b614dd62 | |
|
752e49b362 | |
|
ab550a799b | |
|
050ef65222 | |
|
fe3118bb22 | |
|
3fa49f772c | |
|
7e52dd106e | |
|
411e390f7b | |
|
6db9e24fcc | |
|
ffd4e471ef | |
|
e5546c7bf8 | |
|
090a23140b | |
|
15d2127e67 | |
|
5d189e8651 | |
|
fcba408268 | |
|
b73c8d34b4 | |
|
3636f158fe | |
|
312a7316e9 | |
|
643be80bfd | |
|
a649f463a5 | |
|
aabb0ac107 | |
|
03de37980e | |
|
3658d04bcd | |
|
523491fe6b | |
|
11967ed1f5 | |
|
5c834e1a70 | |
|
1eca1ff8f1 | |
|
45e2fbaed2 | |
|
9baf2b3a9a | |
|
c3be55a934 | |
|
70e511a123 | |
|
15a81f2fac | |
|
48325c8aac | |
|
1c52a643a3 | |
|
8a7d5e0743 | |
|
e2ea632858 | |
|
5371a80e57 | |
|
a478a96f09 | |
|
69983f9a58 | |
|
ce74caa803 | |
|
4c1b4c90ce | |
|
cf97e91d51 | |
|
65ee0cf388 | |
|
4311d7dada | |
|
e67acdefdb | |
|
3245f51455 | |
|
5102e86f18 | |
|
c742cb7e42 | |
|
94db1c531f | |
|
a52e826c14 | |
|
e19ab018c7 | |
|
354e71be50 | |
|
0171236e3b | |
|
0ec9d9ff9c | |
|
5dc2ceef9b | |
|
684c1c4de7 | |
|
38d1e0070d | |
|
db1b86a5dc | |
|
0e466eaee0 | |
|
a31e7b3bef | |
|
faa72c8929 | |
|
93b955c073 | |
|
d582150c99 | |
|
b40137a8b8 | |
|
d4392263f0 | |
|
8e1d585ec9 | |
|
12f4a9ec2b | |
|
a86f261f20 | |
|
2482014b43 | |
|
1014f450b1 | |
|
29cfc64677 | |
|
81970449d5 | |
|
f7c2d1b707 | |
|
e8ea9c4817 | |
|
86a953c2cb | |
|
47b4238a14 | |
|
e4c83327a9 | |
|
3486d4353c | |
|
e8ebca00e0 | |
|
50de4a3ee5 | |
|
b0405f439e | |
|
db6b88c870 | |
|
a92fd57ee5 | |
|
8ee864ff39 | |
|
a443c812eb | |
|
2111db5ab5 | |
|
f253be609d | |
|
f61118efb7 | |
|
125c9a8b5f | |
|
4450fb8bc7 | |
|
a8e4c414c5 | |
|
1466e277ac | |
|
8d32466315 | |
|
d2c7b08f7e | |
|
18a44e867f | |
|
9b7ba7d62e | |
|
3f3660cc21 | |
|
ffaefaf0e4 | |
|
2e49eb6615 | |
|
cf7d539c5a | |
|
60997865f2 | |
|
c0d0fa6b13 | |
|
1d77ac7934 | |
|
abf872ed91 | |
|
ccea60a994 | |
|
4792a5067a | |
|
9c9174c310 | |
|
1161f3674a | |
|
c9c063ddd8 | |
|
992ce6ac12 | |
|
411b758a5e | |
|
09d2fdc3ce | |
|
6d35c98a19 | |
|
712e04cf44 | |
|
c8b3e73514 | |
|
2583d2a611 | |
|
173ad1edf4 | |
|
4e4a6ea77f | |
|
9c5bacb0f9 | |
|
d3bf566b82 | |
|
a64fce5574 | |
|
bbd5b1a2c1 | |
|
778b7d1104 | |
|
00057c565f | |
|
00d03133f1 | |
|
5467520acc | |
|
d06c9c79f9 | |
|
8aff931500 | |
|
b1f7b77c8c | |
|
4afdd4a493 | |
|
e95b3a5ce6 | |
|
4f9cb2459a | |
|
f0874d713d | |
|
24f5c857c3 | |
|
58cea95eff | |
|
e84e232404 | |
|
6d2ae5590d | |
|
c068daa8a0 | |
|
c15c915c49 | |
|
e4136e0766 | |
|
8a7ec17285 | |
|
d12b812d4e | |
|
1b342458e5 | |
|
7ba04134d1 | |
|
b5556adfdd | |
|
08287be55d | |
|
59cdfd7916 | |
|
83b7b7dfdc | |
|
1be564db9c | |
|
2a592f1fb4 | |
|
2175540d80 | |
|
2f730f1d6a | |
|
6114a262ef | |
|
8c92254829 | |
|
141f06c816 | |
|
fc2576ab92 | |
|
2fc245c7fc | |
|
f2960be2a1 | |
|
51f79481e8 | |
|
883555a069 | |
|
1674a8359e | |
|
23e68d8069 | |
|
144e83831e | |
|
635a193b82 | |
|
7ee3e85bf0 | |
|
3ff897eca8 | |
|
3e888dfb56 | |
|
cce0ab5475 | |
|
1fea91861f | |
|
9f2871cf87 | |
|
f3930c55ce | |
|
c1a012ddff | |
|
f14932d5d6 | |
|
46931a27e2 | |
|
6e47ed61ce | |
|
53144c9da1 | |
|
063e2dbfe9 | |
|
57e3bf5026 | |
|
4f143202cd | |
|
cdd988dff0 | |
|
91ffc34c4b | |
|
77435f38f3 | |
|
17f0309214 | |
|
c18265a2ee | |
|
e80bc989b9 | |
|
8bd9e8a441 | |
|
e9661e4a48 | |
|
4c4ccda93f | |
|
74616d1b0d | |
|
6a6bd1a42b | |
|
8af1b2ae56 | |
|
c4c745b548 | |
|
3df45d4dd9 | |
|
7d166758e2 | |
|
4f201e64d1 | |
|
d4ab65e1f3 | |
|
ba8a0d5ebd | |
|
01f7dbb2a8 | |
|
4b94710739 | |
|
70a7729137 | |
|
22aba1e87d | |
|
56fa886671 | |
|
0450ea47cc | |
|
597ada466c | |
|
9f49945b6c | |
|
84a503fe80 | |
|
4fda74fc6f | |
|
550bcb60a9 | |
|
ca2f571444 | |
|
17c042dde0 | |
|
3e487081da | |
|
189333d012 |
|
@ -1,4 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "Uploading code coverage results"
|
||||
bash <(curl -s https://codecov.io/bash)
|
|
@ -5,7 +5,11 @@ if [[ -z $OPERATOR_VERSION ]]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
JAEGER_VERSION=$(echo $JAEGER_VERSION | tr -d '"')
|
||||
JAEGER_AGENT_VERSION=$(echo $JAEGER_AGENT_VERSION | tr -d '"')
|
||||
|
||||
|
||||
PREVIOUS_VERSION=$(grep operator= versions.txt | awk -F= '{print $2}')
|
||||
|
||||
|
@ -20,11 +24,11 @@ sed "s~replaces: jaeger-operator.v.*~replaces: jaeger-operator.v${PREVIOUS_VERSI
|
|||
sed -i "s~all-in-one:.*~all-in-one:${JAEGER_VERSION}~gi" examples/all-in-one-with-options.yaml
|
||||
|
||||
# statefulset-manual-sidecar
|
||||
sed -i "s~jaeger-agent:.*~jaeger-agent:${JAEGER_VERSION}~gi" examples/statefulset-manual-sidecar.yaml
|
||||
sed -i "s~jaeger-agent:.*~jaeger-agent:${JAEGER_AGENT_VERSION}~gi" examples/statefulset-manual-sidecar.yaml
|
||||
|
||||
# operator-with-tracing
|
||||
sed -i "s~jaeger-operator:.*~jaeger-operator:${OPERATOR_VERSION}~gi" examples/operator-with-tracing.yaml
|
||||
sed -i "s~jaeger-agent:.*~jaeger-agent:${JAEGER_VERSION}~gi" examples/operator-with-tracing.yaml
|
||||
sed -i "s~jaeger-agent:.*~jaeger-agent:${JAEGER_AGENT_VERSION}~gi" examples/operator-with-tracing.yaml
|
||||
|
||||
# tracegen
|
||||
sed -i "s~jaeger-tracegen:.*~jaeger-tracegen:${JAEGER_VERSION}~gi" examples/tracegen.yaml
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
bash <(curl -s https://codecov.io/bash)
|
|
@ -1,11 +1,35 @@
|
|||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: docker
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "03:00"
|
||||
timezone: "Europe/Berlin"
|
||||
labels:
|
||||
- dependencies
|
||||
- docker
|
||||
- ok-to-test
|
||||
- package-ecosystem: docker
|
||||
directory: "/tests"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "03:00"
|
||||
timezone: "Europe/Berlin"
|
||||
labels:
|
||||
- dependencies
|
||||
- docker
|
||||
- ok-to-test
|
||||
- package-ecosystem: gomod
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "03:00"
|
||||
timezone: "Europe/Berlin"
|
||||
labels:
|
||||
- dependencies
|
||||
- go
|
||||
- ok-to-test
|
||||
groups:
|
||||
golang-org-x:
|
||||
patterns:
|
||||
|
@ -32,3 +56,7 @@ updates:
|
|||
interval: "daily"
|
||||
time: "03:00"
|
||||
timezone: "Europe/Berlin"
|
||||
labels:
|
||||
- dependencies
|
||||
- github_actions
|
||||
- ok-to-test
|
||||
|
|
|
@ -10,19 +10,22 @@ on:
|
|||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
basic-checks:
|
||||
runs-on: ubuntu-20.04
|
||||
env:
|
||||
USER: jaegertracing
|
||||
steps:
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: "1.21"
|
||||
|
||||
- name: Check out code into the Go module directory
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
|
||||
with:
|
||||
go-version: "1.22"
|
||||
|
||||
- name: "install kubebuilder"
|
||||
run: ./hack/install/install-kubebuilder.sh
|
||||
|
@ -34,6 +37,6 @@ jobs:
|
|||
run: make install-tools ci
|
||||
|
||||
- name: "upload test coverage report"
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
run: ./.ci/upload-test-coverage.sh
|
||||
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
|
|
@ -10,8 +10,15 @@ on:
|
|||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
codeql-analyze:
|
||||
permissions:
|
||||
actions: read # for github/codeql-action/init to get workflow details
|
||||
contents: read # for actions/checkout to fetch code
|
||||
security-events: write # for github/codeql-action/autobuild to send a status report
|
||||
name: CodeQL Analyze
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
@ -22,19 +29,24 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: "Set up Go"
|
||||
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
|
||||
# Disable CodeQL for tests
|
||||
# https://github.com/github/codeql/issues/4786
|
||||
- run: rm -rf ./tests
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
uses: github/codeql-action/init@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
|
||||
with:
|
||||
languages: go
|
||||
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
uses: github/codeql-action/autobuild@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
uses: github/codeql-action/analyze@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
name: Elasticsearch E2E tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: e2e-tests-${{ github.ref }}-${{ github.workflow }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
run-e2e-elasticsearch-test-suite:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
kube-version:
|
||||
- "1.19"
|
||||
- "1.28"
|
||||
name: Run Elasticsearch E2E tests
|
||||
steps:
|
||||
- name: "Check out code into the Go module directory"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./hack/actions/e2e
|
||||
with:
|
||||
testsuite_name: elasticsearch
|
||||
kube_version: ${{ matrix.kube-version }}
|
|
@ -1,34 +0,0 @@
|
|||
name: Examples E2E tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: e2e-tests-${{ github.ref }}-${{ github.workflow }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
run-e2e-examples-test-suite:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
kube-version:
|
||||
- "1.19"
|
||||
- "1.28"
|
||||
name: Run examples E2E tests
|
||||
steps:
|
||||
- name: "Check out code into the Go module directory"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./hack/actions/e2e
|
||||
with:
|
||||
testsuite_name: examples
|
||||
kube_version: ${{ matrix.kube-version }}
|
|
@ -1,34 +0,0 @@
|
|||
name: Generate E2E tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: e2e-tests-${{ github.ref }}-${{ github.workflow }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
run-e2e-generate-test-suite:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
kube-version:
|
||||
- "1.19"
|
||||
- "1.28"
|
||||
name: Run generate E2E tests
|
||||
steps:
|
||||
- name: "Check out code into the Go module directory"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./hack/actions/e2e
|
||||
with:
|
||||
testsuite_name: generate
|
||||
kube_version: ${{ matrix.kube-version }}
|
|
@ -1,34 +0,0 @@
|
|||
name: Miscellaneous E2E tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: e2e-tests-${{ github.ref }}-${{ github.workflow }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
run-e2e-miscellaneous-test-suite:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
kube-version:
|
||||
- "1.19"
|
||||
- "1.28"
|
||||
name: Run miscellaneous E2E tests
|
||||
steps:
|
||||
- name: "Check out code into the Go module directory"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./hack/actions/e2e
|
||||
with:
|
||||
testsuite_name: miscellaneous
|
||||
kube_version: ${{ matrix.kube-version }}
|
|
@ -1,34 +0,0 @@
|
|||
name: Sidecar E2E tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: e2e-tests-${{ github.ref }}-${{ github.workflow }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
run-e2e-sidecar-test-suite:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
kube-version:
|
||||
- "1.19"
|
||||
- "1.28"
|
||||
name: Run sidecar E2E tests
|
||||
steps:
|
||||
- name: "Check out code into the Go module directory"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./hack/actions/e2e
|
||||
with:
|
||||
testsuite_name: sidecar
|
||||
kube_version: ${{ matrix.kube-version }}
|
|
@ -1,34 +0,0 @@
|
|||
name: Streaming E2E tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: e2e-tests-${{ github.ref }}-${{ github.workflow }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
run-e2e-streaming-test-suite:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
kube-version:
|
||||
- "1.19"
|
||||
- "1.28"
|
||||
name: Run streaming E2E tests
|
||||
steps:
|
||||
- name: "Check out code into the Go module directory"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./hack/actions/e2e
|
||||
with:
|
||||
testsuite_name: streaming
|
||||
kube_version: ${{ matrix.kube-version }}
|
|
@ -1,34 +0,0 @@
|
|||
name: UI E2E tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: e2e-tests-${{ github.ref }}-${{ github.workflow }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
run-e2e-allinone-test-suite:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
kube-version:
|
||||
- "1.19"
|
||||
- "1.28"
|
||||
name: UI E2E tests
|
||||
steps:
|
||||
- name: "Check out code into the Go module directory"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./hack/actions/e2e
|
||||
with:
|
||||
testsuite_name: ui
|
||||
kube_version: ${{ matrix.kube-version }}
|
|
@ -1,34 +0,0 @@
|
|||
name: Upgrade E2E tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: e2e-tests-${{ github.ref }}-${{ github.workflow }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
run-e2e-upgrade-test-suite:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
kube-version:
|
||||
- "1.19"
|
||||
- "1.28"
|
||||
name: Run upgrade E2E tests
|
||||
steps:
|
||||
- name: "Check out code into the Go module directory"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./hack/actions/e2e
|
||||
with:
|
||||
testsuite_name: upgrade
|
||||
kube_version: ${{ matrix.kube-version }}
|
|
@ -0,0 +1,84 @@
|
|||
name: E2E tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
concurrency:
|
||||
group: e2e-tests-${{ github.ref }}-${{ github.workflow }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
e2e:
|
||||
name: "Run ${{ matrix.testsuite.label }} E2E tests (${{ matrix.kube-version }})"
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
kube-version:
|
||||
- "1.19"
|
||||
- "1.30"
|
||||
testsuite:
|
||||
- { name: "elasticsearch", label: "Elasticsearch" }
|
||||
- { name: "examples", label: "Examples" }
|
||||
- { name: "generate", label: "Generate" }
|
||||
- { name: "miscellaneous", label: "Miscellaneous" }
|
||||
- { name: "sidecar", label: "Sidecar" }
|
||||
- { name: "streaming", label: "Streaming" }
|
||||
- { name: "ui", label: "UI" }
|
||||
- { name: "upgrade", label: "Upgrade" }
|
||||
steps:
|
||||
- name: "Check out code into the Go module directory"
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: "Set up Go"
|
||||
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
|
||||
with:
|
||||
go-version: "1.22"
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
with:
|
||||
install: true
|
||||
- name: Cache Docker layers
|
||||
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4.2.2
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: e2e-${{ github.sha }}
|
||||
restore-keys: |
|
||||
e2e-
|
||||
- name: "Install KIND"
|
||||
run: ./hack/install/install-kind.sh
|
||||
shell: bash
|
||||
- name: "Install KUTTL"
|
||||
run: ./hack/install/install-kuttl.sh
|
||||
shell: bash
|
||||
- name: "Install gomplate"
|
||||
run: ./hack/install/install-gomplate.sh
|
||||
shell: bash
|
||||
- name: "Install dependencies"
|
||||
run: make install-tools
|
||||
shell: bash
|
||||
- name: "Run ${{ matrix.testsuite.label }} E2E test suite on Kube ${{ matrix.kube-version }}"
|
||||
env:
|
||||
VERBOSE: "true"
|
||||
KUBE_VERSION: "${{ matrix.kube-version }}"
|
||||
DOCKER_BUILD_OPTIONS: "--cache-from type=local,src=/tmp/.buildx-cache --cache-to type=local,dest=/tmp/.buildx-cache-new,mode=max --load"
|
||||
run: make run-e2e-tests-${{ matrix.testsuite.name }}
|
||||
shell: bash
|
||||
# Temp fix
|
||||
# https://github.com/docker/build-push-action/issues/252
|
||||
# https://github.com/moby/buildkit/issues/1896
|
||||
- name: Move cache
|
||||
run: |
|
||||
rm -rf /tmp/.buildx-cache
|
||||
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
|
||||
shell: bash
|
|
@ -0,0 +1,54 @@
|
|||
name: Scorecard supply-chain security
|
||||
on:
|
||||
# For Branch-Protection check. Only the default branch is supported. See
|
||||
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
|
||||
branch_protection_rule:
|
||||
# To guarantee Maintained check is occasionally updated. See
|
||||
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
|
||||
schedule:
|
||||
- cron: '45 13 * * 1'
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
analysis:
|
||||
name: Scorecard analysis
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
# Needed to upload the results to code-scanning dashboard.
|
||||
security-events: write
|
||||
# Needed to publish results and get a badge (see publish_results below).
|
||||
id-token: write
|
||||
# Uncomment the permissions below if installing in a private repository.
|
||||
# contents: read
|
||||
# actions: read
|
||||
|
||||
steps:
|
||||
- name: "Checkout code"
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: "Run analysis"
|
||||
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
|
||||
with:
|
||||
results_file: results.sarif
|
||||
results_format: sarif
|
||||
publish_results: true
|
||||
|
||||
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||
# format to the repository Actions tab.
|
||||
- name: "Upload artifact"
|
||||
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
|
||||
with:
|
||||
name: SARIF file
|
||||
path: results.sarif
|
||||
retention-days: 5
|
||||
|
||||
# Upload the results to GitHub's code scanning dashboard.
|
||||
- name: "Upload to code-scanning"
|
||||
uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
|
||||
with:
|
||||
sarif_file: results.sarif
|
|
@ -6,15 +6,18 @@ on:
|
|||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
USER: jaegertracing
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: docker/setup-qemu-action@v2.2.0
|
||||
- uses: docker/setup-buildx-action@v3.0.0
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
|
||||
- uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
- name: "publishes the images"
|
||||
env:
|
||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||
|
|
|
@ -6,26 +6,25 @@ on:
|
|||
- 'v*'
|
||||
|
||||
jobs:
|
||||
unit-tests:
|
||||
release:
|
||||
runs-on: ubuntu-20.04
|
||||
env:
|
||||
USER: jaegertracing
|
||||
steps:
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
|
||||
with:
|
||||
go-version: "1.21"
|
||||
go-version: "1.22"
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: "install kubebuilder"
|
||||
run: ./hack/install/install-kubebuilder.sh
|
||||
|
||||
- name: "install kustomize"
|
||||
run: ./hack/install/install-kustomize.sh
|
||||
|
||||
- uses: docker/setup-qemu-action@v2.2.0
|
||||
- uses: docker/setup-buildx-action@v3.0.0
|
||||
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
|
||||
- uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
|
||||
- name: "generate release resources"
|
||||
run: make release-artifacts USER=jaegertracing
|
||||
|
|
|
@ -10,13 +10,16 @@ on:
|
|||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
operator-sdk-scorecard:
|
||||
name: "Operator-SDK Scorecard"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: "Check out code"
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: "Install KIND"
|
||||
run: ./hack/install/install-kind.sh
|
||||
- name: "Install KUTTL"
|
||||
|
|
|
@ -1,25 +1,3 @@
|
|||
run:
|
||||
go: '1.20'
|
||||
timeout: 10m
|
||||
|
||||
linters-settings:
|
||||
goimports:
|
||||
local-prefixes: github.com/jaegertracing/jaeger-operator
|
||||
gosimple:
|
||||
go: "1.20"
|
||||
|
||||
linters:
|
||||
enable:
|
||||
- gofmt
|
||||
- gofumpt
|
||||
- goimports
|
||||
- gosec
|
||||
- govet
|
||||
- misspell
|
||||
- bidichk
|
||||
disable:
|
||||
- errcheck
|
||||
|
||||
issues:
|
||||
# Excluding configuration per-path, per-linter, per-text and per-source
|
||||
exclude-rules:
|
||||
|
@ -27,3 +5,29 @@ issues:
|
|||
- path: _test\.go
|
||||
linters:
|
||||
- gosec
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: "SA1019:"
|
||||
|
||||
linters-settings:
|
||||
goimports:
|
||||
local-prefixes: github.com/jaegertracing/jaeger-operator
|
||||
gosimple:
|
||||
go: "1.22"
|
||||
|
||||
linters:
|
||||
enable:
|
||||
- bidichk
|
||||
- errorlint
|
||||
- gofumpt
|
||||
- goimports
|
||||
- gosec
|
||||
- govet
|
||||
- misspell
|
||||
- testifylint
|
||||
disable:
|
||||
- errcheck
|
||||
|
||||
run:
|
||||
go: '1.22'
|
||||
timeout: 10m
|
||||
|
|
42
CHANGELOG.md
42
CHANGELOG.md
|
@ -1,5 +1,47 @@
|
|||
Changes by Version
|
||||
==================
|
||||
## v1.65.0 (2025-01-22)
|
||||
|
||||
* Pin agent version to 1.62.0 ([#2790](https://github.com/jaegertracing/jaeger-operator/pull/2790), [@rubenvp8510](https://github.com/rubenvp8510))
|
||||
* Added compatibility for Jaeger Operator v1.61.x and v1.62.x ([#2725](https://github.com/jaegertracing/jaeger-operator/pull/2725), [@mooneeb](https://github.com/mooneeb))
|
||||
|
||||
## v1.62.0 (2024-10-10)
|
||||
|
||||
* TRACING-4238 | Fix gatewat 502 timeout ([#2694](https://github.com/jaegertracing/jaeger-operator/pull/2694), [@pavolloffay](https://github.com/pavolloffay))
|
||||
* feat: added missing test for elasticsearch reconciler ([#2662](https://github.com/jaegertracing/jaeger-operator/pull/2662), [@Ankit152](https://github.com/Ankit152))
|
||||
|
||||
## v1.61.0 (2024-09-16)
|
||||
|
||||
* Bump google.golang.org/grpc from 1.66.0 to 1.66.1 ([#2675](https://github.com/jaegertracing/jaeger-operator/pull/2675), [@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
* Bump google.golang.org/grpc from 1.65.0 to 1.66.0 ([#2670](https://github.com/jaegertracing/jaeger-operator/pull/2670), [@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
* Bump the opentelemetry group with 9 updates ([#2668](https://github.com/jaegertracing/jaeger-operator/pull/2668), [@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
|
||||
## v1.60.0 (2024-08-13)
|
||||
* Fix Golang version in go.mod ([#2652](https://github.com/jaegertracing/jaeger-operator/pull/2652), [@iblancasa](https://github.com/iblancasa))
|
||||
|
||||
## v1.60.0 (2024-08-09)
|
||||
* Test on k8s 1.30 ([#2647](https://github.com/jaegertracing/jaeger-operator/pull/2647), [@pavolloffay](https://github.com/pavolloffay))
|
||||
* Bump go to 1.22 and controller-gen to 1.14 ([#2646](https://github.com/jaegertracing/jaeger-operator/pull/2646), [@pavolloffay](https://github.com/pavolloffay))
|
||||
|
||||
## v1.59.0 (2024-08-06)
|
||||
* Update compatibility matrix for v1.57.x ([#2594](https://github.com/jaegertracing/jaeger-operator/pull/2594), [@mooneeb](https://github.com/mooneeb))
|
||||
* imagePullSecrets is not set for agent DaemonSet ([#2563](https://github.com/jaegertracing/jaeger-operator/pull/2563), [@antoniomerlin](https://github.com/antoniomerlin))
|
||||
|
||||
## v1.57.0 (2024-05-06)
|
||||
|
||||
## v1.55.0 (2024-03-22)
|
||||
* Add server URL to JaegerMetricsStorageSpec ([#2481](https://github.com/jaegertracing/jaeger-operator/pull/2481), [@antoniomerlin](https://github.com/antoniomerlin))
|
||||
* Use the host set in the Ingess field for the OpenShift Route ([#2409](https://github.com/jaegertracing/jaeger-operator/pull/2409), [@iblancasa](https://github.com/iblancasa))
|
||||
* Add minimum Kubernetes and OpenShift versions ([#2492](https://github.com/jaegertracing/jaeger-operator/pull/2492), [@andreasgerstmayr](https://github.com/andreasgerstmayr))
|
||||
|
||||
## v1.54.0 (2024-02-14)
|
||||
* apis/v1: add jaeger agent deprecation warning ([#2471](https://github.com/jaegertracing/jaeger-operator/pull/2471), [@frzifus](https://github.com/frzifus))
|
||||
|
||||
## V1.53.0 (2024-01-17)
|
||||
* Choose the newer autoscaling version by default ([#2374](https://github.com/jaegertracing/jaeger-operator/pull/2374), [@iblancasa](https://github.com/iblancasa))
|
||||
* Upgrade operator-sdk to 1.32.0 ([#2388](https://github.com/jaegertracing/jaeger-operator/pull/2388), [@iblancasa](https://github.com/iblancasa))
|
||||
* Fix containerImage field and remove statement about failing CI ([#2386](https://github.com/jaegertracing/jaeger-operator/pull/2386), [@iblancasa](https://github.com/iblancasa))
|
||||
* Fix injection: prefer jaeger in the same namespace ([#2383](https://github.com/jaegertracing/jaeger-operator/pull/2383), [@pavolloffay](https://github.com/pavolloffay))
|
||||
|
||||
## v1.52.0 (2023-12-07)
|
||||
* Add missing container security context settings and tests ([#2354](https://github.com/jaegertracing/jaeger-operator/pull/2354), [@tingeltangelthomas](https://github.com/tingeltangelthomas))
|
||||
|
|
|
@ -1,8 +1,20 @@
|
|||
The following table shows the compatibility of jaeger operator with different components, in this particular case we shows Kubernetes and Strimzi operator compatibility
|
||||
|
||||
The following table shows the compatibility of Jaeger Operator with three different components: Kubernetes, Strimzi Operator, and Cert-Manager.
|
||||
|
||||
| Jaeger Operator | Kubernetes | Strimzi Operator | Cert-Manager |
|
||||
|-----------------|-----------------|--------------------|--------------|
|
||||
|-----------------|----------------|--------------------|--------------|
|
||||
| v1.62.x | v1.19 to v1.30 | v0.32 | v1.6.1 |
|
||||
| v1.61.x | v1.19 to v1.30 | v0.32 | v1.6.1 |
|
||||
| v1.60.x | v1.19 to v1.30 | v0.32 | v1.6.1 |
|
||||
| v1.59.x | v1.19 to v1.28 | v0.32 | v1.6.1 |
|
||||
| v1.58.x | skipped | skipped | skipped |
|
||||
| v1.57.x | v1.19 to v1.28 | v0.32 | v1.6.1 |
|
||||
| v1.56.x | v1.19 to v1.28 | v0.32 | v1.6.1 |
|
||||
| v1.55.x | v1.19 to v1.28 | v0.32 | v1.6.1 |
|
||||
| v1.54.x | v1.19 to v1.28 | v0.32 | v1.6.1 |
|
||||
| v1.53.x | v1.19 to v1.28 | v0.32 | v1.6.1 |
|
||||
| v1.52.x | v1.19 to v1.28 | v0.32 | v1.6.1 |
|
||||
| v1.51.x | v1.19 to v1.28 | v0.32 | v1.6.1 |
|
||||
| v1.50.x | v1.19 to v1.28 | v0.32 | v1.6.1 |
|
||||
| v1.49.x | v1.19 to v1.28 | v0.32 | v1.6.1 |
|
||||
| v1.48.x | v1.19 to v1.27 | v0.32 | v1.6.1 |
|
||||
| v1.47.x | v1.19 to v1.27 | v0.32 | v1.6.1 |
|
||||
|
@ -20,6 +32,3 @@ The following table shows the compatibility of jaeger operator with different co
|
|||
| v1.35.x | v1.19 to v1.24 | v0.23 | v1.6.1 |
|
||||
| v1.34.x | v1.19 to v1.24 | v0.23 | v1.6.1 |
|
||||
| v1.33.x | v1.19 to v1.23 | v0.23 | v1.6.1 |
|
||||
| v1.32.x | v1.19 to v1.22 | v0.23 | v1.6.1 |
|
||||
| v1.31.x | v1.19 to v1.22 | v0.23 | v1.6.1 |
|
||||
| v1.30.x | v1.19 to v1.22 | v0.23 | |
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Build the manager binary
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.21 as builder
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.22@sha256:f43c6f049f04cbbaeb28f0aad3eea15274a7d0a7899a617d0037aec48d7ab010 as builder
|
||||
|
||||
WORKDIR /workspace
|
||||
# Copy the Go Modules manifests
|
||||
|
@ -21,6 +21,7 @@ COPY pkg/ pkg/
|
|||
COPY versions.txt versions.txt
|
||||
|
||||
ARG JAEGER_VERSION
|
||||
ARG JAEGER_AGENT_VERSION
|
||||
ARG VERSION_PKG
|
||||
ARG VERSION
|
||||
ARG VERSION_DATE
|
||||
|
@ -32,7 +33,7 @@ ARG VERSION_DATE
|
|||
# see last part of https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images
|
||||
ARG TARGETARCH
|
||||
# Build
|
||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} GO111MODULE=on go build -ldflags="-X ${VERSION_PKG}.version=${VERSION} -X ${VERSION_PKG}.buildDate=${VERSION_DATE} -X ${VERSION_PKG}.defaultJaeger=${JAEGER_VERSION}" -a -o jaeger-operator main.go
|
||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} GO111MODULE=on go build -ldflags="-X ${VERSION_PKG}.version=${VERSION} -X ${VERSION_PKG}.buildDate=${VERSION_DATE} -X ${VERSION_PKG}.defaultJaeger=${JAEGER_VERSION} -X ${VERSION_PKG}.defaultAgent=${JAEGER_AGENT_VERSION}" -a -o jaeger-operator main.go
|
||||
|
||||
FROM quay.io/centos/centos:stream9
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Build the manager binary
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.20 as builder
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.22@sha256:f43c6f049f04cbbaeb28f0aad3eea15274a7d0a7899a617d0037aec48d7ab010 as builder
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
|
@ -27,7 +27,7 @@ RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o ./index -a ./tests/assert-
|
|||
|
||||
# Use the curl container image to ensure we have curl installed. Also, it is a
|
||||
# minimal container image
|
||||
FROM curlimages/curl:7.81.0
|
||||
FROM curlimages/curl@sha256:94e9e444bcba979c2ea12e27ae39bee4cd10bc7041a472c4727a558e213744e6
|
||||
WORKDIR /
|
||||
COPY --from=builder /workspace/reporter .
|
||||
COPY --from=builder /workspace/reporter-otlp .
|
||||
|
|
25
Makefile
25
Makefile
|
@ -29,6 +29,11 @@ BUNDLE_IMG ?= ${IMG_PREFIX}/${OPERATOR_NAME}-bundle:$(addprefix v,${VERSION})
|
|||
OUTPUT_BINARY ?= "$(BIN_DIR)/jaeger-operator"
|
||||
VERSION_PKG ?= "github.com/jaegertracing/jaeger-operator/pkg/version"
|
||||
export JAEGER_VERSION ?= "$(shell grep jaeger= versions.txt | awk -F= '{print $$2}')"
|
||||
# agent was removed in jaeger 1.62.0, and the new versions of jaeger doesn't distribute the images anymore
|
||||
# for that reason the last version of the agent is 1.62.0 and is pined here so we can update jaeger and maintain
|
||||
# the latest agent image.
|
||||
export JAEGER_AGENT_VERSION ?= "1.62.0"
|
||||
|
||||
# Kafka and Kafka Operator variables
|
||||
STORAGE_NAMESPACE ?= "${shell kubectl get sa default -o jsonpath='{.metadata.namespace}' || oc project -q}"
|
||||
KAFKA_NAMESPACE ?= "kafka"
|
||||
|
@ -51,7 +56,10 @@ CERTMANAGER_VERSION ?= 1.6.1
|
|||
CMCTL ?= $(LOCALBIN)/cmctl
|
||||
# Operator SDK
|
||||
OPERATOR_SDK ?= $(LOCALBIN)/operator-sdk
|
||||
OPERATOR_SDK_VERSION ?= 1.27.0
|
||||
OPERATOR_SDK_VERSION ?= 1.32.0
|
||||
# Minimum Kubernetes and OpenShift versions
|
||||
MIN_KUBERNETES_VERSION ?= 1.19.0
|
||||
MIN_OPENSHIFT_VERSION ?= 4.12
|
||||
# Use a KIND cluster for the E2E tests
|
||||
USE_KIND_CLUSTER ?= true
|
||||
# Is Jaeger Operator installed via OLM?
|
||||
|
@ -78,13 +86,13 @@ else
|
|||
GOBIN=$(shell go env GOBIN)
|
||||
endif
|
||||
|
||||
LD_FLAGS ?= "-X $(VERSION_PKG).version=$(VERSION) -X $(VERSION_PKG).buildDate=$(VERSION_DATE) -X $(VERSION_PKG).defaultJaeger=$(JAEGER_VERSION)"
|
||||
LD_FLAGS ?= "-X $(VERSION_PKG).version=$(VERSION) -X $(VERSION_PKG).buildDate=$(VERSION_DATE) -X $(VERSION_PKG).defaultJaeger=$(JAEGER_VERSION) -X $(VERSION_PKG).defaultAgent=$(JAEGER_AGENT_VERSION)"
|
||||
|
||||
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
|
||||
ENVTEST ?= $(LOCALBIN)/setup-envtest
|
||||
ENVTEST_K8S_VERSION = 1.27
|
||||
ENVTEST_K8S_VERSION = 1.30
|
||||
# Options for KIND version to use
|
||||
export KUBE_VERSION ?= 1.27
|
||||
export KUBE_VERSION ?= 1.30
|
||||
KIND_CONFIG ?= kind-$(KUBE_VERSION).yaml
|
||||
|
||||
SCORECARD_TEST_IMG ?= quay.io/operator-framework/scorecard-test:v$(OPERATOR_SDK_VERSION)
|
||||
|
@ -149,11 +157,11 @@ build: format
|
|||
|
||||
.PHONY: docker
|
||||
docker:
|
||||
$(VECHO)[ ! -z "$(PIPELINE)" ] || docker build --build-arg=GOPROXY=${GOPROXY} --build-arg=VERSION=${VERSION} --build-arg=JAEGER_VERSION=${JAEGER_VERSION} --build-arg=TARGETARCH=$(GOARCH) --build-arg VERSION_DATE=${VERSION_DATE} --build-arg VERSION_PKG=${VERSION_PKG} -t "$(IMG)" . ${DOCKER_BUILD_OPTIONS}
|
||||
$(VECHO)[ ! -z "$(PIPELINE)" ] || docker build --build-arg=GOPROXY=${GOPROXY} --build-arg=VERSION=${VERSION} --build-arg=JAEGER_VERSION=${JAEGER_VERSION} --build-arg=JAEGER_AGENT_VERSION=${JAEGER_AGENT_VERSION} --build-arg=TARGETARCH=$(GOARCH) --build-arg VERSION_DATE=${VERSION_DATE} --build-arg VERSION_PKG=${VERSION_PKG} -t "$(IMG)" . ${DOCKER_BUILD_OPTIONS}
|
||||
|
||||
.PHONY: dockerx
|
||||
dockerx:
|
||||
$(VECHO)[ ! -z "$(PIPELINE)" ] || docker buildx build --push --progress=plain --build-arg=VERSION=${VERSION} --build-arg=JAEGER_VERSION=${JAEGER_VERSION} --build-arg=GOPROXY=${GOPROXY} --build-arg VERSION_DATE=${VERSION_DATE} --build-arg VERSION_PKG=${VERSION_PKG} --platform=$(PLATFORMS) $(IMAGE_TAGS) .
|
||||
$(VECHO)[ ! -z "$(PIPELINE)" ] || docker buildx build --push --progress=plain --build-arg=VERSION=${VERSION} --build-arg=JAEGER_VERSION=${JAEGER_VERSION} --build-arg=JAEGER_AGENT_VERSION=${JAEGER_AGENT_VERSION} --build-arg=GOPROXY=${GOPROXY} --build-arg VERSION_DATE=${VERSION_DATE} --build-arg VERSION_PKG=${VERSION_PKG} --platform=$(PLATFORMS) $(IMAGE_TAGS) .
|
||||
|
||||
.PHONY: push
|
||||
push:
|
||||
|
@ -349,6 +357,11 @@ $(ENVTEST): $(LOCALBIN)
|
|||
|
||||
.PHONY: bundle
|
||||
bundle: manifests kustomize operator-sdk ## Generate bundle manifests and metadata, then validate generated files.
|
||||
$(SED) -i "s#containerImage: quay.io/jaegertracing/jaeger-operator:$(OPERATOR_VERSION)#containerImage: quay.io/jaegertracing/jaeger-operator:$(VERSION)#g" config/manifests/bases/jaeger-operator.clusterserviceversion.yaml
|
||||
$(SED) -i 's/minKubeVersion: .*/minKubeVersion: $(MIN_KUBERNETES_VERSION)/' config/manifests/bases/jaeger-operator.clusterserviceversion.yaml
|
||||
$(SED) -i 's/com.redhat.openshift.versions=.*/com.redhat.openshift.versions=v$(MIN_OPENSHIFT_VERSION)/' bundle.Dockerfile
|
||||
$(SED) -i 's/com.redhat.openshift.versions: .*/com.redhat.openshift.versions: v$(MIN_OPENSHIFT_VERSION)/' bundle/metadata/annotations.yaml
|
||||
|
||||
$(OPERATOR_SDK) generate kustomize manifests -q
|
||||
cd config/manager && $(KUSTOMIZE) edit set image controller=$(IMG)
|
||||
$(KUSTOMIZE) build config/manifests | $(OPERATOR_SDK) generate bundle -q --overwrite --manifests --version $(VERSION) $(BUNDLE_METADATA_OPTS)
|
||||
|
|
136
README.md
136
README.md
|
@ -1,4 +1,4 @@
|
|||
[![Build Status][ci-img]][ci] [![Go Report Card][goreport-img]][goreport] [![Code Coverage][cov-img]][cov] [![GoDoc][godoc-img]][godoc]
|
||||
[![Build Status][ci-img]][ci] [![Go Report Card][goreport-img]][goreport] [![Code Coverage][cov-img]][cov] [![GoDoc][godoc-img]][godoc] [](https://securityscorecards.dev/viewer/?uri=github.com/jaegertracing/jaeger-operator)
|
||||
|
||||
# Jaeger Operator for Kubernetes
|
||||
|
||||
|
@ -67,11 +67,143 @@ The jaeger Operator *might* work on other untested versions of Strimzi Operator,
|
|||
Sometimes it is preferable to generate plain manifests files instead of running an operator in a cluster. `jaeger-operator generate` generates kubernetes manifests from a given CR. In this example we apply the manifest generated by [examples/simplest.yaml](https://raw.githubusercontent.com/jaegertracing/jaeger-operator/main/examples/simplest.yaml) to the namespace `jaeger-test`:
|
||||
|
||||
```bash
|
||||
curl https://raw.githubusercontent.com/jaegertracing/jaeger-operator/main/examples/simplest.yaml | docker run -i --rm jaegertracing/jaeger-operator:master generate | kubectl apply -n jaeger-test -f -
|
||||
curl https://raw.githubusercontent.com/jaegertracing/jaeger-operator/main/examples/simplest.yaml | docker run -i --rm jaegertracing/jaeger-operator:main generate | kubectl apply -n jaeger-test -f -
|
||||
```
|
||||
|
||||
It is recommended to deploy the operator instead of generating a static manifest.
|
||||
|
||||
## Jaeger V2 Operator
|
||||
|
||||
As the Jaeger V2 is released, it is decided that Jaeger V2 will deployed on Kubernetes using [OpenTelemetry Operator](https://github.com/open-telemetry/opentelemetry-operator). This will benefit both the users of Jaeger and OpenTelemetry. To use Jaeger V2 with OpenTelemetry Operator, the steps are as follows:
|
||||
|
||||
* Install the cert-manager in the existing cluster with the command:
|
||||
```bash
|
||||
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.yaml
|
||||
```
|
||||
|
||||
Please verify all the resources (e.g., Pods and Deployments) are in a ready state in the `cert-manager` namespace.
|
||||
|
||||
* Install the OpenTelemetry Operator by running:
|
||||
```bash
|
||||
kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml
|
||||
```
|
||||
|
||||
Please verify all the resources (e.g., Pods and Deployments) are in a ready state in the `opentelemetry-operator-system` namespace.
|
||||
|
||||
### Using Jaeger with in-memory storage
|
||||
|
||||
Once all the resources are ready, create a Jaeger instance as follows:
|
||||
```yaml
|
||||
kubectl apply -f - <<EOF
|
||||
apiVersion: opentelemetry.io/v1beta1
|
||||
kind: OpenTelemetryCollector
|
||||
metadata:
|
||||
name: jaeger-inmemory-instance
|
||||
spec:
|
||||
image: jaegertracing/jaeger:latest
|
||||
ports:
|
||||
- name: jaeger
|
||||
port: 16686
|
||||
config:
|
||||
service:
|
||||
extensions: [jaeger_storage, jaeger_query]
|
||||
pipelines:
|
||||
traces:
|
||||
receivers: [otlp]
|
||||
exporters: [jaeger_storage_exporter]
|
||||
extensions:
|
||||
jaeger_query:
|
||||
storage:
|
||||
traces: memstore
|
||||
jaeger_storage:
|
||||
backends:
|
||||
memstore:
|
||||
memory:
|
||||
max_traces: 100000
|
||||
receivers:
|
||||
otlp:
|
||||
protocols:
|
||||
grpc:
|
||||
endpoint: 0.0.0.0:4317
|
||||
http:
|
||||
endpoint: 0.0.0.0:4318
|
||||
exporters:
|
||||
jaeger_storage_exporter:
|
||||
trace_storage: memstore
|
||||
EOF
|
||||
```
|
||||
|
||||
To use the in-memory storage ui for Jaeger V2, expose the pod, deployment or the service as follows:
|
||||
```bash
|
||||
kubectl port-forward deployment/jaeger-inmemory-instance-collector 8080:16686
|
||||
```
|
||||
|
||||
Or
|
||||
|
||||
```bash
|
||||
kubectl port-forward service/jaeger-inmemory-instance-collector 8080:16686
|
||||
```
|
||||
|
||||
Once done, type `localhost:8080` in the browser to interact with the UI.
|
||||
|
||||
[Note] There's an ongoing development in OpenTelemetry Operator where users will be able to interact directly with the UI.
|
||||
|
||||
### Using Jaeger with database to store traces
|
||||
To use Jaeger V2 with the supported database, it is mandatory to create database deployments and they should be in `ready` state [(ref)](https://www.jaegertracing.io/docs/2.0/storage/).
|
||||
|
||||
Create a Kubernetes Service that exposes the database pods enabling communication between the database and Jaeger pods.
|
||||
|
||||
This can be achieved by creating a service in two ways, first by creating it [manually](https://kubernetes.io/docs/concepts/services-networking/service/) or second by creating it using imperative command.
|
||||
|
||||
```bash
|
||||
kubectl expose pods <pod-name> --port=<port-number> --name=<name-of-the-service>
|
||||
```
|
||||
|
||||
Or
|
||||
|
||||
```bash
|
||||
kubectl expose deployment <deployment-name> --port=<port-number> --name=<name-of-the-service>
|
||||
```
|
||||
|
||||
After the service is created, add the name of the service as an endpoint in their respective config as follows:
|
||||
|
||||
* [Cassandra DB](https://github.com/jaegertracing/jaeger/blob/main/cmd/jaeger/config-cassandra.yaml):
|
||||
```yaml
|
||||
jaeger_storage:
|
||||
backends:
|
||||
some_storage:
|
||||
cassandra:
|
||||
connection:
|
||||
servers: [<name-of-the-service>]
|
||||
```
|
||||
|
||||
* [ElasticSearch](https://github.com/jaegertracing/jaeger/blob/main/cmd/jaeger/config-elasticsearch.yaml):
|
||||
```yaml
|
||||
jaeger_storage:
|
||||
backends:
|
||||
some_storage:
|
||||
elasticseacrh:
|
||||
servers: [<name-of-the-service>]
|
||||
```
|
||||
|
||||
Use the modified config to create Jaeger instance with the help of OpenTelemetry Operator.
|
||||
|
||||
```yaml
|
||||
kubectl apply -f - <<EOF
|
||||
apiVersion: opentelemetry.io/v1beta1
|
||||
kind: OpenTelemetryCollector
|
||||
metadata:
|
||||
name: jaeger-storage-instance # name of your choice
|
||||
spec:
|
||||
image: jaegertracing/jaeger:latest
|
||||
ports:
|
||||
- name: jaeger
|
||||
port: 16686
|
||||
config:
|
||||
# modified config
|
||||
EOF
|
||||
```
|
||||
|
||||
## Contributing and Developing
|
||||
|
||||
Please see [CONTRIBUTING.md](CONTRIBUTING.md).
|
||||
|
|
16
RELEASE.md
16
RELEASE.md
|
@ -16,18 +16,21 @@ Steps to release a new version of the Jaeger Operator:
|
|||
|
||||
1. Change the `versions.txt `so that it lists the target version of the Jaeger (if it is required). **Don't touch the operator version**: it will be changed automatically in the next step.
|
||||
|
||||
2. Confirm that `MIN_KUBERNETES_VERSION` and `MIN_OPENSHIFT_VERSION` in the `Makefile` are still up-to-date, and update them if required.
|
||||
|
||||
2. Run `OPERATOR_VERSION=1.30.0 make prepare-release`, using the operator version that will be released.
|
||||
|
||||
3. Run the E2E tests in OpenShift as described in [the CONTRIBUTING.md](CONTRIBUTING.md#an-external-cluster-like-openshift) file. The tests will be executed automatically in Kubernetes by the GitHub Actions CI later.
|
||||
|
||||
4. Prepare a changelog since last release.
|
||||
|
||||
4. Update the release manager schedule.
|
||||
|
||||
5. Commit the changes and create a pull request:
|
||||
|
||||
```sh
|
||||
git commit -sm "Preparing release v1.30.0"
|
||||
```
|
||||
Note that the OpenShift CI test job fails. This is expected and the release PR can be merged.
|
||||
|
||||
5. Once the changes above are merged and available in `main` tag it with the desired version, prefixed with `v`, eg. `v1.30.0`
|
||||
|
||||
|
@ -56,3 +59,14 @@ After the PRs have been made it must be ensured that:
|
|||
- Images listed in the ClusterServiceVersion (CSV) have a versions tag [#1682](https://github.com/jaegertracing/jaeger-operator/issues/1682)
|
||||
- No `bundle` folder is included in the release
|
||||
- No foreign CRs like prometheus are in the manifests
|
||||
|
||||
## Release managers
|
||||
|
||||
The operator should be released within a week after the [Jaeger release](https://github.com/jaegertracing/jaeger/blob/main/RELEASE.md#release-managers).
|
||||
|
||||
| Version | Release Manager |
|
||||
|---------| -------------------------------------------------------- |
|
||||
| 1.63.0 | [Benedikt Bongartz](https://github.com/frzifus) |
|
||||
| 1.64.0 | [Pavol Loffay](https://github.com/pavolloffay) |
|
||||
| 1.65.0 | [Israel Blancas](https://github.com/iblancasa) |
|
||||
| 1.66.0 | [Ruben Vargas](https://github.com/rubenvp8510) |
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestUnmarshalJSON(t *testing.T) {
|
||||
|
@ -28,7 +29,7 @@ func TestUnmarshalJSON(t *testing.T) {
|
|||
t.Run(name, func(t *testing.T) {
|
||||
ds := DeploymentStrategy("")
|
||||
err := json.Unmarshal([]byte(tc.json), &ds)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, tc.expected, ds)
|
||||
})
|
||||
}
|
||||
|
@ -48,7 +49,7 @@ func TestMarshalJSON(t *testing.T) {
|
|||
for name, tc := range tcs {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
data, err := json.Marshal(tc.strategy)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, tc.expected, string(data))
|
||||
})
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestFreeForm(t *testing.T) {
|
||||
|
@ -16,7 +17,7 @@ func TestFreeForm(t *testing.T) {
|
|||
},
|
||||
})
|
||||
json, err := o.MarshalJSON()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, json)
|
||||
assert.Equal(t, uiconfig, string(*o.json))
|
||||
}
|
||||
|
@ -26,7 +27,7 @@ func TestFreeFormUnmarhalMarshal(t *testing.T) {
|
|||
o := NewFreeForm(nil)
|
||||
o.UnmarshalJSON([]byte(uiconfig))
|
||||
json, err := o.MarshalJSON()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, json)
|
||||
assert.Equal(t, uiconfig, string(*o.json))
|
||||
}
|
||||
|
@ -66,9 +67,9 @@ func TestToMap(t *testing.T) {
|
|||
f := NewFreeForm(test.m)
|
||||
got, err := f.GetMap()
|
||||
if test.err != "" {
|
||||
assert.EqualError(t, err, test.err)
|
||||
require.EqualError(t, err, test.err)
|
||||
} else {
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, test.expected, got)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,6 +63,9 @@ const (
|
|||
// IngressSecurityNone disables any form of security for ingress objects (default)
|
||||
IngressSecurityNone IngressSecurityType = ""
|
||||
|
||||
// FlagDefaultIngressClass represents the default Ingress class from the cluster
|
||||
FlagDefaultIngressClass = "default-ingressclass"
|
||||
|
||||
// IngressSecurityNoneExplicit used when the user specifically set it to 'none'
|
||||
IngressSecurityNoneExplicit IngressSecurityType = "none"
|
||||
|
||||
|
@ -371,6 +374,10 @@ type JaegerIngressOpenShiftSpec struct {
|
|||
// SkipLogout tells the operator to not automatically add a "Log Out" menu option to the custom Jaeger configuration
|
||||
// +optional
|
||||
SkipLogout *bool `json:"skipLogout,omitempty"`
|
||||
|
||||
// Timeout defines client timeout from oauth-proxy to jaeger.
|
||||
// +optional
|
||||
Timeout *metav1.Duration `json:"timeout,omitempty"`
|
||||
}
|
||||
|
||||
// JaegerAllInOneSpec defines the options to be used when deploying the query
|
||||
|
@ -573,6 +580,9 @@ type JaegerStorageSpec struct {
|
|||
type JaegerMetricsStorageSpec struct {
|
||||
// +optional
|
||||
Type JaegerStorageType `json:"type,omitempty"`
|
||||
|
||||
// +optional
|
||||
ServerUrl string `json:"server-url,omitempty"`
|
||||
}
|
||||
|
||||
// ElasticsearchSpec represents the ES configuration options that we pass down to the OpenShift Elasticsearch operator.
|
||||
|
|
|
@ -12,7 +12,6 @@ import (
|
|||
ctrl "sigs.k8s.io/controller-runtime"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
logf "sigs.k8s.io/controller-runtime/pkg/log"
|
||||
"sigs.k8s.io/controller-runtime/pkg/webhook"
|
||||
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
|
||||
)
|
||||
|
||||
|
@ -36,8 +35,6 @@ func (j *Jaeger) SetupWebhookWithManager(mgr ctrl.Manager) error {
|
|||
|
||||
//+kubebuilder:webhook:path=/mutate-jaegertracing-io-v1-jaeger,mutating=true,failurePolicy=fail,sideEffects=None,groups=jaegertracing.io,resources=jaegers,verbs=create;update,versions=v1,name=mjaeger.kb.io,admissionReviewVersions={v1}
|
||||
|
||||
var _ webhook.Defaulter = &Jaeger{}
|
||||
|
||||
func (j *Jaeger) objsWithOptions() []*Options {
|
||||
return []*Options{
|
||||
&j.Spec.AllInOne.Options, &j.Spec.Query.Options, &j.Spec.Collector.Options,
|
||||
|
@ -48,6 +45,7 @@ func (j *Jaeger) objsWithOptions() []*Options {
|
|||
// Default implements webhook.Defaulter so a webhook will be registered for the type
|
||||
func (j *Jaeger) Default() {
|
||||
jaegerlog.Info("default", "name", j.Name)
|
||||
jaegerlog.Info("WARNING jaeger-agent is deprecated and will removed in v1.55.0. See https://github.com/jaegertracing/jaeger/issues/4739", "component", "agent")
|
||||
|
||||
if j.Spec.Storage.Elasticsearch.Name == "" {
|
||||
j.Spec.Storage.Elasticsearch.Name = defaultElasticsearchName
|
||||
|
@ -84,8 +82,6 @@ func (j *Jaeger) Default() {
|
|||
// TODO(user): change verbs to "verbs=create;update;delete" if you want to enable deletion validation.
|
||||
//+kubebuilder:webhook:path=/validate-jaegertracing-io-v1-jaeger,mutating=false,failurePolicy=fail,sideEffects=None,groups=jaegertracing.io,resources=jaegers,verbs=create;update,versions=v1,name=vjaeger.kb.io,admissionReviewVersions={v1}
|
||||
|
||||
var _ webhook.Validator = &Jaeger{}
|
||||
|
||||
// ValidateCreate implements webhook.Validator so a webhook will be registered for the type
|
||||
func (j *Jaeger) ValidateCreate() (admission.Warnings, error) {
|
||||
jaegerlog.Info("validate create", "name", j.Name)
|
||||
|
@ -104,7 +100,7 @@ func (j *Jaeger) ValidateUpdate(_ runtime.Object) (admission.Warnings, error) {
|
|||
Name: j.Spec.Storage.Elasticsearch.Name,
|
||||
}, es)
|
||||
if errors.IsNotFound(err) {
|
||||
return nil, fmt.Errorf("elasticsearch instance not found: %v", err)
|
||||
return nil, fmt.Errorf("elasticsearch instance not found: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,15 +4,21 @@ import (
|
|||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
esv1 "github.com/openshift/elasticsearch-operator/apis/logging/v1"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/fake"
|
||||
"sigs.k8s.io/controller-runtime/pkg/webhook"
|
||||
)
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"github.com/stretchr/testify/assert"
|
||||
var (
|
||||
_ webhook.Defaulter = &Jaeger{}
|
||||
_ webhook.Validator = &Jaeger{}
|
||||
)
|
||||
|
||||
func TestDefault(t *testing.T) {
|
||||
|
@ -165,8 +171,8 @@ func TestDefault(t *testing.T) {
|
|||
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
esv1.AddToScheme(scheme.Scheme)
|
||||
AddToScheme(scheme.Scheme)
|
||||
require.NoError(t, esv1.AddToScheme(scheme.Scheme))
|
||||
require.NoError(t, AddToScheme(scheme.Scheme))
|
||||
fakeCl := fake.NewClientBuilder().WithRuntimeObjects(test.objs...).Build()
|
||||
cl = fakeCl
|
||||
|
||||
|
@ -179,7 +185,7 @@ func TestDefault(t *testing.T) {
|
|||
func TestValidateDelete(t *testing.T) {
|
||||
warnings, err := new(Jaeger).ValidateDelete()
|
||||
assert.Nil(t, warnings)
|
||||
assert.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestValidate(t *testing.T) {
|
||||
|
@ -272,17 +278,17 @@ func TestValidate(t *testing.T) {
|
|||
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
esv1.AddToScheme(scheme.Scheme)
|
||||
AddToScheme(scheme.Scheme)
|
||||
require.NoError(t, esv1.AddToScheme(scheme.Scheme))
|
||||
require.NoError(t, AddToScheme(scheme.Scheme))
|
||||
fakeCl := fake.NewClientBuilder().WithRuntimeObjects(test.objsToCreate...).Build()
|
||||
cl = fakeCl
|
||||
|
||||
warnings, err := test.current.ValidateCreate()
|
||||
if test.err != "" {
|
||||
assert.NotNil(t, err)
|
||||
require.Error(t, err)
|
||||
assert.Equal(t, test.err, err.Error())
|
||||
} else {
|
||||
assert.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
assert.Nil(t, warnings)
|
||||
})
|
||||
|
|
|
@ -18,7 +18,7 @@ func TestSimpleOption(t *testing.T) {
|
|||
|
||||
func TestNoOptions(t *testing.T) {
|
||||
o := Options{}
|
||||
assert.Len(t, o.ToArgs(), 0)
|
||||
assert.Empty(t, o.ToArgs())
|
||||
}
|
||||
|
||||
func TestNestedOption(t *testing.T) {
|
||||
|
@ -40,7 +40,7 @@ func TestMarshalling(t *testing.T) {
|
|||
})
|
||||
|
||||
b, err := json.Marshal(o)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
s := string(b)
|
||||
assert.Contains(t, s, `"es.password":"changeme"`)
|
||||
assert.Contains(t, s, `"es.server-urls":"http://elasticsearch.default.svc:9200"`)
|
||||
|
@ -85,9 +85,9 @@ func TestUnmarshalToArgs(t *testing.T) {
|
|||
opts := Options{}
|
||||
err := opts.UnmarshalJSON([]byte(test.in))
|
||||
if test.err != "" {
|
||||
assert.EqualError(t, err, test.err)
|
||||
require.EqualError(t, err, test.err)
|
||||
} else {
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
args := opts.ToArgs()
|
||||
sort.SliceStable(args, func(i, j int) bool {
|
||||
return args[i] < args[j]
|
||||
|
@ -129,7 +129,7 @@ func TestMarshallRaw(t *testing.T) {
|
|||
o := NewOptions(nil)
|
||||
o.json = &json
|
||||
bytes, err := o.MarshalJSON()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, bytes, json)
|
||||
}
|
||||
|
||||
|
@ -137,7 +137,7 @@ func TestMarshallEmpty(t *testing.T) {
|
|||
o := NewOptions(nil)
|
||||
json := []byte(`{}`)
|
||||
bytes, err := o.MarshalJSON()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, bytes, json)
|
||||
}
|
||||
|
||||
|
@ -151,7 +151,7 @@ func TestUpdate(t *testing.T) {
|
|||
o.Map()["key"] = "new"
|
||||
|
||||
// verify
|
||||
assert.Equal(t, o.opts["key"], "new")
|
||||
assert.Equal(t, "new", o.opts["key"])
|
||||
}
|
||||
|
||||
func TestStringMap(t *testing.T) {
|
||||
|
@ -170,7 +170,7 @@ func TestDeepCopy(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
copy := o1.opts.DeepCopy()
|
||||
|
||||
assert.Equal(t, copy, &(o1.opts))
|
||||
assert.Equal(t, &(o1.opts), copy)
|
||||
}
|
||||
|
||||
func TestRepetitiveArguments(t *testing.T) {
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
//go:build !ignore_autogenerated
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
// Code generated by controller-gen. DO NOT EDIT.
|
||||
|
||||
|
@ -8,6 +7,7 @@ package v1
|
|||
import (
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
|
@ -528,6 +528,11 @@ func (in *JaegerIngressOpenShiftSpec) DeepCopyInto(out *JaegerIngressOpenShiftSp
|
|||
*out = new(bool)
|
||||
**out = **in
|
||||
}
|
||||
if in.Timeout != nil {
|
||||
in, out := &in.Timeout, &out.Timeout
|
||||
*out = new(metav1.Duration)
|
||||
**out = **in
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JaegerIngressOpenShiftSpec.
|
||||
|
|
|
@ -11,6 +11,9 @@ LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.13.0+git
|
|||
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
|
||||
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3
|
||||
|
||||
# OpenShift specific labels.
|
||||
LABEL com.redhat.openshift.versions=v4.12
|
||||
|
||||
# Copy files to locations specified by labels.
|
||||
COPY bundle/manifests /manifests/
|
||||
COPY bundle/metadata /metadata/
|
||||
|
|
|
@ -18,16 +18,16 @@ metadata:
|
|||
capabilities: Deep Insights
|
||||
categories: Logging & Tracing
|
||||
certified: "false"
|
||||
containerImage: quay.io/jaegertracing/jaeger-operator
|
||||
createdAt: "2023-12-07T12:08:38Z"
|
||||
containerImage: quay.io/jaegertracing/jaeger-operator:1.62.0
|
||||
createdAt: "2025-01-22T20:40:19Z"
|
||||
description: Provides tracing, monitoring and troubleshooting for microservices-based
|
||||
distributed systems
|
||||
operators.openshift.io/infrastructure-features: '["disconnected"]'
|
||||
operators.operatorframework.io/builder: operator-sdk-v1.27.0
|
||||
operators.operatorframework.io/builder: operator-sdk-v1.32.0
|
||||
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
|
||||
repository: https://github.com/jaegertracing/jaeger-operator
|
||||
support: Jaeger Community
|
||||
name: jaeger-operator.v1.52.0
|
||||
name: jaeger-operator.v1.65.0
|
||||
namespace: placeholder
|
||||
spec:
|
||||
apiservicedefinitions: {}
|
||||
|
@ -336,6 +336,7 @@ spec:
|
|||
- apiGroups:
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- ingressclasses
|
||||
- ingresses
|
||||
verbs:
|
||||
- create
|
||||
|
@ -369,6 +370,12 @@ spec:
|
|||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- route.openshift.io
|
||||
resources:
|
||||
- routes/custom-host
|
||||
verbs:
|
||||
- create
|
||||
serviceAccountName: jaeger-operator
|
||||
deployments:
|
||||
- label:
|
||||
|
@ -407,7 +414,7 @@ spec:
|
|||
value: DEBUG
|
||||
- name: KAFKA-PROVISIONING-MINIMAL
|
||||
value: "true"
|
||||
image: quay.io/jaegertracing/jaeger-operator:1.52.0
|
||||
image: quay.io/jaegertracing/jaeger-operator:1.65.0
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
|
@ -517,13 +524,14 @@ spec:
|
|||
- email: jaeger-tracing@googlegroups.com
|
||||
name: Jaeger Google Group
|
||||
maturity: alpha
|
||||
minKubeVersion: 1.19.0
|
||||
provider:
|
||||
name: CNCF
|
||||
replaces: jaeger-operator.v1.51.0
|
||||
replaces: jaeger-operator.v1.62.0
|
||||
selector:
|
||||
matchLabels:
|
||||
name: jaeger-operator
|
||||
version: 1.52.0
|
||||
version: 1.65.0
|
||||
webhookdefinitions:
|
||||
- admissionReviewVersions:
|
||||
- v1
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -9,3 +9,6 @@ annotations:
|
|||
operators.operatorframework.io.metrics.builder: operator-sdk-v1.13.0+git
|
||||
operators.operatorframework.io.metrics.mediatype.v1: metrics+v1
|
||||
operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3
|
||||
|
||||
# OpenShift annotations
|
||||
com.redhat.openshift.versions: v4.12
|
||||
|
|
|
@ -8,7 +8,7 @@ stages:
|
|||
- entrypoint:
|
||||
- scorecard-test
|
||||
- basic-check-spec
|
||||
image: quay.io/operator-framework/scorecard-test:v1.27.0
|
||||
image: quay.io/operator-framework/scorecard-test:v1.32.0
|
||||
labels:
|
||||
suite: basic
|
||||
test: basic-check-spec-test
|
||||
|
@ -18,7 +18,7 @@ stages:
|
|||
- entrypoint:
|
||||
- scorecard-test
|
||||
- olm-bundle-validation
|
||||
image: quay.io/operator-framework/scorecard-test:v1.27.0
|
||||
image: quay.io/operator-framework/scorecard-test:v1.32.0
|
||||
labels:
|
||||
suite: olm
|
||||
test: olm-bundle-validation-test
|
||||
|
@ -28,7 +28,7 @@ stages:
|
|||
- entrypoint:
|
||||
- scorecard-test
|
||||
- olm-crds-have-validation
|
||||
image: quay.io/operator-framework/scorecard-test:v1.27.0
|
||||
image: quay.io/operator-framework/scorecard-test:v1.32.0
|
||||
labels:
|
||||
suite: olm
|
||||
test: olm-crds-have-validation-test
|
||||
|
@ -38,7 +38,7 @@ stages:
|
|||
- entrypoint:
|
||||
- scorecard-test
|
||||
- olm-crds-have-resources
|
||||
image: quay.io/operator-framework/scorecard-test:v1.27.0
|
||||
image: quay.io/operator-framework/scorecard-test:v1.32.0
|
||||
labels:
|
||||
suite: olm
|
||||
test: olm-crds-have-resources-test
|
||||
|
@ -48,7 +48,7 @@ stages:
|
|||
- entrypoint:
|
||||
- scorecard-test
|
||||
- olm-spec-descriptors
|
||||
image: quay.io/operator-framework/scorecard-test:v1.27.0
|
||||
image: quay.io/operator-framework/scorecard-test:v1.32.0
|
||||
labels:
|
||||
suite: olm
|
||||
test: olm-spec-descriptors-test
|
||||
|
@ -58,7 +58,7 @@ stages:
|
|||
- entrypoint:
|
||||
- scorecard-test
|
||||
- olm-status-descriptors
|
||||
image: quay.io/operator-framework/scorecard-test:v1.27.0
|
||||
image: quay.io/operator-framework/scorecard-test:v1.32.0
|
||||
labels:
|
||||
suite: olm
|
||||
test: olm-status-descriptors-test
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -5,4 +5,4 @@ kind: Kustomization
|
|||
images:
|
||||
- name: controller
|
||||
newName: quay.io/jaegertracing/jaeger-operator
|
||||
newTag: 1.52.0
|
||||
newTag: 1.65.0
|
||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
capabilities: Deep Insights
|
||||
categories: Logging & Tracing
|
||||
certified: "false"
|
||||
containerImage: quay.io/jaegertracing/jaeger-operator
|
||||
containerImage: quay.io/jaegertracing/jaeger-operator:1.62.0
|
||||
createdAt: "2023-05-16T04:47:12Z"
|
||||
description: Provides tracing, monitoring and troubleshooting for microservices-based
|
||||
distributed systems
|
||||
|
@ -122,9 +122,10 @@ spec:
|
|||
- email: jaeger-tracing@googlegroups.com
|
||||
name: Jaeger Google Group
|
||||
maturity: alpha
|
||||
minKubeVersion: 1.19.0
|
||||
provider:
|
||||
name: CNCF
|
||||
replaces: jaeger-operator.v1.51.0
|
||||
replaces: jaeger-operator.v1.62.0
|
||||
selector:
|
||||
matchLabels:
|
||||
name: jaeger-operator
|
||||
|
|
|
@ -221,6 +221,7 @@ rules:
|
|||
- apiGroups:
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- ingressclasses
|
||||
- ingresses
|
||||
verbs:
|
||||
- create
|
||||
|
@ -254,3 +255,9 @@ rules:
|
|||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- route.openshift.io
|
||||
resources:
|
||||
- routes/custom-host
|
||||
verbs:
|
||||
- create
|
||||
|
|
|
@ -1,13 +1,16 @@
|
|||
package appsv1_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
k8sconfig "sigs.k8s.io/controller-runtime/pkg/client/config"
|
||||
"sigs.k8s.io/controller-runtime/pkg/manager"
|
||||
k8sreconcile "sigs.k8s.io/controller-runtime/pkg/reconcile"
|
||||
|
||||
v1 "github.com/jaegertracing/jaeger-operator/apis/v1"
|
||||
"github.com/jaegertracing/jaeger-operator/controllers/appsv1"
|
||||
)
|
||||
|
||||
|
@ -27,5 +30,26 @@ func TestNamespaceControllerRegisterWithManager(t *testing.T) {
|
|||
err = reconciler.SetupWithManager(mgr)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestNewNamespaceInstance(t *testing.T) {
|
||||
// prepare
|
||||
nsn := types.NamespacedName{Name: "my-instance", Namespace: "default"}
|
||||
reconciler := appsv1.NewNamespaceReconciler(
|
||||
k8sClient,
|
||||
k8sClient,
|
||||
testScheme,
|
||||
)
|
||||
|
||||
instance := v1.NewJaeger(nsn)
|
||||
err := k8sClient.Create(context.Background(), instance)
|
||||
require.NoError(t, err)
|
||||
|
||||
req := k8sreconcile.Request{
|
||||
NamespacedName: nsn,
|
||||
}
|
||||
|
||||
_, err = reconciler.Reconcile(context.Background(), req)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
package elasticsearch_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
esv1 "github.com/openshift/elasticsearch-operator/apis/logging/v1"
|
||||
"github.com/stretchr/testify/require"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
k8sconfig "sigs.k8s.io/controller-runtime/pkg/client/config"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/fake"
|
||||
"sigs.k8s.io/controller-runtime/pkg/manager"
|
||||
k8sreconcile "sigs.k8s.io/controller-runtime/pkg/reconcile"
|
||||
|
||||
v1 "github.com/jaegertracing/jaeger-operator/apis/v1"
|
||||
"github.com/jaegertracing/jaeger-operator/controllers/elasticsearch"
|
||||
)
|
||||
|
||||
func TestElasticSearchSetupWithManager(t *testing.T) {
|
||||
t.Skip("this test requires a real cluster, otherwise the GetConfigOrDie will die")
|
||||
|
||||
// prepare
|
||||
mgr, err := manager.New(k8sconfig.GetConfigOrDie(), manager.Options{})
|
||||
require.NoError(t, err)
|
||||
reconciler := elasticsearch.NewReconciler(
|
||||
k8sClient,
|
||||
k8sClient,
|
||||
)
|
||||
|
||||
// test
|
||||
err = reconciler.SetupWithManager(mgr)
|
||||
|
||||
// verify
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestNewElasticSearchInstance(t *testing.T) {
|
||||
// prepare
|
||||
ns := &corev1.Namespace{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test-ns",
|
||||
},
|
||||
}
|
||||
|
||||
es := &esv1.Elasticsearch{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test-es",
|
||||
Namespace: "test-ns",
|
||||
},
|
||||
}
|
||||
|
||||
jaeger := v1.NewJaeger(types.NamespacedName{
|
||||
Name: "test-jaeger",
|
||||
Namespace: "test-jaeger",
|
||||
})
|
||||
|
||||
esv1.AddToScheme(testScheme)
|
||||
v1.AddToScheme(testScheme)
|
||||
|
||||
client := fake.NewClientBuilder().WithRuntimeObjects(ns, es, jaeger).Build()
|
||||
reconciler := elasticsearch.NewReconciler(
|
||||
client,
|
||||
client,
|
||||
)
|
||||
|
||||
req := k8sreconcile.Request{
|
||||
NamespacedName: types.NamespacedName{
|
||||
Name: "test-es",
|
||||
Namespace: "test-ns",
|
||||
},
|
||||
}
|
||||
|
||||
_, err := reconciler.Reconcile(context.Background(), req)
|
||||
require.NoError(t, err)
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
package elasticsearch_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
v1 "github.com/jaegertracing/jaeger-operator/apis/v1"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
"sigs.k8s.io/controller-runtime/pkg/envtest"
|
||||
// +kubebuilder:scaffold:imports
|
||||
)
|
||||
|
||||
var (
|
||||
k8sClient client.Client
|
||||
testEnv *envtest.Environment
|
||||
testScheme *runtime.Scheme = scheme.Scheme
|
||||
)
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
testEnv = &envtest.Environment{
|
||||
CRDDirectoryPaths: []string{filepath.Join("..", "..", "config", "crd", "bases")},
|
||||
}
|
||||
|
||||
cfg, err := testEnv.Start()
|
||||
if err != nil {
|
||||
fmt.Printf("failed to start testEnv: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if err := v1.AddToScheme(scheme.Scheme); err != nil {
|
||||
fmt.Printf("failed to register scheme: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// +kubebuilder:scaffold:scheme
|
||||
|
||||
k8sClient, err = client.New(cfg, client.Options{Scheme: testScheme})
|
||||
if err != nil {
|
||||
fmt.Printf("failed to setup a Kubernetes client: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
code := m.Run()
|
||||
|
||||
err = testEnv.Stop()
|
||||
if err != nil {
|
||||
fmt.Printf("failed to stop testEnv: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
os.Exit(code)
|
||||
}
|
|
@ -48,8 +48,9 @@ func NewReconciler(client client.Client, clientReader client.Reader, scheme *run
|
|||
// +kubebuilder:rbac:groups=apps,resources=deployments;daemonsets;replicasets;statefulsets,verbs=get;list;watch;create;update;patch;delete
|
||||
// +kubebuilder:rbac:groups=extensions,resources=ingresses,verbs=get;list;watch;create;update;patch;delete
|
||||
// +kubebuilder:rbac:groups=autoscaling,resources=horizontalpodautoscalers,verbs=get;list;watch;create;update;patch;delete
|
||||
// +kubebuilder:rbac:groups=networking.k8s.io,resources=ingresses,verbs=get;list;watch;create;update;patch;delete
|
||||
// +kubebuilder:rbac:groups=networking.k8s.io,resources=ingresses;ingressclasses,verbs=get;list;watch;create;update;patch;delete
|
||||
// +kubebuilder:rbac:groups=route.openshift.io,resources=routes,verbs=get;list;watch;create;update;patch;delete
|
||||
// +kubebuilder:rbac:groups=route.openshift.io,resources=routes/custom-host,verbs=create
|
||||
// +kubebuilder:rbac:groups=console.openshift.io,resources=consolelinks,verbs=get;list;watch;create;update;patch;delete
|
||||
// +kubebuilder:rbac:groups=batch,resources=jobs;cronjobs,verbs=get;list;watch;create;update;patch;delete
|
||||
// +kubebuilder:rbac:groups=monitoring.coreos.com,resources=servicemonitors,verbs=get;list;watch;create;update;patch;delete
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
k8sconfig "sigs.k8s.io/controller-runtime/pkg/client/config"
|
||||
|
@ -52,5 +51,5 @@ func TestRegisterWithManager(t *testing.T) {
|
|||
err = reconciler.SetupWithManager(mgr)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
|
2489
docs/api.md
2489
docs/api.md
File diff suppressed because it is too large
Load Diff
|
@ -5,7 +5,7 @@ metadata:
|
|||
spec:
|
||||
strategy: allInOne
|
||||
allInOne:
|
||||
image: jaegertracing/all-in-one:1.52.0
|
||||
image: jaegertracing/all-in-one:1.65.0
|
||||
options:
|
||||
log-level: debug
|
||||
query:
|
||||
|
|
|
@ -17,7 +17,7 @@ spec:
|
|||
serviceAccountName: jaeger-operator
|
||||
containers:
|
||||
- name: jaeger-operator
|
||||
image: jaegertracing/jaeger-operator:1.52.0
|
||||
image: jaegertracing/jaeger-operator:1.65.0
|
||||
ports:
|
||||
- containerPort: 8383
|
||||
name: http-metrics
|
||||
|
@ -41,7 +41,7 @@ spec:
|
|||
- name: OPERATOR_NAME
|
||||
value: "jaeger-operator"
|
||||
- name: jaeger-agent
|
||||
image: jaegertracing/jaeger-agent:1.52.0
|
||||
image: jaegertracing/jaeger-agent:1.62.0
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
|
|
|
@ -23,7 +23,7 @@ spec:
|
|||
- containerPort: 8080
|
||||
protocol: TCP
|
||||
- name: jaeger-agent
|
||||
image: jaegertracing/jaeger-agent:1.52.0
|
||||
image: jaegertracing/jaeger-agent:1.62.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- containerPort: 5775
|
||||
|
|
|
@ -20,7 +20,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: tracegen
|
||||
image: jaegertracing/jaeger-tracegen:1.52.0
|
||||
image: jaegertracing/jaeger-tracegen:1.65.0
|
||||
args:
|
||||
- -duration=30m
|
||||
- -workers=10
|
||||
|
|
149
go.mod
149
go.mod
|
@ -1,115 +1,116 @@
|
|||
module github.com/jaegertracing/jaeger-operator
|
||||
|
||||
go 1.21
|
||||
go 1.22.0
|
||||
|
||||
require (
|
||||
github.com/Masterminds/semver v1.5.0
|
||||
github.com/go-logr/logr v1.2.4
|
||||
github.com/google/gnostic-models v0.6.8
|
||||
github.com/google/go-cmp v0.5.9
|
||||
github.com/go-logr/logr v1.4.2
|
||||
github.com/google/gnostic-models v0.6.9
|
||||
github.com/google/go-cmp v0.7.0
|
||||
github.com/mitchellh/go-homedir v1.1.0
|
||||
github.com/openshift/api v0.0.0-20230915112357-693d4b64813c
|
||||
github.com/openshift/elasticsearch-operator v0.0.0-20230209095209-2403ff186a1c
|
||||
github.com/openshift/library-go v0.0.0-20231003133513-3a0c1fc00519
|
||||
github.com/openshift/api v0.0.0-20231206170337-f356bd9e2ff6
|
||||
github.com/openshift/elasticsearch-operator v0.0.0-20231013125000-a5c132efd4e0
|
||||
github.com/openshift/library-go v0.0.0-20231130204458-653f82d961a1
|
||||
github.com/opentracing/opentracing-go v1.2.0
|
||||
github.com/operator-framework/operator-lib v0.11.1-0.20230607132417-ecb9be488378
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/operator-framework/operator-lib v0.13.0
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/spf13/cobra v1.7.0
|
||||
github.com/spf13/pflag v1.0.5
|
||||
github.com/spf13/viper v1.16.0
|
||||
github.com/stretchr/testify v1.8.4
|
||||
github.com/spf13/cobra v1.9.1
|
||||
github.com/spf13/pflag v1.0.6
|
||||
github.com/spf13/viper v1.19.0
|
||||
github.com/stretchr/testify v1.10.0
|
||||
github.com/uber/jaeger-client-go v2.30.0+incompatible
|
||||
go.opentelemetry.io/otel v1.16.0
|
||||
go.opentelemetry.io/otel/exporters/jaeger v1.16.0
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.16.0
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.16.0
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.16.0
|
||||
go.opentelemetry.io/otel/exporters/prometheus v0.39.0
|
||||
go.opentelemetry.io/otel/metric v1.16.0
|
||||
go.opentelemetry.io/otel/sdk v1.16.0
|
||||
go.opentelemetry.io/otel/sdk/metric v0.39.0
|
||||
go.opentelemetry.io/otel/trace v1.16.0
|
||||
go.uber.org/zap v1.25.0
|
||||
go.opentelemetry.io/otel v1.35.0
|
||||
go.opentelemetry.io/otel/exporters/jaeger v1.17.0
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0
|
||||
go.opentelemetry.io/otel/exporters/prometheus v0.57.0
|
||||
go.opentelemetry.io/otel/metric v1.35.0
|
||||
go.opentelemetry.io/otel/sdk v1.35.0
|
||||
go.opentelemetry.io/otel/sdk/metric v1.35.0
|
||||
go.opentelemetry.io/otel/trace v1.35.0
|
||||
go.uber.org/zap v1.27.0
|
||||
gomodules.xyz/jsonpatch/v2 v2.4.0
|
||||
google.golang.org/grpc v1.59.0
|
||||
k8s.io/api v0.28.4
|
||||
k8s.io/apimachinery v0.28.4
|
||||
k8s.io/client-go v0.28.4
|
||||
k8s.io/component-base v0.28.4
|
||||
sigs.k8s.io/controller-runtime v0.16.3
|
||||
google.golang.org/grpc v1.71.0
|
||||
k8s.io/api v0.29.3
|
||||
k8s.io/apimachinery v0.29.3
|
||||
k8s.io/client-go v0.29.3
|
||||
k8s.io/component-base v0.29.3
|
||||
sigs.k8s.io/controller-runtime v0.17.3
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||
github.com/codahale/hdrhistogram v0.0.0-00010101000000-000000000000 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||
github.com/emicklei/go-restful/v3 v3.11.2 // indirect
|
||||
github.com/evanphx/json-patch v5.6.0+incompatible // indirect
|
||||
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
|
||||
github.com/fsnotify/fsnotify v1.6.0 // indirect
|
||||
github.com/evanphx/json-patch/v5 v5.8.0 // indirect
|
||||
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-logr/zapr v1.2.4 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
||||
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
||||
github.com/go-openapi/swag v0.22.3 // indirect
|
||||
github.com/go-logr/zapr v1.3.0 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.20.2 // indirect
|
||||
github.com/go-openapi/jsonreference v0.20.4 // indirect
|
||||
github.com/go-openapi/swag v0.22.9 // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||
github.com/golang/protobuf v1.5.3 // indirect
|
||||
github.com/golang/protobuf v1.5.4 // indirect
|
||||
github.com/google/gofuzz v1.2.0 // indirect
|
||||
github.com/google/uuid v1.3.1 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
|
||||
github.com/google/uuid v1.6.0 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 // indirect
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
github.com/imdario/mergo v0.3.12 // indirect
|
||||
github.com/imdario/mergo v0.3.16 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/klauspost/compress v1.17.9 // indirect
|
||||
github.com/magiconair/properties v1.8.7 // indirect
|
||||
github.com/mailru/easyjson v0.7.7 // indirect
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/prometheus/client_golang v1.16.0 // indirect
|
||||
github.com/prometheus/client_model v0.4.0 // indirect
|
||||
github.com/prometheus/common v0.44.0 // indirect
|
||||
github.com/prometheus/procfs v0.11.0 // indirect
|
||||
github.com/spf13/afero v1.9.5 // indirect
|
||||
github.com/spf13/cast v1.5.1 // indirect
|
||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||
github.com/subosito/gotenv v1.4.2 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
github.com/prometheus/client_golang v1.20.5 // indirect
|
||||
github.com/prometheus/client_model v0.6.1 // indirect
|
||||
github.com/prometheus/common v0.62.0 // indirect
|
||||
github.com/prometheus/procfs v0.15.1 // indirect
|
||||
github.com/sagikazarmark/locafero v0.4.0 // indirect
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
||||
github.com/sourcegraph/conc v0.3.0 // indirect
|
||||
github.com/spf13/afero v1.11.0 // indirect
|
||||
github.com/spf13/cast v1.6.0 // indirect
|
||||
github.com/subosito/gotenv v1.6.0 // indirect
|
||||
github.com/uber/jaeger-lib v2.2.0+incompatible // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.16.0 // indirect
|
||||
go.opentelemetry.io/proto/otlp v0.20.0 // indirect
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
||||
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
|
||||
go.uber.org/atomic v1.10.0 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||
golang.org/x/net v0.17.0 // indirect
|
||||
golang.org/x/oauth2 v0.11.0 // indirect
|
||||
golang.org/x/sys v0.13.0 // indirect
|
||||
golang.org/x/term v0.13.0 // indirect
|
||||
golang.org/x/text v0.13.0 // indirect
|
||||
golang.org/x/time v0.3.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
|
||||
google.golang.org/protobuf v1.31.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20240213143201-ec583247a57a // indirect
|
||||
golang.org/x/net v0.35.0 // indirect
|
||||
golang.org/x/oauth2 v0.26.0 // indirect
|
||||
golang.org/x/sys v0.30.0 // indirect
|
||||
golang.org/x/term v0.29.0 // indirect
|
||||
golang.org/x/text v0.22.0 // indirect
|
||||
golang.org/x/time v0.5.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect
|
||||
google.golang.org/protobuf v1.36.5 // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
k8s.io/apiextensions-apiserver v0.28.3 // indirect
|
||||
k8s.io/klog/v2 v2.100.1 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect
|
||||
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
|
||||
k8s.io/apiextensions-apiserver v0.29.2 // indirect
|
||||
k8s.io/klog/v2 v2.120.1 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20240221221325-2ac9dc51f3f1 // indirect
|
||||
k8s.io/utils v0.0.0-20240102154912-e7106e64919e // indirect
|
||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
|
||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
|
||||
sigs.k8s.io/yaml v1.4.0 // indirect
|
||||
)
|
||||
|
||||
replace github.com/codahale/hdrhistogram => github.com/HdrHistogram/hdrhistogram-go v1.1.2
|
||||
|
|
734
go.sum
734
go.sum
|
@ -1,219 +1,98 @@
|
|||
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=
|
||||
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
|
||||
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
|
||||
cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
|
||||
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
|
||||
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
|
||||
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
|
||||
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
|
||||
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
|
||||
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
|
||||
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
|
||||
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
|
||||
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
|
||||
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
|
||||
cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
|
||||
cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
|
||||
cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
|
||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
||||
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
|
||||
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
|
||||
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
|
||||
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
|
||||
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
|
||||
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
||||
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
|
||||
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
|
||||
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
|
||||
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
|
||||
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
|
||||
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
|
||||
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
|
||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
|
||||
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
|
||||
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
|
||||
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
|
||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
|
||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
||||
github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A=
|
||||
github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||
github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
|
||||
github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
||||
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
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=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
|
||||
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
|
||||
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
|
||||
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
|
||||
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
|
||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/emicklei/go-restful/v3 v3.11.2 h1:1onLa9DcsMYO9P+CXaL0dStDqQ2EHHXLiz+BtnqkLAU=
|
||||
github.com/emicklei/go-restful/v3 v3.11.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
|
||||
github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=
|
||||
github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww=
|
||||
github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4=
|
||||
github.com/evanphx/json-patch/v5 v5.8.0 h1:lRj6N9Nci7MvzrXuX6HFzU8XjmhPiXPlsKEy1u0KQro=
|
||||
github.com/evanphx/json-patch/v5 v5.8.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
|
||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
||||
github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
|
||||
github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
||||
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
|
||||
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
|
||||
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
|
||||
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
||||
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
|
||||
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
|
||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||
github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
|
||||
github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo=
|
||||
github.com/go-logr/zapr v1.2.4/go.mod h1:FyHWQIzQORZ0QVE1BtVHv3cKtNLuXsbNLtpuhNapBOA=
|
||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
|
||||
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
|
||||
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
||||
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
|
||||
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
|
||||
github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q=
|
||||
github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs=
|
||||
github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU=
|
||||
github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4=
|
||||
github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE=
|
||||
github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE=
|
||||
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
|
||||
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
|
||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
|
||||
github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ=
|
||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
|
||||
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
|
||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
|
||||
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
|
||||
github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
||||
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||
github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw=
|
||||
github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw=
|
||||
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
|
||||
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20230510103437-eeec1cb781c3 h1:2XF1Vzq06X+inNqgJ9tRnGuw+ZVCB3FazXODD6JE1R8=
|
||||
github.com/google/pprof v0.0.0-20230510103437-eeec1cb781c3/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
|
||||
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
|
||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 h1:e9Rjr40Z98/clHv5Yg79Is0NtosR5LXRvdr7o/6NwbA=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1/go.mod h1:tIxuGz/9mpox++sgp9fJjHO0+q1X9/UOWd798aAm22M=
|
||||
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
|
||||
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
||||
github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
|
||||
github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
|
||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
|
||||
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
||||
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
||||
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
|
||||
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
|
||||
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
|
||||
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
|
||||
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
||||
|
@ -227,340 +106,162 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq
|
|||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
||||
github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU=
|
||||
github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM=
|
||||
github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
|
||||
github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
|
||||
github.com/openshift/api v0.0.0-20230915112357-693d4b64813c h1:ro/BvvpAikMoZc/fsxJN6jxmK+4uIbdNIK9nwaFQ5xo=
|
||||
github.com/openshift/api v0.0.0-20230915112357-693d4b64813c/go.mod h1:NFgA+laiQtptmjsp1trDnGqjV62nYzlUfQ6P5I9oqXA=
|
||||
github.com/openshift/elasticsearch-operator v0.0.0-20230209095209-2403ff186a1c h1:634+wE/JdH3vRZsezq0ZP96/dhyzvxF1oL0PooadSxw=
|
||||
github.com/openshift/elasticsearch-operator v0.0.0-20230209095209-2403ff186a1c/go.mod h1:XqvnrVfp9t5hZtlSIRd5yh2SIMS97Uv9mbGyiKassmE=
|
||||
github.com/openshift/library-go v0.0.0-20231003133513-3a0c1fc00519 h1:i4tHhSfvDj0g0rmD6nHE+FtdLFEQyDWbkuRi8xs5SQ8=
|
||||
github.com/openshift/library-go v0.0.0-20231003133513-3a0c1fc00519/go.mod h1:hl8bxWuFMM72N4YH7FKLGWtYhDz/A0xwvaa8Yr5fxYU=
|
||||
github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8=
|
||||
github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs=
|
||||
github.com/onsi/gomega v1.32.0 h1:JRYU78fJ1LPxlckP6Txi/EYqJvjtMrDC04/MM5XRHPk=
|
||||
github.com/onsi/gomega v1.32.0/go.mod h1:a4x4gW6Pz2yK1MAmvluYme5lvYTn61afQ2ETw/8n4Lg=
|
||||
github.com/openshift/api v0.0.0-20231206170337-f356bd9e2ff6 h1:XxmuE/mW0VMIxJ78M0zAgTY/Fi0grVJgSnSgr0qjICU=
|
||||
github.com/openshift/api v0.0.0-20231206170337-f356bd9e2ff6/go.mod h1:qNtV0315F+f8ld52TLtPvrfivZpdimOzTi3kn9IVbtU=
|
||||
github.com/openshift/elasticsearch-operator v0.0.0-20231013125000-a5c132efd4e0 h1:B+3Z9Fp8n0a67vv6oHSFQoY4XJ2z58pYmTggj2vlopY=
|
||||
github.com/openshift/elasticsearch-operator v0.0.0-20231013125000-a5c132efd4e0/go.mod h1:MV0PMDsMJv7m9VtYmwUwS6CkfgHH/LT1ga8EGASSEF0=
|
||||
github.com/openshift/library-go v0.0.0-20231130204458-653f82d961a1 h1:Sj0Oyn6aooVg7eHQ0zBbq6e7ERxXTadFHH5TEfmiuso=
|
||||
github.com/openshift/library-go v0.0.0-20231130204458-653f82d961a1/go.mod h1:0q1UIvboZXfSlUaK+08wsXYw4N6OUo2b/z3a1EWNGyw=
|
||||
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
|
||||
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
|
||||
github.com/operator-framework/operator-lib v0.11.1-0.20230607132417-ecb9be488378 h1:g7JRKMQt/VAzVGUYbiAXwL6YCdQQkGI4nIfMVG6kU6c=
|
||||
github.com/operator-framework/operator-lib v0.11.1-0.20230607132417-ecb9be488378/go.mod h1:johXYPNOI2CfP3DyNcZRU/4byiQ27rBsAcMSTDE99vs=
|
||||
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
|
||||
github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/operator-framework/operator-lib v0.13.0 h1:+TWgJhbJqyNix9m1LmHK5gY/lb3CGqZX3Wvl7K0k+6I=
|
||||
github.com/operator-framework/operator-lib v0.13.0/go.mod h1:RDs1wGdOKWSMCO+BYSbqmmKGnD5jOP7TVP+KvoX8jMg=
|
||||
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
|
||||
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
|
||||
github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
|
||||
github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
|
||||
github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
|
||||
github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
|
||||
github.com/prometheus/procfs v0.11.0 h1:5EAgkfkMl659uZPbe9AS2N68a7Cc1TJbPEuGzFuRbyk=
|
||||
github.com/prometheus/procfs v0.11.0/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
|
||||
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=
|
||||
github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
|
||||
github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
|
||||
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
|
||||
github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io=
|
||||
github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I=
|
||||
github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
|
||||
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
|
||||
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
|
||||
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
|
||||
github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
|
||||
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
|
||||
github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
|
||||
github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
|
||||
github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48=
|
||||
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
|
||||
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
|
||||
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
|
||||
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc=
|
||||
github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg=
|
||||
github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
|
||||
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
|
||||
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
|
||||
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
|
||||
github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
|
||||
github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
||||
github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
|
||||
github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
|
||||
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
|
||||
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI=
|
||||
github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
|
||||
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
|
||||
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
|
||||
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
|
||||
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
|
||||
github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
|
||||
github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw=
|
||||
github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
|
||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
|
||||
go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s=
|
||||
go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4=
|
||||
go.opentelemetry.io/otel/exporters/jaeger v1.16.0 h1:YhxxmXZ011C0aDZKoNw+juVWAmEfv/0W2XBOv9aHTaA=
|
||||
go.opentelemetry.io/otel/exporters/jaeger v1.16.0/go.mod h1:grYbBo/5afWlPpdPZYhyn78Bk04hnvxn2+hvxQhKIQM=
|
||||
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.16.0 h1:t4ZwRPU+emrcvM2e9DHd0Fsf0JTPVcbfa/BhTDF03d0=
|
||||
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.16.0/go.mod h1:vLarbg68dH2Wa77g71zmKQqlQ8+8Rq3GRG31uc0WcWI=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.16.0 h1:cbsD4cUcviQGXdw8+bo5x2wazq10SKz8hEbtCRPcU78=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.16.0/go.mod h1:JgXSGah17croqhJfhByOLVY719k1emAXC8MVhCIJlRs=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.16.0 h1:TVQp/bboR4mhZSav+MdgXB8FaRho1RC8UwVn3T0vjVc=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.16.0/go.mod h1:I33vtIe0sR96wfrUcilIzLoA3mLHhRmz9S9Te0S3gDo=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.16.0 h1:iqjq9LAB8aK++sKVcELezzn655JnBNdsDhghU4G/So8=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.16.0/go.mod h1:hGXzO5bhhSHZnKvrDaXB82Y9DRFour0Nz/KrBh7reWw=
|
||||
go.opentelemetry.io/otel/exporters/prometheus v0.39.0 h1:whAaiHxOatgtKd+w0dOi//1KUxj3KoPINZdtDaDj3IA=
|
||||
go.opentelemetry.io/otel/exporters/prometheus v0.39.0/go.mod h1:4jo5Q4CROlCpSPsXLhymi+LYrDXd2ObU5wbKayfZs7Y=
|
||||
go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo=
|
||||
go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4=
|
||||
go.opentelemetry.io/otel/sdk v1.16.0 h1:Z1Ok1YsijYL0CSJpHt4cS3wDDh7p572grzNrBMiMWgE=
|
||||
go.opentelemetry.io/otel/sdk v1.16.0/go.mod h1:tMsIuKXuuIWPBAOrH+eHtvhTL+SntFtXF9QD68aP6p4=
|
||||
go.opentelemetry.io/otel/sdk/metric v0.39.0 h1:Kun8i1eYf48kHH83RucG93ffz0zGV1sh46FAScOTuDI=
|
||||
go.opentelemetry.io/otel/sdk/metric v0.39.0/go.mod h1:piDIRgjcK7u0HCL5pCA4e74qpK/jk3NiUoAHATVAmiI=
|
||||
go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs=
|
||||
go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0=
|
||||
go.opentelemetry.io/proto/otlp v0.20.0 h1:BLOA1cZBAGSbRiNuGCCKiFrCdYB7deeHDeD1SueyOfA=
|
||||
go.opentelemetry.io/proto/otlp v0.20.0/go.mod h1:3QgjzPALBIv9pcknj2EXGPXjYPFdUh/RQfF8Lz3+Vnw=
|
||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
||||
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
|
||||
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
|
||||
go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4=
|
||||
go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 h1:1fTNlAIJZGWLP5FVu0fikVry1IsiUnXjf7QFvoNN3Xw=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0/go.mod h1:zjPK58DtkqQFn+YUMbx0M2XV3QgKU0gS9LeGohREyK4=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 h1:m639+BofXTvcY1q8CGs4ItwQarYtJPOWmVobfM1HpVI=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0/go.mod h1:LjReUci/F4BUyv+y4dwnq3h/26iNOeC3wAIqgvTIZVo=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 h1:xJ2qHD0C1BeYVTLLR9sX12+Qb95kfeD/byKj6Ky1pXg=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0/go.mod h1:u5BF1xyjstDowA1R5QAO9JHzqK+ublenEW/dyqTjBVk=
|
||||
go.opentelemetry.io/otel/exporters/prometheus v0.57.0 h1:AHh/lAP1BHrY5gBwk8ncc25FXWm/gmmY3BX258z5nuk=
|
||||
go.opentelemetry.io/otel/exporters/prometheus v0.57.0/go.mod h1:QpFWz1QxqevfjwzYdbMb4Y1NnlJvqSGwyuU0B4iuc9c=
|
||||
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
|
||||
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
|
||||
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
|
||||
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
|
||||
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
|
||||
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
|
||||
go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4=
|
||||
go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4=
|
||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
|
||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||
go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
|
||||
go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c=
|
||||
go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk=
|
||||
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
|
||||
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
|
||||
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
|
||||
golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
||||
golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
||||
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
||||
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
|
||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
|
||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
|
||||
golang.org/x/exp v0.0.0-20240213143201-ec583247a57a h1:HinSgX1tJRX3KsL//Gxynpw5CTOAIPhgL4W8PNiIpVE=
|
||||
golang.org/x/exp v0.0.0-20240213143201-ec583247a57a/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc=
|
||||
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
|
||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
|
||||
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
||||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
||||
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/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=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
|
||||
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
||||
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=
|
||||
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU=
|
||||
golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
|
||||
golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
|
||||
golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE=
|
||||
golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/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-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
|
||||
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
|
||||
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
||||
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=
|
||||
golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
|
||||
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=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.4/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.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
|
||||
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
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=
|
||||
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
||||
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
|
||||
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
||||
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
|
||||
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||
golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
|
||||
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
|
||||
golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
|
||||
golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
|
||||
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
|
||||
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
|
||||
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=
|
||||
|
@ -571,157 +272,50 @@ gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJ
|
|||
gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
|
||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
|
||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
|
||||
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
|
||||
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
||||
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
||||
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
||||
google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
||||
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
||||
google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||
google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||
google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||
google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||
google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||
google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
||||
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
||||
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
|
||||
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
|
||||
google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
|
||||
google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
|
||||
google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
|
||||
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||
google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
|
||||
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
|
||||
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
|
||||
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
|
||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
|
||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY=
|
||||
google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
|
||||
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
||||
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.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=
|
||||
google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
|
||||
google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
|
||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a h1:nwKuGPlUAt+aR+pcrkfFRrTU1BVrSmYyYMxYbUIVHr0=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a/go.mod h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ=
|
||||
google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
|
||||
google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
|
||||
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
|
||||
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY=
|
||||
k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0=
|
||||
k8s.io/apiextensions-apiserver v0.28.3 h1:Od7DEnhXHnHPZG+W9I97/fSQkVpVPQx2diy+2EtmY08=
|
||||
k8s.io/apiextensions-apiserver v0.28.3/go.mod h1:NE1XJZ4On0hS11aWWJUTNkmVB03j9LM7gJSisbRt8Lc=
|
||||
k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8=
|
||||
k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg=
|
||||
k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY=
|
||||
k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4=
|
||||
k8s.io/component-base v0.28.4 h1:c/iQLWPdUgI90O+T9TeECg8o7N3YJTiuz2sKxILYcYo=
|
||||
k8s.io/component-base v0.28.4/go.mod h1:m9hR0uvqXDybiGL2nf/3Lf0MerAfQXzkfWhUY58JUbU=
|
||||
k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
|
||||
k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ=
|
||||
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM=
|
||||
k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
|
||||
k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw=
|
||||
k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80=
|
||||
k8s.io/apiextensions-apiserver v0.29.2 h1:UK3xB5lOWSnhaCk0RFZ0LUacPZz9RY4wi/yt2Iu+btg=
|
||||
k8s.io/apiextensions-apiserver v0.29.2/go.mod h1:aLfYjpA5p3OwtqNXQFkhJ56TB+spV8Gc4wfMhUA3/b8=
|
||||
k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU=
|
||||
k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU=
|
||||
k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg=
|
||||
k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0=
|
||||
k8s.io/component-base v0.29.3 h1:Oq9/nddUxlnrCuuR2K/jp6aflVvc0uDvxMzAWxnGzAo=
|
||||
k8s.io/component-base v0.29.3/go.mod h1:Yuj33XXjuOk2BAaHsIGHhCKZQAgYKhqIxIjIr2UXYio=
|
||||
k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw=
|
||||
k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
||||
k8s.io/kube-openapi v0.0.0-20240221221325-2ac9dc51f3f1 h1:rtdnaWfP40MTKv7izH81gkWpZB45pZrwIxyZdPSn1mI=
|
||||
k8s.io/kube-openapi v0.0.0-20240221221325-2ac9dc51f3f1/go.mod h1:Pa1PvrP7ACSkuX6I7KYomY6cmMA0Tx86waBhDUgoKPw=
|
||||
k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ=
|
||||
k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||
sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4=
|
||||
sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0=
|
||||
sigs.k8s.io/controller-runtime v0.17.3 h1:65QmN7r3FWgTxDMz9fvGnO1kbf2nu+acg9p2R9oYYYk=
|
||||
sigs.k8s.io/controller-runtime v0.17.3/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY=
|
||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
|
||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
|
||||
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
|
||||
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
|
||||
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
|
||||
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
|
||||
|
|
|
@ -1,66 +0,0 @@
|
|||
# GitHub action to run the E2E tests.
|
||||
# For this purpose, it would be a better idea to use a reusable workflow. There
|
||||
# is some documentation about how to use a local reusable workflow:
|
||||
# https://github.blog/changelog/2022-01-25-github-actions-reusable-workflows-can-be-referenced-locally/
|
||||
# But it seems it doesn't work properly:
|
||||
# https://github.community/t/allow-reusable-workflows-to-be-located-at-arbitrary-locations-and-be-local/212745/7
|
||||
# So, the CI uses a local GitHub action as a template to run all the tests.
|
||||
name: Run E2E tests
|
||||
description: "Run an E2E test suite"
|
||||
|
||||
inputs:
|
||||
testsuite_name:
|
||||
description: "Name of the test suite to run"
|
||||
required: true
|
||||
kube_version:
|
||||
description: "Kubernetes version to use"
|
||||
required: true
|
||||
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: "Set up Go"
|
||||
uses: actions/setup-go@v2.1.4
|
||||
with:
|
||||
go-version: "1.21"
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
with:
|
||||
install: true
|
||||
-
|
||||
name: Cache Docker layers
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: e2e-${{ github.sha }}
|
||||
restore-keys: |
|
||||
e2e-
|
||||
- name: "Install KIND"
|
||||
run: ./hack/install/install-kind.sh
|
||||
shell: bash
|
||||
- name: "Install KUTTL"
|
||||
run: ./hack/install/install-kuttl.sh
|
||||
shell: bash
|
||||
- name: "Install gomplate"
|
||||
run: ./hack/install/install-gomplate.sh
|
||||
shell: bash
|
||||
- name: "Install dependencies"
|
||||
run: make install-tools
|
||||
shell: bash
|
||||
- name: "Run E2E ${{ inputs.testsuite_name }} test suite on ${{ inputs.kube_version }}"
|
||||
env:
|
||||
VERBOSE: "true"
|
||||
KUBE_VERSION: "${{ inputs.kube_version }}"
|
||||
DOCKER_BUILD_OPTIONS: "--cache-from type=local,src=/tmp/.buildx-cache --cache-to type=local,dest=/tmp/.buildx-cache-new,mode=max --load"
|
||||
run: make run-e2e-tests-${{ inputs.testsuite_name }}
|
||||
shell: bash
|
||||
-
|
||||
# Temp fix
|
||||
# https://github.com/docker/build-push-action/issues/252
|
||||
# https://github.com/moby/buildkit/issues/1896
|
||||
name: Move cache
|
||||
run: |
|
||||
rm -rf /tmp/.buildx-cache
|
||||
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
|
||||
shell: bash
|
|
@ -1,5 +1,5 @@
|
|||
#!/bin/bash
|
||||
VERSION="0.12.0"
|
||||
VERSION="0.14.0"
|
||||
|
||||
echo "Installing controller-gen"
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/bin/bash
|
||||
VERSION="1.53.2"
|
||||
VERSION="1.55.2"
|
||||
|
||||
echo "Installing golangci-lint"
|
||||
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
kind: Cluster
|
||||
apiVersion: kind.x-k8s.io/v1alpha4
|
||||
nodes:
|
||||
- role: control-plane
|
||||
image: kindest/node:v1.30.2@sha256:ecfe5841b9bee4fe9690f49c118c33629fa345e3350a0c67a5a34482a99d6bba
|
||||
kubeadmConfigPatches:
|
||||
- |
|
||||
kind: InitConfiguration
|
||||
nodeRegistration:
|
||||
kubeletExtraArgs:
|
||||
node-labels: "ingress-ready=true"
|
||||
extraPortMappings:
|
||||
- containerPort: 80
|
||||
hostPort: 80
|
||||
protocol: TCP
|
||||
- containerPort: 443
|
||||
hostPort: 443
|
||||
protocol: TCP
|
|
@ -92,7 +92,7 @@ func TestCleanDeployments(t *testing.T) {
|
|||
dep = inject.Sidecar(jaeger, dep)
|
||||
|
||||
// sanity check
|
||||
require.Equal(t, 2, len(dep.Spec.Template.Spec.Containers))
|
||||
require.Len(t, dep.Spec.Template.Spec.Containers, 2)
|
||||
|
||||
// prepare the list of existing objects
|
||||
objs := []runtime.Object{dep}
|
||||
|
@ -121,10 +121,10 @@ func TestCleanDeployments(t *testing.T) {
|
|||
|
||||
// should the sidecar have been deleted?
|
||||
if tt.deleted {
|
||||
assert.Equal(t, 1, len(persisted.Spec.Template.Spec.Containers))
|
||||
assert.Len(t, persisted.Spec.Template.Spec.Containers, 1)
|
||||
assert.NotContains(t, persisted.Labels, inject.Label)
|
||||
} else {
|
||||
assert.Equal(t, 2, len(persisted.Spec.Template.Spec.Containers))
|
||||
assert.Len(t, persisted.Spec.Template.Spec.Containers, 2)
|
||||
assert.Contains(t, persisted.Labels, inject.Label)
|
||||
}
|
||||
})
|
||||
|
|
|
@ -12,6 +12,7 @@ import (
|
|||
"github.com/spf13/viper"
|
||||
"go.opentelemetry.io/otel"
|
||||
authenticationapi "k8s.io/api/authentication/v1"
|
||||
networkingv1 "k8s.io/api/networking/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/client-go/discovery"
|
||||
|
@ -100,6 +101,7 @@ func (b *Background) autoDetectCapabilities() {
|
|||
// the version of the APIs provided by the platform will not change
|
||||
b.detectCronjobsVersion(ctx)
|
||||
b.detectAutoscalingVersion(ctx)
|
||||
b.detectDefaultIngressClass(ctx)
|
||||
})
|
||||
b.detectOAuthProxyImageStream(ctx)
|
||||
b.detectElasticsearch(ctx, apiList)
|
||||
|
@ -156,6 +158,9 @@ func (b *Background) detectAutoscalingVersion(ctx context.Context) {
|
|||
break
|
||||
}
|
||||
}
|
||||
if detectedVersion != "" {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if detectedVersion == "" {
|
||||
|
@ -183,13 +188,40 @@ func AvailableAPIs(discovery discovery.DiscoveryInterface, groups map[string]boo
|
|||
if err == nil {
|
||||
apiLists = append(apiLists, groupAPIList)
|
||||
} else {
|
||||
errors = fmt.Errorf("%v; Error getting resources for server group %s: %v", errors, sg.Name, err)
|
||||
errors = fmt.Errorf("%w; Error getting resources for server group %s: %w", errors, sg.Name, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
return apiLists, errors
|
||||
}
|
||||
|
||||
func (b *Background) detectDefaultIngressClass(ctx context.Context) {
|
||||
if OperatorConfiguration.GetPlatform() == OpenShiftPlatform {
|
||||
return
|
||||
}
|
||||
|
||||
ingressClasses := networkingv1.IngressClassList{}
|
||||
err := b.cl.List(ctx, &ingressClasses)
|
||||
if err != nil {
|
||||
log.Log.Info("It was not possible to get any IngressClasses from the Kubernetes cluster")
|
||||
}
|
||||
|
||||
oldValue := viper.GetString(v1.FlagDefaultIngressClass)
|
||||
|
||||
for _, ingressClass := range ingressClasses.Items {
|
||||
val, ok := ingressClass.Annotations["ingressclass.kubernetes.io/is-default-class"]
|
||||
if ok {
|
||||
if val == "true" {
|
||||
if oldValue != ingressClass.Name {
|
||||
log.Log.Info("New default IngressClass value found", "old", oldValue, "new", ingressClass.Name)
|
||||
}
|
||||
viper.Set(v1.FlagDefaultIngressClass, ingressClass.Name)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (b *Background) detectPlatform(ctx context.Context, apiList []*metav1.APIResourceList) {
|
||||
// detect the platform, we run this only once, as the platform can't change between runs ;)
|
||||
platform := OperatorConfiguration.GetPlatform()
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
openapi_v2 "github.com/google/gnostic-models/openapiv2"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/assert"
|
||||
networkingv1 "k8s.io/api/networking/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/version"
|
||||
"k8s.io/client-go/discovery"
|
||||
|
@ -475,7 +476,6 @@ func TestAutoDetectAutoscalingVersion(t *testing.T) {
|
|||
|
||||
// verify
|
||||
assert.Equal(t, apiGroup, viper.GetString(v1.FlagAutoscalingVersion))
|
||||
fmt.Printf("Test finished on [%s]\n", apiGroup)
|
||||
}
|
||||
|
||||
// Check what happens when there ServerResourcesForGroupVersion returns error
|
||||
|
@ -495,6 +495,46 @@ func TestAutoDetectAutoscalingVersion(t *testing.T) {
|
|||
|
||||
// test
|
||||
b.autoDetectCapabilities()
|
||||
|
||||
// Test the newer version is selected
|
||||
dcl = &fakeDiscoveryClient{}
|
||||
cl = fake.NewFakeClient() // nolint:staticcheck
|
||||
b = WithClients(cl, dcl, cl)
|
||||
dcl.ServerGroupsFunc = func() (apiGroupList *metav1.APIGroupList, err error) {
|
||||
return &metav1.APIGroupList{
|
||||
Groups: []metav1.APIGroup{
|
||||
{
|
||||
Name: v1.FlagAutoscalingVersionV2,
|
||||
Versions: []metav1.GroupVersionForDiscovery{
|
||||
{Version: v1.FlagAutoscalingVersionV2},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: v1.FlagAutoscalingVersionV2Beta2,
|
||||
Versions: []metav1.GroupVersionForDiscovery{
|
||||
{Version: v1.FlagAutoscalingVersionV2Beta2},
|
||||
},
|
||||
},
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
dcl.ServerResourcesForGroupVersionFunc = func(requestedApiVersion string) (apiGroupList *metav1.APIResourceList, err error) {
|
||||
if requestedApiVersion == v1.FlagAutoscalingVersionV2 {
|
||||
apiResourceList := &metav1.APIResourceList{GroupVersion: v1.FlagAutoscalingVersionV2, APIResources: []metav1.APIResource{{Name: "horizontalpodautoscalers"}}}
|
||||
return apiResourceList, nil
|
||||
} else if requestedApiVersion == v1.FlagAutoscalingVersionV2Beta2 {
|
||||
apiResourceList := &metav1.APIResourceList{GroupVersion: v1.FlagAutoscalingVersionV2Beta2, APIResources: []metav1.APIResource{{Name: "horizontalpodautoscalers"}}}
|
||||
return apiResourceList, nil
|
||||
}
|
||||
return &metav1.APIResourceList{}, nil
|
||||
}
|
||||
|
||||
// test
|
||||
b.autoDetectCapabilities()
|
||||
|
||||
// verify
|
||||
assert.Equal(t, v1.FlagAutoscalingVersionV2, viper.GetString(v1.FlagAutoscalingVersion))
|
||||
}
|
||||
|
||||
func TestSkipAuthDelegatorNonOpenShift(t *testing.T) {
|
||||
|
@ -573,20 +613,104 @@ func TestAuthDelegatorBecomesUnavailable(t *testing.T) {
|
|||
assert.False(t, OperatorConfiguration.IsAuthDelegatorAvailable())
|
||||
}
|
||||
|
||||
func TestSkipDefaultIngressClassOpenShift(t *testing.T) {
|
||||
// prepare
|
||||
OperatorConfiguration.SetPlatform(OpenShiftPlatform)
|
||||
defer viper.Reset()
|
||||
|
||||
dcl := &fakeDiscoveryClient{}
|
||||
cl := customFakeClient()
|
||||
b := WithClients(cl, dcl, cl)
|
||||
|
||||
// test
|
||||
b.detectDefaultIngressClass(context.Background())
|
||||
|
||||
// verify
|
||||
assert.Equal(t, "", viper.GetString(v1.FlagDefaultIngressClass))
|
||||
}
|
||||
|
||||
func TestDetectDefaultIngressClass(t *testing.T) {
|
||||
// prepare
|
||||
OperatorConfiguration.SetPlatform(KubernetesPlatform)
|
||||
defer viper.Reset()
|
||||
|
||||
dcl := &fakeDiscoveryClient{}
|
||||
cl := customFakeClient()
|
||||
|
||||
cl.ListFunc = func(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error {
|
||||
if listPointer, ok := list.(*networkingv1.IngressClassList); ok {
|
||||
listPointer.Items = []networkingv1.IngressClass{
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "nginx",
|
||||
Annotations: map[string]string{
|
||||
"ingressclass.kubernetes.io/is-default-class": "true",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
b := WithClients(cl, dcl, cl)
|
||||
|
||||
// test
|
||||
b.detectDefaultIngressClass(context.Background())
|
||||
|
||||
// verify
|
||||
assert.Equal(t, "nginx", viper.GetString(v1.FlagDefaultIngressClass))
|
||||
}
|
||||
|
||||
func TestDetectNoDefaultIngressClass(t *testing.T) {
|
||||
// prepare
|
||||
OperatorConfiguration.SetPlatform(KubernetesPlatform)
|
||||
defer viper.Reset()
|
||||
|
||||
dcl := &fakeDiscoveryClient{}
|
||||
cl := customFakeClient()
|
||||
|
||||
cl.ListFunc = func(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error {
|
||||
if listPointer, ok := list.(*networkingv1.IngressClassList); ok {
|
||||
listPointer.Items = []networkingv1.IngressClass{
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "nginx",
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
b := WithClients(cl, dcl, cl)
|
||||
|
||||
// test
|
||||
b.detectDefaultIngressClass(context.Background())
|
||||
|
||||
// verify
|
||||
assert.Equal(t, "", viper.GetString(v1.FlagDefaultIngressClass))
|
||||
}
|
||||
|
||||
type fakeClient struct {
|
||||
client.Client
|
||||
CreateFunc func(ctx context.Context, obj client.Object, opts ...client.CreateOption) error
|
||||
ListFunc func(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error
|
||||
}
|
||||
|
||||
func customFakeClient() *fakeClient {
|
||||
c := fake.NewClientBuilder().Build()
|
||||
return &fakeClient{Client: c, CreateFunc: c.Create}
|
||||
return &fakeClient{Client: c, CreateFunc: c.Create, ListFunc: c.List}
|
||||
}
|
||||
|
||||
func (f *fakeClient) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error {
|
||||
return f.CreateFunc(ctx, obj)
|
||||
}
|
||||
|
||||
func (f *fakeClient) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error {
|
||||
return f.ListFunc(ctx, list)
|
||||
}
|
||||
|
||||
type fakeDiscoveryClient struct {
|
||||
discovery.DiscoveryInterface
|
||||
ServerGroupsFunc func() (apiGroupList *metav1.APIGroupList, err error)
|
||||
|
|
|
@ -36,7 +36,7 @@ func TestGetClusterRoleBinding(t *testing.T) {
|
|||
assert.Len(t, crbs[0].Subjects, 1)
|
||||
assert.Equal(t, account.OAuthProxyAccountNameFor(jaeger), crbs[0].Subjects[0].Name)
|
||||
assert.Equal(t, "ServiceAccount", crbs[0].Subjects[0].Kind)
|
||||
assert.Len(t, crbs[0].Subjects[0].Namespace, 0) // cluster roles aren't namespaced
|
||||
assert.Empty(t, crbs[0].Subjects[0].Namespace) // cluster roles aren't namespaced
|
||||
}
|
||||
|
||||
func TestIngressDisabled(t *testing.T) {
|
||||
|
@ -53,7 +53,7 @@ func TestIngressDisabled(t *testing.T) {
|
|||
crbs := Get(jaeger)
|
||||
|
||||
// verify
|
||||
assert.Len(t, crbs, 0)
|
||||
assert.Empty(t, crbs)
|
||||
}
|
||||
|
||||
func TestNotOAuthProxy(t *testing.T) {
|
||||
|
@ -70,7 +70,7 @@ func TestNotOAuthProxy(t *testing.T) {
|
|||
crbs := Get(jaeger)
|
||||
|
||||
// verify
|
||||
assert.Len(t, crbs, 0)
|
||||
assert.Empty(t, crbs)
|
||||
}
|
||||
|
||||
func TestAuthDelegatorNotAvailable(t *testing.T) {
|
||||
|
@ -90,5 +90,5 @@ func TestAuthDelegatorNotAvailable(t *testing.T) {
|
|||
crbs := Get(jaeger)
|
||||
|
||||
// verify
|
||||
assert.Len(t, crbs, 0)
|
||||
assert.Empty(t, crbs)
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package generate
|
|||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
|
@ -55,7 +56,7 @@ func createSpecFromYAML(filename string) (*v1.Jaeger, error) {
|
|||
|
||||
var spec v1.Jaeger
|
||||
decoder := yaml.NewYAMLOrJSONDecoder(f, 8192)
|
||||
if err := decoder.Decode(&spec); err != nil && err != io.EOF {
|
||||
if err := decoder.Decode(&spec); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ func AddFlags(cmd *cobra.Command) {
|
|||
cmd.Flags().String("jaeger-spark-dependencies-image", "ghcr.io/jaegertracing/spark-dependencies/spark-dependencies", "The Docker image for the Spark Dependencies Job")
|
||||
cmd.Flags().String("jaeger-es-index-cleaner-image", "jaegertracing/jaeger-es-index-cleaner", "The Docker image for the Jaeger Elasticsearch Index Cleaner")
|
||||
cmd.Flags().String("jaeger-es-rollover-image", "jaegertracing/jaeger-es-rollover", "The Docker image for the Jaeger Elasticsearch Rollover")
|
||||
cmd.Flags().String(v1.FlagOpenShiftOauthProxyImage, "quay.io/openshift/origin-oauth-proxy:4.12", "The Docker image location definition for the OpenShift OAuth Proxy")
|
||||
cmd.Flags().String(v1.FlagOpenShiftOauthProxyImage, "quay.io/openshift/origin-oauth-proxy:4.14", "The Docker image location definition for the OpenShift OAuth Proxy")
|
||||
cmd.Flags().String("openshift-oauth-proxy-imagestream-ns", "", "The namespace for the OpenShift OAuth Proxy imagestream")
|
||||
cmd.Flags().String("openshift-oauth-proxy-imagestream-name", "", "The name for the OpenShift OAuth Proxy imagestream")
|
||||
cmd.Flags().String("platform", v1.FlagPlatformAutoDetect, "The target platform the operator will run. Possible values: 'kubernetes', 'openshift', 'auto-detect'")
|
||||
|
|
|
@ -108,8 +108,8 @@ func TestUpdateWithoutCAs(t *testing.T) {
|
|||
AddServiceCA(jaeger, &commonSpec)
|
||||
|
||||
// verify
|
||||
assert.Len(t, commonSpec.Volumes, 0)
|
||||
assert.Len(t, commonSpec.VolumeMounts, 0)
|
||||
assert.Empty(t, commonSpec.Volumes)
|
||||
assert.Empty(t, commonSpec.VolumeMounts)
|
||||
}
|
||||
|
||||
func TestUpdateWithTrustedCA(t *testing.T) {
|
||||
|
@ -152,6 +152,6 @@ func TestUpdateWithExistingTrustedCA(t *testing.T) {
|
|||
AddServiceCA(jaeger, &commonSpec)
|
||||
|
||||
// verify
|
||||
assert.Len(t, commonSpec.Volumes, 0)
|
||||
assert.Len(t, commonSpec.VolumeMounts, 0)
|
||||
assert.Empty(t, commonSpec.Volumes)
|
||||
assert.Empty(t, commonSpec.VolumeMounts)
|
||||
}
|
||||
|
|
|
@ -91,9 +91,9 @@ func TestUpdateWithSamplingConfigFileOption(t *testing.T) {
|
|||
commonSpec := v1.JaegerCommonSpec{}
|
||||
|
||||
Update(jaeger, &commonSpec, &options)
|
||||
assert.Len(t, commonSpec.Volumes, 0)
|
||||
assert.Len(t, commonSpec.VolumeMounts, 0)
|
||||
assert.Len(t, options, 0)
|
||||
assert.Empty(t, commonSpec.Volumes)
|
||||
assert.Empty(t, commonSpec.VolumeMounts)
|
||||
assert.Empty(t, options)
|
||||
}
|
||||
|
||||
func TestGetWithSamplingConfigFileOption(t *testing.T) {
|
||||
|
|
|
@ -25,18 +25,3 @@ func TestUpdateWithTLSSecret(t *testing.T) {
|
|||
assert.Equal(t, "--collector.grpc.tls.cert=/etc/tls-config/tls.crt", options[1])
|
||||
assert.Equal(t, "--collector.grpc.tls.key=/etc/tls-config/tls.key", options[2])
|
||||
}
|
||||
|
||||
func TestIgnoreDefaultTLSSecretWhenGrpcHostPortIsSet(t *testing.T) {
|
||||
jaeger := v1.NewJaeger(types.NamespacedName{Name: "TestIgnoreDefaultTLSSecretWhenGrpcHostPortIsSet"})
|
||||
autodetect.OperatorConfiguration.SetPlatform(autodetect.OpenShiftPlatform)
|
||||
|
||||
commonSpec := v1.JaegerCommonSpec{}
|
||||
options := []string{}
|
||||
options = append(options, "--reporter.grpc.host-port=my.host-port.com")
|
||||
|
||||
Update(jaeger, &commonSpec, &options)
|
||||
assert.Len(t, commonSpec.Volumes, 0)
|
||||
assert.Len(t, commonSpec.VolumeMounts, 0)
|
||||
assert.Len(t, options, 1)
|
||||
assert.Equal(t, "--reporter.grpc.host-port=my.host-port.com", options[0])
|
||||
}
|
||||
|
|
|
@ -49,9 +49,9 @@ func TestUpdateNoUIConfig(t *testing.T) {
|
|||
options := []string{}
|
||||
|
||||
Update(jaeger, &commonSpec, &options)
|
||||
assert.Len(t, commonSpec.Volumes, 0)
|
||||
assert.Len(t, commonSpec.VolumeMounts, 0)
|
||||
assert.Len(t, options, 0)
|
||||
assert.Empty(t, commonSpec.Volumes)
|
||||
assert.Empty(t, commonSpec.VolumeMounts)
|
||||
assert.Empty(t, options)
|
||||
}
|
||||
|
||||
func TestUpdateWithUIConfig(t *testing.T) {
|
||||
|
|
|
@ -51,7 +51,7 @@ func TestUpdateHref(t *testing.T) {
|
|||
}
|
||||
|
||||
link := Get(jaeger, &route)
|
||||
assert.Equal(t, link.Spec.Href, "")
|
||||
assert.Equal(t, "", link.Spec.Href)
|
||||
route.Spec.Host = "namespace.somehostname"
|
||||
newLinks := UpdateHref([]corev1.Route{route}, []consolev1.ConsoleLink{*link})
|
||||
assert.Equal(t, fmt.Sprintf("https://%s", route.Spec.Host), newLinks[0].Spec.Href)
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
|
@ -41,7 +42,7 @@ func TestServiceAccountCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &corev1.ServiceAccount{}
|
||||
|
@ -51,7 +52,7 @@ func TestServiceAccountCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestServiceAccountUpdate(t *testing.T) {
|
||||
|
@ -83,7 +84,7 @@ func TestServiceAccountUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &corev1.ServiceAccount{}
|
||||
|
@ -93,7 +94,7 @@ func TestServiceAccountUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestServiceAccountDelete(t *testing.T) {
|
||||
|
@ -119,7 +120,7 @@ func TestServiceAccountDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &corev1.ServiceAccount{}
|
||||
|
@ -129,7 +130,7 @@ func TestServiceAccountDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestAccountCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -173,18 +174,18 @@ func TestAccountCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &corev1.ServiceAccount{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &corev1.ServiceAccount{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
rbac "k8s.io/api/rbac/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
@ -48,7 +49,7 @@ func TestClusterRoleBindingsCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &rbac.ClusterRoleBinding{}
|
||||
|
@ -58,7 +59,7 @@ func TestClusterRoleBindingsCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestClusterRoleBindingsSkipped(t *testing.T) {
|
||||
|
@ -92,7 +93,7 @@ func TestClusterRoleBindingsSkipped(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &rbac.ClusterRoleBinding{}
|
||||
|
@ -138,7 +139,7 @@ func TestClusterRoleBindingsUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &rbac.ClusterRoleBinding{}
|
||||
|
@ -148,7 +149,7 @@ func TestClusterRoleBindingsUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestClusterRoleBindingsDelete(t *testing.T) {
|
||||
|
@ -179,7 +180,7 @@ func TestClusterRoleBindingsDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &rbac.ClusterRoleBinding{}
|
||||
|
@ -189,5 +190,5 @@ func TestClusterRoleBindingsDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
|
@ -44,7 +45,7 @@ func TestConfigMapsCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &corev1.ConfigMap{}
|
||||
|
@ -54,7 +55,7 @@ func TestConfigMapsCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestConfigMapsUpdate(t *testing.T) {
|
||||
|
@ -88,7 +89,7 @@ func TestConfigMapsUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &corev1.ConfigMap{}
|
||||
|
@ -98,7 +99,7 @@ func TestConfigMapsUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestConfigMapsDelete(t *testing.T) {
|
||||
|
@ -126,7 +127,7 @@ func TestConfigMapsDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &corev1.ConfigMap{}
|
||||
|
@ -136,7 +137,7 @@ func TestConfigMapsDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestConfigMapCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -180,18 +181,18 @@ func TestConfigMapCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &corev1.ConfigMap{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &corev1.ConfigMap{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
@ -244,16 +245,16 @@ func TestConfigMapsClean(t *testing.T) {
|
|||
// The three defined ConfigMaps exist
|
||||
configMaps := &corev1.ConfigMapList{}
|
||||
err := cl.List(context.Background(), configMaps)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, configMaps.Items, 3)
|
||||
|
||||
// Reconcile non-exist jaeger
|
||||
_, err = r.Reconcile(reconcile.Request{NamespacedName: nsnNonExist})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Check that configmaps were clean up.
|
||||
err = cl.List(context.Background(), configMaps)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, configMaps.Items, 1)
|
||||
assert.Equal(t, fmt.Sprintf("%s-service-ca", nsnExisting.Name), configMaps.Items[0].Name)
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ import (
|
|||
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
@ -63,7 +64,7 @@ func TestConsoleLinkCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &osconsolev1.ConsoleLink{}
|
||||
|
@ -73,9 +74,9 @@ func TestConsoleLinkCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.Equal(t, persisted.Spec.Href, "https://myhost")
|
||||
assert.Equal(t, "https://myhost", persisted.Spec.Href)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestConsoleLinkUpdate(t *testing.T) {
|
||||
|
@ -123,7 +124,7 @@ func TestConsoleLinkUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &osconsolev1.ConsoleLink{}
|
||||
|
@ -133,7 +134,7 @@ func TestConsoleLinkUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestConsoleLinkDelete(t *testing.T) {
|
||||
|
@ -165,7 +166,7 @@ func TestConsoleLinkDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &osconsolev1.ConsoleLink{}
|
||||
|
@ -175,7 +176,7 @@ func TestConsoleLinkDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestConsoleLinksCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -263,12 +264,12 @@ func TestConsoleLinksCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &osconsolev1.ConsoleLink{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
// New instance should have Href=host2
|
||||
|
@ -276,7 +277,7 @@ func TestConsoleLinksCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
|
||||
persistedExisting := &osconsolev1.ConsoleLink{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
// Existing should have Href=host1, reconciliation should not touch existing instances.
|
||||
|
@ -329,7 +330,7 @@ func TestConsoleLinksSkipped(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &osconsolev1.ConsoleLink{}
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
batchv1 "k8s.io/api/batch/v1"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
|
@ -55,7 +56,7 @@ func TestCronJobsCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &batchv1.CronJob{}
|
||||
|
@ -65,7 +66,7 @@ func TestCronJobsCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestCronJobsUpdate(t *testing.T) {
|
||||
|
@ -102,7 +103,7 @@ func TestCronJobsUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &batchv1.CronJob{}
|
||||
|
@ -112,7 +113,7 @@ func TestCronJobsUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestCronJobsDelete(t *testing.T) {
|
||||
|
@ -140,7 +141,7 @@ func TestCronJobsDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &batchv1.CronJob{}
|
||||
|
@ -150,7 +151,7 @@ func TestCronJobsDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestCronJobsCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -200,18 +201,18 @@ func TestCronJobsCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &batchv1.CronJob{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &batchv1.CronJob{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
|
@ -43,7 +44,7 @@ func TestDaemonSetsCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &appsv1.DaemonSet{}
|
||||
|
@ -53,7 +54,7 @@ func TestDaemonSetsCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestDaemonSetsUpdate(t *testing.T) {
|
||||
|
@ -87,7 +88,7 @@ func TestDaemonSetsUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &appsv1.DaemonSet{}
|
||||
|
@ -97,7 +98,7 @@ func TestDaemonSetsUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestDaemonSetsDelete(t *testing.T) {
|
||||
|
@ -125,7 +126,7 @@ func TestDaemonSetsDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &appsv1.DaemonSet{}
|
||||
|
@ -135,7 +136,7 @@ func TestDaemonSetsDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestDaemonSetsCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -179,18 +180,18 @@ func TestDaemonSetsCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &appsv1.DaemonSet{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &appsv1.DaemonSet{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
batchv1 "k8s.io/api/batch/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
@ -38,7 +39,7 @@ func TestHandleDependencies(t *testing.T) {
|
|||
wg.Add(1)
|
||||
go func() {
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
wg.Done()
|
||||
}()
|
||||
|
||||
|
@ -46,14 +47,14 @@ func TestHandleDependencies(t *testing.T) {
|
|||
time.Sleep(100 * time.Millisecond)
|
||||
|
||||
persisted := &batchv1.Job{}
|
||||
assert.NoError(t, cl.Get(context.Background(), nsn, persisted))
|
||||
require.NoError(t, cl.Get(context.Background(), nsn, persisted))
|
||||
persisted.Status.Succeeded = 1
|
||||
assert.NoError(t, cl.Status().Update(context.Background(), persisted))
|
||||
require.NoError(t, cl.Status().Update(context.Background(), persisted))
|
||||
|
||||
wg.Wait()
|
||||
|
||||
// verify
|
||||
persisted = &batchv1.Job{}
|
||||
assert.NoError(t, cl.Get(context.Background(), nsn, persisted))
|
||||
require.NoError(t, cl.Get(context.Background(), nsn, persisted))
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
|
@ -47,7 +48,7 @@ func TestDeploymentCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &appsv1.Deployment{}
|
||||
|
@ -57,7 +58,7 @@ func TestDeploymentCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestDeploymentUpdate(t *testing.T) {
|
||||
|
@ -94,7 +95,7 @@ func TestDeploymentUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &appsv1.Deployment{}
|
||||
|
@ -104,7 +105,7 @@ func TestDeploymentUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestDeploymentDelete(t *testing.T) {
|
||||
|
@ -132,7 +133,7 @@ func TestDeploymentDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &appsv1.Deployment{}
|
||||
|
@ -142,7 +143,7 @@ func TestDeploymentDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestDeploymentDeleteAfterCreate(t *testing.T) {
|
||||
|
@ -174,7 +175,7 @@ func TestDeploymentDeleteAfterCreate(t *testing.T) {
|
|||
|
||||
// sanity check that the deployment to be removed is indeed there in the first place...
|
||||
persistedDelete := &appsv1.Deployment{}
|
||||
assert.NoError(t, cl.Get(context.Background(), types.NamespacedName{Name: depToDelete.Name, Namespace: depToDelete.Namespace}, persistedDelete))
|
||||
require.NoError(t, cl.Get(context.Background(), types.NamespacedName{Name: depToDelete.Name, Namespace: depToDelete.Namespace}, persistedDelete))
|
||||
assert.Equal(t, depToDelete.Name, persistedDelete.Name)
|
||||
|
||||
// test
|
||||
|
@ -184,7 +185,7 @@ func TestDeploymentDeleteAfterCreate(t *testing.T) {
|
|||
// will block until it finishes, which should happen after the deployments
|
||||
// have achieved stability and everything has been created/updated/deleted
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
wg.Done()
|
||||
}()
|
||||
|
||||
|
@ -192,20 +193,20 @@ func TestDeploymentDeleteAfterCreate(t *testing.T) {
|
|||
time.Sleep(100 * time.Millisecond)
|
||||
|
||||
persisted := &appsv1.Deployment{}
|
||||
assert.NoError(t, cl.Get(context.Background(), nsn, persisted))
|
||||
require.NoError(t, cl.Get(context.Background(), nsn, persisted))
|
||||
persisted.Status.ReadyReplicas = 2
|
||||
assert.NoError(t, cl.Status().Update(context.Background(), persisted))
|
||||
require.NoError(t, cl.Status().Update(context.Background(), persisted))
|
||||
|
||||
wg.Wait() // will block until the reconcile logic finishes
|
||||
|
||||
// verify that the deployment to be created was created
|
||||
persisted = &appsv1.Deployment{}
|
||||
assert.NoError(t, cl.Get(context.Background(), nsn, persisted))
|
||||
require.NoError(t, cl.Get(context.Background(), nsn, persisted))
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
|
||||
// check that the deployment to be deleted was indeed deleted
|
||||
persistedDelete = &appsv1.Deployment{}
|
||||
assert.Error(t, cl.Get(context.Background(), types.NamespacedName{Name: depToDelete.Name, Namespace: depToDelete.Namespace}, persistedDelete))
|
||||
require.Error(t, cl.Get(context.Background(), types.NamespacedName{Name: depToDelete.Name, Namespace: depToDelete.Namespace}, persistedDelete))
|
||||
assert.Empty(t, persistedDelete.Name)
|
||||
}
|
||||
|
||||
|
@ -250,18 +251,18 @@ func TestDeploymentCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &appsv1.Deployment{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &appsv1.Deployment{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
|
|
@ -2,11 +2,12 @@ package jaeger
|
|||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
esv1 "github.com/openshift/elasticsearch-operator/apis/logging/v1"
|
||||
"github.com/pkg/errors"
|
||||
"go.opentelemetry.io/otel"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
k8serrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
|
@ -52,7 +53,7 @@ func (r *ReconcileJaeger) applyElasticsearches(ctx context.Context, jaeger v1.Ja
|
|||
}
|
||||
|
||||
if err := waitForAvailableElastic(ctx, r.client, d); err != nil {
|
||||
return tracing.HandleError(errors.Wrap(err, "elasticsearch cluster didn't get to ready state"), span)
|
||||
return tracing.HandleError(fmt.Errorf("elasticsearch cluster didn't get to ready state: %w", err), span)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
@ -49,7 +50,7 @@ func TestElasticsearchesCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &esv1.Elasticsearch{}
|
||||
|
@ -59,7 +60,7 @@ func TestElasticsearchesCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestElasticsearchesUpdate(t *testing.T) {
|
||||
|
@ -96,7 +97,7 @@ func TestElasticsearchesUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &esv1.Elasticsearch{}
|
||||
|
@ -106,7 +107,7 @@ func TestElasticsearchesUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestElasticsearchesDelete(t *testing.T) {
|
||||
|
@ -137,7 +138,7 @@ func TestElasticsearchesDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &esv1.Elasticsearch{}
|
||||
|
@ -147,7 +148,7 @@ func TestElasticsearchesDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestElasticsearchesCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -194,18 +195,18 @@ func TestElasticsearchesCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &esv1.Elasticsearch{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &esv1.Elasticsearch{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
autoscalingv2 "k8s.io/api/autoscaling/v2"
|
||||
autoscalingv2beta2 "k8s.io/api/autoscaling/v2beta2"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
@ -51,7 +52,7 @@ func TestHorizontalPodAutoscalerCreateV2(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &autoscalingv2.HorizontalPodAutoscaler{}
|
||||
|
@ -61,7 +62,7 @@ func TestHorizontalPodAutoscalerCreateV2(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestHorizontalPodAutoscalerCreateV2Beta2(t *testing.T) {
|
||||
|
@ -97,7 +98,7 @@ func TestHorizontalPodAutoscalerCreateV2Beta2(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &autoscalingv2beta2.HorizontalPodAutoscaler{}
|
||||
|
@ -107,7 +108,7 @@ func TestHorizontalPodAutoscalerCreateV2Beta2(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestHorizontalPodAutoscalerUpdateV2(t *testing.T) {
|
||||
|
@ -147,7 +148,7 @@ func TestHorizontalPodAutoscalerUpdateV2(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &autoscalingv2.HorizontalPodAutoscaler{}
|
||||
|
@ -157,7 +158,7 @@ func TestHorizontalPodAutoscalerUpdateV2(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestHorizontalPodAutoscalerUpdateV2Beta2(t *testing.T) {
|
||||
|
@ -197,7 +198,7 @@ func TestHorizontalPodAutoscalerUpdateV2Beta2(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &autoscalingv2beta2.HorizontalPodAutoscaler{}
|
||||
|
@ -207,7 +208,7 @@ func TestHorizontalPodAutoscalerUpdateV2Beta2(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestHorizontalPodAutoscalerDeleteV2(t *testing.T) {
|
||||
|
@ -236,7 +237,7 @@ func TestHorizontalPodAutoscalerDeleteV2(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &autoscalingv2.HorizontalPodAutoscaler{}
|
||||
|
@ -246,7 +247,7 @@ func TestHorizontalPodAutoscalerDeleteV2(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestHorizontalPodAutoscalerDeleteV2Beta2(t *testing.T) {
|
||||
|
@ -275,7 +276,7 @@ func TestHorizontalPodAutoscalerDeleteV2Beta2(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &autoscalingv2beta2.HorizontalPodAutoscaler{}
|
||||
|
@ -285,7 +286,7 @@ func TestHorizontalPodAutoscalerDeleteV2Beta2(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestHorizontalPodAutoscalerCreateExistingNameInAnotherNamespaceV2(t *testing.T) {
|
||||
|
@ -331,18 +332,18 @@ func TestHorizontalPodAutoscalerCreateExistingNameInAnotherNamespaceV2(t *testin
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &autoscalingv2.HorizontalPodAutoscaler{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &autoscalingv2.HorizontalPodAutoscaler{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
@ -390,18 +391,18 @@ func TestHorizontalPodAutoscalerCreateExistingNameInAnotherNamespaceV2Beta2(t *t
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &autoscalingv2beta2.HorizontalPodAutoscaler{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &autoscalingv2beta2.HorizontalPodAutoscaler{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
networkingv1 "k8s.io/api/networking/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
|
@ -43,7 +44,7 @@ func TestIngressesCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &networkingv1.Ingress{}
|
||||
|
@ -53,7 +54,7 @@ func TestIngressesCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestIngressesUpdate(t *testing.T) {
|
||||
|
@ -87,7 +88,7 @@ func TestIngressesUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &networkingv1.Ingress{}
|
||||
|
@ -97,7 +98,7 @@ func TestIngressesUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestIngressesDelete(t *testing.T) {
|
||||
|
@ -125,7 +126,7 @@ func TestIngressesDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &networkingv1.Ingress{}
|
||||
|
@ -135,7 +136,7 @@ func TestIngressesDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestIngressesCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -179,18 +180,18 @@ func TestIngressesCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &networkingv1.Ingress{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &networkingv1.Ingress{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ import (
|
|||
"time"
|
||||
|
||||
osv1 "github.com/openshift/api/route/v1"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/spf13/viper"
|
||||
"go.opentelemetry.io/otel"
|
||||
otelattribute "go.opentelemetry.io/otel/attribute"
|
||||
|
@ -219,7 +218,7 @@ func (r *ReconcileJaeger) Reconcile(request reconcile.Request) (reconcile.Result
|
|||
func validate(jaeger *v1.Jaeger) error {
|
||||
if jaeger.Spec.Storage.EsRollover.ReadTTL != "" {
|
||||
if _, err := time.ParseDuration(jaeger.Spec.Storage.EsRollover.ReadTTL); err != nil {
|
||||
return errors.Wrap(err, "failed to parse esRollover.readTTL to time.Duration")
|
||||
return fmt.Errorf("failed to parse esRollover.readTTL to time.Duration: %w", err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
|
|
@ -186,7 +186,7 @@ func TestSyncOnJaegerChanges(t *testing.T) {
|
|||
|
||||
err = syncOnJaegerChanges(cl, cl, jaeger.Name)
|
||||
assert.Equal(t, 4, cl.counter)
|
||||
assert.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
cl.counter = 0
|
||||
|
||||
cl.updateErr = errUpdate
|
||||
|
@ -219,13 +219,13 @@ func TestNewJaegerInstance(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &v1.Jaeger{}
|
||||
err = cl.Get(context.Background(), req.NamespacedName, persisted)
|
||||
assert.Equal(t, persisted.Name, nsn.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// these are filled with default values
|
||||
assert.Equal(t, v1.DeploymentStrategyAllInOne, persisted.Spec.Strategy)
|
||||
|
@ -259,7 +259,7 @@ func TestDeletedInstance(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &v1.Jaeger{}
|
||||
|
@ -287,7 +287,7 @@ func TestSetOwnerOnNewInstance(t *testing.T) {
|
|||
_, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
persisted := &v1.Jaeger{}
|
||||
cl.Get(context.Background(), req.NamespacedName, persisted)
|
||||
assert.NotNil(t, persisted.Labels)
|
||||
|
@ -315,7 +315,7 @@ func TestSkipOnNonOwnedCR(t *testing.T) {
|
|||
_, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
persisted := &v1.Jaeger{}
|
||||
cl.Get(context.Background(), req.NamespacedName, persisted)
|
||||
assert.NotNil(t, persisted.Labels)
|
||||
|
@ -347,10 +347,10 @@ func TestGetResourceFromNonCachedClient(t *testing.T) {
|
|||
_, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
persisted := &v1.Jaeger{}
|
||||
err = client.Get(context.Background(), req.NamespacedName, persisted)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, errors.IsNotFound(err))
|
||||
}
|
||||
|
||||
|
@ -362,12 +362,12 @@ func TestGetSecretsForNamespace(t *testing.T) {
|
|||
|
||||
secrets := []corev1.Secret{secretOne, secretTwo}
|
||||
filteredSecrets := r.getSecretsForNamespace(secrets, "foo")
|
||||
assert.Equal(t, 2, len(filteredSecrets))
|
||||
assert.Len(t, filteredSecrets, 2)
|
||||
|
||||
secretThree := createSecret("bar", "secretThree")
|
||||
secrets = append(secrets, secretThree)
|
||||
filteredSecrets = r.getSecretsForNamespace(secrets, "bar")
|
||||
assert.Equal(t, 1, len(filteredSecrets))
|
||||
assert.Len(t, filteredSecrets, 1)
|
||||
assert.Contains(t, filteredSecrets, secretThree)
|
||||
}
|
||||
|
||||
|
@ -388,7 +388,7 @@ func TestElasticsearchProvisioning(t *testing.T) {
|
|||
secrets := &corev1.SecretList{}
|
||||
err = cl.List(context.Background(), secrets, client.InNamespace("jaeger"))
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, 4, len(secrets.Items))
|
||||
assert.Len(t, secrets.Items, 4)
|
||||
assert.NotNil(t, getSecret("prod-jaeger-elasticsearch", *secrets))
|
||||
assert.NotNil(t, getSecret("prod-master-certs", *secrets))
|
||||
assert.NotNil(t, getSecret("prod-curator", *secrets))
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
@ -61,7 +62,7 @@ func TestKafkaCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &v1beta2.Kafka{}
|
||||
|
@ -71,7 +72,7 @@ func TestKafkaCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.GetName())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestKafkaUpdate(t *testing.T) {
|
||||
|
@ -133,7 +134,7 @@ func TestKafkaUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &v1beta2.Kafka{}
|
||||
|
@ -142,9 +143,9 @@ func TestKafkaUpdate(t *testing.T) {
|
|||
Namespace: orig.GetNamespace(),
|
||||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
}
|
||||
|
||||
|
@ -181,7 +182,7 @@ func TestKafkaDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &v1beta2.Kafka{}
|
||||
|
@ -191,7 +192,7 @@ func TestKafkaDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.GetName())
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestKafkaCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -258,18 +259,18 @@ func TestKafkaCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &v1beta2.Kafka{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.GetName())
|
||||
assert.Equal(t, nsn.Namespace, persisted.GetNamespace())
|
||||
|
||||
persistedExisting := &v1beta2.Kafka{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.GetName())
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.GetNamespace())
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
@ -61,7 +62,7 @@ func TestKafkaUserCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &v1beta2.KafkaUser{}
|
||||
|
@ -71,7 +72,7 @@ func TestKafkaUserCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.GetName())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestKafkaUserUpdate(t *testing.T) {
|
||||
|
@ -133,7 +134,7 @@ func TestKafkaUserUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &v1beta2.KafkaUser{}
|
||||
|
@ -142,9 +143,9 @@ func TestKafkaUserUpdate(t *testing.T) {
|
|||
Namespace: orig.GetNamespace(),
|
||||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
}
|
||||
|
||||
|
@ -180,7 +181,7 @@ func TestKafkaUserDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &v1beta2.KafkaUser{}
|
||||
|
@ -190,7 +191,7 @@ func TestKafkaUserDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.GetName())
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestKafkaUserCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -257,18 +258,18 @@ func TestKafkaUserCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &v1beta2.KafkaUser{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.GetName())
|
||||
assert.Equal(t, nsn.Namespace, persisted.GetNamespace())
|
||||
|
||||
persistedExisting := &v1beta2.KafkaUser{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.GetName())
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.GetNamespace())
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
osv1 "github.com/openshift/api/route/v1"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
@ -47,7 +48,7 @@ func TestRoutesCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &osv1.Route{}
|
||||
|
@ -57,7 +58,7 @@ func TestRoutesCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestRoutesUpdate(t *testing.T) {
|
||||
|
@ -94,7 +95,7 @@ func TestRoutesUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &osv1.Route{}
|
||||
|
@ -104,7 +105,7 @@ func TestRoutesUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestRoutesDelete(t *testing.T) {
|
||||
|
@ -135,7 +136,7 @@ func TestRoutesDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &osv1.Route{}
|
||||
|
@ -145,7 +146,7 @@ func TestRoutesDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestRoutesCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -192,18 +193,18 @@ func TestRoutesCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &osv1.Route{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &osv1.Route{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
|
@ -43,7 +44,7 @@ func TestSecretsCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &corev1.Secret{}
|
||||
|
@ -53,7 +54,7 @@ func TestSecretsCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestSecretsUpdate(t *testing.T) {
|
||||
|
@ -87,7 +88,7 @@ func TestSecretsUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &corev1.Secret{}
|
||||
|
@ -97,7 +98,7 @@ func TestSecretsUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestSecretsDelete(t *testing.T) {
|
||||
|
@ -125,7 +126,7 @@ func TestSecretsDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &corev1.Secret{}
|
||||
|
@ -135,7 +136,7 @@ func TestSecretsDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestSecretsCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -179,18 +180,18 @@ func TestSecretsCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &corev1.Secret{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &corev1.Secret{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
|
@ -43,7 +44,7 @@ func TestServicesCreate(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &corev1.Service{}
|
||||
|
@ -53,7 +54,7 @@ func TestServicesCreate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, persistedName.Name, persisted.Name)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestServicesUpdate(t *testing.T) {
|
||||
|
@ -87,7 +88,7 @@ func TestServicesUpdate(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &corev1.Service{}
|
||||
|
@ -97,7 +98,7 @@ func TestServicesUpdate(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Equal(t, "new-value", persisted.Annotations["key"])
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestServicesDelete(t *testing.T) {
|
||||
|
@ -125,7 +126,7 @@ func TestServicesDelete(t *testing.T) {
|
|||
|
||||
// test
|
||||
_, err := r.Reconcile(reconcile.Request{NamespacedName: nsn})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify
|
||||
persisted := &corev1.Service{}
|
||||
|
@ -135,7 +136,7 @@ func TestServicesDelete(t *testing.T) {
|
|||
}
|
||||
err = cl.Get(context.Background(), persistedName, persisted)
|
||||
assert.Empty(t, persisted.Name)
|
||||
assert.Error(t, err) // not found
|
||||
require.Error(t, err) // not found
|
||||
}
|
||||
|
||||
func TestServicesCreateExistingNameInAnotherNamespace(t *testing.T) {
|
||||
|
@ -179,18 +180,18 @@ func TestServicesCreateExistingNameInAnotherNamespace(t *testing.T) {
|
|||
res, err := r.Reconcile(req)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, res.Requeue, "We don't requeue for now")
|
||||
|
||||
persisted := &corev1.Service{}
|
||||
err = cl.Get(context.Background(), nsn, persisted)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsn.Name, persisted.Name)
|
||||
assert.Equal(t, nsn.Namespace, persisted.Namespace)
|
||||
|
||||
persistedExisting := &corev1.Service{}
|
||||
err = cl.Get(context.Background(), nsnExisting, persistedExisting)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, nsnExisting.Name, persistedExisting.Name)
|
||||
assert.Equal(t, nsnExisting.Namespace, persistedExisting.Namespace)
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
|
||||
v1 "github.com/jaegertracing/jaeger-operator/apis/v1"
|
||||
|
@ -28,7 +29,7 @@ func TestDirectNextMinor(t *testing.T) {
|
|||
j, err := r.applyUpgrades(context.Background(), j)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// we cannot make any other assumptions here, but we know that 1.12.0 is an older
|
||||
// version, so, at least the status field should have been updated
|
||||
|
@ -44,7 +45,7 @@ func TestSetVersionOnNewInstance(t *testing.T) {
|
|||
j, err := r.applyUpgrades(context.Background(), j)
|
||||
|
||||
// verify
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// we cannot make any other assumptions here, but we know that 1.12.0 is an older
|
||||
// version, so, at least the status field should have been updated
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
@ -200,7 +201,7 @@ func TestReconcilieDeployment(t *testing.T) {
|
|||
}
|
||||
|
||||
persisted := &appsv1.DeploymentList{}
|
||||
assert.Nil(t, cl.List(context.Background(), persisted))
|
||||
require.NoError(t, cl.List(context.Background(), persisted))
|
||||
|
||||
for _, p := range persisted.Items {
|
||||
const notFound = -2
|
||||
|
@ -225,7 +226,7 @@ func TestReconcilieDeployment(t *testing.T) {
|
|||
} else {
|
||||
assert.True(t, ok)
|
||||
rev, err := strconv.Atoi(revStr)
|
||||
assert.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expectedRevision, rev)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,10 +31,10 @@ func TestCreateEsIndexCleaner(t *testing.T) {
|
|||
jaeger.Spec.Storage.EsIndexCleaner.SuccessfulJobsHistoryLimit = &historyLimits
|
||||
cronJob := CreateEsIndexCleaner(jaeger).(*batchv1.CronJob)
|
||||
|
||||
assert.Equal(t, 2, len(cronJob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Args))
|
||||
assert.Len(t, cronJob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Args, 2)
|
||||
// default number of days (7) is applied in normalize in controller
|
||||
assert.Equal(t, []string{"0", "http://nowhere:666"}, cronJob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Args)
|
||||
assert.Equal(t, 1, len(cronJob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Env))
|
||||
assert.Len(t, cronJob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Env, 1)
|
||||
assert.Equal(t, "INDEX_PREFIX", cronJob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Env[0].Name)
|
||||
assert.Equal(t, "tenant1", cronJob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Env[0].Value)
|
||||
assert.Equal(t, historyLimits, *cronJob.Spec.SuccessfulJobsHistoryLimit)
|
||||
|
@ -62,12 +62,12 @@ func TestCreateEsIndexCleanerTypeMeta(t *testing.T) {
|
|||
cronJobs := CreateEsIndexCleaner(jaeger)
|
||||
switch tt := cronJobs.(type) {
|
||||
case *batchv1beta1.CronJob:
|
||||
assert.Equal(t, tt.Kind, "CronJob")
|
||||
assert.Equal(t, tt.APIVersion, v1.FlagCronJobsVersionBatchV1Beta1)
|
||||
assert.Equal(t, "CronJob", tt.Kind)
|
||||
assert.Equal(t, v1.FlagCronJobsVersionBatchV1Beta1, tt.APIVersion)
|
||||
viper.SetDefault(v1.FlagCronJobsVersion, v1.FlagCronJobsVersionBatchV1)
|
||||
case *batchv1.CronJob:
|
||||
assert.Equal(t, tt.Kind, "CronJob")
|
||||
assert.Equal(t, tt.APIVersion, v1.FlagCronJobsVersionBatchV1)
|
||||
assert.Equal(t, "CronJob", tt.Kind)
|
||||
assert.Equal(t, v1.FlagCronJobsVersionBatchV1, tt.APIVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ func init() {
|
|||
|
||||
func TestCreateRollover(t *testing.T) {
|
||||
cj := CreateRollover(v1.NewJaeger(types.NamespacedName{Name: "pikachu"}))
|
||||
assert.Equal(t, 2, len(cj))
|
||||
assert.Len(t, cj, 2)
|
||||
}
|
||||
|
||||
func TestCreateRolloverTypeMeta(t *testing.T) {
|
||||
|
@ -44,16 +44,16 @@ func TestCreateRolloverTypeMeta(t *testing.T) {
|
|||
viper.SetDefault(v1.FlagCronJobsVersion, v1.FlagCronJobsVersionBatchV1Beta1)
|
||||
}
|
||||
cjs := CreateRollover(v1.NewJaeger(types.NamespacedName{Name: "pikachu"}))
|
||||
assert.Equal(t, 2, len(cjs))
|
||||
assert.Len(t, cjs, 2)
|
||||
for _, cj := range cjs {
|
||||
switch tt := cj.(type) {
|
||||
case *batchv1beta1.CronJob:
|
||||
assert.Equal(t, tt.Kind, "CronJob")
|
||||
assert.Equal(t, tt.APIVersion, v1.FlagCronJobsVersionBatchV1Beta1)
|
||||
assert.Equal(t, "CronJob", tt.Kind)
|
||||
assert.Equal(t, v1.FlagCronJobsVersionBatchV1Beta1, tt.APIVersion)
|
||||
viper.SetDefault(v1.FlagCronJobsVersion, v1.FlagCronJobsVersionBatchV1)
|
||||
case *batchv1.CronJob:
|
||||
assert.Equal(t, tt.Kind, "CronJob")
|
||||
assert.Equal(t, tt.APIVersion, v1.FlagCronJobsVersionBatchV1)
|
||||
assert.Equal(t, "CronJob", tt.Kind)
|
||||
assert.Equal(t, v1.FlagCronJobsVersionBatchV1, tt.APIVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ func TestRollover(t *testing.T) {
|
|||
assert.Equal(t, j.Namespace, cjob.Namespace)
|
||||
assert.Equal(t, []metav1.OwnerReference{util.AsOwner(j)}, cjob.OwnerReferences)
|
||||
assert.Equal(t, util.Labels("eevee-es-rollover", "cronjob-es-rollover", *j), cjob.Labels)
|
||||
assert.Equal(t, 1, len(cjob.Spec.JobTemplate.Spec.Template.Spec.Containers))
|
||||
assert.Len(t, cjob.Spec.JobTemplate.Spec.Template.Spec.Containers, 1)
|
||||
assert.Equal(t, j.Spec.Storage.EsRollover.Image, cjob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Image)
|
||||
assert.Equal(t, []string{"rollover", "foo"}, cjob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Args)
|
||||
assert.Equal(t, []corev1.EnvVar{{Name: "INDEX_PREFIX", Value: "shortone"}, {Name: "CONDITIONS", Value: "weheee"}}, cjob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Env)
|
||||
|
@ -118,7 +118,7 @@ func TestLookback(t *testing.T) {
|
|||
assert.Equal(t, j.Namespace, cjob.Namespace)
|
||||
assert.Equal(t, []metav1.OwnerReference{util.AsOwner(j)}, cjob.OwnerReferences)
|
||||
assert.Equal(t, util.Labels("squirtle-es-lookback", "cronjob-es-lookback", *j), cjob.Labels)
|
||||
assert.Equal(t, 1, len(cjob.Spec.JobTemplate.Spec.Template.Spec.Containers))
|
||||
assert.Len(t, cjob.Spec.JobTemplate.Spec.Template.Spec.Containers, 1)
|
||||
assert.Equal(t, j.Spec.Storage.EsRollover.Image, cjob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Image)
|
||||
assert.Equal(t, []string{"lookback", "foo"}, cjob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Args)
|
||||
assert.Equal(t, []corev1.EnvVar{{Name: "INDEX_PREFIX", Value: "shortone"}, {Name: "UNIT", Value: "hours"}, {Name: "UNIT_COUNT", Value: "2"}}, cjob.Spec.JobTemplate.Spec.Template.Spec.Containers[0].Env)
|
||||
|
|
|
@ -151,12 +151,12 @@ func TestCreateTypeMeta(t *testing.T) {
|
|||
assert.NotNil(t, sd)
|
||||
switch tt := sd.(type) {
|
||||
case *batchv1beta1.CronJob:
|
||||
assert.Equal(t, tt.Kind, "CronJob")
|
||||
assert.Equal(t, tt.APIVersion, v1.FlagCronJobsVersionBatchV1Beta1)
|
||||
assert.Equal(t, "CronJob", tt.Kind)
|
||||
assert.Equal(t, v1.FlagCronJobsVersionBatchV1Beta1, tt.APIVersion)
|
||||
viper.SetDefault(v1.FlagCronJobsVersion, v1.FlagCronJobsVersionBatchV1)
|
||||
case *batchv1.CronJob:
|
||||
assert.Equal(t, tt.Kind, "CronJob")
|
||||
assert.Equal(t, tt.APIVersion, v1.FlagCronJobsVersionBatchV1)
|
||||
assert.Equal(t, "CronJob", tt.Kind)
|
||||
assert.Equal(t, v1.FlagCronJobsVersionBatchV1, tt.APIVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -144,9 +144,9 @@ func (a *Agent) Get() *appsv1.DaemonSet {
|
|||
Annotations: commonSpec.Annotations,
|
||||
},
|
||||
Spec: corev1.PodSpec{
|
||||
ImagePullSecrets: a.jaeger.Spec.ImagePullSecrets,
|
||||
ImagePullSecrets: a.jaeger.Spec.Agent.ImagePullSecrets,
|
||||
Containers: []corev1.Container{{
|
||||
Image: util.ImageName(a.jaeger.Spec.Agent.Image, "jaeger-agent-image"),
|
||||
Image: util.AgentImageName(a.jaeger.Spec.Agent.Image, "jaeger-agent-image"),
|
||||
Name: "jaeger-agent-daemonset",
|
||||
Args: args,
|
||||
Env: proxy.ReadProxyVarsFromEnv(),
|
||||
|
|
|
@ -50,7 +50,7 @@ func TestDefaultAgentImage(t *testing.T) {
|
|||
|
||||
d := NewAgent(jaeger).Get()
|
||||
assert.Empty(t, jaeger.Spec.Agent.Image)
|
||||
assert.Equal(t, "org/custom-agent-image:"+version.Get().Jaeger, d.Spec.Template.Spec.Containers[0].Image)
|
||||
assert.Equal(t, "org/custom-agent-image:"+version.Get().Agent, d.Spec.Template.Spec.Containers[0].Image)
|
||||
}
|
||||
|
||||
func TestGetDefaultAgentDeployment(t *testing.T) {
|
||||
|
@ -269,12 +269,12 @@ func TestAgentArgumentsOpenshiftTLS(t *testing.T) {
|
|||
assert.Len(t, dep.Spec.Template.Spec.Containers[0].Args, len(tt.expectedArgs))
|
||||
|
||||
for _, arg := range tt.expectedArgs {
|
||||
assert.Greater(t, len(util.FindItem(arg, dep.Spec.Template.Spec.Containers[0].Args)), 0)
|
||||
assert.NotEmpty(t, util.FindItem(arg, dep.Spec.Template.Spec.Containers[0].Args))
|
||||
}
|
||||
|
||||
if tt.nonExpectedArgs != nil {
|
||||
for _, arg := range tt.nonExpectedArgs {
|
||||
assert.Equal(t, len(util.FindItem(arg, dep.Spec.Template.Spec.Containers[0].Args)), 0)
|
||||
assert.Empty(t, util.FindItem(arg, dep.Spec.Template.Spec.Containers[0].Args))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -288,7 +288,7 @@ func TestAgentImagePullSecrets(t *testing.T) {
|
|||
jaeger := v1.NewJaeger(types.NamespacedName{Name: "TestAllInOneImagePullSecrets"})
|
||||
const pullSecret = "mysecret"
|
||||
jaeger.Spec.Agent.Strategy = "daemonset"
|
||||
jaeger.Spec.ImagePullSecrets = []corev1.LocalObjectReference{
|
||||
jaeger.Spec.Agent.ImagePullSecrets = []corev1.LocalObjectReference{
|
||||
{
|
||||
Name: pullSecret,
|
||||
},
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package deployment
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strconv"
|
||||
|
||||
|
@ -13,7 +12,6 @@ import (
|
|||
|
||||
v1 "github.com/jaegertracing/jaeger-operator/apis/v1"
|
||||
"github.com/jaegertracing/jaeger-operator/pkg/account"
|
||||
"github.com/jaegertracing/jaeger-operator/pkg/autodetect"
|
||||
"github.com/jaegertracing/jaeger-operator/pkg/config/ca"
|
||||
"github.com/jaegertracing/jaeger-operator/pkg/config/sampling"
|
||||
"github.com/jaegertracing/jaeger-operator/pkg/config/tls"
|
||||
|
@ -78,18 +76,6 @@ func (a *AllInOne) Get() *appsv1.Deployment {
|
|||
ca.AddServiceCA(a.jaeger, commonSpec)
|
||||
storage.UpdateGRPCPlugin(a.jaeger, commonSpec)
|
||||
|
||||
// Enable tls by default for openshift platform
|
||||
// even though the agent is in the same process as the collector, they communicate via gRPC, and the collector has TLS enabled,
|
||||
// as it might receive connections from external agents
|
||||
if autodetect.OperatorConfiguration.GetPlatform() == autodetect.OpenShiftPlatform {
|
||||
if len(util.FindItem("--reporter.grpc.host-port=", options)) == 0 &&
|
||||
len(util.FindItem("--reporter.grpc.tls.enabled=", options)) == 0 {
|
||||
options = append(options, "--reporter.grpc.tls.enabled=true")
|
||||
options = append(options, fmt.Sprintf("--reporter.grpc.tls.ca=%s", ca.ServiceCAPath))
|
||||
options = append(options, fmt.Sprintf("--reporter.grpc.tls.server-name=%s.%s.svc.cluster.local", service.GetNameForHeadlessCollectorService(a.jaeger), a.jaeger.Namespace))
|
||||
}
|
||||
}
|
||||
|
||||
// ensure we have a consistent order of the arguments
|
||||
// see https://github.com/jaegertracing/jaeger-operator/issues/334
|
||||
sort.Strings(options)
|
||||
|
@ -152,6 +138,14 @@ func (a *AllInOne) Get() *appsv1.Deployment {
|
|||
Value: strconv.FormatBool(jaegerDisabled),
|
||||
},
|
||||
}
|
||||
|
||||
if a.jaeger.Spec.AllInOne.MetricsStorage.Type == "prometheus" && a.jaeger.Spec.AllInOne.MetricsStorage.ServerUrl != "" {
|
||||
envVars = append(envVars, corev1.EnvVar{
|
||||
Name: "PROMETHEUS_SERVER_URL",
|
||||
Value: a.jaeger.Spec.AllInOne.MetricsStorage.ServerUrl,
|
||||
})
|
||||
}
|
||||
|
||||
envVars = append(envVars, proxy.ReadProxyVarsFromEnv()...)
|
||||
|
||||
ports := []corev1.ContainerPort{
|
||||
|
|
|
@ -54,6 +54,14 @@ func TestDefaultAllInOneImage(t *testing.T) {
|
|||
Name: "COLLECTOR_OTLP_ENABLED",
|
||||
Value: "true",
|
||||
},
|
||||
{
|
||||
Name: "COLLECTOR_OTLP_GRPC_HOST_PORT",
|
||||
Value: "0.0.0.0:4317",
|
||||
},
|
||||
{
|
||||
Name: "COLLECTOR_OTLP_HTTP_HOST_PORT",
|
||||
Value: "0.0.0.0:4318",
|
||||
},
|
||||
}
|
||||
assert.Equal(t, envvars, d.Spec.Template.Spec.Containers[0].Env)
|
||||
}
|
||||
|
@ -253,7 +261,7 @@ func TestAllInOneMountGlobalVolumes(t *testing.T) {
|
|||
// Count includes the sampling configmap
|
||||
assert.Len(t, podSpec.Containers[0].VolumeMounts, 2)
|
||||
// allInOne volume is mounted
|
||||
assert.Equal(t, podSpec.Containers[0].VolumeMounts[0].Name, "globalVolume")
|
||||
assert.Equal(t, "globalVolume", podSpec.Containers[0].VolumeMounts[0].Name)
|
||||
}
|
||||
|
||||
func TestAllInOneVolumeMountsWithSameName(t *testing.T) {
|
||||
|
@ -277,7 +285,7 @@ func TestAllInOneVolumeMountsWithSameName(t *testing.T) {
|
|||
// Count includes the sampling configmap
|
||||
assert.Len(t, podSpec.Containers[0].VolumeMounts, 2)
|
||||
// allInOne volume is mounted
|
||||
assert.Equal(t, podSpec.Containers[0].VolumeMounts[0].ReadOnly, false)
|
||||
assert.False(t, podSpec.Containers[0].VolumeMounts[0].ReadOnly)
|
||||
}
|
||||
|
||||
func TestAllInOneVolumeWithSameName(t *testing.T) {
|
||||
|
@ -301,7 +309,7 @@ func TestAllInOneVolumeWithSameName(t *testing.T) {
|
|||
// Count includes the sampling configmap
|
||||
assert.Len(t, podSpec.Volumes, 2)
|
||||
// allInOne volume is mounted
|
||||
assert.Equal(t, podSpec.Volumes[0].VolumeSource.HostPath.Path, "/data2")
|
||||
assert.Equal(t, "/data2", podSpec.Volumes[0].VolumeSource.HostPath.Path)
|
||||
}
|
||||
|
||||
func TestAllInOneResources(t *testing.T) {
|
||||
|
@ -390,42 +398,20 @@ func TestAllInOneArgumentsOpenshiftTLS(t *testing.T) {
|
|||
"--collector.grpc.tls.cert=/etc/tls-config/tls.crt",
|
||||
"--collector.grpc.tls.key=/etc/tls-config/tls.key",
|
||||
"--sampling.strategies-file",
|
||||
"--reporter.grpc.tls.ca",
|
||||
"--reporter.grpc.tls.enabled",
|
||||
"--reporter.grpc.tls.server-name",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Explicit disable TLS",
|
||||
options: v1.NewOptions(map[string]interface{}{
|
||||
"a-option": "a-value",
|
||||
"reporter.grpc.tls.enabled": "false",
|
||||
"collector.grpc.tls.enabled": "false",
|
||||
}),
|
||||
expectedArgs: []string{
|
||||
"--a-option=a-value",
|
||||
"--reporter.grpc.tls.enabled=false",
|
||||
"--collector.grpc.tls.enabled=false",
|
||||
"--sampling.strategies-file",
|
||||
},
|
||||
nonExpectedArgs: []string{
|
||||
"--reporter.grpc.tls.enabled=true",
|
||||
"--collector.grpc.tls.enabled=true",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Do not implicitly enable TLS when grpc.host-port is provided",
|
||||
options: v1.NewOptions(map[string]interface{}{
|
||||
"a-option": "a-value",
|
||||
"reporter.grpc.host-port": "my.host-port.com",
|
||||
}),
|
||||
expectedArgs: []string{
|
||||
"--a-option=a-value",
|
||||
"--reporter.grpc.host-port=my.host-port.com",
|
||||
"--sampling.strategies-file",
|
||||
},
|
||||
nonExpectedArgs: []string{
|
||||
"--reporter.grpc.tls.enabled=true",
|
||||
"--collector.grpc.tls.enabled=true",
|
||||
},
|
||||
},
|
||||
|
@ -447,7 +433,7 @@ func TestAllInOneArgumentsOpenshiftTLS(t *testing.T) {
|
|||
|
||||
if tt.nonExpectedArgs != nil {
|
||||
for _, arg := range tt.nonExpectedArgs {
|
||||
assert.Equal(t, len(util.FindItem(arg, dep.Spec.Template.Spec.Containers[0].Args)), 0)
|
||||
assert.Empty(t, util.FindItem(arg, dep.Spec.Template.Spec.Containers[0].Args))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -554,7 +540,7 @@ func TestAllInOneGRPCPlugin(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}, dep.Spec.Template.Spec.InitContainers)
|
||||
require.Equal(t, 1, len(dep.Spec.Template.Spec.Containers))
|
||||
require.Len(t, dep.Spec.Template.Spec.Containers, 1)
|
||||
assert.Equal(t, []string{"--grpc-storage-plugin.binary=/plugin/plugin", "--sampling.strategies-file=/etc/jaeger/sampling/sampling.json"}, dep.Spec.Template.Spec.Containers[0].Args)
|
||||
}
|
||||
|
||||
|
@ -608,6 +594,18 @@ func TestAllInOnePriorityClassName(t *testing.T) {
|
|||
assert.Equal(t, priorityClassName, dep.Spec.Template.Spec.PriorityClassName)
|
||||
}
|
||||
|
||||
func TestAllInOnePrometheusMetricStorage(t *testing.T) {
|
||||
jaeger := v1.NewJaeger(types.NamespacedName{Name: "TestAllInOnePrometheusMetricStorage"})
|
||||
|
||||
jaeger.Spec.AllInOne.MetricsStorage.Type = "prometheus"
|
||||
jaeger.Spec.AllInOne.MetricsStorage.ServerUrl = "http://prometheus:9090"
|
||||
|
||||
d := NewAllInOne(jaeger).Get()
|
||||
|
||||
assert.Equal(t, "prometheus", getEnvVarByName(d.Spec.Template.Spec.Containers[0].Env, "METRICS_STORAGE_TYPE").Value)
|
||||
assert.NotEmpty(t, getEnvVarByName(d.Spec.Template.Spec.Containers[0].Env, "PROMETHEUS_SERVER_URL").Value)
|
||||
}
|
||||
|
||||
func getEnvVarByName(vars []corev1.EnvVar, name string) corev1.EnvVar {
|
||||
envVar := corev1.EnvVar{}
|
||||
for _, v := range vars {
|
||||
|
|
|
@ -93,6 +93,14 @@ func TestDefaultCollectorImage(t *testing.T) {
|
|||
Name: "COLLECTOR_OTLP_ENABLED",
|
||||
Value: "true",
|
||||
},
|
||||
{
|
||||
Name: "COLLECTOR_OTLP_GRPC_HOST_PORT",
|
||||
Value: "0.0.0.0:4317",
|
||||
},
|
||||
{
|
||||
Name: "COLLECTOR_OTLP_HTTP_HOST_PORT",
|
||||
Value: "0.0.0.0:4318",
|
||||
},
|
||||
}
|
||||
assert.Equal(t, envvars, containers[0].Env)
|
||||
}
|
||||
|
@ -261,7 +269,7 @@ func TestCollectorMountGlobalVolumes(t *testing.T) {
|
|||
// Count includes the sampling configmap
|
||||
assert.Len(t, podSpec.Containers[0].VolumeMounts, 2)
|
||||
// collector volume is mounted
|
||||
assert.Equal(t, podSpec.Containers[0].VolumeMounts[0].Name, "globalVolume")
|
||||
assert.Equal(t, "globalVolume", podSpec.Containers[0].VolumeMounts[0].Name)
|
||||
}
|
||||
|
||||
func TestCollectorVolumeMountsWithSameName(t *testing.T) {
|
||||
|
@ -289,7 +297,7 @@ func TestCollectorVolumeMountsWithSameName(t *testing.T) {
|
|||
// Count includes the sampling configmap
|
||||
assert.Len(t, podSpec.Containers[0].VolumeMounts, 2)
|
||||
// collector volume is mounted
|
||||
assert.Equal(t, podSpec.Containers[0].VolumeMounts[0].ReadOnly, false)
|
||||
assert.False(t, podSpec.Containers[0].VolumeMounts[0].ReadOnly)
|
||||
}
|
||||
|
||||
func TestCollectorVolumeWithSameName(t *testing.T) {
|
||||
|
@ -317,7 +325,7 @@ func TestCollectorVolumeWithSameName(t *testing.T) {
|
|||
// Count includes the sampling configmap
|
||||
assert.Len(t, podSpec.Volumes, 2)
|
||||
// collector volume is mounted
|
||||
assert.Equal(t, podSpec.Volumes[0].VolumeSource.HostPath.Path, "/data2")
|
||||
assert.Equal(t, "/data2", podSpec.Volumes[0].VolumeSource.HostPath.Path)
|
||||
}
|
||||
|
||||
func TestCollectorResources(t *testing.T) {
|
||||
|
@ -393,6 +401,14 @@ func TestCollectorWithDirectStorageType(t *testing.T) {
|
|||
Name: "COLLECTOR_OTLP_ENABLED",
|
||||
Value: "true",
|
||||
},
|
||||
{
|
||||
Name: "COLLECTOR_OTLP_GRPC_HOST_PORT",
|
||||
Value: "0.0.0.0:4317",
|
||||
},
|
||||
{
|
||||
Name: "COLLECTOR_OTLP_HTTP_HOST_PORT",
|
||||
Value: "0.0.0.0:4318",
|
||||
},
|
||||
}
|
||||
assert.Equal(t, envvars, dep.Spec.Template.Spec.Containers[0].Env)
|
||||
assert.Len(t, dep.Spec.Template.Spec.Containers[0].Args, 2)
|
||||
|
@ -436,6 +452,14 @@ func TestCollectorWithKafkaStorageType(t *testing.T) {
|
|||
Name: "COLLECTOR_OTLP_ENABLED",
|
||||
Value: "true",
|
||||
},
|
||||
{
|
||||
Name: "COLLECTOR_OTLP_GRPC_HOST_PORT",
|
||||
Value: "0.0.0.0:4317",
|
||||
},
|
||||
{
|
||||
Name: "COLLECTOR_OTLP_HTTP_HOST_PORT",
|
||||
Value: "0.0.0.0:4318",
|
||||
},
|
||||
}
|
||||
assert.Equal(t, envvars, dep.Spec.Template.Spec.Containers[0].Env)
|
||||
assert.Len(t, dep.Spec.Template.Spec.Containers[0].Args, 3)
|
||||
|
@ -475,6 +499,14 @@ func TestCollectorWithIngesterNoOptionsStorageType(t *testing.T) {
|
|||
Name: "COLLECTOR_OTLP_ENABLED",
|
||||
Value: "true",
|
||||
},
|
||||
{
|
||||
Name: "COLLECTOR_OTLP_GRPC_HOST_PORT",
|
||||
Value: "0.0.0.0:4317",
|
||||
},
|
||||
{
|
||||
Name: "COLLECTOR_OTLP_HTTP_HOST_PORT",
|
||||
Value: "0.0.0.0:4318",
|
||||
},
|
||||
}
|
||||
assert.Equal(t, envvars, dep.Spec.Template.Spec.Containers[0].Env)
|
||||
assert.Len(t, dep.Spec.Template.Spec.Containers[0].Args, 2)
|
||||
|
@ -558,7 +590,7 @@ func TestCollectorAutoscalersDisabledByExplicitReplicaSize(t *testing.T) {
|
|||
a := c.Autoscalers()
|
||||
|
||||
// verify
|
||||
assert.Len(t, a, 0)
|
||||
assert.Empty(t, a)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -574,7 +606,7 @@ func TestCollectorAutoscalersDisabledByExplicitOption(t *testing.T) {
|
|||
a := c.Autoscalers()
|
||||
|
||||
// verify
|
||||
assert.Len(t, a, 0)
|
||||
assert.Empty(t, a)
|
||||
}
|
||||
|
||||
func TestCollectorAutoscalersSetMaxReplicas(t *testing.T) {
|
||||
|
@ -665,7 +697,7 @@ func TestCollectoArgumentsOpenshiftTLS(t *testing.T) {
|
|||
|
||||
if tt.nonExpectedArgs != nil {
|
||||
for _, arg := range tt.nonExpectedArgs {
|
||||
assert.Equal(t, len(util.FindItem(arg, dep.Spec.Template.Spec.Containers[0].Args)), 0)
|
||||
assert.Empty(t, util.FindItem(arg, dep.Spec.Template.Spec.Containers[0].Args))
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -774,7 +806,7 @@ func TestCollectorGRPCPlugin(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}, dep.Spec.Template.Spec.InitContainers)
|
||||
require.Equal(t, 1, len(dep.Spec.Template.Spec.Containers))
|
||||
require.Len(t, dep.Spec.Template.Spec.Containers, 1)
|
||||
assert.Equal(t, []string{"--grpc-storage-plugin.binary=/plugin/plugin", "--sampling.strategies-file=/etc/jaeger/sampling/sampling.json"}, dep.Spec.Template.Spec.Containers[0].Args)
|
||||
}
|
||||
|
||||
|
|
|
@ -249,7 +249,7 @@ func TestIngesterMountGlobalVolumes(t *testing.T) {
|
|||
|
||||
assert.Len(t, podSpec.Containers[0].VolumeMounts, 1)
|
||||
// ingester volume is mounted
|
||||
assert.Equal(t, podSpec.Containers[0].VolumeMounts[0].Name, "globalVolume")
|
||||
assert.Equal(t, "globalVolume", podSpec.Containers[0].VolumeMounts[0].Name)
|
||||
}
|
||||
|
||||
func TestIngesterVolumeMountsWithSameName(t *testing.T) {
|
||||
|
@ -276,7 +276,7 @@ func TestIngesterVolumeMountsWithSameName(t *testing.T) {
|
|||
|
||||
assert.Len(t, podSpec.Containers[0].VolumeMounts, 1)
|
||||
// ingester volume is mounted
|
||||
assert.Equal(t, podSpec.Containers[0].VolumeMounts[0].ReadOnly, false)
|
||||
assert.False(t, podSpec.Containers[0].VolumeMounts[0].ReadOnly)
|
||||
}
|
||||
|
||||
func TestIngesterVolumeWithSameName(t *testing.T) {
|
||||
|
@ -303,7 +303,7 @@ func TestIngesterVolumeWithSameName(t *testing.T) {
|
|||
|
||||
assert.Len(t, podSpec.Volumes, 1)
|
||||
// ingester volume is mounted
|
||||
assert.Equal(t, podSpec.Volumes[0].VolumeSource.HostPath.Path, "/data2")
|
||||
assert.Equal(t, "/data2", podSpec.Volumes[0].VolumeSource.HostPath.Path)
|
||||
}
|
||||
|
||||
func TestIngesterResources(t *testing.T) {
|
||||
|
@ -438,7 +438,7 @@ func TestIngesterAutoscalersDisabledByExplicitReplicaSize(t *testing.T) {
|
|||
a := c.Autoscalers()
|
||||
|
||||
// verify
|
||||
assert.Len(t, a, 0)
|
||||
assert.Empty(t, a)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -453,7 +453,7 @@ func TestIngesterAutoscalersDisabledByExplicitOption(t *testing.T) {
|
|||
a := c.Autoscalers()
|
||||
|
||||
// verify
|
||||
assert.Len(t, a, 0)
|
||||
assert.Empty(t, a)
|
||||
}
|
||||
|
||||
func TestIngesterAutoscalersSetMaxReplicas(t *testing.T) {
|
||||
|
@ -577,7 +577,7 @@ func TestIngesterGRPCPlugin(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}, dep.Spec.Template.Spec.InitContainers)
|
||||
require.Equal(t, 1, len(dep.Spec.Template.Spec.Containers))
|
||||
require.Len(t, dep.Spec.Template.Spec.Containers, 1)
|
||||
assert.Equal(t, []string{"--grpc-storage-plugin.binary=/plugin/plugin"}, dep.Spec.Template.Spec.Containers[0].Args)
|
||||
}
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue