Skip to content

Commit 0134676

Browse files
authored
Merge pull request #1421 from DerekFrank/use-central-flags
refactor: use common sidecar flags functionality
2 parents 1251558 + 4d17db1 commit 0134676

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+16531
-315
lines changed

cmd/csi-provisioner/csi-provisioner.go

Lines changed: 28 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -79,38 +79,22 @@ import (
7979

8080
var (
8181
master = flag.String("master", "", "Master URL to build a client config from. Either this or kubeconfig needs to be set if the provisioner is being run out of cluster.")
82-
kubeconfig = flag.String("kubeconfig", "", "Absolute path to the kubeconfig file. Either this or master needs to be set if the provisioner is being run out of cluster.")
83-
csiEndpoint = flag.String("csi-address", "/run/csi/socket", "The gRPC endpoint for Target CSI Volume.")
8482
volumeNamePrefix = flag.String("volume-name-prefix", "pvc", "Prefix to apply to the name of a created volume.")
8583
volumeNameUUIDLength = flag.Int("volume-name-uuid-length", -1, "Truncates generated UUID of a created volume to this length. Defaults behavior is to NOT truncate.")
86-
showVersion = flag.Bool("version", false, "Show version.")
8784
retryIntervalStart = flag.Duration("retry-interval-start", time.Second, "Initial retry interval of failed provisioning or deletion. It doubles with each failure, up to retry-interval-max.")
8885
retryIntervalMax = flag.Duration("retry-interval-max", 5*time.Minute, "Maximum retry interval of failed provisioning or deletion.")
8986
workerThreads = flag.Uint("worker-threads", 100, "Number of provisioner worker threads, in other words nr. of simultaneous CSI calls.")
9087
finalizerThreads = flag.Uint("cloning-protection-threads", 1, "Number of simultaneously running threads, handling cloning finalizer removal")
9188
capacityThreads = flag.Uint("capacity-threads", 1, "Number of simultaneously running threads, handling CSIStorageCapacity objects")
9289
operationTimeout = flag.Duration("timeout", 10*time.Second, "Timeout for waiting for volume operation (creation, deletion, capacity queries)")
9390

94-
enableLeaderElection = flag.Bool("leader-election", false, "Enables leader election. If leader election is enabled, additional RBAC rules are required. Please refer to the Kubernetes CSI documentation for instructions on setting up these RBAC rules.")
95-
96-
leaderElectionNamespace = flag.String("leader-election-namespace", "", "Namespace where the leader election resource lives. Defaults to the pod namespace if not set.")
97-
strictTopology = flag.Bool("strict-topology", false, "Late binding: pass only selected node topology to CreateVolume Request, unlike default behavior of passing aggregated cluster topologies that match with topology keys of the selected node.")
98-
immediateTopology = flag.Bool("immediate-topology", true, "Immediate binding: pass aggregated cluster topologies for all nodes where the CSI driver is available (enabled, the default) or no topology requirements (if disabled).")
99-
extraCreateMetadata = flag.Bool("extra-create-metadata", false, "If set, add pv/pvc metadata to plugin create requests as parameters.")
100-
metricsAddress = flag.String("metrics-address", "", "(deprecated) The TCP network address where the prometheus metrics endpoint will listen (example: `:8080`). The default is empty string, which means metrics endpoint is disabled. Only one of `--metrics-address` and `--http-endpoint` can be set.")
101-
httpEndpoint = flag.String("http-endpoint", "", "The TCP network address where the HTTP server for diagnostics, including pprof, metrics and leader election health check, will listen (example: `:8080`). The default is empty string, which means the server is disabled. Only one of `--metrics-address` and `--http-endpoint` can be set.")
102-
metricsPath = flag.String("metrics-path", "/metrics", "The HTTP path where prometheus metrics will be exposed. Default is `/metrics`.")
103-
enableProfile = flag.Bool("enable-pprof", false, "Enable pprof profiling on the TCP network address specified by --http-endpoint. The HTTP path is `/debug/pprof/`.")
104-
105-
leaderElectionLeaseDuration = flag.Duration("leader-election-lease-duration", 15*time.Second, "Duration, in seconds, that non-leader candidates will wait to force acquire leadership. Defaults to 15 seconds.")
106-
leaderElectionRenewDeadline = flag.Duration("leader-election-renew-deadline", 10*time.Second, "Duration, in seconds, that the acting leader will retry refreshing leadership before giving up. Defaults to 10 seconds.")
107-
leaderElectionRetryPeriod = flag.Duration("leader-election-retry-period", 5*time.Second, "Duration, in seconds, the LeaderElector clients should wait between tries of actions. Defaults to 5 seconds.")
91+
strictTopology = flag.Bool("strict-topology", false, "Late binding: pass only selected node topology to CreateVolume Request, unlike default behavior of passing aggregated cluster topologies that match with topology keys of the selected node.")
92+
immediateTopology = flag.Bool("immediate-topology", true, "Immediate binding: pass aggregated cluster topologies for all nodes where the CSI driver is available (enabled, the default) or no topology requirements (if disabled).")
93+
extraCreateMetadata = flag.Bool("extra-create-metadata", false, "If set, add pv/pvc metadata to plugin create requests as parameters.")
94+
enableProfile = flag.Bool("enable-pprof", false, "Enable pprof profiling on the TCP network address specified by --http-endpoint. The HTTP path is `/debug/pprof/`.")
10895

10996
defaultFSType = flag.String("default-fstype", "", "The default filesystem type of the volume to provision when fstype is unspecified in the StorageClass. If the default is not set and fstype is unset in the StorageClass, then no fstype will be set")
11097

111-
kubeAPIQPS = flag.Float32("kube-api-qps", 5, "QPS to use while communicating with the kubernetes apiserver. Defaults to 5.0.")
112-
kubeAPIBurst = flag.Int("kube-api-burst", 10, "Burst to use while communicating with the kubernetes apiserver. Defaults to 10.")
113-
11498
kubeAPICapacityQPS = flag.Float32("kube-api-capacity-qps", 1, "QPS to use for storage capacity updates while communicating with the kubernetes apiserver. Defaults to 1.0.")
11599
kubeAPICapacityBurst = flag.Int("kube-api-capacity-burst", 5, "Burst to use for storage capacity updates while communicating with the kubernetes apiserver. Defaults to 5.")
116100

@@ -144,6 +128,7 @@ func main() {
144128
c := logsapi.NewLoggingConfiguration()
145129
logsapi.AddFlags(c, flag.CommandLine)
146130
logs.InitLogs()
131+
standardflags.RegisterCommonFlags(goflag.CommandLine)
147132
standardflags.AddAutomaxprocs(klog.Infof)
148133
flag.CommandLine.AddGoFlagSet(goflag.CommandLine)
149134
flag.Parse()
@@ -163,32 +148,32 @@ func main() {
163148
klog.Fatal("The NODE_NAME environment variable must be set when using --enable-node-deployment.")
164149
}
165150

166-
if *showVersion {
151+
if standardflags.Configuration.ShowVersion {
167152
fmt.Println(os.Args[0], version)
168153
os.Exit(0)
169154
}
170155
klog.InfoS("Version", "version", version)
171156

172-
if *metricsAddress != "" && *httpEndpoint != "" {
157+
if standardflags.Configuration.MetricsAddress != "" && standardflags.Configuration.HttpEndpoint != "" {
173158
klog.Error("only one of `--metrics-address` and `--http-endpoint` can be set.")
174159
os.Exit(1)
175160
}
176-
addr := *metricsAddress
161+
addr := standardflags.Configuration.MetricsAddress
177162
if addr == "" {
178-
addr = *httpEndpoint
163+
addr = standardflags.Configuration.HttpEndpoint
179164
}
180165

181166
// get the KUBECONFIG from env if specified (useful for local/debug cluster)
182167
kubeconfigEnv := os.Getenv("KUBECONFIG")
183168

184169
if kubeconfigEnv != "" {
185170
klog.Infof("Found KUBECONFIG environment variable set, using that..")
186-
kubeconfig = &kubeconfigEnv
171+
standardflags.Configuration.KubeConfig = kubeconfigEnv
187172
}
188173

189-
if *master != "" || *kubeconfig != "" {
174+
if *master != "" || standardflags.Configuration.KubeConfig != "" {
190175
klog.Infof("Either master or kubeconfig specified. building kube config from that..")
191-
config, err = clientcmd.BuildConfigFromFlags(*master, *kubeconfig)
176+
config, err = clientcmd.BuildConfigFromFlags(*master, standardflags.Configuration.KubeConfig)
192177
} else {
193178
klog.Infof("Building kube configs for running in cluster...")
194179
config, err = rest.InClusterConfig()
@@ -197,8 +182,8 @@ func main() {
197182
klog.Fatalf("Failed to create config: %v", err)
198183
}
199184

200-
config.QPS = *kubeAPIQPS
201-
config.Burst = *kubeAPIBurst
185+
config.QPS = float32(standardflags.Configuration.KubeAPIQPS)
186+
config.Burst = standardflags.Configuration.KubeAPIBurst
202187

203188
coreConfig := rest.CopyConfig(config)
204189
coreConfig.ContentType = runtime.ContentTypeProtobuf
@@ -240,7 +225,7 @@ func main() {
240225
metrics.WithSubsystem(metrics.SubsystemSidecar),
241226
)
242227

243-
grpcClient, err := ctrl.Connect(ctx, *csiEndpoint, metricsManager)
228+
grpcClient, err := ctrl.Connect(ctx, standardflags.Configuration.CSIAddress, metricsManager)
244229
if err != nil {
245230
klog.Error(err.Error())
246231
os.Exit(1)
@@ -274,7 +259,7 @@ func main() {
274259
// Will be provided via default gatherer.
275260
metrics.WithProcessStartTime(false),
276261
metrics.WithMigration())
277-
migratedGrpcClient, err := ctrl.Connect(ctx, *csiEndpoint, metricsManager)
262+
migratedGrpcClient, err := ctrl.Connect(ctx, standardflags.Configuration.CSIAddress, metricsManager)
278263
if err != nil {
279264
klog.Error(err.Error())
280265
os.Exit(1)
@@ -613,14 +598,14 @@ func main() {
613598
// because both CSI metrics manager and component-base manage
614599
// their own registry. Probably could be avoided by making
615600
// CSI metrics manager a bit more flexible.
616-
mux.Handle(*metricsPath,
601+
mux.Handle(standardflags.Configuration.MetricsPath,
617602
promhttp.InstrumentMetricHandler(
618603
reg,
619604
promhttp.HandlerFor(gatherers, promhttp.HandlerOpts{}),
620605
))
621606

622607
if *enableProfile {
623-
klog.InfoS("Starting profiling", "endpoint", httpEndpoint)
608+
klog.InfoS("Starting profiling", "endpoint", standardflags.Configuration.HttpEndpoint)
624609

625610
mux.HandleFunc("/debug/pprof/", pprof.Index)
626611
mux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
@@ -632,7 +617,7 @@ func main() {
632617
klog.Infof("ServeMux listening at %q", addr)
633618
err := http.ListenAndServe(addr, mux)
634619
if err != nil {
635-
klog.Fatalf("Failed to start HTTP server at specified address (%q) and metrics path (%q): %s", addr, *metricsPath, err)
620+
klog.Fatalf("Failed to start HTTP server at specified address (%q) and metrics path (%q): %s", addr, standardflags.Configuration.MetricsPath, err)
636621
}
637622
}()
638623
}
@@ -734,39 +719,13 @@ func main() {
734719
}
735720
}
736721

737-
if !*enableLeaderElection {
738-
run(ctx)
739-
} else {
740-
// this lock name pattern is also copied from sigs.k8s.io/sig-storage-lib-external-provisioner/controller
741-
// to preserve backwards compatibility
742-
lockName := strings.Replace(provisionerName, "/", "-", -1)
743-
744-
// create a new clientset for leader election
745-
leClientset, err := kubernetes.NewForConfig(coreConfig)
746-
if err != nil {
747-
klog.Fatalf("Failed to create leaderelection client: %v", err)
748-
}
749-
750-
le := leaderelection.NewLeaderElection(leClientset, lockName, run)
751-
if *httpEndpoint != "" {
752-
le.PrepareHealthCheck(mux, leaderelection.DefaultHealthCheckTimeout)
753-
}
754-
755-
if *leaderElectionNamespace != "" {
756-
le.WithNamespace(*leaderElectionNamespace)
757-
}
758-
759-
le.WithLeaseDuration(*leaderElectionLeaseDuration)
760-
le.WithRenewDeadline(*leaderElectionRenewDeadline)
761-
le.WithRetryPeriod(*leaderElectionRetryPeriod)
762-
le.WithIdentity(identity)
763-
if utilfeature.DefaultFeatureGate.Enabled(features.ReleaseLeaderElectionOnExit) {
764-
le.WithReleaseOnCancel(true)
765-
le.WithContext(ctx)
766-
}
767-
768-
if err := le.Run(); err != nil {
769-
klog.Fatalf("failed to initialize leader election: %v", err)
770-
}
771-
}
722+
leaderelection.RunWithLeaderElection(
723+
ctx,
724+
config,
725+
standardflags.Configuration,
726+
run,
727+
strings.Replace(provisionerName, "/", "-", -1),
728+
mux,
729+
utilfeature.DefaultFeatureGate.Enabled(features.ReleaseLeaderElectionOnExit),
730+
)
772731
}

go.mod

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
module github.com/kubernetes-csi/external-provisioner/v5
22

3-
go 1.24.2
3+
go 1.24.6
44

55
require (
66
github.com/container-storage-interface/spec v1.12.0
77
github.com/golang/mock v1.6.0
88
github.com/google/uuid v1.6.0 // indirect
9-
github.com/kubernetes-csi/csi-lib-utils v0.22.0
9+
github.com/kubernetes-csi/csi-lib-utils v0.23.2
1010
github.com/kubernetes-csi/csi-test/v5 v5.4.0
1111
github.com/kubernetes-csi/external-snapshotter/client/v8 v8.2.0
1212
github.com/miekg/dns v1.1.68 // indirect
@@ -15,10 +15,10 @@ require (
1515
github.com/stretchr/testify v1.11.1
1616
google.golang.org/grpc v1.75.1
1717
google.golang.org/protobuf v1.36.8
18-
k8s.io/api v0.34.1
19-
k8s.io/apimachinery v0.34.1
18+
k8s.io/api v0.34.2
19+
k8s.io/apimachinery v0.34.2
2020
k8s.io/apiserver v0.34.1
21-
k8s.io/client-go v0.34.1
21+
k8s.io/client-go v0.34.2
2222
k8s.io/component-base v0.34.1
2323
k8s.io/component-helpers v0.34.0
2424
k8s.io/csi-translation-lib v0.34.0
@@ -101,15 +101,15 @@ require (
101101
go.etcd.io/etcd/api/v3 v3.6.4 // indirect
102102
go.etcd.io/etcd/client/pkg/v3 v3.6.4 // indirect
103103
go.etcd.io/etcd/client/v3 v3.6.4 // indirect
104-
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
104+
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
105105
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect
106106
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect
107-
go.opentelemetry.io/otel v1.37.0 // indirect
107+
go.opentelemetry.io/otel v1.38.0 // indirect
108108
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect
109109
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 // indirect
110-
go.opentelemetry.io/otel/metric v1.37.0 // indirect
110+
go.opentelemetry.io/otel/metric v1.38.0 // indirect
111111
go.opentelemetry.io/otel/sdk v1.37.0 // indirect
112-
go.opentelemetry.io/otel/trace v1.37.0 // indirect
112+
go.opentelemetry.io/otel/trace v1.38.0 // indirect
113113
go.opentelemetry.io/proto/otlp v1.6.0 // indirect
114114
go.uber.org/automaxprocs v1.6.0 // indirect
115115
go.uber.org/multierr v1.11.0 // indirect

go.sum

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
124124
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
125125
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
126126
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
127-
github.com/kubernetes-csi/csi-lib-utils v0.22.0 h1:EUAs1+uHGps3OtVj4XVx16urhpI02eu+Z8Vps6plpHY=
128-
github.com/kubernetes-csi/csi-lib-utils v0.22.0/go.mod h1:f+PalKyS4Ujsjb9+m6Rj0W6c28y3nfea3paQ/VqjI28=
127+
github.com/kubernetes-csi/csi-lib-utils v0.23.2 h1:+x9W4RRyuRnJcTiSHKEFpl0cYUeLUqshM5ioPeYPRXw=
128+
github.com/kubernetes-csi/csi-lib-utils v0.23.2/go.mod h1:aIcqnC6EyesZpe7kX5PxHUZePw1tKrYFKwg7RaqlPh8=
129129
github.com/kubernetes-csi/csi-test/v5 v5.4.0 h1:u5DgYNIreSNO2+u4Nq2Wpl+bbakRSjNyxZHmDTAqnYA=
130130
github.com/kubernetes-csi/csi-test/v5 v5.4.0/go.mod h1:anAJKFUb/SdHhIHECgSKxC5LSiLzib+1I6mrWF5Hve8=
131131
github.com/kubernetes-csi/external-snapshotter/client/v8 v8.2.0 h1:Q3jQ1NkFqv5o+F8dMmHd8SfEmlcwNeo1immFApntEwE=
@@ -171,8 +171,8 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z
171171
github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA=
172172
github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0=
173173
github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw=
174-
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
175-
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
174+
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
175+
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
176176
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
177177
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
178178
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
@@ -219,26 +219,26 @@ go.etcd.io/etcd/server/v3 v3.6.4 h1:LsCA7CzjVt+8WGrdsnh6RhC0XqCsLkBly3ve5rTxMAU=
219219
go.etcd.io/etcd/server/v3 v3.6.4/go.mod h1:aYCL/h43yiONOv0QIR82kH/2xZ7m+IWYjzRmyQfnCAg=
220220
go.etcd.io/raft/v3 v3.6.0 h1:5NtvbDVYpnfZWcIHgGRk9DyzkBIXOi8j+DDp1IcnUWQ=
221221
go.etcd.io/raft/v3 v3.6.0/go.mod h1:nLvLevg6+xrVtHUmVaTcTz603gQPHfh7kUAwV6YpfGo=
222-
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
223-
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
222+
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
223+
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
224224
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw=
225225
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM=
226226
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU=
227227
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ=
228-
go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ=
229-
go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I=
228+
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
229+
go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
230230
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 h1:1fTNlAIJZGWLP5FVu0fikVry1IsiUnXjf7QFvoNN3Xw=
231231
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0/go.mod h1:zjPK58DtkqQFn+YUMbx0M2XV3QgKU0gS9LeGohREyK4=
232232
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 h1:m639+BofXTvcY1q8CGs4ItwQarYtJPOWmVobfM1HpVI=
233233
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0/go.mod h1:LjReUci/F4BUyv+y4dwnq3h/26iNOeC3wAIqgvTIZVo=
234-
go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE=
235-
go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E=
234+
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
235+
go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
236236
go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI=
237237
go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg=
238238
go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc=
239239
go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps=
240-
go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
241-
go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
240+
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
241+
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
242242
go.opentelemetry.io/proto/otlp v1.6.0 h1:jQjP+AQyTf+Fe7OKj/MfkDrmK4MNVtw2NpXsf9fefDI=
243243
go.opentelemetry.io/proto/otlp v1.6.0/go.mod h1:cicgGehlFuNdgZkcALOCh3VE6K/u2tAjzlRhDwmVpZc=
244244
go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=

vendor/github.com/kubernetes-csi/csi-lib-utils/connection/connection.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)