This is an automated email from the ASF dual-hosted git repository.

ccondit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-k8shim.git


The following commit(s) were added to refs/heads/master by this push:
     new 4363f25e [YUNIKORN-2830] Update Kubernetes compile dependency to 
1.31.0 (#898)
4363f25e is described below

commit 4363f25e97ddfa9dfd606835d3095764050fd447
Author: Craig Condit <[email protected]>
AuthorDate: Tue Aug 27 15:26:14 2024 -0500

    [YUNIKORN-2830] Update Kubernetes compile dependency to 1.31.0 (#898)
    
    Closes: #898
---
 go.mod                                          | 230 ++++++-------
 go.sum                                          | 420 +++++++++++++-----------
 pkg/client/apifactory.go                        |  56 +++-
 pkg/client/apifactory_mock.go                   | 113 ++++++-
 pkg/client/apifactory_test.go                   |  45 +++
 pkg/client/clients.go                           |  51 ++-
 pkg/client/clients_test.go                      |  26 +-
 pkg/plugin/predicates/predicate_manager.go      |  18 +-
 pkg/plugin/predicates/predicate_manager_test.go |  29 +-
 pkg/plugin/scheduler_plugin.go                  |   4 +-
 pkg/plugin/support/framework_handle.go          |  10 +-
 test/e2e/framework/helpers/k8s/events.go        |  12 +-
 12 files changed, 626 insertions(+), 388 deletions(-)

diff --git a/go.mod b/go.mod
index 685499e7..d7dc76f4 100644
--- a/go.mod
+++ b/go.mod
@@ -18,68 +18,72 @@
 
 module github.com/apache/yunikorn-k8shim
 
-go 1.21
+go 1.22.0
+
+toolchain go1.22.5
 
 require (
-       github.com/apache/yunikorn-core v0.0.0-20240815214512-f51aaba68ff2
-       github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20240815142741-38a38685cd4e
+       github.com/apache/yunikorn-core v0.0.0-20240827175300-6939b13d1d0e
+       github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20240827015655-68e8c6cca28a
        github.com/google/go-cmp v0.6.0
        github.com/google/uuid v1.6.0
        github.com/looplab/fsm v1.0.1
-       github.com/onsi/ginkgo/v2 v2.15.0
-       github.com/onsi/gomega v1.30.0
-       github.com/prometheus/client_golang v1.18.0
-       github.com/sasha-s/go-deadlock v0.3.1
+       github.com/onsi/ginkgo/v2 v2.19.0
+       github.com/onsi/gomega v1.33.1
+       github.com/prometheus/client_golang v1.19.1
+       github.com/sasha-s/go-deadlock v0.3.5
        go.uber.org/zap v1.26.0
        gopkg.in/yaml.v3 v3.0.1
        gotest.tools/v3 v3.5.1
-       k8s.io/api v0.29.6
-       k8s.io/apimachinery v0.29.6
-       k8s.io/cli-runtime v0.29.6
-       k8s.io/client-go v0.29.6
-       k8s.io/component-base v0.29.6
-       k8s.io/klog/v2 v2.110.1
-       k8s.io/kube-scheduler v0.29.6
-       k8s.io/kubectl v0.29.6
-       k8s.io/kubernetes v1.29.6
+       k8s.io/api v0.31.0
+       k8s.io/apimachinery v0.31.0
+       k8s.io/cli-runtime v0.31.0
+       k8s.io/client-go v0.31.0
+       k8s.io/component-base v0.31.0
+       k8s.io/klog/v2 v2.130.1
+       k8s.io/kube-scheduler v0.31.0
+       k8s.io/kubectl v0.31.0
+       k8s.io/kubernetes v1.31.0
 )
 
 require (
        github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // 
indirect
        github.com/NYTimes/gziphandler v1.1.1 // indirect
-       github.com/antlr/antlr4/runtime/Go/antlr/v4 
v4.0.0-20230305170008-8188dc5388df // indirect
+       github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
        github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a // 
indirect
        github.com/beorn7/perks v1.0.1 // indirect
        github.com/blang/semver/v4 v4.0.0 // indirect
-       github.com/cenkalti/backoff/v4 v4.2.1 // indirect
-       github.com/cespare/xxhash/v2 v2.2.0 // indirect
+       github.com/cenkalti/backoff/v4 v4.3.0 // indirect
+       github.com/cespare/xxhash/v2 v2.3.0 // indirect
        github.com/coreos/go-semver v0.3.1 // indirect
        github.com/coreos/go-systemd/v22 v22.5.0 // indirect
-       github.com/davecgh/go-spew v1.1.1 // indirect
+       github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // 
indirect
        github.com/distribution/reference v0.5.0 // indirect
        github.com/emicklei/go-restful/v3 v3.11.0 // indirect
-       github.com/evanphx/json-patch v4.12.0+incompatible // indirect
-       github.com/felixge/httpsnoop v1.0.3 // indirect
+       github.com/felixge/httpsnoop v1.0.4 // indirect
        github.com/fsnotify/fsnotify v1.7.0 // indirect
+       github.com/fxamacker/cbor/v2 v2.7.0 // indirect
        github.com/go-errors/errors v1.4.2 // indirect
-       github.com/go-logr/logr v1.3.0 // indirect
+       github.com/go-logr/logr v1.4.2 // indirect
        github.com/go-logr/stdr v1.2.2 // indirect
        github.com/go-openapi/jsonpointer v0.19.6 // indirect
        github.com/go-openapi/jsonreference v0.20.2 // indirect
-       github.com/go-openapi/swag v0.22.3 // indirect
-       github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // 
indirect
+       github.com/go-openapi/swag v0.22.4 // indirect
+       github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
+       github.com/godbus/dbus/v5 v5.1.0 // indirect
        github.com/gogo/protobuf v1.3.2 // indirect
        github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // 
indirect
        github.com/golang/protobuf v1.5.4 // indirect
        github.com/google/btree v1.1.2 // indirect
-       github.com/google/cel-go v0.17.7 // indirect
+       github.com/google/cel-go v0.20.1 // indirect
        github.com/google/gnostic-models v0.6.8 // indirect
        github.com/google/gofuzz v1.2.0 // indirect
-       github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect
+       github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af // indirect
        github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
+       github.com/gorilla/websocket v1.5.0 // indirect
        github.com/gregjones/httpcache v0.0.0-20190212212710-3befbb6ad0cc // 
indirect
        github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
-       github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
+       github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
        github.com/imdario/mergo v0.3.7 // indirect
        github.com/inconshreveable/mousetrap v1.1.0 // indirect
        github.com/josharian/intern v1.0.0 // indirect
@@ -87,117 +91,117 @@ require (
        github.com/julienschmidt/httprouter v1.3.0 // indirect
        github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // 
indirect
        github.com/mailru/easyjson v0.7.7 // indirect
-       github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
-       github.com/moby/spdystream v0.2.0 // indirect
-       github.com/moby/sys/mountinfo v0.6.2 // indirect
-       github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect
+       github.com/moby/spdystream v0.4.0 // indirect
+       github.com/moby/sys/mountinfo v0.7.1 // indirect
+       github.com/moby/term v0.5.0 // indirect
        github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // 
indirect
        github.com/modern-go/reflect2 v1.0.2 // indirect
        github.com/monochromegane/go-gitignore 
v0.0.0-20200626010858-205db1a8cc00 // indirect
        github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // 
indirect
        github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // 
indirect
        github.com/opencontainers/go-digest v1.0.0 // indirect
+       github.com/opencontainers/runc v1.1.13 // indirect
+       github.com/opencontainers/runtime-spec 
v1.0.3-0.20220909204839-494a5a6aca78 // indirect
        github.com/opencontainers/selinux v1.11.0 // indirect
        github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
-       github.com/petermattis/goid v0.0.0-20240327183114-c42a807a84ba // 
indirect
+       github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // 
indirect
        github.com/pkg/errors v0.9.1 // indirect
-       github.com/prometheus/client_model v0.5.0 // indirect
-       github.com/prometheus/common v0.45.0 // indirect
-       github.com/prometheus/procfs v0.12.0 // indirect
-       github.com/spf13/cobra v1.7.0 // indirect
+       github.com/prometheus/client_model v0.6.1 // indirect
+       github.com/prometheus/common v0.55.0 // indirect
+       github.com/prometheus/procfs v0.15.1 // indirect
+       github.com/sirupsen/logrus v1.9.3 // indirect
+       github.com/spf13/cobra v1.8.1 // indirect
        github.com/spf13/pflag v1.0.5 // indirect
        github.com/stoewer/go-strcase v1.2.0 // indirect
+       github.com/x448/float16 v0.8.4 // indirect
        github.com/xlab/treeprint v1.2.0 // indirect
-       go.etcd.io/etcd/api/v3 v3.5.10 // indirect
-       go.etcd.io/etcd/client/pkg/v3 v3.5.10 // indirect
-       go.etcd.io/etcd/client/v3 v3.5.10 // indirect
-       
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.46.0 // indirect
-       go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0 
// indirect
-       go.opentelemetry.io/otel v1.20.0 // indirect
-       go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0 // indirect
-       go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 
// indirect
-       go.opentelemetry.io/otel/metric v1.20.0 // indirect
-       go.opentelemetry.io/otel/sdk v1.20.0 // indirect
-       go.opentelemetry.io/otel/trace v1.20.0 // indirect
-       go.opentelemetry.io/proto/otlp v1.0.0 // indirect
+       go.etcd.io/etcd/api/v3 v3.5.14 // indirect
+       go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect
+       go.etcd.io/etcd/client/v3 v3.5.14 // indirect
+       
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.53.0 // indirect
+       go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 
// indirect
+       go.opentelemetry.io/otel v1.28.0 // indirect
+       go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 // indirect
+       go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 
// indirect
+       go.opentelemetry.io/otel/metric v1.28.0 // indirect
+       go.opentelemetry.io/otel/sdk v1.28.0 // indirect
+       go.opentelemetry.io/otel/trace v1.28.0 // indirect
+       go.opentelemetry.io/proto/otlp v1.3.1 // indirect
        go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect
        go.uber.org/multierr v1.11.0 // indirect
-       golang.org/x/crypto v0.21.0 // indirect
+       golang.org/x/crypto v0.26.0 // indirect
        golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 // indirect
-       golang.org/x/net v0.23.0 // indirect
-       golang.org/x/oauth2 v0.12.0 // indirect
-       golang.org/x/sync v0.7.0 // indirect
-       golang.org/x/sys v0.18.0 // indirect
-       golang.org/x/term v0.18.0 // indirect
-       golang.org/x/text v0.14.0 // indirect
+       golang.org/x/net v0.28.0 // indirect
+       golang.org/x/oauth2 v0.21.0 // indirect
+       golang.org/x/sync v0.8.0 // indirect
+       golang.org/x/sys v0.23.0 // indirect
+       golang.org/x/term v0.23.0 // indirect
+       golang.org/x/text v0.17.0 // indirect
        golang.org/x/time v0.5.0 // indirect
-       golang.org/x/tools v0.20.0 // indirect
-       google.golang.org/appengine v1.6.7 // indirect
-       google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // 
indirect
-       google.golang.org/genproto/googleapis/api 
v0.0.0-20230822172742-b8732ec3820d // indirect
-       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20230822172742-b8732ec3820d // indirect
-       google.golang.org/grpc v1.59.0 // indirect
-       google.golang.org/protobuf v1.33.0 // indirect
+       golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
+       google.golang.org/genproto/googleapis/api 
v0.0.0-20240528184218-531527333157 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20240701130421-f6361c86f094 // indirect
+       google.golang.org/grpc v1.65.0 // indirect
+       google.golang.org/protobuf v1.34.2 // indirect
+       gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
        gopkg.in/inf.v0 v0.9.1 // indirect
        gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
        gopkg.in/yaml.v2 v2.4.0 // indirect
        k8s.io/apiextensions-apiserver v0.0.0 // indirect
-       k8s.io/apiserver v0.29.6 // indirect
-       k8s.io/cloud-provider v0.29.6 // indirect
-       k8s.io/component-helpers v0.29.6 // indirect
-       k8s.io/controller-manager v0.29.6 // indirect
-       k8s.io/csi-translation-lib v0.29.6 // indirect
-       k8s.io/dynamic-resource-allocation v0.29.6 // indirect
-       k8s.io/kms v0.29.6 // indirect
-       k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
-       k8s.io/kubelet v0.29.6 // indirect
-       k8s.io/mount-utils v0.29.6 // indirect
-       k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
-       sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0 // 
indirect
+       k8s.io/apiserver v0.31.0 // indirect
+       k8s.io/cloud-provider v0.31.0 // indirect
+       k8s.io/component-helpers v0.31.0 // indirect
+       k8s.io/controller-manager v0.31.0 // indirect
+       k8s.io/csi-translation-lib v0.31.0 // indirect
+       k8s.io/dynamic-resource-allocation v0.31.0 // indirect
+       k8s.io/kms v0.31.0 // indirect
+       k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
+       k8s.io/kubelet v0.31.0 // indirect
+       k8s.io/mount-utils v0.31.0 // indirect
+       k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
+       sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 // 
indirect
        sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
-       sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // 
indirect
-       sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 // 
indirect
+       sigs.k8s.io/kustomize/api v0.17.2 // indirect
+       sigs.k8s.io/kustomize/kyaml v0.17.1 // indirect
        sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
-       sigs.k8s.io/yaml v1.3.0 // indirect
+       sigs.k8s.io/yaml v1.4.0 // indirect
 )
 
 replace (
-       github.com/opencontainers/runc => github.com/opencontainers/runc v1.1.12
-       github.com/petermattis/goid => github.com/petermattis/goid 
v0.0.0-20240327183114-c42a807a84ba
-       golang.org/x/crypto => golang.org/x/crypto v0.21.0
+       golang.org/x/crypto => golang.org/x/crypto v0.26.0
        golang.org/x/lint => golang.org/x/lint 
v0.0.0-20210508222113-6edffad5e616
-       golang.org/x/net => golang.org/x/net v0.23.0
-       golang.org/x/sys => golang.org/x/sys v0.18.0
-       golang.org/x/text => golang.org/x/text v0.14.0
-       golang.org/x/tools => golang.org/x/tools v0.17.0
-       google.golang.org/protobuf => google.golang.org/protobuf v1.33.0
-       k8s.io/api => k8s.io/api v0.29.6
-       k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.29.6
-       k8s.io/apimachinery => k8s.io/apimachinery v0.29.6
-       k8s.io/apiserver => k8s.io/apiserver v0.29.6
-       k8s.io/cli-runtime => k8s.io/cli-runtime v0.29.6
-       k8s.io/client-go => k8s.io/client-go v0.29.6
-       k8s.io/cloud-provider => k8s.io/cloud-provider v0.29.6
-       k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.29.6
-       k8s.io/code-generator => k8s.io/code-generator v0.29.6
-       k8s.io/component-base => k8s.io/component-base v0.29.6
-       k8s.io/component-helpers => k8s.io/component-helpers v0.29.6
-       k8s.io/controller-manager => k8s.io/controller-manager v0.29.6
-       k8s.io/cri-api => k8s.io/cri-api v0.29.6
-       k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.29.6
-       k8s.io/dynamic-resource-allocation => 
k8s.io/dynamic-resource-allocation v0.29.6
-       k8s.io/endpointslice => k8s.io/endpointslice v0.29.6
+       golang.org/x/net => golang.org/x/net v0.28.0
+       golang.org/x/sys => golang.org/x/sys v0.24.0
+       golang.org/x/text => golang.org/x/text v0.17.0
+       golang.org/x/tools => golang.org/x/tools v0.24.0
+       k8s.io/api => k8s.io/api v0.31.0
+       k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.31.0
+       k8s.io/apimachinery => k8s.io/apimachinery v0.31.0
+       k8s.io/apiserver => k8s.io/apiserver v0.31.0
+       k8s.io/cli-runtime => k8s.io/cli-runtime v0.31.0
+       k8s.io/client-go => k8s.io/client-go v0.31.0
+       k8s.io/cloud-provider => k8s.io/cloud-provider v0.31.0
+       k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.31.0
+       k8s.io/code-generator => k8s.io/code-generator v0.31.0
+       k8s.io/component-base => k8s.io/component-base v0.31.0
+       k8s.io/component-helpers => k8s.io/component-helpers v0.31.0
+       k8s.io/controller-manager => k8s.io/controller-manager v0.31.0
+       k8s.io/cri-api => k8s.io/cri-api v0.31.0
+       k8s.io/cri-client => k8s.io/cri-client v0.31.0
+       k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.31.0
+       k8s.io/dynamic-resource-allocation => 
k8s.io/dynamic-resource-allocation v0.31.0
+       k8s.io/endpointslice => k8s.io/endpointslice v0.31.0
        k8s.io/klog/v2 => k8s.io/klog/v2 v2.110.1
-       k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.29.6
-       k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.29.6
-       k8s.io/kube-proxy => k8s.io/kube-proxy v0.29.6
-       k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.29.6
-       k8s.io/kubectl => k8s.io/kubectl v0.29.6
-       k8s.io/kubelet => k8s.io/kubelet v0.29.6
-       k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.29.6
-       k8s.io/metrics => k8s.io/metrics v0.29.6
-       k8s.io/mount-utils => k8s.io/mount-utils v0.29.6
-       k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.29.6
-       k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.29.6
+       k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.31.0
+       k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.31.0
+       k8s.io/kube-proxy => k8s.io/kube-proxy v0.31.0
+       k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.31.0
+       k8s.io/kubectl => k8s.io/kubectl v0.31.0
+       k8s.io/kubelet => k8s.io/kubelet v0.31.0
+       k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.31.0
+       k8s.io/metrics => k8s.io/metrics v0.31.0
+       k8s.io/mount-utils => k8s.io/mount-utils v0.31.0
+       k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.31.0
+       k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.31.0
        k8s.io/utils => k8s.io/utils v0.0.0-20230726121419-3b25d923346b
 )
diff --git a/go.sum b/go.sum
index 0c702f23..af3c5fa1 100644
--- a/go.sum
+++ b/go.sum
@@ -1,18 +1,17 @@
-cloud.google.com/go v0.110.7 h1:rJyC7nWRg2jWGZ4wSJ5nY65GTdYJkg0cd/uXb+ACI6o=
-cloud.google.com/go/compute v1.23.0 
h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY=
-cloud.google.com/go/compute v1.23.0/go.mod 
h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
-cloud.google.com/go/compute/metadata v0.2.3 
h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
-cloud.google.com/go/compute/metadata v0.2.3/go.mod 
h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
+cloud.google.com/go v0.26.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 
h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
 github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod 
h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
+github.com/BurntSushi/toml v0.3.1/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/Microsoft/go-winio v0.6.0 
h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg=
+github.com/Microsoft/go-winio v0.6.0/go.mod 
h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE=
 github.com/NYTimes/gziphandler v1.1.1 
h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
 github.com/NYTimes/gziphandler v1.1.1/go.mod 
h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
-github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df 
h1:7RFfzj4SSt6nnvCPbCqijJi1nWCd+TqAT3bYCStRC18=
-github.com/antlr/antlr4/runtime/Go/antlr/v4 
v4.0.0-20230305170008-8188dc5388df/go.mod 
h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
-github.com/apache/yunikorn-core v0.0.0-20240815214512-f51aaba68ff2 
h1:m1kxL2ce3QfHOsYl5D+AfHn7xjFxP40b88na/7qzmS8=
-github.com/apache/yunikorn-core v0.0.0-20240815214512-f51aaba68ff2/go.mod 
h1:QHKfJ2RyZuQnZg28SnypmnvFxN/zfoYf+hmfxiVdq5g=
-github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20240815142741-38a38685cd4e 
h1:ZOLst6ROwUrgoUQbEdYaz28iKuiU5YNYGtelKsTFhqw=
-github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20240815142741-38a38685cd4e/go.mod 
h1:WuHJpVk34t8N5+1ErYGj/5Qq33/cRzL4YtuoAsbMtWc=
+github.com/antlr4-go/antlr/v4 v4.13.0 
h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
+github.com/antlr4-go/antlr/v4 v4.13.0/go.mod 
h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
+github.com/apache/yunikorn-core v0.0.0-20240827175300-6939b13d1d0e 
h1:VaihjHjtmsDK7HEOjlX8KCz7QDxmZSf71CSCuOgjqcc=
+github.com/apache/yunikorn-core v0.0.0-20240827175300-6939b13d1d0e/go.mod 
h1:HYeyzHhZt43oG54pasKHrwHM+Jeji8nFoAE2bcLWLYg=
+github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20240827015655-68e8c6cca28a 
h1:3WRXGTvhunGBZj8AVZDxx7Bs/AXiH9mvf2jYcuDyklA=
+github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20240827015655-68e8c6cca28a/go.mod 
h1:co3uU98sj1CUTPNTM13lTyi+CY0DOgDndDW2KiUjktU=
 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 
h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod 
h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
 github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a 
h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
@@ -21,91 +20,105 @@ github.com/beorn7/perks v1.0.1 
h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
 github.com/beorn7/perks v1.0.1/go.mod 
h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
 github.com/blang/semver/v4 v4.0.0 
h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
 github.com/blang/semver/v4 v4.0.0/go.mod 
h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
-github.com/cenkalti/backoff/v4 v4.2.1 
h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
-github.com/cenkalti/backoff/v4 v4.2.1/go.mod 
h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
-github.com/cespare/xxhash/v2 v2.2.0 
h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
-github.com/cespare/xxhash/v2 v2.2.0/go.mod 
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cenkalti/backoff/v4 v4.3.0 
h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
+github.com/cenkalti/backoff/v4 v4.3.0/go.mod 
h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
+github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod 
h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/cespare/xxhash/v2 v2.3.0 
h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod 
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/chzyer/logex v1.1.10/go.mod 
h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod 
h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
 github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod 
h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
-github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 
h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k=
-github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod 
h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/client9/misspell v0.3.4/go.mod 
h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/coreos/go-semver v0.3.1 
h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
 github.com/coreos/go-semver v0.3.1/go.mod 
h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
 github.com/coreos/go-systemd/v22 v22.5.0 
h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
 github.com/coreos/go-systemd/v22 v22.5.0/go.mod 
h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
-github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
 github.com/creack/pty v1.1.9/go.mod 
h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
 github.com/creack/pty v1.1.18/go.mod 
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc 
h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/distribution/reference v0.5.0 
h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0=
 github.com/distribution/reference v0.5.0/go.mod 
h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
 github.com/dustin/go-humanize v1.0.1 
h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
 github.com/dustin/go-humanize v1.0.1/go.mod 
h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
 github.com/emicklei/go-restful/v3 v3.11.0 
h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
 github.com/emicklei/go-restful/v3 v3.11.0/go.mod 
h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
-github.com/envoyproxy/protoc-gen-validate v1.0.2 
h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA=
-github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod 
h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE=
-github.com/evanphx/json-patch v4.12.0+incompatible 
h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
-github.com/evanphx/json-patch v4.12.0+incompatible/go.mod 
h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/felixge/httpsnoop v1.0.3 
h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
-github.com/felixge/httpsnoop v1.0.3/go.mod 
h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
+github.com/envoyproxy/go-control-plane 
v0.9.1-0.20191026205805-5f8ba28d4473/go.mod 
h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod 
h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/felixge/httpsnoop v1.0.4 
h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
+github.com/felixge/httpsnoop v1.0.4/go.mod 
h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
 github.com/fsnotify/fsnotify v1.7.0 
h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
 github.com/fsnotify/fsnotify v1.7.0/go.mod 
h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
+github.com/fxamacker/cbor/v2 v2.7.0 
h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
+github.com/fxamacker/cbor/v2 v2.7.0/go.mod 
h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
 github.com/go-errors/errors v1.4.2 
h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
 github.com/go-errors/errors v1.4.2/go.mod 
h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
 github.com/go-logr/logr v1.2.2/go.mod 
h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
 github.com/go-logr/logr v1.3.0/go.mod 
h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
+github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
+github.com/go-logr/logr v1.4.2/go.mod 
h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
 github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
 github.com/go-logr/stdr v1.2.2/go.mod 
h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
-github.com/go-logr/zapr v1.2.3/go.mod 
h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
+github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
+github.com/go-logr/zapr v1.3.0/go.mod 
h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
 github.com/go-openapi/jsonpointer v0.19.6 
h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
 github.com/go-openapi/jsonpointer v0.19.6/go.mod 
h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
 github.com/go-openapi/jsonreference v0.20.2 
h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
 github.com/go-openapi/jsonreference v0.20.2/go.mod 
h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
-github.com/go-openapi/swag v0.22.3 
h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
 github.com/go-openapi/swag v0.22.3/go.mod 
h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
-github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 
h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
-github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod 
h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
+github.com/go-openapi/swag v0.22.4 
h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
+github.com/go-openapi/swag v0.22.4/go.mod 
h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
+github.com/go-task/slim-sprig/v3 v3.0.0 
h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
+github.com/go-task/slim-sprig/v3 v3.0.0/go.mod 
h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
 github.com/godbus/dbus/v5 v5.0.4/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+github.com/godbus/dbus/v5 v5.1.0 
h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
+github.com/godbus/dbus/v5 v5.1.0/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod 
h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-jwt/jwt/v4 v4.5.0 
h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
 github.com/golang-jwt/jwt/v4 v4.5.0/go.mod 
h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
-github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
-github.com/golang/glog v1.1.2/go.mod 
h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod 
h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da 
h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod 
h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/protobuf v1.3.1/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.5.0/go.mod 
h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/golang/mock v1.1.1/go.mod 
h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/protobuf v1.2.0/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod 
h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod 
h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod 
h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod 
h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod 
h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.1/go.mod 
h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
 github.com/golang/protobuf v1.5.4 
h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
 github.com/golang/protobuf v1.5.4/go.mod 
h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
 github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU=
 github.com/google/btree v1.1.2/go.mod 
h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
-github.com/google/cel-go v0.17.7 
h1:6ebJFzu1xO2n7TLtN+UBqShGBhlD85bhvglh5DpcfqQ=
-github.com/google/cel-go v0.17.7/go.mod 
h1:HXZKzB0LXqer5lHHgfWAnlYwJaQBDKMjxjulNQzhwhY=
+github.com/google/cel-go v0.20.1 
h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84=
+github.com/google/cel-go v0.20.1/go.mod 
h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg=
 github.com/google/gnostic-models v0.6.8 
h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
 github.com/google/gnostic-models v0.6.8/go.mod 
h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
+github.com/google/go-cmp v0.2.0/go.mod 
h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+github.com/google/go-cmp v0.3.0/go.mod 
h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1/go.mod 
h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.0/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.1/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.5/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.9/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
 github.com/google/go-cmp v0.6.0/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/gofuzz v1.0.0/go.mod 
h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
 github.com/google/gofuzz v1.2.0/go.mod 
h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 
h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
-github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod 
h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af 
h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM=
+github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod 
h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 
h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod 
h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 github.com/google/uuid v1.6.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/gorilla/websocket v1.4.2/go.mod 
h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
 github.com/gorilla/websocket v1.5.0 
h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
 github.com/gorilla/websocket v1.5.0/go.mod 
h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
 github.com/gregjones/httpcache v0.0.0-20190212212710-3befbb6ad0cc 
h1:f8eY6cV/x1x+HLjOp4r72s/31/V2aTUtg5oKRRPf8/Q=
@@ -116,9 +129,8 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 
h1:Ovs26xHkKqVztRpIrF/92Bcuy
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod 
h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0 
h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod 
h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 
h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod 
h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
-github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod 
h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 
h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod 
h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
 github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI=
 github.com/imdario/mergo v0.3.7/go.mod 
h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/inconshreveable/mousetrap v1.1.0 
h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
@@ -146,14 +158,12 @@ github.com/looplab/fsm v1.0.1 
h1:OEW0ORrIx095N/6lgoGkFkotqH6s7vaFPsgjLAaF5QU=
 github.com/looplab/fsm v1.0.1/go.mod 
h1:PmD3fFvQEIsjMEfvZdrCDZ6y8VwKTwWNjlpEr6IKPO4=
 github.com/mailru/easyjson v0.7.7 
h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
 github.com/mailru/easyjson v0.7.7/go.mod 
h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 
h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
-github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod 
h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
-github.com/moby/spdystream v0.2.0 
h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8=
-github.com/moby/spdystream v0.2.0/go.mod 
h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
-github.com/moby/sys/mountinfo v0.6.2 
h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78=
-github.com/moby/sys/mountinfo v0.6.2/go.mod 
h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
-github.com/moby/term v0.0.0-20221205130635-1aeaba878587 
h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA=
-github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod 
h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
+github.com/moby/spdystream v0.4.0 
h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8=
+github.com/moby/spdystream v0.4.0/go.mod 
h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
+github.com/moby/sys/mountinfo v0.7.1 
h1:/tTvQaSJRr2FshkhXiIpux6fQ2Zvc4j7tAhMTStAG2g=
+github.com/moby/sys/mountinfo v0.7.1/go.mod 
h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
+github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
+github.com/moby/term v0.5.0/go.mod 
h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod 
h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd 
h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod 
h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -165,101 +175,109 @@ github.com/munnerz/goautoneg 
v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod 
h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f 
h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
 github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod 
h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
-github.com/onsi/ginkgo/v2 v2.15.0 
h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY=
-github.com/onsi/ginkgo/v2 v2.15.0/go.mod 
h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM=
-github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8=
-github.com/onsi/gomega v1.30.0/go.mod 
h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
+github.com/onsi/ginkgo/v2 v2.19.0 
h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=
+github.com/onsi/ginkgo/v2 v2.19.0/go.mod 
h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=
+github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
+github.com/onsi/gomega v1.33.1/go.mod 
h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
 github.com/opencontainers/go-digest v1.0.0 
h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
 github.com/opencontainers/go-digest v1.0.0/go.mod 
h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
+github.com/opencontainers/runc v1.1.13 
h1:98S2srgG9vw0zWcDpFMn5TRrh8kLxa/5OFUstuUhmRs=
+github.com/opencontainers/runc v1.1.13/go.mod 
h1:R016aXacfp/gwQBYw2FDGa9m+n6atbLWrYY8hNMT/sA=
+github.com/opencontainers/runtime-spec v1.0.3-0.20220909204839-494a5a6aca78 
h1:R5M2qXZiK/mWPMT4VldCOiSL9HIAMuxQZWdG0CSM5+4=
+github.com/opencontainers/runtime-spec 
v1.0.3-0.20220909204839-494a5a6aca78/go.mod 
h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
 github.com/opencontainers/selinux v1.11.0 
h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU=
 github.com/opencontainers/selinux v1.11.0/go.mod 
h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec=
 github.com/peterbourgon/diskv v2.0.1+incompatible 
h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
 github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod 
h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
-github.com/petermattis/goid v0.0.0-20240327183114-c42a807a84ba 
h1:3jPgmsFGBID1wFfU2AbYocNcN4wqU68UaHSdMjiw/7U=
-github.com/petermattis/goid v0.0.0-20240327183114-c42a807a84ba/go.mod 
h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
+github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 
h1:Dx7Ovyv/SFnMFw3fD4oEoeorXc6saIiQ23LrGLth0Gw=
+github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/go.mod 
h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod 
h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v1.0.0 
h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_golang v1.18.0 
h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk=
-github.com/prometheus/client_golang v1.18.0/go.mod 
h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA=
-github.com/prometheus/client_model v0.5.0 
h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
-github.com/prometheus/client_model v0.5.0/go.mod 
h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
-github.com/prometheus/common v0.45.0 
h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM=
-github.com/prometheus/common v0.45.0/go.mod 
h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY=
-github.com/prometheus/procfs v0.12.0 
h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
-github.com/prometheus/procfs v0.12.0/go.mod 
h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
-github.com/rogpeppe/go-internal v1.10.0 
h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
-github.com/rogpeppe/go-internal v1.10.0/go.mod 
h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 
h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prometheus/client_golang v1.19.1 
h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
+github.com/prometheus/client_golang v1.19.1/go.mod 
h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
+github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod 
h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.6.1 
h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
+github.com/prometheus/client_model v0.6.1/go.mod 
h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
+github.com/prometheus/common v0.55.0 
h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc=
+github.com/prometheus/common v0.55.0/go.mod 
h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
+github.com/prometheus/procfs v0.15.1 
h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
+github.com/prometheus/procfs v0.15.1/go.mod 
h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
+github.com/rogpeppe/go-internal v1.12.0 
h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
+github.com/rogpeppe/go-internal v1.12.0/go.mod 
h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/sasha-s/go-deadlock v0.3.1 
h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0=
-github.com/sasha-s/go-deadlock v0.3.1/go.mod 
h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM=
-github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
-github.com/sergi/go-diff v1.1.0/go.mod 
h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
-github.com/sirupsen/logrus v1.9.0 
h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
-github.com/sirupsen/logrus v1.9.0/go.mod 
h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
+github.com/sasha-s/go-deadlock v0.3.5 
h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU=
+github.com/sasha-s/go-deadlock v0.3.5/go.mod 
h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U=
+github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
+github.com/sergi/go-diff v1.2.0/go.mod 
h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
+github.com/sirupsen/logrus v1.9.3 
h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
+github.com/sirupsen/logrus v1.9.3/go.mod 
h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
 github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
 github.com/soheilhy/cmux v0.1.5/go.mod 
h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
-github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
-github.com/spf13/cobra v1.7.0/go.mod 
h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
+github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
+github.com/spf13/cobra v1.8.1/go.mod 
h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
 github.com/spf13/pflag v1.0.5/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/stoewer/go-strcase v1.2.0 
h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU=
 github.com/stoewer/go-strcase v1.2.0/go.mod 
h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
 github.com/stretchr/objx v0.1.0/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.4.0/go.mod 
h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
-github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
 github.com/stretchr/objx v0.5.0/go.mod 
h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
+github.com/stretchr/objx v0.5.2/go.mod 
h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
 github.com/stretchr/testify v1.3.0/go.mod 
h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.5.1/go.mod 
h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/stretchr/testify v1.6.1/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.0/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod 
h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.1/go.mod 
h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.4 
h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
-github.com/stretchr/testify v1.8.4/go.mod 
h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/stretchr/testify v1.9.0 
h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
+github.com/stretchr/testify v1.9.0/go.mod 
h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 
h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod 
h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk=
+github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
+github.com/x448/float16 v0.8.4/go.mod 
h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 
h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod 
h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
 github.com/xlab/treeprint v1.2.0 
h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ=
 github.com/xlab/treeprint v1.2.0/go.mod 
h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
 github.com/yuin/goldmark v1.4.13/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA=
-go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw=
-go.etcd.io/etcd/api/v3 v3.5.10 h1:szRajuUUbLyppkhs9K6BRtjY37l66XQQmw7oZRANE4k=
-go.etcd.io/etcd/api/v3 v3.5.10/go.mod 
h1:TidfmT4Uycad3NM/o25fG3J07odo4GBB9hoxaodFCtI=
-go.etcd.io/etcd/client/pkg/v3 v3.5.10 
h1:kfYIdQftBnbAq8pUWFXfpuuxFSKzlmM5cSn76JByiT0=
-go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod 
h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U=
-go.etcd.io/etcd/client/v2 v2.305.10 
h1:MrmRktzv/XF8CvtQt+P6wLUlURaNpSDJHFZhe//2QE4=
-go.etcd.io/etcd/client/v2 v2.305.10/go.mod 
h1:m3CKZi69HzilhVqtPDcjhSGp+kA1OmbNn0qamH80xjA=
-go.etcd.io/etcd/client/v3 v3.5.10 
h1:W9TXNZ+oB3MCd/8UjxHTWK5J9Nquw9fQBLJd5ne5/Ao=
-go.etcd.io/etcd/client/v3 v3.5.10/go.mod 
h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc=
-go.etcd.io/etcd/pkg/v3 v3.5.10 h1:WPR8K0e9kWl1gAhB5A7gEa5ZBTNkT9NdNWrR8Qpo1CM=
-go.etcd.io/etcd/pkg/v3 v3.5.10/go.mod 
h1:TKTuCKKcF1zxmfKWDkfz5qqYaE3JncKKZPFf8c1nFUs=
-go.etcd.io/etcd/raft/v3 v3.5.10 h1:cgNAYe7xrsrn/5kXMSaH8kM/Ky8mAdMqGOxyYwpP0LA=
-go.etcd.io/etcd/raft/v3 v3.5.10/go.mod 
h1:odD6kr8XQXTy9oQnyMPBOr0TVe+gT0neQhElQ6jbGRc=
-go.etcd.io/etcd/server/v3 v3.5.10 
h1:4NOGyOwD5sUZ22PiWYKmfxqoeh72z6EhYjNosKGLmZg=
-go.etcd.io/etcd/server/v3 v3.5.10/go.mod 
h1:gBplPHfs6YI0L+RpGkTQO7buDbHv5HJGG/Bst0/zIPo=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.46.0 h1:PzIubN4/sjByhDRHLviCjJuweBXWFZWhghjg7cS28+M=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.46.0/go.mod h1:Ct6zzQEuGK3WpJs2n4dn+wfJYzd/+hNnxMRTWjGn30M=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0 
h1:KfYpVmrjI7JuToy5k8XV3nkapjWx48k4E4JOtVstzQI=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0/go.mod 
h1:SeQhzAEccGVZVEy7aH87Nh0km+utSpo1pTv6eMMop48=
-go.opentelemetry.io/otel v1.20.0 
h1:vsb/ggIY+hUjD/zCAQHpzTmndPqv/ml2ArbsbfBYTAc=
-go.opentelemetry.io/otel v1.20.0/go.mod 
h1:oUIGj3D77RwJdM6PPZImDpSZGDvkD9fhesHny69JFrs=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0 
h1:DeFD0VgTZ+Cj6hxravYYZE2W4GlneVH81iAOPjZkzk8=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0/go.mod 
h1:GijYcYmNpX1KazD5JmWGsi4P7dDTTTnfv1UbGn84MnU=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 
h1:gvmNvqrPYovvyRmCSygkUDyL8lC5Tl845MLEwqpxhEU=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0/go.mod 
h1:vNUq47TGFioo+ffTSnKNdob241vePmtNZnAODKapKd0=
-go.opentelemetry.io/otel/metric v1.20.0 
h1:ZlrO8Hu9+GAhnepmRGhSU7/VkpjrNowxRN9GyKR4wzA=
-go.opentelemetry.io/otel/metric v1.20.0/go.mod 
h1:90DRw3nfK4D7Sm/75yQ00gTJxtkBxX+wu6YaNymbpVM=
-go.opentelemetry.io/otel/sdk v1.20.0 
h1:5Jf6imeFZlZtKv9Qbo6qt2ZkmWtdWx/wzcCbNUlAWGM=
-go.opentelemetry.io/otel/sdk v1.20.0/go.mod 
h1:rmkSx1cZCm/tn16iWDn1GQbLtsW/LvsdEEFzCSRM6V0=
-go.opentelemetry.io/otel/trace v1.20.0 
h1:+yxVAPZPbQhbC3OfAkeIVTky6iTFpcr4SiY9om7mXSQ=
-go.opentelemetry.io/otel/trace v1.20.0/go.mod 
h1:HJSK7F/hA5RlzpZ0zKDCHCDHm556LCDtKaAo6JmBFUU=
-go.opentelemetry.io/proto/otlp v1.0.0 
h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
-go.opentelemetry.io/proto/otlp v1.0.0/go.mod 
h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
+go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI=
+go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE=
+go.etcd.io/etcd/api/v3 v3.5.14 h1:vHObSCxyB9zlF60w7qzAdTcGaglbJOpSj1Xj9+WGxq0=
+go.etcd.io/etcd/api/v3 v3.5.14/go.mod 
h1:BmtWcRlQvwa1h3G2jvKYwIQy4PkHlDej5t7uLMUdJUU=
+go.etcd.io/etcd/client/pkg/v3 v3.5.14 
h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ=
+go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod 
h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI=
+go.etcd.io/etcd/client/v2 v2.305.13 
h1:RWfV1SX5jTU0lbCvpVQe3iPQeAHETWdOTb6pxhd77C8=
+go.etcd.io/etcd/client/v2 v2.305.13/go.mod 
h1:iQnL7fepbiomdXMb3om1rHq96htNNGv2sJkEcZGDRRg=
+go.etcd.io/etcd/client/v3 v3.5.14 
h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg=
+go.etcd.io/etcd/client/v3 v3.5.14/go.mod 
h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk=
+go.etcd.io/etcd/pkg/v3 v3.5.13 h1:st9bDWNsKkBNpP4PR1MvM/9NqUPfvYZx/YXegsYEH8M=
+go.etcd.io/etcd/pkg/v3 v3.5.13/go.mod 
h1:N+4PLrp7agI/Viy+dUYpX7iRtSPvKq+w8Y14d1vX+m0=
+go.etcd.io/etcd/raft/v3 v3.5.13 h1:7r/NKAOups1YnKcfro2RvGGo2PTuizF/xh26Z2CTAzA=
+go.etcd.io/etcd/raft/v3 v3.5.13/go.mod 
h1:uUFibGLn2Ksm2URMxN1fICGhk8Wu96EfDQyuLhAcAmw=
+go.etcd.io/etcd/server/v3 v3.5.13 
h1:V6KG+yMfMSqWt+lGnhFpP5z5dRUj1BDRJ5k1fQ9DFok=
+go.etcd.io/etcd/server/v3 v3.5.13/go.mod 
h1:K/8nbsGupHqmr5MkgaZpLlH1QdX1pcNQLAkODy44XcQ=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 
h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod 
h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg=
+go.opentelemetry.io/otel v1.28.0 
h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo=
+go.opentelemetry.io/otel v1.28.0/go.mod 
h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 
h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod 
h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 
h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod 
h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ=
+go.opentelemetry.io/otel/metric v1.28.0 
h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q=
+go.opentelemetry.io/otel/metric v1.28.0/go.mod 
h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s=
+go.opentelemetry.io/otel/sdk v1.28.0 
h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE=
+go.opentelemetry.io/otel/sdk v1.28.0/go.mod 
h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg=
+go.opentelemetry.io/otel/trace v1.28.0 
h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g=
+go.opentelemetry.io/otel/trace v1.28.0/go.mod 
h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI=
+go.opentelemetry.io/proto/otlp v1.3.1 
h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
+go.opentelemetry.io/proto/otlp v1.3.1/go.mod 
h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=
 go.starlark.net v0.0.0-20230525235612-a134d8f9ddca 
h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY=
 go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod 
h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds=
 go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
@@ -268,47 +286,69 @@ go.uber.org/multierr v1.11.0 
h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
 go.uber.org/multierr v1.11.0/go.mod 
h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
 go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
 go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
-golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
-golang.org/x/crypto v0.21.0/go.mod 
h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
+golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
+golang.org/x/crypto v0.26.0/go.mod 
h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 
h1:ESSUROHIBHg7USnszlcdmjBEwdMj9VUvU+OPk4yl2mc=
 golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8/go.mod 
h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI=
-golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
-golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
-golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4=
-golang.org/x/oauth2 v0.12.0/go.mod 
h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4=
-golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
+golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod 
h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0=
+golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
+golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs=
+golang.org/x/oauth2 v0.21.0/go.mod 
h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
-golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
+golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=
+golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod 
h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0=
 golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
-golang.org/x/term v0.18.0/go.mod 
h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod 
h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU=
+golang.org/x/term v0.23.0/go.mod 
h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk=
+golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
+golang.org/x/text v0.17.0/go.mod 
h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
 golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
 golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
-golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc=
-golang.org/x/tools v0.17.0/go.mod 
h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps=
+golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
+golang.org/x/tools v0.24.0/go.mod 
h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/appengine v1.6.7 
h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
-google.golang.org/appengine v1.6.7/go.mod 
h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/appengine v1.1.0/go.mod 
h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod 
h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod 
h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod 
h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
 google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d 
h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY=
 google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod 
h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
-google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d 
h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
-google.golang.org/genproto/googleapis/api 
v0.0.0-20230822172742-b8732ec3820d/go.mod 
h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d 
h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4=
-google.golang.org/genproto/googleapis/rpc 
v0.0.0-20230822172742-b8732ec3820d/go.mod 
h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
-google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
-google.golang.org/grpc v1.59.0/go.mod 
h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
-google.golang.org/protobuf v1.33.0 
h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
-google.golang.org/protobuf v1.33.0/go.mod 
h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
+google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 
h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw=
+google.golang.org/genproto/googleapis/api 
v0.0.0-20240528184218-531527333157/go.mod 
h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 
h1:BwIjyKYGsK9dMCBOorzRri8MQwmi7mT9rGHsCEinZkA=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20240701130421-f6361c86f094/go.mod 
h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
+google.golang.org/grpc v1.19.0/go.mod 
h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.23.0/go.mod 
h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.27.0/go.mod 
h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
+google.golang.org/grpc v1.65.0/go.mod 
h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod 
h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod 
h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod 
h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.22.0/go.mod 
h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod 
h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.25.0/go.mod 
h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
+google.golang.org/protobuf v1.34.2 
h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
+google.golang.org/protobuf v1.34.2/go.mod 
h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c 
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod 
h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/evanphx/json-patch.v4 v4.12.0 
h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
+gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod 
h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
 gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
 gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
 gopkg.in/natefinch/lumberjack.v2 v2.2.1 
h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
@@ -322,57 +362,59 @@ gopkg.in/yaml.v3 v3.0.1 
h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
 gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
-k8s.io/api v0.29.6 h1:eDxIl8+PeEpwbe2YyS5RXJ9vdn4hnKWMBf4WUJP9DQM=
-k8s.io/api v0.29.6/go.mod h1:ZuUPMhJV74DJXapldbg6upaHfiOjrBb+0ffUbBi1jaw=
-k8s.io/apiextensions-apiserver v0.29.6 
h1:tUu1N6Zt9GT8KVcPF5aGDqfISz1mveM4yFh7eL5bxmE=
-k8s.io/apiextensions-apiserver v0.29.6/go.mod 
h1:iw1EbwZat08I219qrQKoFMHGo7J9KxPqMpVKxCbNbCs=
-k8s.io/apimachinery v0.29.6 h1:CLjJ5b0hWW7531n/njRE3rnusw3rhVGCFftPfnG54CI=
-k8s.io/apimachinery v0.29.6/go.mod 
h1:i3FJVwhvSp/6n8Fl4K97PJEP8C+MM+aoDq4+ZJBf70Y=
-k8s.io/apiserver v0.29.6 h1:JxgDbpgahOgqoDOf+zVl2mI+rQcHcLQnK6YhhtsjbNs=
-k8s.io/apiserver v0.29.6/go.mod h1:HrQwfPWxhwEa+n8/+5YwSF5yT2WXbeyFjqq6KEXHTX8=
-k8s.io/cli-runtime v0.29.6 h1:nPbmS6ICW223S0BWTV+sK5xClWe89QB/n16/c5cJwT8=
-k8s.io/cli-runtime v0.29.6/go.mod 
h1:5BzzwnVhtqVJvatDZmSZ6OtiSGqbdn0hKzpRbV3uf5o=
-k8s.io/client-go v0.29.6 h1:5E2ebuB/p0F0THuQatyvhDvPL2SIeqwTPrtnrwKob/8=
-k8s.io/client-go v0.29.6/go.mod h1:jHZcrQqDplyv20v7eu+iFM4gTpglZSZoMVcKrh8sRGg=
-k8s.io/cloud-provider v0.29.6 h1:W6dafBlIRQlv8oDkK5UmuM0ZGw1lDCReh+BYtTBsBSI=
-k8s.io/cloud-provider v0.29.6/go.mod 
h1:+bjtIdnbIW+Ubs5xbnWvYURymR3tcrmxWPgQp4lwoN0=
-k8s.io/component-base v0.29.6 h1:XkVJI67FvBgNb/3kKqvaGKokxUrIR0RrksCPNI+JYCs=
-k8s.io/component-base v0.29.6/go.mod 
h1:kIahZm8aw9lV8Vw17LF89REmeBrv5+QEl3v7HsrmITY=
-k8s.io/component-helpers v0.29.6 
h1:kG/tK0gXPXj6n3Oxn5Eul8nYzer3SejZI3ClwiWkreQ=
-k8s.io/component-helpers v0.29.6/go.mod 
h1:Ltb44cbXci9fy9rytWwYsu8vHfi4fjyQdSwk6UlCR4E=
-k8s.io/controller-manager v0.29.6 
h1:bcn/i+8HncLlCbg1ccQxgn9PQ3YDeomDcwGF11a/Svo=
-k8s.io/controller-manager v0.29.6/go.mod 
h1:LJr7QA1iBNXnoiNb0+oGJv1jHlXcc+cxon5DG2KxzKQ=
-k8s.io/csi-translation-lib v0.29.6 
h1:a1cs5yob5Nj85gZ7Vlr1IVt/W28Ju0MZS8rzh/K+M1s=
-k8s.io/csi-translation-lib v0.29.6/go.mod 
h1:SkPOKuBw94YX+DTcSSPeRXkG/sCQfjMnXHA3Q4JZNPQ=
-k8s.io/dynamic-resource-allocation v0.29.6 
h1:1/Gx02V5+kdT4fq0wBKqXBEge8WEMtXIXlT3wU755WU=
-k8s.io/dynamic-resource-allocation v0.29.6/go.mod 
h1:BRaEJZtSil21NNzuhPrFVput+dD8Sr+xG77MsEuxRJw=
+honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+k8s.io/api v0.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo=
+k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE=
+k8s.io/apiextensions-apiserver v0.31.0 
h1:fZgCVhGwsclj3qCw1buVXCV6khjRzKC5eCFt24kyLSk=
+k8s.io/apiextensions-apiserver v0.31.0/go.mod 
h1:b9aMDEYaEe5sdK+1T0KU78ApR/5ZVp4i56VacZYEHxk=
+k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc=
+k8s.io/apimachinery v0.31.0/go.mod 
h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
+k8s.io/apiserver v0.31.0 h1:p+2dgJjy+bk+B1Csz+mc2wl5gHwvNkC9QJV+w55LVrY=
+k8s.io/apiserver v0.31.0/go.mod h1:KI9ox5Yu902iBnnyMmy7ajonhKnkeZYJhTZ/YI+WEMk=
+k8s.io/cli-runtime v0.31.0 h1:V2Q1gj1u3/WfhD475HBQrIYsoryg/LrhhK4RwpN+DhA=
+k8s.io/cli-runtime v0.31.0/go.mod 
h1:vg3H94wsubuvWfSmStDbekvbla5vFGC+zLWqcf+bGDw=
+k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8=
+k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU=
+k8s.io/cloud-provider v0.31.0 h1:qNOs78I2/7zQmyStfDtY2M7EdilUl9fCSYMcqBju/tA=
+k8s.io/cloud-provider v0.31.0/go.mod 
h1:QgUPqLoL6aXhLlrNg1U4IrJk/PvvxgeOnT2ixkgnqT0=
+k8s.io/component-base v0.31.0 h1:/KIzGM5EvPNQcYgwq5NwoQBaOlVFrghoVGr8lG6vNRs=
+k8s.io/component-base v0.31.0/go.mod 
h1:TYVuzI1QmN4L5ItVdMSXKvH7/DtvIuas5/mm8YT3rTo=
+k8s.io/component-helpers v0.31.0 
h1:jyRUKA+GX+q19o81k4x94imjNICn+e6Gzi6T89va1/A=
+k8s.io/component-helpers v0.31.0/go.mod 
h1:MrNIvT4iB7wXIseYSWfHUJB/aNUiFvbilp4qDfBQi6s=
+k8s.io/controller-manager v0.31.0 
h1:OmM0JfkzMvNXGbKIInj8SOrqIHLW4ymDGaNaa4KqyGc=
+k8s.io/controller-manager v0.31.0/go.mod 
h1:slaIzbI1ecqVphjSuHwlzJQ2pclSwtjUzTEQ6fYAB8A=
+k8s.io/csi-translation-lib v0.31.0 
h1:5aCBPyFScdhfcWCUj0KDMAi/lDhxK99DF4XcfSnmH1A=
+k8s.io/csi-translation-lib v0.31.0/go.mod 
h1:CM3U0vDm4jfuQpjKkqlJdRDqmAEcLQPm7aoJFjYf668=
+k8s.io/dynamic-resource-allocation v0.31.0 
h1:zUzbI2d1uUZNleW77L5KQlPWVqHmX6hBsoJvx8AIHUg=
+k8s.io/dynamic-resource-allocation v0.31.0/go.mod 
h1:eDK+MyEeE2m6vihsw7S75lPYr1NkDV3NP6ixm7WvO/0=
 k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0=
 k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo=
-k8s.io/kms v0.29.6 h1:Aa+4zZDqUaFacjNGzCHIC0ilqnEhA1qHqvyn9igirPQ=
-k8s.io/kms v0.29.6/go.mod h1:vWVImKkJd+1BQY4tBwdfSwjQBiLrnbNtHADcDEDQFtk=
-k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 
h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780=
-k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod 
h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
-k8s.io/kube-scheduler v0.29.6 h1:E1J5JIpNx4N+0rCpTtsfl8PFqofcrXhEde+DgwmqhNU=
-k8s.io/kube-scheduler v0.29.6/go.mod 
h1:TPkLhhoWRwysksJ4LHhW9vbWyHGdDmKaoUD/fm6KLjc=
-k8s.io/kubectl v0.29.6 h1:hmkOMyH2uSUV16gIB3Qp2dv09fM2+PGEXz5SH1gwp7Y=
-k8s.io/kubectl v0.29.6/go.mod h1:IUpyXy2OCbIMuBMAisDHM9shh5/Nseij4w+HIt0aq6A=
-k8s.io/kubelet v0.29.6 h1:jXnnBNHK/KNNEJesmlIZmCvlYC3a5/e04BIS9VPM49M=
-k8s.io/kubelet v0.29.6/go.mod h1:kGEUqodVM120YTTQLSCTXzZP4XMFDp7qLf7iU3hrRE4=
-k8s.io/kubernetes v1.29.6 h1:jn8kA/oVOAWZOeoorx6xZ4d+KgGp+Evgi90x9bEI/DE=
-k8s.io/kubernetes v1.29.6/go.mod 
h1:28sDhcb87LX5z3GWAKYmLrhrifxi4W9bEWua4DRTIvk=
-k8s.io/mount-utils v0.29.6 h1:44NDngKV5z/vt9YsYFVT0mPD68XjSfbqYfBEvUSwKb0=
-k8s.io/mount-utils v0.29.6/go.mod 
h1:SHUMR9n3b6tLgEmlyT36cL6fV6Sjwa5CJhc0guCXvb0=
+k8s.io/kms v0.31.0 h1:KchILPfB1ZE+ka7223mpU5zeFNkmb45jl7RHnlImUaI=
+k8s.io/kms v0.31.0/go.mod h1:OZKwl1fan3n3N5FFxnW5C4V3ygrah/3YXeJWS3O6+94=
+k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 
h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
+k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod 
h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
+k8s.io/kube-scheduler v0.31.0 h1:5ij/3AwAWGIFgyOtNheZVvj6fl3wzQTHGpnr6s2Ub/w=
+k8s.io/kube-scheduler v0.31.0/go.mod 
h1:QEUZLddwPemiI+No23wF35D7pjkL++mS4ZhBPyG55KU=
+k8s.io/kubectl v0.31.0 h1:kANwAAPVY02r4U4jARP/C+Q1sssCcN/1p9Nk+7BQKVg=
+k8s.io/kubectl v0.31.0/go.mod h1:pB47hhFypGsaHAPjlwrNbvhXgmuAr01ZBvAIIUaI8d4=
+k8s.io/kubelet v0.31.0 h1:IlfkBy7QTojGEm97GuVGhtli0HL/Pgu4AdayiF76yWo=
+k8s.io/kubelet v0.31.0/go.mod h1:s+OnqnfdIh14PFpUb7NgzM53WSYXcczA3w/1qSzsRc8=
+k8s.io/kubernetes v1.31.0 h1:sYAB12TTWexXKp4RxqJMm/7EC+P0mNOgn4Xdj5eu7HM=
+k8s.io/kubernetes v1.31.0/go.mod 
h1:UTpGn7nxrUrPWw5hNIYTAjodcWIvLakgHpLtfrr6GC8=
+k8s.io/mount-utils v0.31.0 h1:o+a+n6gyZ7MGc6bIERU3LeFTHbLDBiVReaDpWlJotUE=
+k8s.io/mount-utils v0.31.0/go.mod 
h1:HV/VYBUGqYUj4vt82YltzpWvgv8FPg0G9ItyInT3NPU=
 k8s.io/utils v0.0.0-20230726121419-3b25d923346b 
h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
 k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod 
h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0 
h1:TgtAeesdhpm2SGwkQasmbeqDo8th5wOBA5h/AjTKA4I=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0/go.mod 
h1:VHVDI/KrK4fjnV61bE2g3sA7tiETLn8sooImelsCx3Y=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 
h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3/go.mod 
h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd 
h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod 
h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 
h1:XX3Ajgzov2RKUdc5jW3t5jwY7Bo7dcRm+tFxT+NfgY0=
-sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3/go.mod 
h1:9n16EZKMhXBNSiUC5kSdFQJkdH3zbxS/JoO619G1VAY=
-sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 
h1:W6cLQc5pnqM7vh3b7HvGNfXrJ/xL6BDMS0v1V/HHg5U=
-sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3/go.mod 
h1:JWP1Fj0VWGHyw3YUPjXSQnRnrwezrZSrApfX5S0nIag=
+sigs.k8s.io/kustomize/api v0.17.2 
h1:E7/Fjk7V5fboiuijoZHgs4aHuexi5Y2loXlVOAVAG5g=
+sigs.k8s.io/kustomize/api v0.17.2/go.mod 
h1:UWTz9Ct+MvoeQsHcJ5e+vziRRkwimm3HytpZgIYqye0=
+sigs.k8s.io/kustomize/kyaml v0.17.1 
h1:TnxYQxFXzbmNG6gOINgGWQt09GghzgTP6mIurOgrLCQ=
+sigs.k8s.io/kustomize/kyaml v0.17.1/go.mod 
h1:9V0mCjIEYjlXuCdYsSXvyoy2BTsLESH7TlGV81S282U=
 sigs.k8s.io/structured-merge-diff/v4 v4.4.1 
h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
 sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod 
h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
-sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
-sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
+sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
+sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
diff --git a/pkg/client/apifactory.go b/pkg/client/apifactory.go
index 3f1cb2b7..bef55a66 100644
--- a/pkg/client/apifactory.go
+++ b/pkg/client/apifactory.go
@@ -36,16 +36,24 @@ import (
 
 type Type int
 
-var informerTypes = [...]string{"Pod", "Node", "ConfigMap", "Storage", "PV", 
"PVC", "PriorityClass"}
+var informerTypes = [...]string{"Pod", "Node", "ConfigMap", "PV", "PVC", 
"Storage", "CSINode", "CSIDriver", "CSIStorageCapacity", "Namespace", 
"PriorityClass", "Service", "ReplicationController", "ReplicaSet", 
"StatefulSet"}
 
 const (
        PodInformerHandlers Type = iota
        NodeInformerHandlers
        ConfigMapInformerHandlers
-       StorageInformerHandlers
        PVInformerHandlers
        PVCInformerHandlers
+       StorageInformerHandlers
+       CSINodeInformerHandlers
+       CSIDriverInformerHandlers
+       CSIStorageCapacityInformerHandlers
+       NamespaceInformerHandlers
        PriorityClassInformerHandlers
+       ServiceInformerHandlers
+       ReplicationControllerInformerHandlers
+       ReplicaSetInformerHandlers
+       StatefulSetInformerHandlers
 )
 
 func (t Type) String() string {
@@ -85,15 +93,21 @@ func NewAPIFactory(scheduler api.SchedulerAPI, 
informerFactory informers.SharedI
 
        // init informers
        // volume informers are also used to get the Listers for the predicates
-       nodeInformer := informerFactory.Core().V1().Nodes()
        podInformer := informerFactory.Core().V1().Pods()
+       nodeInformer := informerFactory.Core().V1().Nodes()
        configMapInformer := informerFactory.Core().V1().ConfigMaps()
-       storageInformer := informerFactory.Storage().V1().StorageClasses()
-       csiNodeInformer := informerFactory.Storage().V1().CSINodes()
        pvInformer := informerFactory.Core().V1().PersistentVolumes()
        pvcInformer := informerFactory.Core().V1().PersistentVolumeClaims()
+       storageInformer := informerFactory.Storage().V1().StorageClasses()
+       csiNodeInformer := informerFactory.Storage().V1().CSINodes()
+       csiDriverInformer := informerFactory.Storage().V1().CSIDrivers()
+       csiStorageCapacityInformer := 
informerFactory.Storage().V1().CSIStorageCapacities()
        namespaceInformer := informerFactory.Core().V1().Namespaces()
        priorityClassInformer := 
informerFactory.Scheduling().V1().PriorityClasses()
+       serviceInformer := informerFactory.Core().V1().Services()
+       replicationControllerInformer := 
informerFactory.Core().V1().ReplicationControllers()
+       replicaSetInformer := informerFactory.Apps().V1().ReplicaSets()
+       statefulSetInformer := informerFactory.Apps().V1().StatefulSets()
 
        var capacityCheck = volumebinding.CapacityCheck{
                CSIDriverInformer:          
informerFactory.Storage().V1().CSIDrivers(),
@@ -115,19 +129,25 @@ func NewAPIFactory(scheduler api.SchedulerAPI, 
informerFactory informers.SharedI
 
        return &APIFactory{
                clients: &Clients{
-                       KubeClient:            kubeClient,
-                       SchedulerAPI:          scheduler,
-                       InformerFactory:       informerFactory,
-                       PodInformer:           podInformer,
-                       NodeInformer:          nodeInformer,
-                       ConfigMapInformer:     configMapInformer,
-                       PVInformer:            pvInformer,
-                       PVCInformer:           pvcInformer,
-                       NamespaceInformer:     namespaceInformer,
-                       StorageInformer:       storageInformer,
-                       CSINodeInformer:       csiNodeInformer,
-                       PriorityClassInformer: priorityClassInformer,
-                       VolumeBinder:          volumeBinder,
+                       KubeClient:                    kubeClient,
+                       SchedulerAPI:                  scheduler,
+                       InformerFactory:               informerFactory,
+                       PodInformer:                   podInformer,
+                       NodeInformer:                  nodeInformer,
+                       ConfigMapInformer:             configMapInformer,
+                       PVInformer:                    pvInformer,
+                       PVCInformer:                   pvcInformer,
+                       StorageInformer:               storageInformer,
+                       CSINodeInformer:               csiNodeInformer,
+                       CSIDriverInformer:             csiDriverInformer,
+                       CSIStorageCapacityInformer:    
csiStorageCapacityInformer,
+                       NamespaceInformer:             namespaceInformer,
+                       PriorityClassInformer:         priorityClassInformer,
+                       ServiceInformer:               serviceInformer,
+                       ReplicationControllerInformer: 
replicationControllerInformer,
+                       ReplicaSetInformer:            replicaSetInformer,
+                       StatefulSetInformer:           statefulSetInformer,
+                       VolumeBinder:                  volumeBinder,
                },
                testMode: testMode,
                stopChan: make(chan struct{}),
diff --git a/pkg/client/apifactory_mock.go b/pkg/client/apifactory_mock.go
index 2740f03d..0b2954d1 100644
--- a/pkg/client/apifactory_mock.go
+++ b/pkg/client/apifactory_mock.go
@@ -27,6 +27,7 @@ import (
        schedv1 "k8s.io/api/scheduling/v1"
        "k8s.io/client-go/informers"
        k8fake "k8s.io/client-go/kubernetes/fake"
+       appsv1 "k8s.io/client-go/listers/apps/v1"
        corev1 "k8s.io/client-go/listers/core/v1"
        storagev1 "k8s.io/client-go/listers/storage/v1"
        "k8s.io/client-go/tools/cache"
@@ -465,20 +466,128 @@ type MockedCSINodeInformer struct {
        informer cache.SharedIndexInformer
 }
 
+func (m *MockedCSINodeInformer) Informer() cache.SharedIndexInformer {
+       return m.informer
+}
+
+func (m *MockedCSINodeInformer) Lister() storagev1.CSINodeLister {
+       return nil
+}
+
 func NewMockedCSINodeInformer() *MockedCSINodeInformer {
        return &MockedCSINodeInformer{
                informer: &test.SharedInformerMock{},
        }
 }
 
-func (m *MockedCSINodeInformer) Informer() cache.SharedIndexInformer {
+type MockedCSIDriverInformer struct {
+       informer cache.SharedIndexInformer
+}
+
+func (m *MockedCSIDriverInformer) Informer() cache.SharedIndexInformer {
        return m.informer
 }
 
-func (m *MockedCSINodeInformer) Lister() storagev1.CSINodeLister {
+func (m *MockedCSIDriverInformer) Lister() storagev1.CSIDriverLister {
+       return nil
+}
+
+func NewMockedCSIDriverInformer() *MockedCSIDriverInformer {
+       return &MockedCSIDriverInformer{
+               informer: &test.SharedInformerMock{},
+       }
+}
+
+type MockedCSIStorageCapacityInformer struct {
+       informer cache.SharedIndexInformer
+}
+
+func (m *MockedCSIStorageCapacityInformer) Informer() 
cache.SharedIndexInformer {
+       return m.informer
+}
+
+func (m *MockedCSIStorageCapacityInformer) Lister() 
storagev1.CSIStorageCapacityLister {
+       return nil
+}
+
+func NewMockedCSIStorageCapacityInformer() *MockedCSIStorageCapacityInformer {
+       return &MockedCSIStorageCapacityInformer{
+               informer: &test.SharedInformerMock{},
+       }
+}
+
+type MockedServiceInformer struct {
+       informer cache.SharedIndexInformer
+}
+
+func (m *MockedServiceInformer) Informer() cache.SharedIndexInformer {
+       return m.informer
+}
+
+func (m *MockedServiceInformer) Lister() corev1.ServiceLister {
+       return nil
+}
+
+func NewMockedServiceInformer() *MockedServiceInformer {
+       return &MockedServiceInformer{
+               informer: &test.SharedInformerMock{},
+       }
+}
+
+type MockedReplicationControllerInformer struct {
+       informer cache.SharedIndexInformer
+}
+
+func (m *MockedReplicationControllerInformer) Informer() 
cache.SharedIndexInformer {
+       return m.informer
+}
+
+func (m *MockedReplicationControllerInformer) Lister() 
corev1.ReplicationControllerLister {
        return nil
 }
 
+func NewMockedReplicationControllerInformer() 
*MockedReplicationControllerInformer {
+       return &MockedReplicationControllerInformer{
+               informer: &test.SharedInformerMock{},
+       }
+}
+
+type MockedReplicaSetInformer struct {
+       informer cache.SharedIndexInformer
+}
+
+func (m *MockedReplicaSetInformer) Informer() cache.SharedIndexInformer {
+       return m.informer
+}
+
+func (m *MockedReplicaSetInformer) Lister() appsv1.ReplicaSetLister {
+       return nil
+}
+
+func NewMockedReplicaSetInformer() *MockedReplicaSetInformer {
+       return &MockedReplicaSetInformer{
+               informer: &test.SharedInformerMock{},
+       }
+}
+
+type MockedStatefulSetInformer struct {
+       informer cache.SharedIndexInformer
+}
+
+func (m *MockedStatefulSetInformer) Informer() cache.SharedIndexInformer {
+       return m.informer
+}
+
+func (m *MockedStatefulSetInformer) Lister() appsv1.StatefulSetLister {
+       return nil
+}
+
+func NewMockedStatefulSetInformer() *MockedStatefulSetInformer {
+       return &MockedStatefulSetInformer{
+               informer: &test.SharedInformerMock{},
+       }
+}
+
 func (m *MockedAPIProvider) SetVolumeBinder(binder 
volumebinding.SchedulerVolumeBinder) {
        m.clients.VolumeBinder = binder
 }
diff --git a/pkg/client/apifactory_test.go b/pkg/client/apifactory_test.go
new file mode 100644
index 00000000..cf9271b0
--- /dev/null
+++ b/pkg/client/apifactory_test.go
@@ -0,0 +1,45 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+package client
+
+import (
+       "testing"
+
+       "gotest.tools/v3/assert"
+)
+
+func TestInformerTypes(t *testing.T) {
+       assert.Equal(t, 15, len(informerTypes), "wrong informerTypes length")
+
+       assert.Equal(t, "Pod", PodInformerHandlers.String())
+       assert.Equal(t, "Node", NodeInformerHandlers.String())
+       assert.Equal(t, "ConfigMap", ConfigMapInformerHandlers.String())
+       assert.Equal(t, "PV", PVInformerHandlers.String())
+       assert.Equal(t, "PVC", PVCInformerHandlers.String())
+       assert.Equal(t, "Storage", StorageInformerHandlers.String())
+       assert.Equal(t, "CSINode", CSINodeInformerHandlers.String())
+       assert.Equal(t, "CSIDriver", CSIDriverInformerHandlers.String())
+       assert.Equal(t, "CSIStorageCapacity", 
CSIStorageCapacityInformerHandlers.String())
+       assert.Equal(t, "Namespace", NamespaceInformerHandlers.String())
+       assert.Equal(t, "PriorityClass", PriorityClassInformerHandlers.String())
+       assert.Equal(t, "Service", ServiceInformerHandlers.String())
+       assert.Equal(t, "ReplicationController", 
ReplicationControllerInformerHandlers.String())
+       assert.Equal(t, "ReplicaSet", ReplicaSetInformerHandlers.String())
+       assert.Equal(t, "StatefulSet", StatefulSetInformerHandlers.String())
+}
diff --git a/pkg/client/clients.go b/pkg/client/clients.go
index 09f02df9..9fc55172 100644
--- a/pkg/client/clients.go
+++ b/pkg/client/clients.go
@@ -24,6 +24,7 @@ import (
        "go.uber.org/zap"
 
        "k8s.io/client-go/informers"
+       appsInformerV1 "k8s.io/client-go/informers/apps/v1"
        coreInformerV1 "k8s.io/client-go/informers/core/v1"
        schedulingInformerV1 "k8s.io/client-go/informers/scheduling/v1"
        storageInformerV1 "k8s.io/client-go/informers/storage/v1"
@@ -45,15 +46,21 @@ type Clients struct {
        InformerFactory informers.SharedInformerFactory
 
        // resource informers
-       PodInformer           coreInformerV1.PodInformer
-       NodeInformer          coreInformerV1.NodeInformer
-       ConfigMapInformer     coreInformerV1.ConfigMapInformer
-       PVInformer            coreInformerV1.PersistentVolumeInformer
-       PVCInformer           coreInformerV1.PersistentVolumeClaimInformer
-       StorageInformer       storageInformerV1.StorageClassInformer
-       CSINodeInformer       storageInformerV1.CSINodeInformer
-       NamespaceInformer     coreInformerV1.NamespaceInformer
-       PriorityClassInformer schedulingInformerV1.PriorityClassInformer
+       PodInformer                   coreInformerV1.PodInformer
+       NodeInformer                  coreInformerV1.NodeInformer
+       ConfigMapInformer             coreInformerV1.ConfigMapInformer
+       PVInformer                    coreInformerV1.PersistentVolumeInformer
+       PVCInformer                   
coreInformerV1.PersistentVolumeClaimInformer
+       StorageInformer               storageInformerV1.StorageClassInformer
+       CSINodeInformer               storageInformerV1.CSINodeInformer
+       CSIDriverInformer             storageInformerV1.CSIDriverInformer
+       CSIStorageCapacityInformer    
storageInformerV1.CSIStorageCapacityInformer
+       NamespaceInformer             coreInformerV1.NamespaceInformer
+       PriorityClassInformer         schedulingInformerV1.PriorityClassInformer
+       ServiceInformer               coreInformerV1.ServiceInformer
+       ReplicationControllerInformer 
coreInformerV1.ReplicationControllerInformer
+       ReplicaSetInformer            appsInformerV1.ReplicaSetInformer
+       StatefulSetInformer           appsInformerV1.StatefulSetInformer
 
        // volume binder handles PV/PVC related operations
        VolumeBinder volumebinding.SchedulerVolumeBinder
@@ -63,15 +70,21 @@ func (c *Clients) WaitForSync() {
        syncStartTime := time.Now()
        counter := 0
        for {
-               if c.NodeInformer.Informer().HasSynced() &&
-                       c.PodInformer.Informer().HasSynced() &&
-                       c.PVCInformer.Informer().HasSynced() &&
+               if c.PodInformer.Informer().HasSynced() &&
+                       c.NodeInformer.Informer().HasSynced() &&
+                       c.ConfigMapInformer.Informer().HasSynced() &&
                        c.PVInformer.Informer().HasSynced() &&
+                       c.PVCInformer.Informer().HasSynced() &&
                        c.StorageInformer.Informer().HasSynced() &&
                        c.CSINodeInformer.Informer().HasSynced() &&
-                       c.ConfigMapInformer.Informer().HasSynced() &&
+                       c.CSIDriverInformer.Informer().HasSynced() &&
+                       c.CSIStorageCapacityInformer.Informer().HasSynced() &&
                        c.NamespaceInformer.Informer().HasSynced() &&
-                       c.PriorityClassInformer.Informer().HasSynced() {
+                       c.PriorityClassInformer.Informer().HasSynced() &&
+                       c.ServiceInformer.Informer().HasSynced() &&
+                       c.ReplicationControllerInformer.Informer().HasSynced() 
&&
+                       c.ReplicaSetInformer.Informer().HasSynced() &&
+                       c.StatefulSetInformer.Informer().HasSynced() {
                        return
                }
                time.Sleep(time.Second)
@@ -84,13 +97,19 @@ func (c *Clients) WaitForSync() {
 }
 
 func (c *Clients) Run(stopCh <-chan struct{}) {
-       go c.NodeInformer.Informer().Run(stopCh)
        go c.PodInformer.Informer().Run(stopCh)
+       go c.NodeInformer.Informer().Run(stopCh)
+       go c.ConfigMapInformer.Informer().Run(stopCh)
        go c.PVInformer.Informer().Run(stopCh)
        go c.PVCInformer.Informer().Run(stopCh)
        go c.StorageInformer.Informer().Run(stopCh)
        go c.CSINodeInformer.Informer().Run(stopCh)
-       go c.ConfigMapInformer.Informer().Run(stopCh)
+       go c.CSIDriverInformer.Informer().Run(stopCh)
+       go c.CSIStorageCapacityInformer.Informer().Run(stopCh)
        go c.NamespaceInformer.Informer().Run(stopCh)
        go c.PriorityClassInformer.Informer().Run(stopCh)
+       go c.ServiceInformer.Informer().Run(stopCh)
+       go c.ReplicationControllerInformer.Informer().Run(stopCh)
+       go c.ReplicaSetInformer.Informer().Run(stopCh)
+       go c.StatefulSetInformer.Informer().Run(stopCh)
 }
diff --git a/pkg/client/clients_test.go b/pkg/client/clients_test.go
index b29e4097..5b703a12 100644
--- a/pkg/client/clients_test.go
+++ b/pkg/client/clients_test.go
@@ -29,7 +29,7 @@ import (
 )
 
 const (
-       noOfInformers = 9 // total number of active informers
+       noOfInformers = 15 // total number of active informers
 )
 
 func TestWaitForSync(t *testing.T) {
@@ -73,14 +73,20 @@ func TestRun(t *testing.T) {
 
 func getClients() *Clients {
        return &Clients{
-               PodInformer:           test.NewMockedPodInformer(),
-               NodeInformer:          test.NewMockedNodeInformer(),
-               ConfigMapInformer:     test.NewMockedConfigMapInformer(),
-               PVInformer:            NewMockedPersistentVolumeInformer(),
-               PVCInformer:           NewMockedPersistentVolumeClaimInformer(),
-               StorageInformer:       NewMockedStorageClassInformer(),
-               CSINodeInformer:       NewMockedCSINodeInformer(),
-               NamespaceInformer:     test.NewMockNamespaceInformer(false),
-               PriorityClassInformer: test.NewMockPriorityClassInformer(),
+               PodInformer:                   test.NewMockedPodInformer(),
+               NodeInformer:                  test.NewMockedNodeInformer(),
+               ConfigMapInformer:             
test.NewMockedConfigMapInformer(),
+               PVInformer:                    
NewMockedPersistentVolumeInformer(),
+               PVCInformer:                   
NewMockedPersistentVolumeClaimInformer(),
+               StorageInformer:               NewMockedStorageClassInformer(),
+               CSINodeInformer:               NewMockedCSINodeInformer(),
+               CSIDriverInformer:             NewMockedCSIDriverInformer(),
+               CSIStorageCapacityInformer:    
NewMockedCSIStorageCapacityInformer(),
+               NamespaceInformer:             
test.NewMockNamespaceInformer(false),
+               PriorityClassInformer:         
test.NewMockPriorityClassInformer(),
+               ServiceInformer:               NewMockedServiceInformer(),
+               ReplicationControllerInformer: 
NewMockedReplicationControllerInformer(),
+               ReplicaSetInformer:            NewMockedReplicaSetInformer(),
+               StatefulSetInformer:           NewMockedStatefulSetInformer(),
        }
 }
diff --git a/pkg/plugin/predicates/predicate_manager.go 
b/pkg/plugin/predicates/predicate_manager.go
index b20af327..4b741020 100644
--- a/pkg/plugin/predicates/predicate_manager.go
+++ b/pkg/plugin/predicates/predicate_manager.go
@@ -75,7 +75,11 @@ func pluginEvents(plugin framework.Plugin) 
[]framework.ClusterEventWithHint {
                // legacy plugins that don't register for EnqueueExtensions get 
a default list of events
                return framework.UnrollWildCardResource()
        }
-       return ext.EventsToRegister()
+       events, err := ext.EventsToRegister(context.Background())
+       if err != nil {
+               log.Log(log.ShimPredicates).Fatal("Failed to configure 
predicate plugin", zap.String("name", ext.Name()), zap.Error(err))
+       }
+       return events
 }
 
 func mergePluginEvents(actionMap map[framework.GVK]framework.ActionType, 
events []framework.ClusterEventWithHint) {
@@ -269,11 +273,12 @@ func (p *predicateManagerImpl) runFilterPlugin(ctx 
context.Context, pl framework
 
 func NewPredicateManager(handle framework.Handle) PredicateManager {
        /*
-               Default K8S plugins as of 1.27 that implement PreFilter:
+               Default K8S plugins as of 1.31 that implement PreFilter:
                        NodeAffinity
                        NodePorts
                        Fit
                        VolumeRestrictions
+                       CSILimits
                        VolumeBinding
                        VolumeZone
                        PodTopologySpread
@@ -287,6 +292,7 @@ func NewPredicateManager(handle framework.Handle) 
PredicateManager {
                names.PodTopologySpread: true,
                names.InterPodAffinity:  true,
                // Fit : skip because during reservation, node resources are 
not enough
+               // CSILimits
                // VolumeRestrictions
                // VolumeBinding
                // VolumeZone
@@ -298,7 +304,7 @@ func NewPredicateManager(handle framework.Handle) 
PredicateManager {
        }
 
        /*
-               Default K8S plugins as of 1.27 that implement Filter:
+               Default K8S plugins as of 1.31 that implement Filter:
                    NodeUnschedulable
                        NodeName
                        TaintToleration
@@ -306,10 +312,7 @@ func NewPredicateManager(handle framework.Handle) 
PredicateManager {
                        NodePorts
                        Fit
                        VolumeRestrictions
-                       EBSLimits [nonCSILimits]
-                       GCEPDLimits [nonCSILimits]
                        CSILimits
-                       AzureDiskLimits [nonCSILimits]
                        VolumeBinding
                        VolumeZone
                        PodTopologySpread
@@ -327,10 +330,7 @@ func NewPredicateManager(handle framework.Handle) 
PredicateManager {
                names.InterPodAffinity:  true,
                // Fit : skip because during reservation, node resources are 
not enough
                // VolumeRestrictions
-               // EBSLimits [nonCSILimits]
-               // GCEPDLimits [nonCSILimits]
                // CSILimits
-               // AzureDiskLimits [nonCSILimits]
                // VolumeBinding
                // VolumeZone
        }
diff --git a/pkg/plugin/predicates/predicate_manager_test.go 
b/pkg/plugin/predicates/predicate_manager_test.go
index 24c7d919..fe17db7a 100644
--- a/pkg/plugin/predicates/predicate_manager_test.go
+++ b/pkg/plugin/predicates/predicate_manager_test.go
@@ -90,8 +90,8 @@ func TestPreemptionPredicates(t *testing.T) {
        node.SetNode(&v1.Node{
                ObjectMeta: metav1.ObjectMeta{Name: "node0", UID: "node0"},
                Status: v1.NodeStatus{
-                       Capacity:    makeResources(1000, 100000000, 10, 0, 0, 
0).Capacity,
-                       Allocatable: makeAllocatableResources(1000, 100000000, 
10, 0, 0, 0),
+                       Capacity:    makeResources(1000, 100000000, 10, 0, 0, 
0),
+                       Allocatable: makeResources(1000, 100000000, 10, 0, 0, 
0),
                },
        })
        victims := []*v1.Pod{
@@ -147,7 +147,7 @@ func TestEventsToRegister(t *testing.T) {
        assert.NilError(t, err)
        assert.Equal(t, int(fn0), -1, "wrong fn (0)")
        assert.Equal(t, events[1].Event.Resource, framework.Pod, "wrong 
resource (1)")
-       assert.Equal(t, events[1].Event.ActionType, framework.All, "wrong 
action type (1)")
+       assert.Equal(t, events[1].Event.ActionType, 
framework.Add|framework.Delete|framework.UpdatePodLabel, "wrong action type 
(1)")
        fn1, err := events[1].QueueingHintFn(klog.NewKlogr(), nil, "", "")
        assert.NilError(t, err)
        assert.Equal(t, int(fn1), -1, "wrong fn (1)")
@@ -1085,20 +1085,7 @@ func newResourcePod(usage ...framework.Resource) *v1.Pod 
{
        }
 }
 
-func makeResources(milliCPU, memory, pods, extendedA, storage, hugePageA 
int64) v1.NodeResources {
-       return v1.NodeResources{
-               Capacity: v1.ResourceList{
-                       v1.ResourceCPU:              
*resource.NewMilliQuantity(milliCPU, resource.DecimalSI),
-                       v1.ResourceMemory:           
*resource.NewQuantity(memory, resource.BinarySI),
-                       v1.ResourcePods:             
*resource.NewQuantity(pods, resource.DecimalSI),
-                       extendedResourceA:           
*resource.NewQuantity(extendedA, resource.DecimalSI),
-                       v1.ResourceEphemeralStorage: 
*resource.NewQuantity(storage, resource.BinarySI),
-                       hugePageResourceA:           
*resource.NewQuantity(hugePageA, resource.BinarySI),
-               },
-       }
-}
-
-func makeAllocatableResources(milliCPU, memory, pods, extendedA, storage, 
hugePageA int64) v1.ResourceList {
+func makeResources(milliCPU, memory, pods, extendedA, storage, hugePageA 
int64) v1.ResourceList {
        return v1.ResourceList{
                v1.ResourceCPU:              
*resource.NewMilliQuantity(milliCPU, resource.DecimalSI),
                v1.ResourceMemory:           *resource.NewQuantity(memory, 
resource.BinarySI),
@@ -1147,7 +1134,7 @@ func TestRunGeneralPredicates(t *testing.T) {
                                newResourcePod(framework.Resource{MilliCPU: 9, 
Memory: 19})),
                        node: &v1.Node{
                                ObjectMeta: metav1.ObjectMeta{Name: "machine1"},
-                               Status:     v1.NodeStatus{Capacity: 
makeResources(10, 20, 32, 0, 0, 0).Capacity, Allocatable: 
makeAllocatableResources(10, 20, 32, 0, 0, 0)},
+                               Status:     v1.NodeStatus{Capacity: 
makeResources(10, 20, 32, 0, 0, 0), Allocatable: makeResources(10, 20, 32, 0, 
0, 0)},
                        },
                        fits: true,
                        wErr: nil,
@@ -1159,7 +1146,7 @@ func TestRunGeneralPredicates(t *testing.T) {
                                newResourcePod(framework.Resource{MilliCPU: 5, 
Memory: 19})),
                        node: &v1.Node{
                                ObjectMeta: metav1.ObjectMeta{Name: "machine1"},
-                               Status:     v1.NodeStatus{Capacity: 
makeResources(10, 20, 32, 0, 0, 0).Capacity, Allocatable: 
makeAllocatableResources(10, 20, 32, 0, 0, 0)},
+                               Status:     v1.NodeStatus{Capacity: 
makeResources(10, 20, 32, 0, 0, 0), Allocatable: makeResources(10, 20, 32, 0, 
0, 0)},
                        },
                        fits: false,
                        wErr: nil,
@@ -1174,7 +1161,7 @@ func TestRunGeneralPredicates(t *testing.T) {
                        nodeInfo: framework.NewNodeInfo(),
                        node: &v1.Node{
                                ObjectMeta: metav1.ObjectMeta{Name: "machine1"},
-                               Status:     v1.NodeStatus{Capacity: 
makeResources(10, 20, 32, 0, 0, 0).Capacity, Allocatable: 
makeAllocatableResources(10, 20, 32, 0, 0, 0)},
+                               Status:     v1.NodeStatus{Capacity: 
makeResources(10, 20, 32, 0, 0, 0), Allocatable: makeResources(10, 20, 32, 0, 
0, 0)},
                        },
                        fits: false,
                        wErr: nil,
@@ -1185,7 +1172,7 @@ func TestRunGeneralPredicates(t *testing.T) {
                        nodeInfo: framework.NewNodeInfo(newPodWithPort(123)),
                        node: &v1.Node{
                                ObjectMeta: metav1.ObjectMeta{Name: "machine1"},
-                               Status:     v1.NodeStatus{Capacity: 
makeResources(10, 20, 32, 0, 0, 0).Capacity, Allocatable: 
makeAllocatableResources(10, 20, 32, 0, 0, 0)},
+                               Status:     v1.NodeStatus{Capacity: 
makeResources(10, 20, 32, 0, 0, 0), Allocatable: makeResources(10, 20, 32, 0, 
0, 0)},
                        },
                        fits: false,
                        wErr: nil,
diff --git a/pkg/plugin/scheduler_plugin.go b/pkg/plugin/scheduler_plugin.go
index 7b46b619..39eec553 100644
--- a/pkg/plugin/scheduler_plugin.go
+++ b/pkg/plugin/scheduler_plugin.go
@@ -217,11 +217,11 @@ func (sp *YuniKornSchedulerPlugin) Filter(_ 
context.Context, _ *framework.CycleS
        return framework.NewStatus(framework.UnschedulableAndUnresolvable, "Pod 
is not fit for node")
 }
 
-func (sp *YuniKornSchedulerPlugin) EventsToRegister() 
[]framework.ClusterEventWithHint {
+func (sp *YuniKornSchedulerPlugin) EventsToRegister(_ context.Context) 
([]framework.ClusterEventWithHint, error) {
        return sp.context.EventsToRegister(func(_ klog.Logger, pod *v1.Pod, _, 
_ interface{}) (framework.QueueingHint, error) {
                // adapt our simpler function to the QueueingHintFn contract
                return sp.queueingHint(pod)
-       })
+       }), nil
 }
 
 // queueingHint is used to perform a lightweight check to determine if any 
object change may cause a pod to become
diff --git a/pkg/plugin/support/framework_handle.go 
b/pkg/plugin/support/framework_handle.go
index 4bb2ae58..272c5e2b 100644
--- a/pkg/plugin/support/framework_handle.go
+++ b/pkg/plugin/support/framework_handle.go
@@ -30,6 +30,7 @@ import (
        "k8s.io/klog/v2"
        "k8s.io/kubernetes/pkg/scheduler/framework"
        "k8s.io/kubernetes/pkg/scheduler/framework/parallelize"
+       "k8s.io/kubernetes/pkg/scheduler/util/assumecache"
 
        "github.com/apache/yunikorn-k8shim/pkg/log"
 )
@@ -57,6 +58,11 @@ func (p frameworkHandle) Parallelizer() 
parallelize.Parallelizer {
        return p.parallelizer
 }
 
+func (p frameworkHandle) ResourceClaimCache() *assumecache.AssumeCache {
+       log.Log(log.ShimFramework).Fatal("BUG: Should not be used by plugins")
+       return nil
+}
+
 // PodNominator stubs
 
 func (p frameworkHandle) AddNominatedPod(logger klog.Logger, pod 
*framework.PodInfo, nominatingInfo *framework.NominatingInfo) {
@@ -78,12 +84,12 @@ func (p frameworkHandle) NominatedPodsForNode(nodeName 
string) []*framework.PodI
 
 // PluginsRunner stubs
 
-func (p frameworkHandle) RunPreScorePlugins(context.Context, 
*framework.CycleState, *v1.Pod, []*v1.Node) *framework.Status {
+func (p frameworkHandle) RunPreScorePlugins(ctx context.Context, state 
*framework.CycleState, pod *v1.Pod, infos []*framework.NodeInfo) 
*framework.Status {
        log.Log(log.ShimFramework).Fatal("BUG: Should not be used by plugins")
        return nil
 }
 
-func (p frameworkHandle) RunScorePlugins(context.Context, 
*framework.CycleState, *v1.Pod, []*v1.Node) ([]framework.NodePluginScores, 
*framework.Status) {
+func (p frameworkHandle) RunScorePlugins(ctx context.Context, state 
*framework.CycleState, pod *v1.Pod, infos []*framework.NodeInfo) 
([]framework.NodePluginScores, *framework.Status) {
        log.Log(log.ShimFramework).Fatal("BUG: Should not be used by plugins")
        return nil, nil
 }
diff --git a/test/e2e/framework/helpers/k8s/events.go 
b/test/e2e/framework/helpers/k8s/events.go
index 3edcaaa6..fd6287d9 100644
--- a/test/e2e/framework/helpers/k8s/events.go
+++ b/test/e2e/framework/helpers/k8s/events.go
@@ -66,8 +66,8 @@ func ObserveEventAfterAction(c clientset.Interface, ns 
string, eventPredicate fu
        var informerStartedGuard sync.Once
 
        // Create an informer to list/watch events from the test framework 
namespace.
-       _, controller := cache.NewInformer(
-               &cache.ListWatch{
+       _, controller := cache.NewInformerWithOptions(cache.InformerOptions{
+               ListerWatcher: &cache.ListWatch{
                        ListFunc: func(options metav1.ListOptions) 
(runtime.Object, error) {
                                ls, err := 
c.CoreV1().Events(ns).List(context.TODO(), options)
                                return ls, err
@@ -79,9 +79,8 @@ func ObserveEventAfterAction(c clientset.Interface, ns 
string, eventPredicate fu
                                return w, err
                        },
                },
-               &v1.Event{},
-               0,
-               cache.ResourceEventHandlerFuncs{
+               ObjectType: &v1.Event{},
+               Handler: cache.ResourceEventHandlerFuncs{
                        AddFunc: func(obj interface{}) {
                                e, ok := obj.(*v1.Event)
                                ginkgo.By(fmt.Sprintf("Considering event: 
\nType = [%s], Name = [%s], Reason = [%s], Message = [%s]", e.Type, e.Name, 
e.Reason, e.Message))
@@ -91,7 +90,8 @@ func ObserveEventAfterAction(c clientset.Interface, ns 
string, eventPredicate fu
                                }
                        },
                },
-       )
+               ResyncPeriod: 0,
+       })
 
        // Start the informer and block this goroutine waiting for the started 
signal.
        informerStopChan := make(chan struct{})


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to