diff --git a/go.mod b/go.mod index 6ea9001..cc189a0 100644 --- a/go.mod +++ b/go.mod @@ -6,53 +6,53 @@ toolchain go1.24.6 replace ( github.com/everpeace/kube-throttler => github.com/pfnet/kube-throttler v1.7.4 - k8s.io/api => k8s.io/api v0.33.4 - k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.33.4 - k8s.io/apimachinery => k8s.io/apimachinery v0.33.4 - k8s.io/apiserver => k8s.io/apiserver v0.33.4 - k8s.io/cli-runtime => k8s.io/cli-runtime v0.33.4 - k8s.io/client-go => k8s.io/client-go v0.33.4 - k8s.io/cloud-provider => k8s.io/cloud-provider v0.33.4 - k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.33.4 - k8s.io/code-generator => k8s.io/code-generator v0.33.4 - k8s.io/component-base => k8s.io/component-base v0.33.4 - k8s.io/component-helpers => k8s.io/component-helpers v0.33.4 - k8s.io/controller-manager => k8s.io/controller-manager v0.33.4 - k8s.io/cri-api => k8s.io/cri-api v0.33.4 - k8s.io/cri-client => k8s.io/cri-client v0.33.4 - k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.33.4 - k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.33.4 - k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.33.4 - k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.33.4 - k8s.io/kube-proxy => k8s.io/kube-proxy v0.33.4 - k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.33.4 - k8s.io/kubectl => k8s.io/kubectl v0.33.4 - k8s.io/kubelet => k8s.io/kubelet v0.33.4 - k8s.io/kubernetes => k8s.io/kubernetes v1.33.4 - k8s.io/metrics => k8s.io/metrics v0.33.4 - k8s.io/mount-utils => k8s.io/mount-utils v0.33.4 - k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.33.4 - k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.33.4 + k8s.io/api => k8s.io/api v0.34.3 + k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.34.3 + k8s.io/apimachinery => k8s.io/apimachinery v0.34.3 + k8s.io/apiserver => k8s.io/apiserver v0.34.3 + k8s.io/cli-runtime => k8s.io/cli-runtime v0.34.3 + k8s.io/client-go => k8s.io/client-go v0.34.3 + k8s.io/cloud-provider => k8s.io/cloud-provider v0.34.3 + k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.34.3 + k8s.io/code-generator => k8s.io/code-generator v0.34.3 + k8s.io/component-base => k8s.io/component-base v0.34.3 + k8s.io/component-helpers => k8s.io/component-helpers v0.34.3 + k8s.io/controller-manager => k8s.io/controller-manager v0.34.3 + k8s.io/cri-api => k8s.io/cri-api v0.34.3 + k8s.io/cri-client => k8s.io/cri-client v0.34.3 + k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.34.3 + k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.34.3 + k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.34.3 + k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.34.3 + k8s.io/kube-proxy => k8s.io/kube-proxy v0.34.3 + k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.34.3 + k8s.io/kubectl => k8s.io/kubectl v0.34.3 + k8s.io/kubelet => k8s.io/kubelet v0.34.3 + k8s.io/kubernetes => k8s.io/kubernetes v1.34.3 + k8s.io/metrics => k8s.io/metrics v0.34.3 + k8s.io/mount-utils => k8s.io/mount-utils v0.34.3 + k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.34.3 + k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.34.3 ) require ( github.com/ghodss/yaml v1.0.0 - github.com/go-logr/logr v1.4.2 github.com/onsi/ginkgo v1.16.5 github.com/onsi/gomega v1.35.1 github.com/pkg/errors v0.9.1 github.com/sasha-s/go-deadlock v0.3.1 - github.com/spf13/pflag v1.0.5 - k8s.io/api v0.33.4 - k8s.io/apimachinery v0.33.4 - k8s.io/client-go v0.33.4 - k8s.io/component-base v0.33.4 + github.com/spf13/pflag v1.0.6 + k8s.io/api v0.34.3 + k8s.io/apimachinery v0.34.3 + k8s.io/client-go v0.34.3 + k8s.io/component-base v0.34.3 k8s.io/klog/v2 v2.130.1 - k8s.io/kubernetes v1.33.4 + k8s.io/kube-scheduler v0.34.3 + k8s.io/kubernetes v1.34.3 ) require ( - cel.dev/expr v0.19.1 // indirect + cel.dev/expr v0.24.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/NYTimes/gziphandler v1.1.1 // indirect github.com/antlr4-go/antlr/v4 v4.13.0 // indirect @@ -64,10 +64,11 @@ require ( github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.2 // 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/fsnotify/fsnotify v1.9.0 // indirect + github.com/fxamacker/cbor/v2 v2.9.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.21.0 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect @@ -75,12 +76,12 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/btree v1.1.3 // indirect - github.com/google/cel-go v0.23.2 // indirect - github.com/google/gnostic-models v0.6.9 // indirect + github.com/google/cel-go v0.26.0 // indirect + github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -88,33 +89,36 @@ require ( github.com/mailru/easyjson v0.7.7 // 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/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/nxadm/tail v1.4.8 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.22.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/cobra v1.9.1 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect github.com/x448/float16 v0.8.4 // indirect - go.etcd.io/etcd/api/v3 v3.5.21 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.21 // indirect - go.etcd.io/etcd/client/v3 v3.5.21 // indirect + go.etcd.io/etcd/api/v3 v3.6.4 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.6.4 // indirect + go.etcd.io/etcd/client/v3 v3.6.4 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.33.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect - go.opentelemetry.io/otel/metric v1.33.0 // indirect - go.opentelemetry.io/otel/sdk v1.33.0 // indirect - go.opentelemetry.io/otel/trace v1.33.0 // indirect - go.opentelemetry.io/proto/otlp v1.4.0 // indirect + go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect + go.opentelemetry.io/otel/metric v1.35.0 // indirect + go.opentelemetry.io/otel/sdk v1.34.0 // indirect + go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect + go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.36.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect golang.org/x/net v0.38.0 // indirect @@ -124,9 +128,9 @@ require ( golang.org/x/term v0.30.0 // indirect golang.org/x/text v0.23.0 // indirect golang.org/x/time v0.9.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect - google.golang.org/grpc v1.68.1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect + google.golang.org/grpc v1.72.1 // indirect google.golang.org/protobuf v1.36.5 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect @@ -135,20 +139,19 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiextensions-apiserver v0.27.2 // indirect - k8s.io/apiserver v0.33.4 // indirect + k8s.io/apiserver v0.34.3 // indirect k8s.io/cloud-provider v0.30.4 // indirect - k8s.io/component-helpers v0.33.4 // indirect - k8s.io/controller-manager v0.33.4 // indirect + k8s.io/component-helpers v0.34.3 // indirect + k8s.io/controller-manager v0.34.3 // indirect k8s.io/csi-translation-lib v0.0.0 // indirect k8s.io/dynamic-resource-allocation v0.0.0 // indirect - k8s.io/kms v0.33.4 // indirect - k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect - k8s.io/kube-scheduler v0.31.4 // indirect - k8s.io/kubelet v0.33.4 // indirect - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect + k8s.io/kms v0.34.3 // indirect + k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect + k8s.io/kubelet v0.34.3 // indirect + k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect sigs.k8s.io/randfill v1.0.0 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect + sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/go.sum b/go.sum index a0dd011..a07b348 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -cel.dev/expr v0.19.1 h1:NciYrtDRIR0lNCnH1LFJegdjspNx9fI59O7TWcua/W4= -cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= +cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= +cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= @@ -18,7 +18,7 @@ github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr 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.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= 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= @@ -30,16 +30,16 @@ github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5Qvfr github.com/distribution/reference v0.6.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/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU= +github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= 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.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -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/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= +github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -64,8 +64,8 @@ github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZ github.com/godbus/dbus/v5 v5.0.4/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.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= -github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= +github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/protobuf v1.2.0/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= @@ -77,14 +77,13 @@ 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.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/cel-go v0.23.2 h1:UdEe3CvQh3Nv+E/j9r1Y//WO0K0cSyD7/y0bzyLIMI4= -github.com/google/cel-go v0.23.2/go.mod h1:52Pb6QsDbC5kvgxvZhiL9QX1oZEkcUF/ZqaPx1J5Wwo= -github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= -github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= +github.com/google/cel-go v0.26.0 h1:DPGjXackMpJWH680oGY4lZhYjIameYmR+/6RBdDGmaI= +github.com/google/cel-go v0.26.0/go.mod h1:A9O8OU9rdvrK5MQyrqfIxo1a0u4g3sF8KB6PUIaryMM= +github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= 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.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -94,19 +93,19 @@ 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.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= +github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1/go.mod h1:lXGCsh6c22WGtjr+qGHj1otzZpV/1kwTMAqkwZsnWRU= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.0 h1:FbSCl+KggFl+Ocym490i/EyXF4lPgLoUtcSWquBM0Rs= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.0/go.mod h1:qOchhhIlmRcqk/O9uCo/puJlyo07YINaIqdZfZG3Jkc= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= 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.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= -github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= +github.com/jonboulle/clockwork v0.5.0 h1:Hyh9A8u51kptdkR+cqRpT1EebBwTn1oK9YfGYbdFz6I= +github.com/jonboulle/clockwork v0.5.0/go.mod h1:3mZlmanh0g2NDKO5TWZVJAfofYk64M7XN3SzBPjZF60= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -131,8 +130,9 @@ github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3 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= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -173,10 +173,10 @@ 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.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/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -199,48 +199,52 @@ github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 h1:S2dVYn90KE98chq github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0= -go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I= -go.etcd.io/etcd/api/v3 v3.5.21 h1:A6O2/JDb3tvHhiIz3xf9nJ7REHvtEFJJ3veW3FbCnS8= -go.etcd.io/etcd/api/v3 v3.5.21/go.mod h1:c3aH5wcvXv/9dqIw2Y810LDXJfhSYdHQ0vxmP3CCHVY= -go.etcd.io/etcd/client/pkg/v3 v3.5.21 h1:lPBu71Y7osQmzlflM9OfeIV2JlmpBjqBNlLtcoBqUTc= -go.etcd.io/etcd/client/pkg/v3 v3.5.21/go.mod h1:BgqT/IXPjK9NkeSDjbzwsHySX3yIle2+ndz28nVsjUs= -go.etcd.io/etcd/client/v2 v2.305.21 h1:eLiFfexc2mE+pTLz9WwnoEsX5JTTpLCYVivKkmVXIRA= -go.etcd.io/etcd/client/v2 v2.305.21/go.mod h1:OKkn4hlYNf43hpjEM3Ke3aRdUkhSl8xjKjSf8eCq2J8= -go.etcd.io/etcd/client/v3 v3.5.21 h1:T6b1Ow6fNjOLOtM0xSoKNQt1ASPCLWrF9XMHcH9pEyY= -go.etcd.io/etcd/client/v3 v3.5.21/go.mod h1:mFYy67IOqmbRf/kRUvsHixzo3iG+1OF2W2+jVIQRAnU= -go.etcd.io/etcd/pkg/v3 v3.5.21 h1:jUItxeKyrDuVuWhdh0HtjUANwyuzcb7/FAeUfABmQsk= -go.etcd.io/etcd/pkg/v3 v3.5.21/go.mod h1:wpZx8Egv1g4y+N7JAsqi2zoUiBIUWznLjqJbylDjWgU= -go.etcd.io/etcd/raft/v3 v3.5.21 h1:dOmE0mT55dIUsX77TKBLq+RgyumsQuYeiRQnW/ylugk= -go.etcd.io/etcd/raft/v3 v3.5.21/go.mod h1:fmcuY5R2SNkklU4+fKVBQi2biVp5vafMrWUEj4TJ4Cs= -go.etcd.io/etcd/server/v3 v3.5.21 h1:9w0/k12majtgarGmlMVuhwXRI2ob3/d1Ik3X5TKo0yU= -go.etcd.io/etcd/server/v3 v3.5.21/go.mod h1:G1mOzdwuzKT1VRL7SqRchli/qcFrtLBTAQ4lV20sXXo= +go.etcd.io/bbolt v1.4.2 h1:IrUHp260R8c+zYx/Tm8QZr04CX+qWS5PGfPdevhdm1I= +go.etcd.io/bbolt v1.4.2/go.mod h1:Is8rSHO/b4f3XigBC0lL0+4FwAQv3HXEEIgFMuKHceM= +go.etcd.io/etcd/api/v3 v3.6.4 h1:7F6N7toCKcV72QmoUKa23yYLiiljMrT4xCeBL9BmXdo= +go.etcd.io/etcd/api/v3 v3.6.4/go.mod h1:eFhhvfR8Px1P6SEuLT600v+vrhdDTdcfMzmnxVXXSbk= +go.etcd.io/etcd/client/pkg/v3 v3.6.4 h1:9HBYrjppeOfFjBjaMTRxT3R7xT0GLK8EJMVC4xg6ok0= +go.etcd.io/etcd/client/pkg/v3 v3.6.4/go.mod h1:sbdzr2cl3HzVmxNw//PH7aLGVtY4QySjQFuaCgcRFAI= +go.etcd.io/etcd/client/v3 v3.6.4 h1:YOMrCfMhRzY8NgtzUsHl8hC2EBSnuqbR3dh84Uryl7A= +go.etcd.io/etcd/client/v3 v3.6.4/go.mod h1:jaNNHCyg2FdALyKWnd7hxZXZxZANb0+KGY+YQaEMISo= +go.etcd.io/etcd/pkg/v3 v3.6.4 h1:fy8bmXIec1Q35/jRZ0KOes8vuFxbvdN0aAFqmEfJZWA= +go.etcd.io/etcd/pkg/v3 v3.6.4/go.mod h1:kKcYWP8gHuBRcteyv6MXWSN0+bVMnfgqiHueIZnKMtE= +go.etcd.io/etcd/server/v3 v3.6.4 h1:LsCA7CzjVt+8WGrdsnh6RhC0XqCsLkBly3ve5rTxMAU= +go.etcd.io/etcd/server/v3 v3.6.4/go.mod h1:aYCL/h43yiONOv0QIR82kH/2xZ7m+IWYjzRmyQfnCAg= +go.etcd.io/raft/v3 v3.6.0 h1:5NtvbDVYpnfZWcIHgGRk9DyzkBIXOi8j+DDp1IcnUWQ= +go.etcd.io/raft/v3 v3.6.0/go.mod h1:nLvLevg6+xrVtHUmVaTcTz603gQPHfh7kUAwV6YpfGo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= -go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA= -go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= -go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= -go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM= -go.opentelemetry.io/otel/sdk v1.33.0/go.mod h1:A1Q5oi7/9XaMlIWzPSxLRWOI8nG3FnzHJNbiENQuihM= -go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= -go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= -go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg= -go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= +go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= +go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= +go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= +go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= 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.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= +go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -297,14 +301,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 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/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= -google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= -google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0= -google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw= +google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950= +google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= +google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA= +google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= 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= @@ -333,50 +335,49 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.33.4 h1:oTzrFVNPXBjMu0IlpA2eDDIU49jsuEorGHB4cvKupkk= -k8s.io/api v0.33.4/go.mod h1:VHQZ4cuxQ9sCUMESJV5+Fe8bGnqAARZ08tSTdHWfeAc= -k8s.io/apiextensions-apiserver v0.33.4 h1:rtq5SeXiDbXmSwxsF0MLe2Mtv3SwprA6wp+5qh/CrOU= -k8s.io/apiextensions-apiserver v0.33.4/go.mod h1:mWXcZQkQV1GQyxeIjYApuqsn/081hhXPZwZ2URuJeSs= -k8s.io/apimachinery v0.33.4 h1:SOf/JW33TP0eppJMkIgQ+L6atlDiP/090oaX0y9pd9s= -k8s.io/apimachinery v0.33.4/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM= -k8s.io/apiserver v0.33.4 h1:6N0TEVA6kASUS3owYDIFJjUH6lgN8ogQmzZvaFFj1/Y= -k8s.io/apiserver v0.33.4/go.mod h1:8ODgXMnOoSPLMUg1aAzMFx+7wTJM+URil+INjbTZCok= -k8s.io/client-go v0.33.4 h1:TNH+CSu8EmXfitntjUPwaKVPN0AYMbc9F1bBS8/ABpw= -k8s.io/client-go v0.33.4/go.mod h1:LsA0+hBG2DPwovjd931L/AoaezMPX9CmBgyVyBZmbCY= -k8s.io/cloud-provider v0.33.4 h1:et4DyeV0W8W+m2ByS34VVFMg8Aj0sz+UDVwanNkspTo= -k8s.io/cloud-provider v0.33.4/go.mod h1:cAC2s7mGpqVWwUars8TFgnvgXy+trDOF3+WSeKNsy/M= -k8s.io/component-base v0.33.4 h1:Jvb/aw/tl3pfgnJ0E0qPuYLT0NwdYs1VXXYQmSuxJGY= -k8s.io/component-base v0.33.4/go.mod h1:567TeSdixWW2Xb1yYUQ7qk5Docp2kNznKL87eygY8Rc= -k8s.io/component-helpers v0.33.4 h1:DYHQPxWB3XIk7hwAQ4YczUelJ37PcUHfnLeee0qFqV8= -k8s.io/component-helpers v0.33.4/go.mod h1:kRgidIgCKFqOW/wy7D8IL3YOT3iaIRZu6FcTEyRr7WU= -k8s.io/controller-manager v0.33.4 h1:HmlzmmNPu8H+cKEpAIRz0ptqpveKcj7KrCx9G+HXRAg= -k8s.io/controller-manager v0.33.4/go.mod h1:CpO8RarLcs7zh0sE4pqz88quF3xU3Dc4ZDfshnB8hw4= -k8s.io/csi-translation-lib v0.33.4 h1:LmiElxqQwISv0c2mdL3rswmPIIN6Qh+4Lv0bdKTTFoM= -k8s.io/csi-translation-lib v0.33.4/go.mod h1:A4Kn6gTWX5EkxbHgtiDitNjDVvk2plie7lo8Hpa19Bg= -k8s.io/dynamic-resource-allocation v0.33.4 h1:CzGpfPS14cj7W7FIaCcOG0S01UDmi52AxtNjU0YGSRM= -k8s.io/dynamic-resource-allocation v0.33.4/go.mod h1:3dtKRcjPY6XRhgOpsToIy/o2VffPdf647Iaro10rs9k= +k8s.io/api v0.34.3 h1:D12sTP257/jSH2vHV2EDYrb16bS7ULlHpdNdNhEw2S4= +k8s.io/api v0.34.3/go.mod h1:PyVQBF886Q5RSQZOim7DybQjAbVs8g7gwJNhGtY5MBk= +k8s.io/apiextensions-apiserver v0.34.3 h1:p10fGlkDY09eWKOTeUSioxwLukJnm+KuDZdrW71y40g= +k8s.io/apiextensions-apiserver v0.34.3/go.mod h1:aujxvqGFRdb/cmXYfcRTeppN7S2XV/t7WMEc64zB5A0= +k8s.io/apimachinery v0.34.3 h1:/TB+SFEiQvN9HPldtlWOTp0hWbJ+fjU+wkxysf/aQnE= +k8s.io/apimachinery v0.34.3/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/apiserver v0.34.3 h1:uGH1qpDvSiYG4HVFqc6A3L4CKiX+aBWDrrsxHYK0Bdo= +k8s.io/apiserver v0.34.3/go.mod h1:QPnnahMO5C2m3lm6fPW3+JmyQbvHZQ8uudAu/493P2w= +k8s.io/client-go v0.34.3 h1:wtYtpzy/OPNYf7WyNBTj3iUA0XaBHVqhv4Iv3tbrF5A= +k8s.io/client-go v0.34.3/go.mod h1:OxxeYagaP9Kdf78UrKLa3YZixMCfP6bgPwPwNBQBzpM= +k8s.io/cloud-provider v0.34.3 h1:+ZIj1mYPzrA0vWZMFFustsDCe1iP+xkhq0ZXZBhPW0o= +k8s.io/cloud-provider v0.34.3/go.mod h1:e0XM6MTHG4rPk1Fa7oWnQT9VqKca+jw7wcc+BJeUcn4= +k8s.io/component-base v0.34.3 h1:zsEgw6ELqK0XncCQomgO9DpUIzlrYuZYA0Cgo+JWpVk= +k8s.io/component-base v0.34.3/go.mod h1:5iIlD8wPfWE/xSHTRfbjuvUul2WZbI2nOUK65XL0E/c= +k8s.io/component-helpers v0.34.3 h1:Iws1GQfM89Lxo7IZITGmVdFOW0Bmyd7SVwwIu1/CCkE= +k8s.io/component-helpers v0.34.3/go.mod h1:S8HjjMTrUDVMVPo2EdNYRtQx9uIEIueQYdPMOe9UxJs= +k8s.io/controller-manager v0.34.3 h1:pEW6ExR3FteKkYkKRrLoi0Sy8dcbvUTAReP8OTxK5k0= +k8s.io/controller-manager v0.34.3/go.mod h1:YzXiwiubf6GdSC3ej2XFYhQQBwF5AvJq/3eymdsU9OU= +k8s.io/csi-translation-lib v0.34.3 h1:WGE/HPz5D3TIqffhYkk6s4KfW1mcSwSH30MzABK47Pg= +k8s.io/csi-translation-lib v0.34.3/go.mod h1:Lx11spUQnRzYFDrTok0/6cQMP3oXHi73+mXWvkRTxbE= +k8s.io/dynamic-resource-allocation v0.34.3 h1:8UGn1CTj1IljJa+r6HxnEDqLvcBZkv5c+Ooa6x1Oy+o= +k8s.io/dynamic-resource-allocation v0.34.3/go.mod h1:eYjQqNaHLfqXT94lbSXEy8ZLaUg1mGJ2JCEtNWM7e7M= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kms v0.33.4 h1:rvsVglcIFa9WeKk5vd3mBufSG4D5dqponz1Jz5d6FXU= -k8s.io/kms v0.33.4/go.mod h1:C1I8mjFFBNzfUZXYt9FZVJ8MJl7ynFbGgZFbBzkBJ3E= -k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4= -k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8= -k8s.io/kube-scheduler v0.33.4 h1:RNlrqBL0lyILGCsD78xcuaDqAIfccL2j5g+eVJntWL8= -k8s.io/kube-scheduler v0.33.4/go.mod h1:bNYhEZ0GAj5wbnWa8B3Bu1AqlE9nLacFoezpEtSSqik= -k8s.io/kubelet v0.33.4 h1:+sbpLmSq+Y8DF/OQeyw75OpuiF60tvlYcmc/yjN+nl4= -k8s.io/kubelet v0.33.4/go.mod h1:wboarviFRQld5rzZUjTliv7x00YVx+YhRd/p1OahX7Y= -k8s.io/kubernetes v1.33.4 h1:T1d5FLUYm3/KyUeV7YJhKTR980zHCHb7K2xhCSo3lE8= -k8s.io/kubernetes v1.33.4/go.mod h1:nrt8sldmckKz2fCZhgRX3SKfS2e+CzXATPv6ITNkU00= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kms v0.34.3 h1:QzBOD0sk1bGQVMcZQAHGjtbP1iKZJUyhC6D0I+BTxIE= +k8s.io/kms v0.34.3/go.mod h1:s1CFkLG7w9eaTYvctOxosx88fl4spqmixnNpys0JAtM= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= +k8s.io/kube-scheduler v0.34.3 h1:ki99I6opxUZNcIO/QIq1Jz5iTVRHPRdDRFxi5A/3Zjw= +k8s.io/kube-scheduler v0.34.3/go.mod h1:ECkAVWCHQjWJLasX6eznbZ/7J6YqDWiZchXpjG/w5ig= +k8s.io/kubelet v0.34.3 h1:8QRev2FmasZ05yCC774qn6ULche72PYM7AQv0CVt9CM= +k8s.io/kubelet v0.34.3/go.mod h1:pMgblr+nVQ02UkyaTcgqzS3AIYVQkjlMFg1Pd5rGC1Q= +k8s.io/kubernetes v1.34.3 h1:0TfljWbhEF5DBks+WFMSrvKfxBLo4vnZuqORjLMiyT4= +k8s.io/kubernetes v1.34.3/go.mod h1:m6pZk6a179pRo2wsTiCPORJ86iOEQmfIzUvtyEF8BwA= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= -sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc= -sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/mocks/framework.go b/mocks/framework.go index caabe09..595c4d4 100644 --- a/mocks/framework.go +++ b/mocks/framework.go @@ -3,7 +3,6 @@ package mocks import ( "context" - "github.com/go-logr/logr" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/informers" @@ -12,6 +11,7 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/events" "k8s.io/klog/v2" + fwk "k8s.io/kube-scheduler/framework" "k8s.io/kubernetes/pkg/scheduler/framework" "k8s.io/kubernetes/pkg/scheduler/framework/parallelize" "k8s.io/kubernetes/pkg/scheduler/util/assumecache" @@ -58,27 +58,27 @@ func (f *MockFrameworkHandle) RejectWaitingPod(uid types.UID) bool { } // framework.PodNominator -func (f *MockFrameworkHandle) AddNominatedPod(logger logr.Logger, pod *framework.PodInfo, nominatingInfo *framework.NominatingInfo) { +func (f *MockFrameworkHandle) AddNominatedPod(logger klog.Logger, pod fwk.PodInfo, nominatingInfo *framework.NominatingInfo) { } func (f *MockFrameworkHandle) DeleteNominatedPodIfExists(pod *v1.Pod) {} -func (f *MockFrameworkHandle) UpdateNominatedPod(logger logr.Logger, oldPod *v1.Pod, newPodInfo *framework.PodInfo) { +func (f *MockFrameworkHandle) UpdateNominatedPod(logger klog.Logger, oldPod *v1.Pod, newPodInfo fwk.PodInfo) { } -func (f *MockFrameworkHandle) NominatedPodsForNode(nodeName string) []*framework.PodInfo { return nil } +func (f *MockFrameworkHandle) NominatedPodsForNode(nodeName string) []fwk.PodInfo { return nil } // framework.PluginsRunner -func (f *MockFrameworkHandle) RunPreScorePlugins(context.Context, *framework.CycleState, *v1.Pod, []*framework.NodeInfo) *framework.Status { +func (f *MockFrameworkHandle) RunPreScorePlugins(context.Context, fwk.CycleState, *v1.Pod, []fwk.NodeInfo) *fwk.Status { return nil } -func (f *MockFrameworkHandle) RunScorePlugins(context.Context, *framework.CycleState, *v1.Pod, []*framework.NodeInfo) ([]framework.NodePluginScores, *framework.Status) { +func (f *MockFrameworkHandle) RunScorePlugins(context.Context, fwk.CycleState, *v1.Pod, []fwk.NodeInfo) ([]framework.NodePluginScores, *fwk.Status) { return nil, nil } -func (f *MockFrameworkHandle) RunFilterPlugins(context.Context, *framework.CycleState, *v1.Pod, *framework.NodeInfo) *framework.Status { +func (f *MockFrameworkHandle) RunFilterPlugins(context.Context, fwk.CycleState, *v1.Pod, fwk.NodeInfo) *fwk.Status { return nil } -func (f *MockFrameworkHandle) RunPreFilterExtensionAddPod(ctx context.Context, state *framework.CycleState, podToSchedule *v1.Pod, podInfoToAdd *framework.PodInfo, nodeInfo *framework.NodeInfo) *framework.Status { +func (f *MockFrameworkHandle) RunPreFilterExtensionAddPod(ctx context.Context, state fwk.CycleState, podToSchedule *v1.Pod, podInfoToAdd fwk.PodInfo, nodeInfo fwk.NodeInfo) *fwk.Status { return nil } -func (f *MockFrameworkHandle) RunPreFilterExtensionRemovePod(ctx context.Context, state *framework.CycleState, podToSchedule *v1.Pod, podInfoToRemove *framework.PodInfo, nodeInfo *framework.NodeInfo) *framework.Status { +func (f *MockFrameworkHandle) RunPreFilterExtensionRemovePod(ctx context.Context, state fwk.CycleState, podToSchedule *v1.Pod, podInfoToRemove fwk.PodInfo, nodeInfo fwk.NodeInfo) *fwk.Status { return nil } @@ -96,13 +96,15 @@ func (f *MockFrameworkHandle) ClientSet() clientset.Interface { func (f *MockFrameworkHandle) EventRecorder() events.EventRecorder { return &events.FakeRecorder{} } func (f *MockFrameworkHandle) SharedInformerFactory() informers.SharedInformerFactory { return nil } func (f *MockFrameworkHandle) SharedDRAManager() framework.SharedDRAManager { return nil } -func (f *MockFrameworkHandle) RunFilterPluginsWithNominatedPods(ctx context.Context, state *framework.CycleState, pod *v1.Pod, info *framework.NodeInfo) *framework.Status { +func (f *MockFrameworkHandle) RunFilterPluginsWithNominatedPods(ctx context.Context, state fwk.CycleState, pod *v1.Pod, info fwk.NodeInfo) *fwk.Status { return nil } func (f *MockFrameworkHandle) Extenders() []framework.Extender { return nil } func (f *MockFrameworkHandle) Parallelizer() parallelize.Parallelizer { return parallelize.NewParallelizer(1) } +func (f *MockFrameworkHandle) APIDispatcher() fwk.APIDispatcher { return nil } +func (f *MockFrameworkHandle) APICacher() framework.APICacher { return nil } func (w *MockWaitingPod) GetPod() *v1.Pod { return w.Pod } func (w *MockWaitingPod) GetPendingPlugins() []string { return []string{} } diff --git a/plugins/gang/gangs.go b/plugins/gang/gangs.go index cbfdd90..271e81b 100644 --- a/plugins/gang/gangs.go +++ b/plugins/gang/gangs.go @@ -18,6 +18,7 @@ import ( "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/events" "k8s.io/klog/v2" + fwk "k8s.io/kube-scheduler/framework" "k8s.io/kubernetes/pkg/scheduler/framework" "k8s.io/kubernetes/pkg/scheduler/util" ) @@ -83,10 +84,10 @@ func NewGangs(ctx context.Context, fwkHandle framework.Handle, client kubernetes // - Only one Pod event handler is called at a time // - A scheduler plugin entry point and a Pod event handler can be called in parallel -// gangFirstPod implements framework.StateData +// gangFirstPod implements fwk.StateData type gangFirstPod struct{} -func (g gangFirstPod) Clone() framework.StateData { +func (g gangFirstPod) Clone() fwk.StateData { return gangFirstPod{} } @@ -94,7 +95,7 @@ func (g gangFirstPod) Clone() framework.StateData { // Thus, the possible scenarios the gang pods can pass here are: // - All gang pods are rejected by this gang plugin, and PodsToActivate for them gets issued by the Permit. // - Preemption happened for a gang Pod in the past scheduling cycle, and that Pod is moved to activeQ right after it moved to the unschedulable Pod pool. -func (gangs *Gangs) PreEnqueue(pod *corev1.Pod) *framework.Status { +func (gangs *Gangs) PreEnqueue(pod *corev1.Pod) *fwk.Status { nameSpec, ok := GangNameAndSpecOf(pod, gangs.timeoutConfig, gangs.gangAnnotationPrefix) if !ok { return nil @@ -187,12 +188,12 @@ func (gangs *Gangs) PreEnqueue(pod *corev1.Pod) *framework.Status { gangs.activateGangsPoolLock.Unlock() } gangs.fwkHandle.EventRecorder().Eventf(pod, nil, corev1.EventTypeNormal, "WaitActivation", "Scheduling", "all Pods in the gang are now ready to schedule. Waiting for activation.") - return framework.NewStatus(framework.Unschedulable, "This Pod will be soon activated along with other gang Pods") + return fwk.NewStatus(fwk.Unschedulable, "This Pod will be soon activated along with other gang Pods") } gangs.fwkHandle.EventRecorder().Eventf(pod, nil, corev1.EventTypeNormal, "WaitOtherGangsToGetReadyToSchedule", "Scheduling", fmt.Sprintf("the other pod(s) in the same gang isn't ready to schedule: %v", gang.UnreadyToSchedulePodNames())) - return framework.NewStatus(framework.Unschedulable, "the other pod(s) in the same gang isn't ready to schedule") + return fwk.NewStatus(fwk.Unschedulable, "the other pod(s) in the same gang isn't ready to schedule") } func (gangs *Gangs) PostFilter(ctx context.Context, pod *corev1.Pod) { @@ -256,9 +257,10 @@ func (gangs *Gangs) cleanup(ctx context.Context, gang Gang) { klog.V(3).Infof("position update in cleanup: %v/%s -> %s", pod.Name, position, PodPositionReadyToSchedule) gangs.putPosition(gang, pod, PodPositionReadyToSchedule) + oldStatus := pod.Status.DeepCopy() podStatusCopy := pod.Status.DeepCopy() podStatusCopy.NominatedNodeName = "" - if err := util.PatchPodStatus(ctx, gangs.client, pod, podStatusCopy); err != nil { + if err := util.PatchPodStatus(ctx, gangs.client, pod.Name, pod.Namespace, oldStatus, podStatusCopy); err != nil { klog.ErrorS(err, "failed to remove NominatedNodeName on gang Pod", "pod", klog.KObj(pod)) return } @@ -275,7 +277,7 @@ func (gangs *Gangs) cleanup(ctx context.Context, gang Gang) { }) } -func (gangs *Gangs) PreFilter(ctx context.Context, state *framework.CycleState, pod *corev1.Pod) (status *framework.Status) { +func (gangs *Gangs) PreFilter(ctx context.Context, state fwk.CycleState, pod *corev1.Pod) (status *fwk.Status) { nameSpec, isGang := GangNameAndSpecOf(pod, gangs.timeoutConfig, gangs.gangAnnotationPrefix) if !isGang { return nil @@ -305,7 +307,7 @@ func (gangs *Gangs) PreFilter(ctx context.Context, state *framework.CycleState, klog.V(3).Infof("position update in PreFilter: %v/%s -> %s", pod.Name, position, PodPositionReadyToSchedule) gangs.putPosition(gang, pod, PodPositionReadyToSchedule) // In this path, we don't do gangs.cleanup because we can just retry to schedule this Pod with the appropriate position. - return framework.NewStatus(framework.Unschedulable, "This pod isn't ready to schedule") + return fwk.NewStatus(fwk.Unschedulable, "This pod isn't ready to schedule") } // If any of the gang Pods are marked unschedulable, @@ -388,7 +390,7 @@ func (gangs *Gangs) putPosition(gang Gang, pod *corev1.Pod, position PodPosition // activatePods activates all Pods in activateGangsPool. // It uses PodsToActivate feature that the scheduling framework provides, // which moves all Pods that we register in the cycle state from the unschedulable Pod pool to the activeQ. -func (gangs *Gangs) activatePods(state *framework.CycleState) { +func (gangs *Gangs) activatePods(state fwk.CycleState) { // In addition to activateGangsPoolLock, we must lock gangs.mapLock during entire this process // because if a new Pod is registered in gang during this process, // we might miss to activate some gang Pods. @@ -445,7 +447,7 @@ func (gangs *Gangs) activatePods(state *framework.CycleState) { gangs.activateGangsPool = sets.New[GangName]() } -func (gangs *Gangs) Permit(state *framework.CycleState, pod *corev1.Pod) (retStatus *framework.Status, _ time.Duration) { +func (gangs *Gangs) Permit(state fwk.CycleState, pod *corev1.Pod) (retStatus *fwk.Status, _ time.Duration) { defer func() { if retStatus.IsSuccess() || retStatus.IsWait() { // Issue PodsToActivate when Permit returns success or wait diff --git a/plugins/gang/gangs_position_test.go b/plugins/gang/gangs_position_test.go index 37c3b7e..43cc5df 100644 --- a/plugins/gang/gangs_position_test.go +++ b/plugins/gang/gangs_position_test.go @@ -14,6 +14,7 @@ import ( k8swait "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/tools/events" + fwk "k8s.io/kube-scheduler/framework" "k8s.io/kubernetes/pkg/scheduler/framework" ) @@ -32,7 +33,7 @@ var _ = Describe("PreEnqueue", func() { gn := GangName(types.NamespacedName{Namespace: "user-0", Name: "gang-0"}) p := gangs.gangs[gn].GetPosition("user-0/pod-0") Expect(p).To(Equal(PodPositionReadyToSchedule)) - Expect(status.Code()).To(Equal(framework.Unschedulable)) + Expect(status.Code()).To(Equal(fwk.Unschedulable)) }) It("The Pod position is PodPositionUnknown", func() { gangs, fakeClient := NewGangsForTest(&mocks.MockFrameworkHandle{}, ScheduleTimeoutConfig{}) @@ -52,7 +53,7 @@ var _ = Describe("PreEnqueue", func() { p := gangs.gangs[gn].GetPosition("user-0/pod-0") Expect(p).To(Equal(PodPositionReadyToSchedule)) - Expect(status.Code()).To(Equal(framework.Unschedulable)) + Expect(status.Code()).To(Equal(fwk.Unschedulable)) }) It("The Pod position is PodPositionActiveQ and all gang Pods are created", func() { gangs, fakeClient := NewGangsForTest(&mocks.MockFrameworkHandle{}, ScheduleTimeoutConfig{}) @@ -74,7 +75,7 @@ var _ = Describe("PreEnqueue", func() { gangs.gangs[gn].PutPosition(pod2, PodPositionActiveQ) status := gangs.PreEnqueue(pod1) - Expect(status.Code()).To(Equal(framework.Success)) + Expect(status.Code()).To(Equal(fwk.Success)) p := gangs.gangs[gn].GetPosition(pod1.UID) Expect(p).To(Equal(PodPositionActiveQ)) @@ -102,7 +103,7 @@ var _ = Describe("PreEnqueue", func() { p := gangs.gangs[gn].GetPosition(pod1.UID) Expect(p).To(Equal(PodPositionActiveQ)) - Expect(status.Code()).To(Equal(framework.Success)) + Expect(status.Code()).To(Equal(fwk.Success)) }) It("The Pod position is PodPositionSchedulingCycle but the number of Pods doesn't meet gang spec", func() { gangs, fakeClient := NewGangsForTest(&mocks.MockFrameworkHandle{}, ScheduleTimeoutConfig{}) @@ -120,7 +121,7 @@ var _ = Describe("PreEnqueue", func() { p := gangs.gangs[gn].GetPosition(pod1.UID) Expect(p).To(Equal(PodPositionUnschedulablePodPool)) - Expect(status.Code()).To(Equal(framework.UnschedulableAndUnresolvable)) + Expect(status.Code()).To(Equal(fwk.UnschedulableAndUnresolvable)) // when PreEnqueue rejects a Pod due to GangSpecInvalid, the Pod is inserted to podUIDs Expect(gangs.podUIDs.Has("user-0/pod-1")).To(Equal(true)) @@ -154,7 +155,7 @@ var _ = Describe("PreEnqueue", func() { p := gangs.gangs[gn].GetPosition("user-0/pod-0") Expect(p).To(Equal(PodPositionReadyToSchedule)) - Expect(status.Code()).To(Equal(framework.Unschedulable)) + Expect(status.Code()).To(Equal(fwk.Unschedulable)) }) It("The Pod position is PodPositionUnschedulablePodPool and not all other gang Pods are PodPositionReadyToSchedule", func() { gangs, fakeClient := NewGangsForTest(&mocks.MockFrameworkHandle{}, ScheduleTimeoutConfig{}) @@ -183,7 +184,7 @@ var _ = Describe("PreEnqueue", func() { p := gangs.gangs[gn].GetPosition("user-0/pod-0") Expect(p).To(Equal(PodPositionReadyToSchedule)) - Expect(status.Code()).To(Equal(framework.Unschedulable)) + Expect(status.Code()).To(Equal(fwk.Unschedulable)) }) }) @@ -317,7 +318,7 @@ var _ = Describe("PreFilter", func() { pod := makePod("user-0", "pod-0", v1.PodPending, fakeClient) gangs.mapLock.Lock() // Lock it so that the test case will fail with timeout if PreFilter tries to do something. status := gangs.PreFilter(context.Background(), nil, pod) - Expect(status.Code()).To(Equal(framework.Success)) + Expect(status.Code()).To(Equal(fwk.Success)) }, 1) It("the gang isn't registered", func() { gangs, fakeClient := NewGangsForTest(&mocks.MockFrameworkHandle{}, ScheduleTimeoutConfig{}) @@ -329,7 +330,7 @@ var _ = Describe("PreFilter", func() { status := gangs.PreFilter(context.Background(), nil, pod) - Expect(status.Code()).To(Equal(framework.UnschedulableAndUnresolvable)) + Expect(status.Code()).To(Equal(fwk.UnschedulableAndUnresolvable)) }) It("the position for another pod in the same gang is PodPositionUnschedulablePodPool", func() { gangs, fakeClient := NewGangsForTest(&mocks.MockFrameworkHandle{}, ScheduleTimeoutConfig{}) @@ -357,7 +358,7 @@ var _ = Describe("PreFilter", func() { p := gangs.gangs[gn].GetPosition("user-0/pod-0") Expect(p).To(Equal(PodPositionReadyToSchedule)) - Expect(status.Code()).To(Equal(framework.UnschedulableAndUnresolvable)) + Expect(status.Code()).To(Equal(fwk.UnschedulableAndUnresolvable)) }) It("the position for all other pod in the same gang is PodPositionActiveQ", func() { gangs, fakeClient := NewGangsForTest(&mocks.MockFrameworkHandle{}, ScheduleTimeoutConfig{JitterSeconds: 1}) @@ -385,7 +386,7 @@ var _ = Describe("PreFilter", func() { p := gangs.gangs[gn].GetPosition("user-0/pod-0") Expect(p).To(Equal(PodPositionSchedulingCycle)) - Expect(status.Code()).To(Equal(framework.Success)) + Expect(status.Code()).To(Equal(fwk.Success)) }) }) @@ -420,7 +421,7 @@ var _ = Describe("Permit", func() { status, _ := gangs.Permit(state, makePod("user-1", "incoming", v1.PodPending, fakeClient)) - Expect(status.Code()).To(Equal(framework.Success)) + Expect(status.Code()).To(Equal(fwk.Success)) Expect(len(gangs.activateGangsPool)).To(Equal(0)) for _, uid := range []string{"user-0/pod-0", "user-0/pod-1", "user-0/pod-2"} { p := gangs.gangs[gn].GetPosition(types.UID(uid)) diff --git a/plugins/gang/plugin.go b/plugins/gang/plugin.go index b0ee94e..e523fca 100644 --- a/plugins/gang/plugin.go +++ b/plugins/gang/plugin.go @@ -13,6 +13,7 @@ import ( utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/client-go/tools/cache" "k8s.io/klog/v2" + fwk "k8s.io/kube-scheduler/framework" "k8s.io/kubernetes/pkg/scheduler/framework" schedulermetrics "k8s.io/kubernetes/pkg/scheduler/metrics" ) @@ -96,11 +97,11 @@ func (p *Plugin) Name() string { // Scheduluer plugins entry points func (p *Plugin) PreFilter( - ctx context.Context, state *framework.CycleState, pod *corev1.Pod, -) (*framework.PreFilterResult, *framework.Status) { + ctx context.Context, state fwk.CycleState, pod *corev1.Pod, _ []fwk.NodeInfo, +) (*framework.PreFilterResult, *fwk.Status) { klog.V(5).Infof("%s: PreFilter start for pod %s/%s", p.Name(), pod.Namespace, pod.Name) - var status *framework.Status + var status *fwk.Status defer func() { klog.V(5).Infof("%s: PreFilter end for pod %s/%s (status: %v)", p.Name(), pod.Namespace, pod.Name, status) }() @@ -116,30 +117,30 @@ func (p *Plugin) PreFilter( func (p *Plugin) PreFilterExtensions() framework.PreFilterExtensions { return nil } -func (p *Plugin) EventsToRegister(ctx context.Context) ([]framework.ClusterEventWithHint, error) { - return []framework.ClusterEventWithHint{ +func (p *Plugin) EventsToRegister(_ context.Context) ([]fwk.ClusterEventWithHint, error) { + return []fwk.ClusterEventWithHint{ { - Event: framework.ClusterEvent{ - Resource: framework.Node, - ActionType: framework.All, + Event: fwk.ClusterEvent{ + Resource: fwk.Node, + ActionType: fwk.All, }, }, { - Event: framework.ClusterEvent{ + Event: fwk.ClusterEvent{ // Note: framework.Pod doesn't work expectedly for non-scheduled Pod event. // We're doing the workaround in handlePodAdd. // see: https://github.com/kubernetes/kubernetes/issues/110175 - Resource: framework.Pod, - ActionType: framework.All, + Resource: fwk.Pod, + ActionType: fwk.All, }, }, }, nil } func (p *Plugin) Permit( - ctx context.Context, state *framework.CycleState, pod *corev1.Pod, nodeName string, -) (*framework.Status, time.Duration) { - var status *framework.Status + ctx context.Context, state fwk.CycleState, pod *corev1.Pod, nodeName string, +) (*fwk.Status, time.Duration) { + var status *fwk.Status var timeout time.Duration klog.V(5).Infof("%s: Permit start for pod %s/%s (node=%s)", p.Name(), pod.Namespace, pod.Name, nodeName) @@ -152,13 +153,13 @@ func (p *Plugin) Permit( return status, timeout } -func (p *Plugin) PostFilter(ctx context.Context, state *framework.CycleState, pod *corev1.Pod, m framework.NodeToStatusMap) (*framework.PostFilterResult, *framework.Status) { +func (p *Plugin) PostFilter(ctx context.Context, _ fwk.CycleState, pod *corev1.Pod, _ framework.NodeToStatusMap) (*framework.PostFilterResult, *fwk.Status) { p.gangs.PostFilter(ctx, pod) - return nil, framework.NewStatus(framework.Unschedulable) + return nil, fwk.NewStatus(fwk.Unschedulable) } -func (p *Plugin) PreEnqueue(ctx context.Context, pod *corev1.Pod) *framework.Status { +func (p *Plugin) PreEnqueue(ctx context.Context, pod *corev1.Pod) *fwk.Status { if !IsGang(pod, p.config.GangAnnotationPrefix) { return nil } @@ -166,12 +167,12 @@ func (p *Plugin) PreEnqueue(ctx context.Context, pod *corev1.Pod) *framework.Sta return p.gangs.PreEnqueue(pod) } -func (p *Plugin) Reserve(ctx context.Context, _ *framework.CycleState, pod *corev1.Pod, nodeName string) *framework.Status { +func (p *Plugin) Reserve(ctx context.Context, _ fwk.CycleState, pod *corev1.Pod, nodeName string) *fwk.Status { return nil } // Unreserve is called when a waiting gang pod is rejected due to time out, and this rejects all waiting pods in the gang -func (p *Plugin) Unreserve(ctx context.Context, _ *framework.CycleState, pod *corev1.Pod, nodeName string) { +func (p *Plugin) Unreserve(ctx context.Context, _ fwk.CycleState, pod *corev1.Pod, nodeName string) { klog.V(5).Infof("%s: Unreserve start for pod %s/%s (node=%s)", p.Name(), pod.Namespace, pod.Name, nodeName) defer func() { klog.V(5).Infof("%s: Unreserve end for pod %s/%s (node=%s)", p.Name(), pod.Namespace, pod.Name, nodeName) @@ -242,16 +243,16 @@ func (p *Plugin) handlePodDelete(obj interface{}) { // Permit plugin responses -func allow(msg string) (*framework.Status, time.Duration) { - return framework.NewStatus(framework.Success, msg), 0 +func allow(msg string) (*fwk.Status, time.Duration) { + return fwk.NewStatus(fwk.Success, msg), 0 } -func reject(msg string) (*framework.Status, time.Duration) { - return framework.NewStatus(framework.UnschedulableAndUnresolvable, msg), 0 +func reject(msg string) (*fwk.Status, time.Duration) { + return fwk.NewStatus(fwk.UnschedulableAndUnresolvable, msg), 0 } -func wait(msg string, duration time.Duration) (*framework.Status, time.Duration) { - return framework.NewStatus(framework.Wait, msg), duration +func wait(msg string, duration time.Duration) (*fwk.Status, time.Duration) { + return fwk.NewStatus(fwk.Wait, msg), duration } // Scheduling event messages diff --git a/plugins/gang/scheduling_gang.go b/plugins/gang/scheduling_gang.go index 3665bd8..3d093c5 100644 --- a/plugins/gang/scheduling_gang.go +++ b/plugins/gang/scheduling_gang.go @@ -8,14 +8,15 @@ import ( "github.com/pfnet/scheduler-plugins/utils" corev1 "k8s.io/api/core/v1" "k8s.io/klog/v2" + fwk "k8s.io/kube-scheduler/framework" "k8s.io/kubernetes/pkg/scheduler/framework" ) type SchedulingGang interface { Gang - PreFilter(pod *corev1.Pod, timeoutConfig ScheduleTimeoutConfig) *framework.Status - Permit(state *framework.CycleState, pod *corev1.Pod, timeoutConfig ScheduleTimeoutConfig) (*framework.Status, time.Duration) + PreFilter(pod *corev1.Pod, timeoutConfig ScheduleTimeoutConfig) *fwk.Status + Permit(state fwk.CycleState, pod *corev1.Pod, timeoutConfig ScheduleTimeoutConfig) (*fwk.Status, time.Duration) // Refresh rejects all waiting Pods and marks this SchedulingGang as done if it no longer // satisfies the invariant for gang scheduling. @@ -61,7 +62,7 @@ type schedulingGangImpl struct { done chan struct{} } -func (g *schedulingGangImpl) PreFilter(pod *corev1.Pod, timeoutConfig ScheduleTimeoutConfig) *framework.Status { +func (g *schedulingGangImpl) PreFilter(pod *corev1.Pod, timeoutConfig ScheduleTimeoutConfig) *fwk.Status { gangNameToFilter, _ := GangNameOf(pod, g.gangAnnotationPrefix) // isGang is checked in Plugin.PreFilter @@ -88,10 +89,10 @@ func (g *schedulingGangImpl) PreFilter(pod *corev1.Pod, timeoutConfig ScheduleTi return status } - return framework.NewStatus(framework.Success, "") + return fwk.NewStatus(fwk.Success, "") } -func (g *schedulingGangImpl) Permit(state *framework.CycleState, pod *corev1.Pod, timeoutConfig ScheduleTimeoutConfig) (*framework.Status, time.Duration) { +func (g *schedulingGangImpl) Permit(state fwk.CycleState, pod *corev1.Pod, timeoutConfig ScheduleTimeoutConfig) (*fwk.Status, time.Duration) { gangNameToPermit, _ := GangNameOf(pod, g.gangAnnotationPrefix) // isGang is checked in Plugin.Permit @@ -190,7 +191,7 @@ func (g *schedulingGangImpl) EventMessageForPodFunc(event GangSchedulingEvent) f // Methods below are non thread-safe // g.Lock() is required. -func (g *schedulingGangImpl) rejectIfDone(pod *corev1.Pod) (*framework.Status, time.Duration) { +func (g *schedulingGangImpl) rejectIfDone(pod *corev1.Pod) (*fwk.Status, time.Duration) { if g.IsDone() { logFunc := klog.Errorf if g.completionStatus == GangSchedulingTimedOut { @@ -205,7 +206,7 @@ func (g *schedulingGangImpl) rejectIfDone(pod *corev1.Pod) (*framework.Status, t return nil, 0 } -func (g *schedulingGangImpl) rejectAllAndDoneIfInvalid(pod *corev1.Pod, timeoutConfig ScheduleTimeoutConfig, gangAnnotationPrefix string) (*framework.Status, time.Duration) { +func (g *schedulingGangImpl) rejectAllAndDoneIfInvalid(pod *corev1.Pod, timeoutConfig ScheduleTimeoutConfig, gangAnnotationPrefix string) (*fwk.Status, time.Duration) { nameSpec := g.NameAndSpec() if ok, status := g.SatisfiesInvariantForScheduling(timeoutConfig); !ok { @@ -220,7 +221,7 @@ func (g *schedulingGangImpl) rejectAllAndDoneIfInvalid(pod *corev1.Pod, timeoutC return nil, 0 } -func (g *schedulingGangImpl) rejectAllAndDoneIfFullyScheduled(pod *corev1.Pod) (*framework.Status, time.Duration) { +func (g *schedulingGangImpl) rejectAllAndDoneIfFullyScheduled(pod *corev1.Pod) (*fwk.Status, time.Duration) { nameSpec := g.NameAndSpec() numScheduled := g.CountPodIf(utils.IsAssignedAndNonCompletedPod) @@ -233,7 +234,7 @@ func (g *schedulingGangImpl) rejectAllAndDoneIfFullyScheduled(pod *corev1.Pod) ( func (g *schedulingGangImpl) allowAllAndDoneIfFillingRunningGang( pod *corev1.Pod, -) (*framework.Status, time.Duration) { +) (*fwk.Status, time.Duration) { nameSpec := g.NameAndSpec() numScheduled := g.CountPodIf(utils.IsAssignedAndNonCompletedPod) @@ -246,7 +247,7 @@ func (g *schedulingGangImpl) allowAllAndDoneIfFillingRunningGang( func (g *schedulingGangImpl) allowAllAndDoneIfReady( pod *corev1.Pod, -) (*framework.Status, time.Duration) { +) (*fwk.Status, time.Duration) { nameSpec := g.NameAndSpec() numWaiting := 0 @@ -263,7 +264,7 @@ func (g *schedulingGangImpl) allowAllAndDoneIfReady( return reject("") } -func (g *schedulingGangImpl) waitForReady(state *framework.CycleState, pod *corev1.Pod, timeout time.Duration) (*framework.Status, time.Duration) { +func (g *schedulingGangImpl) waitForReady(state fwk.CycleState, pod *corev1.Pod, timeout time.Duration) (*fwk.Status, time.Duration) { msg := g.EventMessage(GangWaitForReady, pod) g.fwkHandle.EventRecorder().Eventf(pod, nil, corev1.EventTypeNormal, string(GangWaitForReady), "Scheduling", msg) klog.V(3).Info(msg) @@ -282,7 +283,7 @@ type msgForPodFunc func(opd *corev1.Pod) string func (g *schedulingGangImpl) rejectAllAndDone( pod *corev1.Pod, completionStatus GangSchedulingEvent, msgF msgForPodFunc, -) (*framework.Status, time.Duration) { +) (*fwk.Status, time.Duration) { g.setDone(completionStatus) g.RejectWaitingPods(completionStatus, msgF) @@ -293,7 +294,7 @@ func (g *schedulingGangImpl) rejectAllAndDone( func (g *schedulingGangImpl) allowAllAndDone( pod *corev1.Pod, completionStatus GangSchedulingEvent, msgF msgForPodFunc, -) (*framework.Status, time.Duration) { +) (*fwk.Status, time.Duration) { g.setDone(completionStatus) // Allow waiting Pods