Skip to content

Commit fc9b9b2

Browse files
committed
Merge branch 'main' into conformance
2 parents 6281a31 + 3368422 commit fc9b9b2

32 files changed

+302
-177
lines changed

api/v1alpha2/inferencemodel_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ type InferenceModelSpec struct {
6767
// ModelNames must be unique for a referencing InferencePool
6868
// (names can be reused for a different pool in the same cluster).
6969
// The modelName with the oldest creation timestamp is retained, and the incoming
70-
// InferenceModel is sets the Ready status to false with a corresponding reason.
70+
// InferenceModel's Ready status is set to false with a corresponding reason.
7171
// In the rare case of a race condition, one Model will be selected randomly to be considered valid, and the other rejected.
7272
// Names can be reserved without an underlying model configured in the pool.
7373
// This can be done by specifying a target model and setting the weight to zero,

cmd/bbr/health.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package main
1919
import (
2020
"context"
2121

22+
extProcPb "github.com/envoyproxy/go-control-plane/envoy/service/ext_proc/v3"
2223
"github.com/go-logr/logr"
2324
"google.golang.org/grpc/codes"
2425
healthPb "google.golang.org/grpc/health/grpc_health_v1"
@@ -31,10 +32,31 @@ type healthServer struct {
3132
}
3233

3334
func (s *healthServer) Check(ctx context.Context, in *healthPb.HealthCheckRequest) (*healthPb.HealthCheckResponse, error) {
35+
// TODO: we're accepting ANY service name for now as a temporary hack in alignment with
36+
// upstream issues. See https://github.com/kubernetes-sigs/gateway-api-inference-extension/pull/788
37+
// if in.Service != extProcPb.ExternalProcessor_ServiceDesc.ServiceName {
38+
// s.logger.V(logutil.DEFAULT).Info("gRPC health check requested unknown service", "available-services", []string{extProcPb.ExternalProcessor_ServiceDesc.ServiceName}, "requested-service", in.Service)
39+
// return &healthPb.HealthCheckResponse{Status: healthPb.HealthCheckResponse_SERVICE_UNKNOWN}, nil
40+
// }
41+
3442
s.logger.V(logutil.VERBOSE).Info("gRPC health check serving", "service", in.Service)
3543
return &healthPb.HealthCheckResponse{Status: healthPb.HealthCheckResponse_SERVING}, nil
3644
}
3745

46+
func (s *healthServer) List(ctx context.Context, _ *healthPb.HealthListRequest) (*healthPb.HealthListResponse, error) {
47+
// currently only the ext_proc service is provided
48+
serviceHealthResponse, err := s.Check(ctx, &healthPb.HealthCheckRequest{Service: extProcPb.ExternalProcessor_ServiceDesc.ServiceName})
49+
if err != nil {
50+
return nil, err
51+
}
52+
53+
return &healthPb.HealthListResponse{
54+
Statuses: map[string]*healthPb.HealthCheckResponse{
55+
extProcPb.ExternalProcessor_ServiceDesc.ServiceName: serviceHealthResponse,
56+
},
57+
}, nil
58+
}
59+
3860
func (s *healthServer) Watch(in *healthPb.HealthCheckRequest, srv healthPb.Health_WatchServer) error {
3961
return status.Error(codes.Unimplemented, "Watch is not implemented")
4062
}

cmd/epp/health.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package main
1919
import (
2020
"context"
2121

22+
extProcPb "github.com/envoyproxy/go-control-plane/envoy/service/ext_proc/v3"
2223
"github.com/go-logr/logr"
2324
"google.golang.org/grpc/codes"
2425
healthPb "google.golang.org/grpc/health/grpc_health_v1"
@@ -33,6 +34,13 @@ type healthServer struct {
3334
}
3435

3536
func (s *healthServer) Check(ctx context.Context, in *healthPb.HealthCheckRequest) (*healthPb.HealthCheckResponse, error) {
37+
// TODO: we're accepting ANY service name for now as a temporary hack in alignment with
38+
// upstream issues. See https://github.com/kubernetes-sigs/gateway-api-inference-extension/pull/788
39+
// if in.Service != extProcPb.ExternalProcessor_ServiceDesc.ServiceName {
40+
// s.logger.V(logutil.DEFAULT).Info("gRPC health check requested unknown service", "available-services", []string{extProcPb.ExternalProcessor_ServiceDesc.ServiceName}, "requested-service", in.Service)
41+
// return &healthPb.HealthCheckResponse{Status: healthPb.HealthCheckResponse_SERVICE_UNKNOWN}, nil
42+
// }
43+
3644
if !s.datastore.PoolHasSynced() {
3745
s.logger.V(logutil.DEFAULT).Info("gRPC health check not serving", "service", in.Service)
3846
return &healthPb.HealthCheckResponse{Status: healthPb.HealthCheckResponse_NOT_SERVING}, nil
@@ -41,6 +49,20 @@ func (s *healthServer) Check(ctx context.Context, in *healthPb.HealthCheckReques
4149
return &healthPb.HealthCheckResponse{Status: healthPb.HealthCheckResponse_SERVING}, nil
4250
}
4351

52+
func (s *healthServer) List(ctx context.Context, _ *healthPb.HealthListRequest) (*healthPb.HealthListResponse, error) {
53+
// currently only the ext_proc service is provided
54+
serviceHealthResponse, err := s.Check(ctx, &healthPb.HealthCheckRequest{Service: extProcPb.ExternalProcessor_ServiceDesc.ServiceName})
55+
if err != nil {
56+
return nil, err
57+
}
58+
59+
return &healthPb.HealthListResponse{
60+
Statuses: map[string]*healthPb.HealthCheckResponse{
61+
extProcPb.ExternalProcessor_ServiceDesc.ServiceName: serviceHealthResponse,
62+
},
63+
}, nil
64+
}
65+
4466
func (s *healthServer) Watch(in *healthPb.HealthCheckRequest, srv healthPb.Health_WatchServer) error {
4567
return status.Error(codes.Unimplemented, "Watch is not implemented")
4668
}

cmd/epp/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ import (
4747
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework"
4848
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/multi/prefix"
4949
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/picker"
50-
profilepicker "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/profile-picker"
50+
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/profile"
5151
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/scorer"
5252
runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/server"
5353
envutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/env"
@@ -222,7 +222,7 @@ func run() error {
222222
}
223223
}
224224

225-
schedulerConfig := scheduling.NewSchedulerConfig(profilepicker.NewAllProfilesPicker(), map[string]*framework.SchedulerProfile{"schedulerv2": schedulerProfile})
225+
schedulerConfig := scheduling.NewSchedulerConfig(profile.NewSingleProfileHandler(), map[string]*framework.SchedulerProfile{"schedulerv2": schedulerProfile})
226226
scheduler = scheduling.NewSchedulerWithConfig(datastore, schedulerConfig)
227227
}
228228

config/crd/bases/inference.networking.x-k8s.io_inferencemodels.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ spec:
8888
ModelNames must be unique for a referencing InferencePool
8989
(names can be reused for a different pool in the same cluster).
9090
The modelName with the oldest creation timestamp is retained, and the incoming
91-
InferenceModel is sets the Ready status to false with a corresponding reason.
91+
InferenceModel's Ready status is set to false with a corresponding reason.
9292
In the rare case of a race condition, one Model will be selected randomly to be considered valid, and the other rejected.
9393
Names can be reserved without an underlying model configured in the pool.
9494
This can be done by specifying a target model and setting the weight to zero,

conformance/testing-epp/scheduler.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,17 @@ import (
2121
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling"
2222
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework"
2323
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/picker"
24-
profilepicker "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/profile-picker"
24+
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/profile"
2525
)
2626

2727
// NewReqHeaderBasedScheduler creates a scheduler for conformance tests that selects
2828
// an endpoint based on the "test-epp-endpoint-selection" request header. If the
2929
// header is missing or the specified endpoint doesn't exist, no endpoint is returned.
3030
func NewReqHeaderBasedScheduler(datastore scheduling.Datastore) *scheduling.Scheduler {
31-
predicatableSchedulerProfile := framework.NewSchedulerProfile().WithFilters(filter.NewHeaderBasedTestingFilter()).WithPicker(picker.NewMaxScorePicker())
31+
predicatableSchedulerProfile := framework.NewSchedulerProfile().
32+
WithFilters(filter.NewHeaderBasedTestingFilter()).
33+
WithPicker(picker.NewMaxScorePicker())
34+
3235
return scheduling.NewSchedulerWithConfig(datastore, scheduling.NewSchedulerConfig(
33-
profilepicker.NewAllProfilesPicker(), map[string]*framework.SchedulerProfile{"req-header-based-profile": predicatableSchedulerProfile}))
36+
profile.NewSingleProfileHandler(), map[string]*framework.SchedulerProfile{"req-header-based-profile": predicatableSchedulerProfile}))
3437
}

conformance/testing-epp/sheduler_test.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func TestSchedule(t *testing.T) {
3333
name string
3434
input []*backendmetrics.FakePodMetrics
3535
req *types.LLMRequest
36-
wantRes map[string]*types.Result
36+
wantRes *types.SchedulingResult
3737
err bool
3838
}{
3939
{
@@ -79,17 +79,20 @@ func TestSchedule(t *testing.T) {
7979
Headers: map[string]string{"test-epp-endpoint-selection": "matched-endpoint"},
8080
RequestId: uuid.NewString(),
8181
},
82-
wantRes: map[string]*types.Result{
83-
"req-header-based-profile": {
84-
TargetPod: &types.ScoredPod{
85-
Pod: &types.PodMetrics{
86-
Pod: &backend.Pod{
87-
Address: "matched-endpoint",
88-
Labels: map[string]string{},
82+
wantRes: &types.SchedulingResult{
83+
ProfileResults: map[string]*types.ProfileRunResult{
84+
"req-header-based-profile": {
85+
TargetPod: &types.ScoredPod{
86+
Pod: &types.PodMetrics{
87+
Pod: &backend.Pod{
88+
Address: "matched-endpoint",
89+
Labels: map[string]string{},
90+
},
8991
},
9092
},
9193
},
9294
},
95+
PrimaryProfileName: "req-header-based-profile",
9396
},
9497
},
9598
}

docs/proposals/002-api-proposal/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ type InferenceModelSpec struct {
236236
// ModelNames are expected to be unique for a specific InferencePool
237237
// (names can be reused for a different pool in the same cluster).
238238
// The modelName with the oldest creation timestamp is retained, and the incoming
239-
// InferenceModel is sets the Ready status to false with a corresponding reason.
239+
// InferenceModel's Ready status is set to false with a corresponding reason.
240240
// In the rare case of a race condition, one Model will be selected randomly to be considered valid, and the other rejected.
241241
// Names can be reserved without an underlying model configured in the pool.
242242
// This can be done by specifying a target model and setting the weight to zero,

go.mod

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ require (
1717
github.com/stretchr/testify v1.10.0
1818
go.uber.org/multierr v1.11.0
1919
go.uber.org/zap v1.27.0
20-
google.golang.org/grpc v1.71.1
20+
google.golang.org/grpc v1.73.0
2121
google.golang.org/protobuf v1.36.6
2222
k8s.io/api v0.33.1
2323
k8s.io/apiextensions-apiserver v0.33.1
@@ -33,15 +33,15 @@ require (
3333
)
3434

3535
require (
36-
cel.dev/expr v0.19.1 // indirect
36+
cel.dev/expr v0.23.0 // indirect
3737
github.com/Masterminds/goutils v1.1.1 // indirect
3838
github.com/Masterminds/semver v1.5.0 // indirect
3939
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
4040
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
4141
github.com/beorn7/perks v1.0.1 // indirect
4242
github.com/blang/semver/v4 v4.0.0 // indirect
4343
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
44-
github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3 // indirect
44+
github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f // indirect
4545
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
4646
github.com/emicklei/go-restful/v3 v3.12.0 // indirect
4747
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
@@ -94,12 +94,12 @@ require (
9494
github.com/x448/float16 v0.8.4 // indirect
9595
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
9696
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect
97-
go.opentelemetry.io/otel v1.34.0 // indirect
97+
go.opentelemetry.io/otel v1.35.0 // indirect
9898
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect
9999
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect
100-
go.opentelemetry.io/otel/metric v1.34.0 // indirect
101-
go.opentelemetry.io/otel/sdk v1.34.0 // indirect
102-
go.opentelemetry.io/otel/trace v1.34.0 // indirect
100+
go.opentelemetry.io/otel/metric v1.35.0 // indirect
101+
go.opentelemetry.io/otel/sdk v1.35.0 // indirect
102+
go.opentelemetry.io/otel/trace v1.35.0 // indirect
103103
go.opentelemetry.io/proto/otlp v1.4.0 // indirect
104104
go.uber.org/automaxprocs v1.6.0 // indirect
105105
golang.org/x/crypto v0.38.0 // indirect
@@ -115,8 +115,8 @@ require (
115115
golang.org/x/tools v0.31.0 // indirect
116116
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
117117
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
118-
google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect
119-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect
118+
google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 // indirect
119+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect
120120
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
121121
gopkg.in/inf.v0 v0.9.1 // indirect
122122
gopkg.in/yaml.v2 v2.4.0 // indirect

go.sum

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
cel.dev/expr v0.19.1 h1:NciYrtDRIR0lNCnH1LFJegdjspNx9fI59O7TWcua/W4=
2-
cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
1+
cel.dev/expr v0.23.0 h1:wUb94w6OYQS4uXraxo9U+wUAs9jT47Xvl4iPgAwM2ss=
2+
cel.dev/expr v0.23.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
33
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
44
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
55
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
@@ -18,8 +18,8 @@ github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK3
1818
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
1919
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
2020
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
21-
github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3 h1:boJj011Hh+874zpIySeApCX4GeOjPl9qhRF3QuIZq+Q=
22-
github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8=
21+
github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f h1:C5bqEmzEPLsHm9Mv73lSE9e9bKV23aB1vxOsmZrkl3k=
22+
github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8=
2323
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
2424
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2525
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -193,20 +193,20 @@ go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJyS
193193
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
194194
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU=
195195
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q=
196-
go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
197-
go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
196+
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
197+
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
198198
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA=
199199
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI=
200200
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM=
201201
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA=
202-
go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
203-
go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
204-
go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
205-
go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
206-
go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
207-
go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
208-
go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
209-
go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
202+
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
203+
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
204+
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
205+
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
206+
go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o=
207+
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
208+
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
209+
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
210210
go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg=
211211
go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY=
212212
go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
@@ -271,12 +271,12 @@ golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSm
271271
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
272272
gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
273273
gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
274-
google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 h1:GVIKPyP/kLIyVOgOnTwFOrvQaQUzOzGMCxgFUOEmm24=
275-
google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422/go.mod h1:b6h1vNKhxaSoEI+5jc3PJUCustfli/mRab7295pY7rw=
276-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI=
277-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50=
278-
google.golang.org/grpc v1.71.1 h1:ffsFWr7ygTUscGPI0KKK6TLrGz0476KUvvsbqWK0rPI=
279-
google.golang.org/grpc v1.71.1/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
274+
google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 h1:hE3bRWtU6uceqlh4fhrSnUyjKHMKB9KrTLLG+bc0ddM=
275+
google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463/go.mod h1:U90ffi8eUL9MwPcrJylN5+Mk2v3vuPDptd5yyNUiRR8=
276+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g=
277+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
278+
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
279+
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
280280
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
281281
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
282282
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

0 commit comments

Comments
 (0)