Skip to content

Commit 7427f65

Browse files
committed
first opentelemtry tracing implementation
Signed-off-by: Surax98 <giacomo.surace@gmail.com>
1 parent 37d0a3b commit 7427f65

File tree

9 files changed

+362
-80
lines changed

9 files changed

+362
-80
lines changed

cmd/main.go

Lines changed: 91 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,83 @@ package main
22

33
import (
44
"context"
5+
"crypto/tls"
6+
"fmt"
57
"net/http"
8+
"os"
69
"strconv"
10+
"time"
711

812
"github.com/sirupsen/logrus"
913
"github.com/virtual-kubelet/virtual-kubelet/log"
1014
logruslogger "github.com/virtual-kubelet/virtual-kubelet/log/logrus"
15+
"google.golang.org/grpc"
16+
"google.golang.org/grpc/credentials"
1117

1218
slurm "github.com/intertwin-eu/interlink-slurm-plugin/pkg/slurm"
19+
20+
"github.com/virtual-kubelet/virtual-kubelet/trace"
21+
"github.com/virtual-kubelet/virtual-kubelet/trace/opentelemetry"
22+
"go.opentelemetry.io/otel"
23+
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
24+
"go.opentelemetry.io/otel/propagation"
25+
"go.opentelemetry.io/otel/sdk/resource"
26+
sdktrace "go.opentelemetry.io/otel/sdk/trace"
27+
semconv "go.opentelemetry.io/otel/semconv/v1.21.0"
1328
)
1429

30+
func initProvider(ctx context.Context) (func(context.Context) error, error) {
31+
res, err := resource.New(ctx,
32+
resource.WithAttributes(
33+
// the service name used to display traces in backends
34+
semconv.ServiceName("InterLink-SLURM-plugin"),
35+
),
36+
)
37+
if err != nil {
38+
return nil, fmt.Errorf("failed to create resource: %w", err)
39+
}
40+
41+
ctx, cancel := context.WithTimeout(ctx, time.Second)
42+
defer cancel()
43+
44+
otlpEndpoint := os.Getenv("TELEMETRY_ENDPOINT")
45+
46+
if otlpEndpoint == "" {
47+
otlpEndpoint = "localhost:4317"
48+
}
49+
50+
fmt.Println("TELEMETRY_ENDPOINT: ", otlpEndpoint)
51+
52+
conn := &grpc.ClientConn{}
53+
creds := credentials.NewTLS(&tls.Config{InsecureSkipVerify: true})
54+
conn, err = grpc.DialContext(ctx, otlpEndpoint, grpc.WithTransportCredentials(creds), grpc.WithBlock())
55+
56+
if err != nil {
57+
return nil, fmt.Errorf("failed to create gRPC connection to collector: %w", err)
58+
}
59+
60+
// Set up a trace exporter
61+
traceExporter, err := otlptracegrpc.New(ctx, otlptracegrpc.WithGRPCConn(conn))
62+
if err != nil {
63+
return nil, fmt.Errorf("failed to create trace exporter: %w", err)
64+
}
65+
66+
// Register the trace exporter with a TracerProvider, using a batch
67+
// span processor to aggregate spans before export.
68+
bsp := sdktrace.NewBatchSpanProcessor(traceExporter)
69+
tracerProvider := sdktrace.NewTracerProvider(
70+
sdktrace.WithSampler(sdktrace.AlwaysSample()),
71+
sdktrace.WithResource(res),
72+
sdktrace.WithSpanProcessor(bsp),
73+
)
74+
otel.SetTracerProvider(tracerProvider)
75+
76+
// set global propagator to tracecontext (the default is no-op).
77+
otel.SetTextMapPropagator(propagation.TraceContext{})
78+
79+
return tracerProvider.Shutdown, nil
80+
}
81+
1582
func main() {
1683
logger := logrus.StandardLogger()
1784

@@ -31,14 +98,32 @@ func main() {
3198
log.L = logruslogger.FromLogrus(logrus.NewEntry(logger))
3299

33100
JobIDs := make(map[string]*slurm.JidStruct)
34-
Ctx, cancel := context.WithCancel(context.Background())
101+
ctx, cancel := context.WithCancel(context.Background())
35102
defer cancel()
36-
log.G(Ctx).Debug("Debug level: " + strconv.FormatBool(slurmConfig.VerboseLogging))
103+
104+
if os.Getenv("ENABLE_TRACING") == "1" {
105+
shutdown, err := initProvider(ctx)
106+
if err != nil {
107+
log.G(ctx).Fatal(err)
108+
}
109+
defer func() {
110+
if err = shutdown(ctx); err != nil {
111+
log.G(ctx).Fatal("failed to shutdown TracerProvider: %w", err)
112+
}
113+
}()
114+
115+
log.G(ctx).Info("Tracer setup succeeded")
116+
117+
// TODO: disable this through options
118+
trace.T = opentelemetry.Adapter{}
119+
}
120+
121+
log.G(ctx).Debug("Debug level: " + strconv.FormatBool(slurmConfig.VerboseLogging))
37122

38123
SidecarAPIs := slurm.SidecarHandler{
39124
Config: slurmConfig,
40125
JIDs: &JobIDs,
41-
Ctx: Ctx,
126+
Ctx: ctx,
42127
}
43128

44129
mutex := http.NewServeMux()
@@ -47,11 +132,11 @@ func main() {
47132
mutex.HandleFunc("/delete", SidecarAPIs.StopHandler)
48133
mutex.HandleFunc("/getLogs", SidecarAPIs.GetLogsHandler)
49134

50-
slurm.CreateDirectories(slurmConfig)
51-
slurm.LoadJIDs(Ctx, slurmConfig, &JobIDs)
135+
SidecarAPIs.CreateDirectories()
136+
SidecarAPIs.LoadJIDs()
52137

53138
err = http.ListenAndServe(":"+slurmConfig.Sidecarport, mutex)
54139
if err != nil {
55-
log.G(Ctx).Fatal(err)
140+
log.G(ctx).Fatal(err)
56141
}
57142
}

go.mod

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
11
module github.com/intertwin-eu/interlink-slurm-plugin
22

3-
go 1.21
3+
go 1.22
44

5-
toolchain go1.21.3
5+
toolchain go1.22.4
66

77
require (
88
github.com/alexellis/go-execute v0.6.0
99
github.com/containerd/containerd v1.7.6
1010
github.com/intertwin-eu/interlink v0.0.0-20240523154644-820ca4bd6fac
1111
github.com/sirupsen/logrus v1.9.3
1212
github.com/virtual-kubelet/virtual-kubelet v1.11.0
13+
go.opentelemetry.io/otel v1.22.0
14+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0
15+
go.opentelemetry.io/otel/sdk v1.22.0
16+
go.opentelemetry.io/otel/trace v1.22.0
17+
google.golang.org/grpc v1.59.0
1318
gopkg.in/yaml.v2 v2.4.0
1419
k8s.io/api v0.29.1
1520
k8s.io/apimachinery v0.29.1
1621
k8s.io/client-go v0.29.1
1722
)
1823

1924
require (
25+
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
2026
github.com/davecgh/go-spew v1.1.1 // indirect
2127
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
2228
github.com/go-logr/logr v1.4.1 // indirect
29+
github.com/go-logr/stdr v1.2.2 // indirect
2330
github.com/go-openapi/jsonpointer v0.20.0 // indirect
2431
github.com/go-openapi/jsonreference v0.20.2 // indirect
2532
github.com/go-openapi/swag v0.22.4 // indirect
@@ -28,19 +35,25 @@ require (
2835
github.com/google/gnostic-models v0.6.8 // indirect
2936
github.com/google/gofuzz v1.2.0 // indirect
3037
github.com/google/uuid v1.3.1 // indirect
38+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
3139
github.com/josharian/intern v1.0.0 // indirect
3240
github.com/json-iterator/go v1.1.12 // indirect
3341
github.com/mailru/easyjson v0.7.7 // indirect
3442
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
3543
github.com/modern-go/reflect2 v1.0.2 // indirect
3644
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
45+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
46+
go.opentelemetry.io/otel/metric v1.22.0 // indirect
47+
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
3748
golang.org/x/net v0.20.0 // indirect
3849
golang.org/x/oauth2 v0.16.0 // indirect
3950
golang.org/x/sys v0.17.0 // indirect
4051
golang.org/x/term v0.16.0 // indirect
4152
golang.org/x/text v0.14.0 // indirect
4253
golang.org/x/time v0.3.0 // indirect
4354
google.golang.org/appengine v1.6.8 // indirect
55+
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect
56+
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
4457
google.golang.org/protobuf v1.31.0 // indirect
4558
gopkg.in/inf.v0 v0.9.1 // indirect
4659
gopkg.in/yaml.v3 v3.0.1 // indirect

go.sum

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
github.com/alexellis/go-execute v0.6.0 h1:FVGoudJnWSObwf9qmehbvVuvhK6g1UpKOCBjS+OUXEA=
22
github.com/alexellis/go-execute v0.6.0/go.mod h1:nlg2F6XdYydUm1xXQMMiuibQCV1mveybBkNWfdNznjk=
3+
github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
4+
github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
35
github.com/containerd/containerd v1.7.6 h1:oNAVsnhPoy4BTPQivLgTzI9Oleml9l/+eYIDYXRCYo8=
46
github.com/containerd/containerd v1.7.6/go.mod h1:SY6lrkkuJT40BVNO37tlYTSnKJnP5AXBc0fhx0q+TJ4=
57
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
@@ -8,9 +10,12 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
810
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
911
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
1012
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
13+
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
1114
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
1215
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
1316
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
17+
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
18+
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
1419
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
1520
github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ=
1621
github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA=
@@ -23,6 +28,8 @@ github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEe
2328
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
2429
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
2530
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
31+
github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
32+
github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ=
2633
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
2734
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
2835
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
@@ -40,6 +47,8 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJY
4047
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
4148
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
4249
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
50+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
51+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
4352
github.com/intertwin-eu/interlink v0.0.0-20240523154644-820ca4bd6fac h1:LdpDorMFbMkcIpO9F9LmvBaUteyWrqEKzDjuhcF4fAc=
4453
github.com/intertwin-eu/interlink v0.0.0-20240523154644-820ca4bd6fac/go.mod h1:BxkHXL7pr4PwdpGR685KgidM+r94N1W+S+cpc/o2MX8=
4554
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
@@ -68,6 +77,8 @@ github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4
6877
github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o=
6978
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
7079
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
80+
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
81+
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
7182
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
7283
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
7384
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
@@ -91,6 +102,22 @@ github.com/virtual-kubelet/virtual-kubelet v1.11.0/go.mod h1:WQfPHbIlzfhMNYkh6hF
91102
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
92103
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
93104
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
105+
go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y=
106+
go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI=
107+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U=
108+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE=
109+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 h1:3d+S281UTjM+AbF31XSOYn1qXn3BgIdWl8HNEpx08Jk=
110+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0/go.mod h1:0+KuTDyKL4gjKCF75pHOX4wuzYDUZYfAQdSu43o+Z2I=
111+
go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg=
112+
go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY=
113+
go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw=
114+
go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc=
115+
go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0=
116+
go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo=
117+
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
118+
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
119+
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
120+
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
94121
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
95122
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
96123
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@@ -147,6 +174,14 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
147174
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
148175
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
149176
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
177+
google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY=
178+
google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
179+
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
180+
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
181+
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4=
182+
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
183+
google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
184+
google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
150185
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
151186
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
152187
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
@@ -162,6 +197,8 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
162197
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
163198
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
164199
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
200+
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
201+
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
165202
k8s.io/api v0.29.1 h1:DAjwWX/9YT7NQD4INu49ROJuZAAAP/Ijki48GUPzxqw=
166203
k8s.io/api v0.29.1/go.mod h1:7Kl10vBRUXhnQQI8YR/R327zXC8eJ7887/+Ybta+RoQ=
167204
k8s.io/apimachinery v0.29.1 h1:KY4/E6km/wLBguvCZv8cKTeOwwOBqFNjwJIdMkMbbRc=

0 commit comments

Comments
 (0)