Skip to content

Commit e29ec40

Browse files
committed
SCHED-1012: Add early GPU capacity check to E2E workflow
Query Nebius capacity block groups before running Terraform to detect insufficient GPU capacity upfront. The behavior is controlled by a new capacity_strategy profile field (warn or cancel).
1 parent 8c9c8c4 commit e29ec40

File tree

8 files changed

+366
-34
lines changed

8 files changed

+366
-34
lines changed

.github/workflows/e2e_test.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ on:
1616

1717
permissions:
1818
contents: read
19+
actions: write
1920

2021
concurrency:
2122
# Prevent cancelling already-running jobs (avoids resource waste).
@@ -58,6 +59,9 @@ jobs:
5859
make install-e2e-tools
5960
echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
6061
62+
- name: Build e2e binary
63+
run: go build -o bin/e2e ./cmd/e2e
64+
6165
- name: Resolve profile
6266
shell: bash
6367
run: |
@@ -187,6 +191,17 @@ jobs:
187191
path: "${{ github.workspace }}/terraform-repo"
188192
fetch-depth: 0
189193

194+
- name: Check capacity
195+
shell: bash
196+
env:
197+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
198+
GITHUB_RUN_ID: ${{ github.run_id }}
199+
run: |
200+
cd ${{ env.PATH_TO_INSTALLATION }}
201+
source .envrc
202+
cd -
203+
bin/e2e check-capacity
204+
190205
- name: Terraform Apply
191206
timeout-minutes: 120
192207
run: |
@@ -203,7 +218,7 @@ jobs:
203218
aws configure set region $NEBIUS_REGION
204219
aws configure set endpoint_url https://storage.$NEBIUS_REGION.nebius.cloud:443
205220
206-
go run ./cmd/e2e apply
221+
bin/e2e apply
207222
208223
- name: K8s Cluster Info and NodeGroups
209224
if: always()
@@ -327,7 +342,7 @@ jobs:
327342
aws configure set region $NEBIUS_REGION
328343
aws configure set endpoint_url https://storage.$NEBIUS_REGION.nebius.cloud:443
329344
330-
go run ./cmd/e2e destroy
345+
bin/e2e destroy
331346
332347
- name: Force cleanup compute instances on failure
333348
if: failure()

cmd/e2e/main.go

Lines changed: 48 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ package main
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"log"
78
"os"
9+
"os/exec"
810
"os/signal"
911
"syscall"
1012

@@ -15,40 +17,71 @@ import (
1517

1618
func main() {
1719
if len(os.Args) < 2 {
18-
_, _ = fmt.Fprintf(os.Stderr, "Usage: e2e <apply|destroy>\n")
20+
_, _ = fmt.Fprintf(os.Stderr, "Usage: e2e <apply|destroy|check-capacity>\n")
1921
os.Exit(2)
2022
}
2123

22-
var cfg e2e.Config
23-
if err := envconfig.Process("", &cfg); err != nil {
24-
log.Fatalf("parse config: %v", err)
25-
}
26-
2724
profile, err := e2e.LoadProfile()
2825
if err != nil {
29-
log.Fatalf("load profile: %v", err)
26+
log.Fatalf("Load profile: %v", err)
3027
}
31-
cfg.Profile = profile
32-
33-
sshPubKey, err := e2e.GenerateSSHPublicKey()
34-
if err != nil {
35-
log.Fatalf("generate SSH public key: %v", err)
36-
}
37-
cfg.SSHPublicKey = sshPubKey
3828

3929
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
4030
defer stop()
4131

4232
switch os.Args[1] {
33+
case "check-capacity":
34+
err = runCheckCapacity(ctx, profile)
4335
case "apply":
36+
cfg := loadFullConfig(profile)
4437
err = e2e.Apply(ctx, cfg)
4538
case "destroy":
39+
cfg := loadFullConfig(profile)
4640
err = e2e.Destroy(ctx, cfg)
4741
default:
48-
_, _ = fmt.Fprintf(os.Stderr, "Unknown command: %s\nUsage: e2e <apply|destroy>\n", os.Args[1])
42+
_, _ = fmt.Fprintf(os.Stderr, "Unknown command: %s\nUsage: e2e <apply|destroy|check-capacity>\n", os.Args[1])
4943
os.Exit(2)
5044
}
5145
if err != nil {
5246
log.Fatalf("%s: %v", os.Args[1], err)
5347
}
5448
}
49+
50+
func loadFullConfig(profile e2e.Profile) e2e.Config {
51+
var cfg e2e.Config
52+
if err := envconfig.Process("", &cfg); err != nil {
53+
log.Fatalf("Parse config: %v", err)
54+
}
55+
cfg.Profile = profile
56+
57+
sshPubKey, err := e2e.GenerateSSHPublicKey()
58+
if err != nil {
59+
log.Fatalf("Generate SSH public key: %v", err)
60+
}
61+
cfg.SSHPublicKey = sshPubKey
62+
63+
return cfg
64+
}
65+
66+
func runCheckCapacity(ctx context.Context, profile e2e.Profile) error {
67+
err := e2e.CheckCapacity(ctx, profile)
68+
if !errors.Is(err, e2e.ErrInsufficientCapacity) {
69+
return err
70+
}
71+
72+
log.Print("Insufficient capacity detected with cancel strategy, cancelling workflow")
73+
runID := os.Getenv("GITHUB_RUN_ID")
74+
if runID == "" {
75+
return fmt.Errorf("GITHUB_RUN_ID is not set, cannot cancel workflow")
76+
}
77+
78+
cmd := exec.CommandContext(ctx, "gh", "run", "cancel", runID)
79+
cmd.Stdout = os.Stdout
80+
cmd.Stderr = os.Stderr
81+
if cancelErr := cmd.Run(); cancelErr != nil {
82+
return fmt.Errorf("cancel workflow run %s: %w", runID, cancelErr)
83+
}
84+
85+
log.Printf("Workflow run %s cancelled due to insufficient capacity", runID)
86+
return nil
87+
}

go.mod

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ require (
1414
github.com/kubereboot/kured v0.0.0-20241106074119-94e73465adc3
1515
github.com/mackerelio/go-osstat v0.2.6
1616
github.com/mariadb-operator/mariadb-operator/v25 v25.10.2
17+
github.com/nebius/gosdk v0.0.0-20260224104345-c5b8377510ae
1718
github.com/onsi/ginkgo/v2 v2.27.3
1819
github.com/onsi/gomega v1.38.3
1920
github.com/openkruise/kruise-api v1.8.0
@@ -24,32 +25,36 @@ require (
2425
go.uber.org/zap v1.27.1
2526
golang.org/x/crypto v0.46.0
2627
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
28+
google.golang.org/grpc v1.72.1
2729
istio.io/pkg v0.0.0-20241216214326-d70796207df3
2830
k8s.io/api v0.34.3
2931
k8s.io/apimachinery v0.34.3
3032
k8s.io/client-go v0.34.3
31-
k8s.io/component-base v0.34.3
3233
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
3334
sigs.k8s.io/controller-runtime v0.22.4
3435
sigs.k8s.io/security-profiles-operator v0.8.4
3536
sigs.k8s.io/yaml v1.6.0
3637
)
3738

3839
require (
40+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.4-20250130201111-63bb56e20495.1 // indirect
3941
github.com/Masterminds/semver/v3 v3.4.0 // indirect
4042
github.com/agext/levenshtein v1.2.3 // indirect
4143
github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect
4244
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
43-
github.com/blang/semver/v4 v4.0.0 // indirect
45+
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
4446
github.com/cert-manager/cert-manager v1.18.5 // indirect
4547
github.com/containers/common v0.60.4 // indirect
4648
github.com/distribution/reference v0.6.0 // indirect
4749
github.com/fsnotify/fsnotify v1.9.0 // indirect
4850
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
4951
github.com/getkin/kin-openapi v0.132.0 // indirect
5052
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
53+
github.com/gofrs/flock v0.12.1 // indirect
54+
github.com/golang-jwt/jwt/v4 v4.5.1 // indirect
5155
github.com/google/btree v1.1.3 // indirect
5256
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
57+
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.0 // indirect
5358
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
5459
github.com/hashicorp/go-version v1.7.0 // indirect
5560
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
@@ -68,12 +73,11 @@ require (
6873
github.com/stretchr/objx v0.5.2 // indirect
6974
github.com/ugorji/go/codec v1.2.12 // indirect
7075
github.com/x448/float16 v0.8.4 // indirect
71-
go.opentelemetry.io/otel v1.35.0 // indirect
72-
go.opentelemetry.io/otel/trace v1.35.0 // indirect
7376
go.yaml.in/yaml/v2 v2.4.3 // indirect
7477
go.yaml.in/yaml/v3 v3.0.4 // indirect
7578
golang.org/x/mod v0.30.0 // indirect
7679
golang.org/x/sync v0.19.0 // indirect
80+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260223185530-2f722ef697dc // indirect
7781
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
7882
sigs.k8s.io/randfill v1.0.0 // indirect
7983
sigs.k8s.io/release-utils v0.8.1 // indirect
@@ -116,7 +120,7 @@ require (
116120
golang.org/x/time v0.11.0 // indirect
117121
golang.org/x/tools v0.39.0 // indirect
118122
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
119-
google.golang.org/protobuf v1.36.8 // indirect
123+
google.golang.org/protobuf v1.36.11 // indirect
120124
gopkg.in/inf.v0 v0.9.1 // indirect
121125
gopkg.in/yaml.v3 v3.0.1 // indirect
122126
k8s.io/apiextensions-apiserver v0.34.2 // indirect

go.sum

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.4-20250130201111-63bb56e20495.1 h1:4erM3WLgEG/HIBrpBDmRbs1puhd7p0z7kNXDuhHthwM=
2+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.4-20250130201111-63bb56e20495.1/go.mod h1:novQBstnxcGpfKf8qGRATqn1anQKwMJIbH5Q581jibU=
13
dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
24
dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
35
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
@@ -17,9 +19,9 @@ github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew
1719
github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4=
1820
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
1921
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
20-
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
21-
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
2222
github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w=
23+
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
24+
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
2325
github.com/cert-manager/cert-manager v1.18.5 h1:Gx4FSpSPYcSC4MQf43QjbxDfyTEbwZgfZQs5Lq9QlBs=
2426
github.com/cert-manager/cert-manager v1.18.5/go.mod h1:HbPSO5MW/44wu19t84eY/K4c4/WwyPB4bA3uffOH92s=
2527
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
@@ -66,6 +68,8 @@ github.com/go-git/go-git/v5 v5.14.0 h1:/MD3lCrGjCen5WfEAzKg00MJJffKhC8gzS80ycmCi
6668
github.com/go-git/go-git/v5 v5.14.0/go.mod h1:Z5Xhoia5PcWA3NF8vRLURn9E5FRhSl7dGj9ItW3Wk5k=
6769
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
6870
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
71+
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
72+
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
6973
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
7074
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
7175
github.com/go-openapi/jsonpointer v0.21.1 h1:whnzv/pNXtK2FbX/W9yJfRmE2gsmkfahjMKB0fZvcic=
@@ -80,12 +84,18 @@ github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM=
8084
github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
8185
github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw=
8286
github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
87+
github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=
88+
github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0=
8389
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
8490
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
91+
github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo=
92+
github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
8593
github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
8694
github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
8795
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
8896
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
97+
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
98+
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
8999
github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
90100
github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
91101
github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=
@@ -101,6 +111,8 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaU
101111
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
102112
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
103113
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
114+
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.0 h1:FbSCl+KggFl+Ocym490i/EyXF4lPgLoUtcSWquBM0Rs=
115+
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.0/go.mod h1:qOchhhIlmRcqk/O9uCo/puJlyo07YINaIqdZfZG3Jkc=
104116
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
105117
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
106118
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
@@ -168,6 +180,8 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9
168180
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
169181
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
170182
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
183+
github.com/nebius/gosdk v0.0.0-20260224104345-c5b8377510ae h1:8HoY5vG+jDt+OPzy8Sv440rFpJgNvXWCE/dC7KM5L48=
184+
github.com/nebius/gosdk v0.0.0-20260224104345-c5b8377510ae/go.mod h1:8r4EhhGJ+RMUfdiVVpZ8pEb0b+O7hLG8JXDAgGyu89o=
171185
github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmtpMYro=
172186
github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg=
173187
github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 h1:G7ERwszslrBzRxj//JalHPu/3yz+De2J+4aLtSRlHiY=
@@ -253,8 +267,16 @@ github.com/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0
253267
github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U=
254268
github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo=
255269
github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM=
270+
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
271+
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
256272
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
257273
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
274+
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
275+
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
276+
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
277+
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
278+
go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o=
279+
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
258280
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
259281
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
260282
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
@@ -317,8 +339,12 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
317339
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
318340
gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
319341
gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
320-
google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
321-
google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
342+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260223185530-2f722ef697dc h1:51Wupg8spF+5FC6D+iMKbOddFjMckETnNnEiZ+HX37s=
343+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260223185530-2f722ef697dc/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
344+
google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA=
345+
google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
346+
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
347+
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
322348
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
323349
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
324350
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
@@ -341,8 +367,6 @@ k8s.io/apimachinery v0.34.3 h1:/TB+SFEiQvN9HPldtlWOTp0hWbJ+fjU+wkxysf/aQnE=
341367
k8s.io/apimachinery v0.34.3/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
342368
k8s.io/client-go v0.34.3 h1:wtYtpzy/OPNYf7WyNBTj3iUA0XaBHVqhv4Iv3tbrF5A=
343369
k8s.io/client-go v0.34.3/go.mod h1:OxxeYagaP9Kdf78UrKLa3YZixMCfP6bgPwPwNBQBzpM=
344-
k8s.io/component-base v0.34.3 h1:zsEgw6ELqK0XncCQomgO9DpUIzlrYuZYA0Cgo+JWpVk=
345-
k8s.io/component-base v0.34.3/go.mod h1:5iIlD8wPfWE/xSHTRfbjuvUul2WZbI2nOUK65XL0E/c=
346370
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
347371
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
348372
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA=

0 commit comments

Comments
 (0)