Skip to content

Commit 326cce4

Browse files
committed
test(e2e): run on ephemeral clusters
Rework the e2e test to expect a working connection to a cluster when they start. Developers can create their own clusters and run the tests. Removed the code used to start kind clusters within the e2e tests. Reworked the Taskfile to define two environments where the tests can run: 1. An ephemeral one running within Dagger, using the k3s module, to be used by the CI. 2. A persistent one created with Kind, requiring the kind binary, to be used for development and debugging when the ephemeral cluster is not enough. Signed-off-by: Francesco Canovai <[email protected]>
1 parent d4cd8fd commit 326cce4

File tree

13 files changed

+352
-300
lines changed

13 files changed

+352
-300
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,6 @@ jobs:
3232
with:
3333
fetch-depth: 0
3434
ref: ${{ github.event.pull_request.head.sha }}
35-
# TODO: remove this when we daggerize the e2e
36-
- name: Setup Go
37-
uses: actions/setup-go@v5
38-
with:
39-
go-version: '1.23.x'
4035
- name: Install Task
4136
uses: arduino/setup-task@v2
4237
- name: Install Dagger

Taskfile.yml

Lines changed: 79 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
version: 3
22

3+
# We have multiple parallel tasks that run for a long time. Prefix their output with the task name so we can understand
4+
# what task is writing.
5+
output: prefixed
6+
37
# Environment variables that are shared across tasks.
48
env:
59
REGISTRY_NETWORK: barman-cloud-plugin
610
REGISTRY_NAME: registry.barman-cloud-plugin
711
REGISTRY_PORT: 5000
812
DAGGER_ENGINE_CONTAINER_NAME: e2e-dagger-engine
913

14+
vars:
15+
# renovate: datasource=docker depName=kindest/node versioning=semver
16+
E2E_KUBERNETES_VERSION: v1.32.0
17+
E2E_CLUSTER_NAME: barman-cloud-plugin-e2e-{{.E2E_KUBERNETES_VERSION}}
18+
1019
tasks:
1120
lint:
1221
desc: Run golangci-lint
@@ -55,6 +64,7 @@ tasks:
5564
# renovate: datasource=git-refs depName=uncommitted lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
5665
DAGGER_UNCOMMITTED_SHA: f2acc8d99c16422193b59859048ecca98ffb9334
5766
cmds:
67+
- git status
5868
- GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/uncommitted@${DAGGER_UNCOMMITTED_SHA} check-uncommitted --source . stdout
5969
sources:
6070
- ./**
@@ -164,7 +174,7 @@ tasks:
164174
_EXPERIMENTAL_DAGGER_RUNNER_HOST: docker-container://{{.DAGGER_ENGINE_CONTAINER_NAME}}
165175
cmds:
166176
- >
167-
GITHUB_REF= dagger call -m github.com/purpleclay/daggerverse/docker@${DAGGER_DOCKER_SHA}
177+
GITHUB_REF= dagger -s call -m github.com/purpleclay/daggerverse/docker@${DAGGER_DOCKER_SHA}
168178
build --dir . --file containers/Dockerfile.plugin --platform linux/amd64
169179
publish --ref ${REGISTRY_NAME}:${REGISTRY_PORT}/plugin-barman-cloud --tags testing
170180
@@ -181,7 +191,7 @@ tasks:
181191
_EXPERIMENTAL_DAGGER_RUNNER_HOST: docker-container://{{.DAGGER_ENGINE_CONTAINER_NAME}}
182192
cmds:
183193
- >
184-
GITHUB_REF= dagger call -m github.com/purpleclay/daggerverse/docker@${DAGGER_DOCKER_SHA}
194+
GITHUB_REF= dagger -s call -m github.com/purpleclay/daggerverse/docker@${DAGGER_DOCKER_SHA}
185195
build --dir . --file containers/Dockerfile.sidecar --platform linux/amd64
186196
publish --ref ${REGISTRY_NAME}:${REGISTRY_PORT}/sidecar-barman-cloud --tags testing
187197
@@ -191,6 +201,39 @@ tasks:
191201
- build-plugin-image
192202
- build-sidecar-image
193203

204+
# Install kind if not at the expected version.
205+
install-kind:
206+
desc: Install kind
207+
run: once
208+
vars:
209+
# renovate: datasource=git-refs depName=kind lookupName=https://github.com/kubernetes-sigs/kind versioning=semver
210+
KIND_VERSION: v0.26.0
211+
cmds:
212+
- go install sigs.k8s.io/kind@{{.KIND_VERSION}}
213+
- kind version | grep -q {{.KIND_VERSION}}
214+
status:
215+
- kind version | grep -q {{.KIND_VERSION}}
216+
217+
start-kind-cluster:
218+
desc: Start a kind cluster
219+
deps:
220+
- install-kind
221+
- start-build-network
222+
run: once
223+
cmds:
224+
- >
225+
kind create cluster --name {{ .E2E_CLUSTER_NAME }}
226+
--image kindest/node:{{ .E2E_KUBERNETES_VERSION }}
227+
--config hack/kind-config.yaml
228+
--wait 5m
229+
- >
230+
for node in $(kind get nodes --name {{ .E2E_CLUSTER_NAME }} ); do
231+
docker network connect ${REGISTRY_NETWORK} $node;
232+
docker exec $node sh -c "update-ca-certificates";
233+
done
234+
status:
235+
- kind get clusters | grep -q {{ .E2E_CLUSTER_NAME }}
236+
194237
# TODO: see if it is possible to daggerize this. It will have to manage docker to make kind work.
195238
# TODO: add a task to clean up the kind cluster for new test runs.
196239
# Run the e2e tests. This task will start a kind cluster, deploy the plugin, and run the tests.
@@ -199,22 +242,42 @@ tasks:
199242
# * The registry to be in the same network of the dagger-engine.
200243
# * The dagger-engine to mount the CA.
201244
# * The kind cluster to mount the CA.
202-
e2e:
203-
desc: Run e2e tests
245+
e2e-external-kind:
246+
desc: Run e2e tests in a local kind cluster
204247
deps:
205248
- build-images
249+
- start-kind-cluster
250+
vars:
251+
# renovate: datasource=docker depName=golang versioning=semver
252+
GOLANG_IMAGE_VERSION: 1.23.4
253+
KUBECONFIG_PATH:
254+
sh: mktemp -t kubeconfig-XXXXX
255+
env:
256+
_EXPERIMENTAL_DAGGER_RUNNER_HOST: docker-container://{{.DAGGER_ENGINE_CONTAINER_NAME}}
257+
cmds:
258+
- kind get kubeconfig --internal --name {{ .E2E_CLUSTER_NAME }} > {{ .KUBECONFIG_PATH }}
259+
- >
260+
GITHUB_REF= dagger call -m dagger/e2e/ run
261+
--source .
262+
--kubeconfig {{.KUBECONFIG_PATH}}
263+
--go-version {{ .GOLANG_IMAGE_VERSION }}
264+
265+
e2e-ephemeral:
266+
desc: Run e2e tests in an ephemeral k3s cluster
267+
deps:
268+
- build-images
269+
vars:
270+
# renovate: datasource=docker depName=golang versioning=semver
271+
GOLANG_IMAGE_VERSION: 1.23.4
272+
env:
273+
_EXPERIMENTAL_DAGGER_RUNNER_HOST: docker-container://{{.DAGGER_ENGINE_CONTAINER_NAME}}
206274
cmds:
207275
- >
208-
go run github.com/onsi/ginkgo/v2/ginkgo
209-
--procs=8
210-
--randomize-all
211-
--randomize-suites
212-
--fail-on-pending
213-
--fail-on-empty
214-
--keep-going
215-
--timeout=30m
216-
--github-output
217-
./test/e2e
276+
GITHUB_REF= dagger call -m dagger/e2e/ run-ephemeral
277+
--source .
278+
--ca certs/ca.pem
279+
--registry {{.REGISTRY_NAME}}:{{.REGISTRY_PORT}}
280+
--go-version {{ .GOLANG_IMAGE_VERSION }}
218281
219282
ci:
220283
desc: Run the CI pipeline
@@ -224,7 +287,7 @@ tasks:
224287
- uncommitted
225288
- lint
226289
- go-test
227-
- e2e
290+
- e2e-ephemeral
228291

229292
publish:
230293
desc: Build and publish a container image for the plugin
@@ -284,7 +347,7 @@ tasks:
284347
- controller-gen
285348
desc: Generate the manifest for the main branch
286349
vars:
287-
GITHUB_REPOSITORY: '{{ default "cloudnative-pg/plugin-barman-cloud" .GITHUB_REPOSITORY }}'
350+
GITHUB_REPOSITORY: cloudnative-pg/plugin-barman-cloud
288351
GITHUB_REF: main
289352
GITHUB_REF_NAME: main
290353
cmds:

dagger/e2e/.gitattributes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/dagger.gen.go linguist-generated
2+
/internal/dagger/** linguist-generated
3+
/internal/querybuilder/** linguist-generated
4+
/internal/telemetry/** linguist-generated

dagger/e2e/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/dagger.gen.go
2+
/internal/dagger
3+
/internal/querybuilder
4+
/internal/telemetry

dagger/e2e/dagger.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "e2e",
3+
"engineVersion": "v0.15.1",
4+
"sdk": "go",
5+
"dependencies": [
6+
{
7+
"name": "go",
8+
"source": "github.com/sagikazarmark/daggerverse/go@go/v0.9.0",
9+
"pin": "d9ba06776c4c1ccf6f329bd862b9b439c4582ab6"
10+
},
11+
{
12+
"name": "k3s",
13+
"source": "github.com/marcosnils/daggerverse/k3s@k3s/v0.1.7",
14+
"pin": "833ec36632b2457862f6e3bf1f7107ad65e3e515"
15+
}
16+
],
17+
"source": "."
18+
}

dagger/e2e/go.mod

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
module dagger/e-2-e
2+
3+
go 1.23.2
4+
5+
require (
6+
github.com/99designs/gqlgen v0.17.57
7+
github.com/Khan/genqlient v0.7.0
8+
github.com/vektah/gqlparser/v2 v2.5.19
9+
go.opentelemetry.io/otel v1.27.0
10+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240518090000-14441aefdf88
11+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.3.0
12+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0
13+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.27.0
14+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0
15+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0
16+
go.opentelemetry.io/otel/log v0.3.0
17+
go.opentelemetry.io/otel/metric v1.27.0
18+
go.opentelemetry.io/otel/sdk v1.27.0
19+
go.opentelemetry.io/otel/sdk/log v0.3.0
20+
go.opentelemetry.io/otel/sdk/metric v1.27.0
21+
go.opentelemetry.io/otel/trace v1.27.0
22+
go.opentelemetry.io/proto/otlp v1.3.1
23+
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa
24+
golang.org/x/sync v0.10.0
25+
google.golang.org/grpc v1.68.0
26+
)
27+
28+
require (
29+
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
30+
github.com/go-logr/logr v1.4.2 // indirect
31+
github.com/go-logr/stdr v1.2.2 // indirect
32+
github.com/google/uuid v1.6.0 // indirect
33+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
34+
github.com/sosodev/duration v1.3.1 // indirect
35+
github.com/stretchr/testify v1.10.0 // indirect
36+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect
37+
golang.org/x/net v0.29.0 // indirect
38+
golang.org/x/sys v0.28.0 // indirect
39+
golang.org/x/text v0.21.0 // indirect
40+
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
41+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
42+
google.golang.org/protobuf v1.35.2 // indirect
43+
)
44+
45+
replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240518090000-14441aefdf88
46+
47+
replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.3.0
48+
49+
replace go.opentelemetry.io/otel/log => go.opentelemetry.io/otel/log v0.3.0
50+
51+
replace go.opentelemetry.io/otel/sdk/log => go.opentelemetry.io/otel/sdk/log v0.3.0

dagger/e2e/go.sum

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
github.com/99designs/gqlgen v0.17.57 h1:Ak4p60BRq6QibxY0lEc0JnQhDurfhxA67sp02lMjmPc=
2+
github.com/99designs/gqlgen v0.17.57/go.mod h1:Jx61hzOSTcR4VJy/HFIgXiQ5rJ0Ypw8DxWLjbYDAUw0=
3+
github.com/Khan/genqlient v0.7.0 h1:GZ1meyRnzcDTK48EjqB8t3bcfYvHArCUUvgOwpz1D4w=
4+
github.com/Khan/genqlient v0.7.0/go.mod h1:HNyy3wZvuYwmW3Y7mkoQLZsa/R5n5yIRajS1kPBvSFM=
5+
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=
6+
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
7+
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
8+
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
9+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
10+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
11+
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
12+
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
13+
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
14+
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
15+
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
16+
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
17+
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
18+
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
19+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
20+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
21+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
22+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys=
23+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I=
24+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
25+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
26+
github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
27+
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
28+
github.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4=
29+
github.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg=
30+
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
31+
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
32+
github.com/vektah/gqlparser/v2 v2.5.19 h1:bhCPCX1D4WWzCDvkPl4+TP1N8/kLrWnp43egplt7iSg=
33+
github.com/vektah/gqlparser/v2 v2.5.19/go.mod h1:y7kvl5bBlDeuWIvLtA9849ncyvx6/lj06RsMrEjVy3U=
34+
go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg=
35+
go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ=
36+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240518090000-14441aefdf88 h1:oM0GTNKGlc5qHctWeIGTVyda4iFFalOzMZ3Ehj5rwB4=
37+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240518090000-14441aefdf88/go.mod h1:JGG8ebaMO5nXOPnvKEl+DiA4MGwFjCbjsxT1WHIEBPY=
38+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.3.0 h1:ccBrA8nCY5mM0y5uO7FT0ze4S0TuFcWdDB2FxGMTjkI=
39+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.3.0/go.mod h1:/9pb6634zi2Lk8LYg9Q0X8Ar6jka4dkFOylBLbVQPCE=
40+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0 h1:bFgvUr3/O4PHj3VQcFEuYKvRZJX1SJDQ+11JXuSB3/w=
41+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0/go.mod h1:xJntEd2KL6Qdg5lwp97HMLQDVeAhrYxmzFseAMDPQ8I=
42+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.27.0 h1:CIHWikMsN3wO+wq1Tp5VGdVRTcON+DmOJSfDjXypKOc=
43+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.27.0/go.mod h1:TNupZ6cxqyFEpLXAZW7On+mLFL0/g0TE3unIYL91xWc=
44+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 h1:R9DE4kQ4k+YtfLI2ULwX82VtNQ2J8yZmA7ZIF/D+7Mc=
45+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0/go.mod h1:OQFyQVrDlbe+R7xrEyDr/2Wr67Ol0hRUgsfA+V5A95s=
46+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA=
47+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ=
48+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0 h1:QY7/0NeRPKlzusf40ZE4t1VlMKbqSNT7cJRYzWuja0s=
49+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0/go.mod h1:HVkSiDhTM9BoUJU8qE6j2eSWLLXvi1USXjyd2BXT8PY=
50+
go.opentelemetry.io/otel/log v0.3.0 h1:kJRFkpUFYtny37NQzL386WbznUByZx186DpEMKhEGZs=
51+
go.opentelemetry.io/otel/log v0.3.0/go.mod h1:ziCwqZr9soYDwGNbIL+6kAvQC+ANvjgG367HVcyR/ys=
52+
go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik=
53+
go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak=
54+
go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI=
55+
go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A=
56+
go.opentelemetry.io/otel/sdk/log v0.3.0 h1:GEjJ8iftz2l+XO1GF2856r7yYVh74URiF9JMcAacr5U=
57+
go.opentelemetry.io/otel/sdk/log v0.3.0/go.mod h1:BwCxtmux6ACLuys1wlbc0+vGBd+xytjmjajwqqIul2g=
58+
go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI=
59+
go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw=
60+
go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw=
61+
go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4=
62+
go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
63+
go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=
64+
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
65+
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
66+
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ=
67+
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE=
68+
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
69+
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
70+
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
71+
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
72+
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
73+
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
74+
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
75+
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
76+
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc=
77+
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I=
78+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
79+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
80+
google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0=
81+
google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA=
82+
google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io=
83+
google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
84+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
85+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)