Use Kubernetes v1.33
Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>
This commit is contained in:
parent
c63710108d
commit
19959150e4
|
|
@ -39,7 +39,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
kubernetes-version: ["v1.30.4", "v1.31.1", "v1.32.5"]
|
||||
kubernetes-version: ["v1.31.1", "v1.32.5", "v1.33.4"]
|
||||
steps:
|
||||
- name: Clone the code
|
||||
uses: actions/checkout@v3
|
||||
|
|
|
|||
6
Makefile
6
Makefile
|
|
@ -32,8 +32,8 @@ IMAGE_NAME?=${REGISTRY}/mpi-operator
|
|||
KUBEBUILDER_ASSETS_PATH := $(dir $(abspath $(firstword $(MAKEFILE_LIST))))bin/kubebuilder/bin
|
||||
HELM_VERSION=v3.11.2
|
||||
# This kubectl version supports -k for kustomization.
|
||||
KUBECTL_VERSION=v1.32.0
|
||||
ENVTEST_K8S_VERSION=1.32.0
|
||||
KUBECTL_VERSION=v1.33.0
|
||||
ENVTEST_K8S_VERSION=1.33.0
|
||||
PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
|
||||
GOARCH=$(shell go env GOARCH)
|
||||
GOOS=$(shell go env GOOS)
|
||||
|
|
@ -179,7 +179,7 @@ goimports:
|
|||
CONTROLLER_GEN = $(PROJECT_DIR)/bin/controller-gen
|
||||
.PHONY: controller-gen
|
||||
controller-gen: bin
|
||||
@GOBIN=$(PROJECT_DIR)/bin go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.17.3
|
||||
@GOBIN=$(PROJECT_DIR)/bin go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.18.0
|
||||
|
||||
KUSTOMIZE = $(PROJECT_DIR)/bin/kustomize
|
||||
.PHONY: kustomize
|
||||
|
|
|
|||
|
|
@ -142,6 +142,7 @@ func Run(opt *options.ServerOption) error {
|
|||
kubeflowInformerFactory := informers.NewSharedInformerFactoryWithOptions(mpiJobClientSet, 0, kubeflowInformerFactoryOpts...)
|
||||
|
||||
controller, err := controllersv1.NewMPIJobController(
|
||||
ctx,
|
||||
kubeClient,
|
||||
mpiJobClientSet,
|
||||
volcanoClientSet,
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.17.3
|
||||
controller-gen.kubebuilder.io/version: v0.18.0
|
||||
labels:
|
||||
app: mpi-operator
|
||||
app.kubernetes.io/component: mpijob
|
||||
|
|
@ -422,7 +422,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -437,7 +436,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -607,7 +605,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -622,7 +619,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -791,7 +787,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -806,7 +801,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -976,7 +970,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -991,7 +984,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -1258,7 +1250,7 @@ spec:
|
|||
Cannot be updated.
|
||||
items:
|
||||
description: EnvFromSource represents the source
|
||||
of a set of ConfigMaps
|
||||
of a set of ConfigMaps or Secrets
|
||||
properties:
|
||||
configMapRef:
|
||||
description: The ConfigMap to select from
|
||||
|
|
@ -1279,9 +1271,9 @@ spec:
|
|||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
prefix:
|
||||
description: An optional identifier to prepend
|
||||
to each key in the ConfigMap. Must be
|
||||
a C_IDENTIFIER.
|
||||
description: Optional text to prepend to
|
||||
the name of each environment variable.
|
||||
Must be a C_IDENTIFIER.
|
||||
type: string
|
||||
secretRef:
|
||||
description: The Secret to select from
|
||||
|
|
@ -1555,6 +1547,12 @@ spec:
|
|||
- port
|
||||
type: object
|
||||
type: object
|
||||
stopSignal:
|
||||
description: |-
|
||||
StopSignal defines which signal will be sent to a container when it is being stopped.
|
||||
If not specified, the default is defined by the container runtime in use.
|
||||
StopSignal can only be set for Pods with a non-empty .spec.os.name
|
||||
type: string
|
||||
type: object
|
||||
livenessProbe:
|
||||
description: |-
|
||||
|
|
@ -2789,7 +2787,7 @@ spec:
|
|||
Cannot be updated.
|
||||
items:
|
||||
description: EnvFromSource represents the source
|
||||
of a set of ConfigMaps
|
||||
of a set of ConfigMaps or Secrets
|
||||
properties:
|
||||
configMapRef:
|
||||
description: The ConfigMap to select from
|
||||
|
|
@ -2810,9 +2808,9 @@ spec:
|
|||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
prefix:
|
||||
description: An optional identifier to prepend
|
||||
to each key in the ConfigMap. Must be
|
||||
a C_IDENTIFIER.
|
||||
description: Optional text to prepend to
|
||||
the name of each environment variable.
|
||||
Must be a C_IDENTIFIER.
|
||||
type: string
|
||||
secretRef:
|
||||
description: The Secret to select from
|
||||
|
|
@ -3083,6 +3081,12 @@ spec:
|
|||
- port
|
||||
type: object
|
||||
type: object
|
||||
stopSignal:
|
||||
description: |-
|
||||
StopSignal defines which signal will be sent to a container when it is being stopped.
|
||||
If not specified, the default is defined by the container runtime in use.
|
||||
StopSignal can only be set for Pods with a non-empty .spec.os.name
|
||||
type: string
|
||||
type: object
|
||||
livenessProbe:
|
||||
description: Probes are not allowed for ephemeral
|
||||
|
|
@ -4139,7 +4143,7 @@ spec:
|
|||
Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.
|
||||
The resourceRequirements of an init container are taken into account during scheduling
|
||||
by finding the highest request/limit for each resource type, and then using the max of
|
||||
of that value or the sum of the normal containers. Limits are applied to init containers
|
||||
that value or the sum of the normal containers. Limits are applied to init containers
|
||||
in a similar fashion.
|
||||
Init containers cannot currently be added or removed.
|
||||
Cannot be updated.
|
||||
|
|
@ -4317,7 +4321,7 @@ spec:
|
|||
Cannot be updated.
|
||||
items:
|
||||
description: EnvFromSource represents the source
|
||||
of a set of ConfigMaps
|
||||
of a set of ConfigMaps or Secrets
|
||||
properties:
|
||||
configMapRef:
|
||||
description: The ConfigMap to select from
|
||||
|
|
@ -4338,9 +4342,9 @@ spec:
|
|||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
prefix:
|
||||
description: An optional identifier to prepend
|
||||
to each key in the ConfigMap. Must be
|
||||
a C_IDENTIFIER.
|
||||
description: Optional text to prepend to
|
||||
the name of each environment variable.
|
||||
Must be a C_IDENTIFIER.
|
||||
type: string
|
||||
secretRef:
|
||||
description: The Secret to select from
|
||||
|
|
@ -4614,6 +4618,12 @@ spec:
|
|||
- port
|
||||
type: object
|
||||
type: object
|
||||
stopSignal:
|
||||
description: |-
|
||||
StopSignal defines which signal will be sent to a container when it is being stopped.
|
||||
If not specified, the default is defined by the container runtime in use.
|
||||
StopSignal can only be set for Pods with a non-empty .spec.os.name
|
||||
type: string
|
||||
type: object
|
||||
livenessProbe:
|
||||
description: |-
|
||||
|
|
@ -6335,7 +6345,6 @@ spec:
|
|||
- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
|
||||
|
||||
If this value is nil, the behavior is equivalent to the Honor policy.
|
||||
This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
|
||||
type: string
|
||||
nodeTaintsPolicy:
|
||||
description: |-
|
||||
|
|
@ -6346,7 +6355,6 @@ spec:
|
|||
- Ignore: node taints are ignored. All nodes are included.
|
||||
|
||||
If this value is nil, the behavior is equivalent to the Ignore policy.
|
||||
This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
|
||||
type: string
|
||||
topologyKey:
|
||||
description: |-
|
||||
|
|
@ -7352,7 +7360,7 @@ spec:
|
|||
The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
|
||||
The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
|
||||
The volume will be mounted read-only (ro) and non-executable files (noexec).
|
||||
Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).
|
||||
Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
|
||||
The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
|
||||
properties:
|
||||
pullPolicy:
|
||||
|
|
|
|||
75
go.mod
75
go.mod
|
|
@ -1,37 +1,36 @@
|
|||
module github.com/kubeflow/mpi-operator
|
||||
|
||||
go 1.24
|
||||
go 1.24.0
|
||||
|
||||
require (
|
||||
github.com/google/go-cmp v0.6.0
|
||||
github.com/google/go-cmp v0.7.0
|
||||
github.com/onsi/ginkgo v1.16.5
|
||||
github.com/onsi/gomega v1.36.1
|
||||
github.com/prometheus/client_golang v1.19.1
|
||||
github.com/prometheus/client_golang v1.22.0
|
||||
golang.org/x/crypto v0.41.0
|
||||
golang.org/x/time v0.7.0
|
||||
golang.org/x/time v0.9.0
|
||||
golang.org/x/tools v0.36.0
|
||||
k8s.io/api v0.32.7
|
||||
k8s.io/apimachinery v0.32.7
|
||||
k8s.io/apiserver v0.32.7
|
||||
k8s.io/client-go v0.32.7
|
||||
k8s.io/code-generator v0.32.7
|
||||
k8s.io/api v0.33.4
|
||||
k8s.io/apimachinery v0.33.4
|
||||
k8s.io/apiserver v0.33.4
|
||||
k8s.io/client-go v0.33.4
|
||||
k8s.io/code-generator v0.33.4
|
||||
k8s.io/klog v1.0.0
|
||||
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f
|
||||
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff
|
||||
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
|
||||
sigs.k8s.io/controller-runtime v0.20.4
|
||||
sigs.k8s.io/controller-runtime v0.21.0
|
||||
sigs.k8s.io/kind v0.29.0
|
||||
sigs.k8s.io/scheduler-plugins v0.32.7
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.2
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.6.0
|
||||
volcano.sh/apis v1.12.2
|
||||
)
|
||||
|
||||
require (
|
||||
al.essio.dev/pkg/shellescape v1.5.1 // indirect
|
||||
cel.dev/expr v0.18.0 // indirect
|
||||
cel.dev/expr v0.19.1 // indirect
|
||||
github.com/BurntSushi/toml v1.4.0 // indirect
|
||||
github.com/NYTimes/gziphandler v1.1.1 // indirect
|
||||
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
|
||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/blang/semver/v4 v4.0.0 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
||||
|
|
@ -52,15 +51,15 @@ 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.22.0 // indirect
|
||||
github.com/google/gnostic-models v0.6.8 // indirect
|
||||
github.com/google/gofuzz v1.2.0 // indirect
|
||||
github.com/google/cel-go v0.23.2 // indirect
|
||||
github.com/google/gnostic-models v0.6.9 // 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.20.0 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // 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
|
||||
github.com/kylelemons/godebug v1.1.0 // indirect
|
||||
github.com/mailru/easyjson v0.7.7 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
|
|
@ -70,24 +69,25 @@ require (
|
|||
github.com/pelletier/go-toml v1.9.5 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/prometheus/client_model v0.6.1 // indirect
|
||||
github.com/prometheus/common v0.55.0 // 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/pflag v1.0.6 // 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.16 // indirect
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.16 // indirect
|
||||
go.etcd.io/etcd/client/v3 v3.5.16 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
|
||||
go.opentelemetry.io/otel v1.31.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.31.0 // indirect
|
||||
go.opentelemetry.io/otel/sdk v1.31.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.31.0 // indirect
|
||||
go.opentelemetry.io/proto/otlp v1.3.1 // 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.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/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.uber.org/multierr v1.11.0 // indirect
|
||||
go.uber.org/zap v1.27.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20250103183323-7d7fa50e5329 // indirect
|
||||
|
|
@ -99,19 +99,20 @@ require (
|
|||
golang.org/x/term v0.34.0 // indirect
|
||||
golang.org/x/text v0.28.0 // indirect
|
||||
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d // indirect
|
||||
google.golang.org/grpc v1.69.4 // indirect
|
||||
google.golang.org/protobuf v1.36.2 // 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
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
k8s.io/apiextensions-apiserver v0.32.1 // indirect
|
||||
k8s.io/component-base v0.32.7 // indirect
|
||||
k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9 // indirect
|
||||
k8s.io/apiextensions-apiserver v0.33.0 // indirect
|
||||
k8s.io/component-base v0.33.4 // indirect
|
||||
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 // indirect
|
||||
k8s.io/klog/v2 v2.130.1 // indirect
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 // 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/randfill v1.0.0 // indirect
|
||||
sigs.k8s.io/yaml v1.4.0 // indirect
|
||||
)
|
||||
|
|
|
|||
177
go.sum
177
go.sum
|
|
@ -1,15 +1,13 @@
|
|||
al.essio.dev/pkg/shellescape v1.5.1 h1:86HrALUujYS/h+GtqoB26SBEdkWfmMI6FubjXlsXyho=
|
||||
al.essio.dev/pkg/shellescape v1.5.1/go.mod h1:6sIqp7X2P6mThCQ7twERpZTuigpr6KbZWtls1U8I890=
|
||||
cel.dev/expr v0.18.0 h1:CJ6drgk+Hf96lkLikr4rFf19WrU0BOWEihyZnI2TAzo=
|
||||
cel.dev/expr v0.18.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
|
||||
cel.dev/expr v0.19.1 h1:NciYrtDRIR0lNCnH1LFJegdjspNx9fI59O7TWcua/W4=
|
||||
cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
|
||||
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
|
||||
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
||||
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
||||
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/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
|
||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
|
||||
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=
|
||||
|
|
@ -64,8 +62,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.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
|
||||
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
||||
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/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,16 +75,16 @@ 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.22.0 h1:b3FJZxpiv1vTMo2/5RDUqAHPxkT8mmMfJIrq1llbf7g=
|
||||
github.com/google/cel-go v0.22.0/go.mod h1:BuznPXXfQDpXKWQ9sPW3TzlAJN5zzFe+i9tIs0yC4s8=
|
||||
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/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/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.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/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=
|
||||
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
|
||||
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
|
|
@ -96,16 +94,16 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaU
|
|||
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.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
||||
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
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-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.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
|
||||
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/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=
|
||||
|
|
@ -117,10 +115,14 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
|
|||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
|
||||
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
||||
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
||||
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
|
||||
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||
|
|
@ -152,16 +154,16 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
|
|||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
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_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q=
|
||||
github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0=
|
||||
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/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io=
|
||||
github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I=
|
||||
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/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
|
||||
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
|
|
@ -177,6 +179,8 @@ github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8w
|
|||
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/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.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
|
|
@ -194,40 +198,42 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
|
|||
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.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0=
|
||||
go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E=
|
||||
go.etcd.io/etcd/client/v2 v2.305.16 h1:kQrn9o5czVNaukf2A2At43cE9ZtWauOtf9vRZuiKXow=
|
||||
go.etcd.io/etcd/client/v2 v2.305.16/go.mod h1:h9YxWCzcdvZENbfzBTFCnoNumr2ax3F19sKMqHFmXHE=
|
||||
go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE=
|
||||
go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50=
|
||||
go.etcd.io/etcd/pkg/v3 v3.5.16 h1:cnavs5WSPWeK4TYwPYfmcr3Joz9BH+TZ6qoUtz6/+mc=
|
||||
go.etcd.io/etcd/pkg/v3 v3.5.16/go.mod h1:+lutCZHG5MBBFI/U4eYT5yL7sJfnexsoM20Y0t2uNuY=
|
||||
go.etcd.io/etcd/raft/v3 v3.5.16 h1:zBXA3ZUpYs1AwiLGPafYAKKl/CORn/uaxYDwlNwndAk=
|
||||
go.etcd.io/etcd/raft/v3 v3.5.16/go.mod h1:P4UP14AxofMJ/54boWilabqqWoW9eLodl6I5GdGzazI=
|
||||
go.etcd.io/etcd/server/v3 v3.5.16 h1:d0/SAdJ3vVsZvF8IFVb1k8zqMZ+heGcNfft71ul9GWE=
|
||||
go.etcd.io/etcd/server/v3 v3.5.16/go.mod h1:ynhyZZpdDp1Gq49jkUg5mfkDWZwXnn3eIqCqtJnrD/s=
|
||||
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.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8=
|
||||
go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
|
||||
go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
|
||||
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.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
|
||||
go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY=
|
||||
go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=
|
||||
go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0=
|
||||
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.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/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/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
|
||||
go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
|
||||
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
|
||||
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.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.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=
|
||||
|
|
@ -279,8 +285,8 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
|||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
|
||||
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
|
||||
golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ=
|
||||
golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
|
||||
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
|
|
@ -296,8 +302,8 @@ gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw
|
|||
gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
|
||||
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-20241015192408-796eee8c2d53 h1:fVoAXEKA4+yufmbdVYv+SE73+cPZbbbe8paLsHfkK+U=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53/go.mod h1:riSXTwQ4+nqmPGtobMFyW5FqVAmIs0St6VPp4Ug7CE4=
|
||||
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-20250102185135-69823020774d h1:xJJRGY7TJcvIlpSrN3K6LAWgNFUILlO+OMAqtg9aqnw=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4=
|
||||
google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A=
|
||||
|
|
@ -308,8 +314,8 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ
|
|||
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.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU=
|
||||
google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
|
||||
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||
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=
|
||||
|
|
@ -328,42 +334,45 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||
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.32.7 h1:CBhHkoi3YJW8QQI6VL/Hu9f1HHVImmuIh513d4H4VfQ=
|
||||
k8s.io/api v0.32.7/go.mod h1:YEB46LZ/M0/9t0m+R2FxW5fkZAUR/eoS6sZQKS3mBYk=
|
||||
k8s.io/apiextensions-apiserver v0.32.1 h1:hjkALhRUeCariC8DiVmb5jj0VjIc1N0DREP32+6UXZw=
|
||||
k8s.io/apiextensions-apiserver v0.32.1/go.mod h1:sxWIGuGiYov7Io1fAS2X06NjMIk5CbRHc2StSmbaQto=
|
||||
k8s.io/apimachinery v0.32.7 h1:1vTegNQIfM7dvZrMV5//6jJv2odKAnadv9Bg+doJmaA=
|
||||
k8s.io/apimachinery v0.32.7/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
|
||||
k8s.io/apiserver v0.32.7 h1:BJADFQpbKM1LC5GTueefdnDjzu5PUXAcEgWZrs2gj18=
|
||||
k8s.io/apiserver v0.32.7/go.mod h1:a3O36FgT3dQ26oufk9/1VVmWcna/OLQjofirYiocfQI=
|
||||
k8s.io/client-go v0.32.7 h1:ZDhv3JTaQ/IejnNXRePBZdRecAEvxf8+pFdt/ruuWXc=
|
||||
k8s.io/client-go v0.32.7/go.mod h1:/he4Akuzee/lTiWmcsrpZfCQ2LPNLTC2qqumLVAw/Fw=
|
||||
k8s.io/code-generator v0.32.7 h1:qFxUmaipNZ/HHlgKnhQzg1WTkP6mH/ivt9DNPyOv7nY=
|
||||
k8s.io/code-generator v0.32.7/go.mod h1:eQAd3C5ueW4R44irGqk+IZN0zW/vVmZgI2D4q5Tu09w=
|
||||
k8s.io/component-base v0.32.7 h1:iXfcDveIsx0CyB0b8qo0/4pfgmhwshaO/u4ij1hZeAM=
|
||||
k8s.io/component-base v0.32.7/go.mod h1:Qfa6+z8IIyIdyqewerOlWaibCsxKbpBNd3ATNrPKe/A=
|
||||
k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9 h1:si3PfKm8dDYxgfbeA6orqrtLkvvIeH8UqffFJDl0bz4=
|
||||
k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=
|
||||
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.0 h1:d2qpYL7Mngbsc1taA4IjJPRJ9ilnsXIrndH+r9IimOs=
|
||||
k8s.io/apiextensions-apiserver v0.33.0/go.mod h1:VeJ8u9dEEN+tbETo+lFkwaaZPg6uFKLGj5vyNEwwSzc=
|
||||
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/code-generator v0.33.4 h1:DiA801QxqApRIBh3OWULasVAUA237XnYvFNMh+E34Y8=
|
||||
k8s.io/code-generator v0.33.4/go.mod h1:ifWxKWhEl/Z1K7WmWAyOBEf3ex/i546ingCzLC8YVIY=
|
||||
k8s.io/component-base v0.33.4 h1:Jvb/aw/tl3pfgnJ0E0qPuYLT0NwdYs1VXXYQmSuxJGY=
|
||||
k8s.io/component-base v0.33.4/go.mod h1:567TeSdixWW2Xb1yYUQ7qk5Docp2kNznKL87eygY8Rc=
|
||||
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 h1:2OX19X59HxDprNCVrWi6jb7LW1PoqTlYqEq5H2oetog=
|
||||
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=
|
||||
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
|
||||
k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
|
||||
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
|
||||
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
||||
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=
|
||||
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=
|
||||
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/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
|
||||
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 h1:CPT0ExVicCzcpeN4baWEV2ko2Z/AsiZgEdwgcfwLgMo=
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
|
||||
sigs.k8s.io/controller-runtime v0.20.4 h1:X3c+Odnxz+iPTRobG4tp092+CvBU9UK0t/bRf+n0DGU=
|
||||
sigs.k8s.io/controller-runtime v0.20.4/go.mod h1:xg2XB0K5ShQzAgsoujxuKN4LNXR2LfwwHsPj7Iaw+XY=
|
||||
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/controller-runtime v0.21.0 h1:CYfjpEuicjUecRk+KAeyYh+ouUBn4llGyDYytIGcJS8=
|
||||
sigs.k8s.io/controller-runtime v0.21.0/go.mod h1:OSg14+F65eWqIu4DceX7k/+QRAbTTvxeQSNSOQpukWM=
|
||||
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/kind v0.29.0 h1:3TpCsyh908IkXXpcSnsMjWdwdWjIl7o9IMZImZCWFnI=
|
||||
sigs.k8s.io/kind v0.29.0/go.mod h1:ldWQisw2NYyM6k64o/tkZng/1qQW7OlzcN5a8geJX3o=
|
||||
sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
|
||||
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/scheduler-plugins v0.32.7 h1:fGr4JKraaTe6it4PIqUlXStfctFKYxJgYkDsiU6699o=
|
||||
sigs.k8s.io/scheduler-plugins v0.32.7/go.mod h1:Oem5rktj6wgFr2SUqcaInUTIBX8tlY8c4qid5vp2lBw=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
|
||||
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=
|
||||
volcano.sh/apis v1.12.2 h1:KvNyM/kMizFVlALiH/uFHPwYFHRtxuVnBL0upbFbDss=
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.17.3
|
||||
controller-gen.kubebuilder.io/version: v0.18.0
|
||||
name: mpijobs.kubeflow.org
|
||||
spec:
|
||||
group: kubeflow.org
|
||||
|
|
@ -399,7 +399,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -414,7 +413,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -584,7 +582,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -599,7 +596,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -768,7 +764,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -783,7 +778,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -953,7 +947,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
|
||||
Also, matchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -968,7 +961,6 @@ spec:
|
|||
pod labels will be ignored. The default value is empty.
|
||||
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
|
||||
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
|
||||
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
|
|
@ -1235,7 +1227,7 @@ spec:
|
|||
Cannot be updated.
|
||||
items:
|
||||
description: EnvFromSource represents the source
|
||||
of a set of ConfigMaps
|
||||
of a set of ConfigMaps or Secrets
|
||||
properties:
|
||||
configMapRef:
|
||||
description: The ConfigMap to select from
|
||||
|
|
@ -1256,9 +1248,9 @@ spec:
|
|||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
prefix:
|
||||
description: An optional identifier to prepend
|
||||
to each key in the ConfigMap. Must be
|
||||
a C_IDENTIFIER.
|
||||
description: Optional text to prepend to
|
||||
the name of each environment variable.
|
||||
Must be a C_IDENTIFIER.
|
||||
type: string
|
||||
secretRef:
|
||||
description: The Secret to select from
|
||||
|
|
@ -1532,6 +1524,12 @@ spec:
|
|||
- port
|
||||
type: object
|
||||
type: object
|
||||
stopSignal:
|
||||
description: |-
|
||||
StopSignal defines which signal will be sent to a container when it is being stopped.
|
||||
If not specified, the default is defined by the container runtime in use.
|
||||
StopSignal can only be set for Pods with a non-empty .spec.os.name
|
||||
type: string
|
||||
type: object
|
||||
livenessProbe:
|
||||
description: |-
|
||||
|
|
@ -2766,7 +2764,7 @@ spec:
|
|||
Cannot be updated.
|
||||
items:
|
||||
description: EnvFromSource represents the source
|
||||
of a set of ConfigMaps
|
||||
of a set of ConfigMaps or Secrets
|
||||
properties:
|
||||
configMapRef:
|
||||
description: The ConfigMap to select from
|
||||
|
|
@ -2787,9 +2785,9 @@ spec:
|
|||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
prefix:
|
||||
description: An optional identifier to prepend
|
||||
to each key in the ConfigMap. Must be
|
||||
a C_IDENTIFIER.
|
||||
description: Optional text to prepend to
|
||||
the name of each environment variable.
|
||||
Must be a C_IDENTIFIER.
|
||||
type: string
|
||||
secretRef:
|
||||
description: The Secret to select from
|
||||
|
|
@ -3060,6 +3058,12 @@ spec:
|
|||
- port
|
||||
type: object
|
||||
type: object
|
||||
stopSignal:
|
||||
description: |-
|
||||
StopSignal defines which signal will be sent to a container when it is being stopped.
|
||||
If not specified, the default is defined by the container runtime in use.
|
||||
StopSignal can only be set for Pods with a non-empty .spec.os.name
|
||||
type: string
|
||||
type: object
|
||||
livenessProbe:
|
||||
description: Probes are not allowed for ephemeral
|
||||
|
|
@ -4116,7 +4120,7 @@ spec:
|
|||
Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.
|
||||
The resourceRequirements of an init container are taken into account during scheduling
|
||||
by finding the highest request/limit for each resource type, and then using the max of
|
||||
of that value or the sum of the normal containers. Limits are applied to init containers
|
||||
that value or the sum of the normal containers. Limits are applied to init containers
|
||||
in a similar fashion.
|
||||
Init containers cannot currently be added or removed.
|
||||
Cannot be updated.
|
||||
|
|
@ -4294,7 +4298,7 @@ spec:
|
|||
Cannot be updated.
|
||||
items:
|
||||
description: EnvFromSource represents the source
|
||||
of a set of ConfigMaps
|
||||
of a set of ConfigMaps or Secrets
|
||||
properties:
|
||||
configMapRef:
|
||||
description: The ConfigMap to select from
|
||||
|
|
@ -4315,9 +4319,9 @@ spec:
|
|||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
prefix:
|
||||
description: An optional identifier to prepend
|
||||
to each key in the ConfigMap. Must be
|
||||
a C_IDENTIFIER.
|
||||
description: Optional text to prepend to
|
||||
the name of each environment variable.
|
||||
Must be a C_IDENTIFIER.
|
||||
type: string
|
||||
secretRef:
|
||||
description: The Secret to select from
|
||||
|
|
@ -4591,6 +4595,12 @@ spec:
|
|||
- port
|
||||
type: object
|
||||
type: object
|
||||
stopSignal:
|
||||
description: |-
|
||||
StopSignal defines which signal will be sent to a container when it is being stopped.
|
||||
If not specified, the default is defined by the container runtime in use.
|
||||
StopSignal can only be set for Pods with a non-empty .spec.os.name
|
||||
type: string
|
||||
type: object
|
||||
livenessProbe:
|
||||
description: |-
|
||||
|
|
@ -6312,7 +6322,6 @@ spec:
|
|||
- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
|
||||
|
||||
If this value is nil, the behavior is equivalent to the Honor policy.
|
||||
This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
|
||||
type: string
|
||||
nodeTaintsPolicy:
|
||||
description: |-
|
||||
|
|
@ -6323,7 +6332,6 @@ spec:
|
|||
- Ignore: node taints are ignored. All nodes are included.
|
||||
|
||||
If this value is nil, the behavior is equivalent to the Ignore policy.
|
||||
This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
|
||||
type: string
|
||||
topologyKey:
|
||||
description: |-
|
||||
|
|
@ -7329,7 +7337,7 @@ spec:
|
|||
The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
|
||||
The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
|
||||
The volume will be mounted read-only (ro) and non-executable files (noexec).
|
||||
Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).
|
||||
Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
|
||||
The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
|
||||
properties:
|
||||
pullPolicy:
|
||||
|
|
|
|||
|
|
@ -72,6 +72,14 @@
|
|||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
"emulationMajor": {
|
||||
"description": "EmulationMajor is the major version of the emulation version",
|
||||
"type": "string"
|
||||
},
|
||||
"emulationMinor": {
|
||||
"description": "EmulationMinor is the minor version of the emulation version",
|
||||
"type": "string"
|
||||
},
|
||||
"gitCommit": {
|
||||
"type": "string",
|
||||
"default": ""
|
||||
|
|
@ -89,10 +97,20 @@
|
|||
"default": ""
|
||||
},
|
||||
"major": {
|
||||
"description": "Major is the major version of the binary version",
|
||||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
"minCompatibilityMajor": {
|
||||
"description": "MinCompatibilityMajor is the major version of the minimum compatibility version",
|
||||
"type": "string"
|
||||
},
|
||||
"minCompatibilityMinor": {
|
||||
"description": "MinCompatibilityMinor is the minor version of the minimum compatibility version",
|
||||
"type": "string"
|
||||
},
|
||||
"minor": {
|
||||
"description": "Minor is the minor version of the binary version",
|
||||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
|
|
|
|||
|
|
@ -231,14 +231,17 @@ func TestValidateMPIJob(t *testing.T) {
|
|||
{
|
||||
Type: field.ErrorTypeInvalid,
|
||||
Field: "spec.runPolicy.ttlSecondsAfterFinished",
|
||||
Origin: "minimum",
|
||||
},
|
||||
{
|
||||
Type: field.ErrorTypeInvalid,
|
||||
Field: "spec.runPolicy.activeDeadlineSeconds",
|
||||
Origin: "minimum",
|
||||
},
|
||||
{
|
||||
Type: field.ErrorTypeInvalid,
|
||||
Field: "spec.runPolicy.backoffLimit",
|
||||
Origin: "minimum",
|
||||
},
|
||||
{
|
||||
Type: field.ErrorTypeNotSupported,
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import (
|
|||
clientset "github.com/kubeflow/mpi-operator/pkg/client/clientset/versioned"
|
||||
kubeflowv2beta1 "github.com/kubeflow/mpi-operator/pkg/client/clientset/versioned/typed/kubeflow/v2beta1"
|
||||
fakekubeflowv2beta1 "github.com/kubeflow/mpi-operator/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/discovery"
|
||||
|
|
@ -48,9 +49,13 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset {
|
|||
cs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}
|
||||
cs.AddReactor("*", "*", testing.ObjectReaction(o))
|
||||
cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) {
|
||||
var opts metav1.ListOptions
|
||||
if watchActcion, ok := action.(testing.WatchActionImpl); ok {
|
||||
opts = watchActcion.ListOptions
|
||||
}
|
||||
gvr := action.GetResource()
|
||||
ns := action.GetNamespace()
|
||||
watch, err := o.Watch(gvr, ns)
|
||||
watch, err := o.Watch(gvr, ns, opts)
|
||||
if err != nil {
|
||||
return false, nil, err
|
||||
}
|
||||
|
|
@ -97,9 +102,13 @@ func NewClientset(objects ...runtime.Object) *Clientset {
|
|||
cs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}
|
||||
cs.AddReactor("*", "*", testing.ObjectReaction(o))
|
||||
cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) {
|
||||
var opts metav1.ListOptions
|
||||
if watchActcion, ok := action.(testing.WatchActionImpl); ok {
|
||||
opts = watchActcion.ListOptions
|
||||
}
|
||||
gvr := action.GetResource()
|
||||
ns := action.GetNamespace()
|
||||
watch, err := o.Watch(gvr, ns)
|
||||
watch, err := o.Watch(gvr, ns, opts)
|
||||
if err != nil {
|
||||
return false, nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,9 +43,7 @@ func (c *KubeflowV2beta1Client) MPIJobs(namespace string) MPIJobInterface {
|
|||
// where httpClient was generated with rest.HTTPClientFor(c).
|
||||
func NewForConfig(c *rest.Config) (*KubeflowV2beta1Client, error) {
|
||||
config := *c
|
||||
if err := setConfigDefaults(&config); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
setConfigDefaults(&config)
|
||||
httpClient, err := rest.HTTPClientFor(&config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -57,9 +55,7 @@ func NewForConfig(c *rest.Config) (*KubeflowV2beta1Client, error) {
|
|||
// Note the http client provided takes precedence over the configured transport values.
|
||||
func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeflowV2beta1Client, error) {
|
||||
config := *c
|
||||
if err := setConfigDefaults(&config); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
setConfigDefaults(&config)
|
||||
client, err := rest.RESTClientForConfigAndClient(&config, h)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -82,7 +78,7 @@ func New(c rest.Interface) *KubeflowV2beta1Client {
|
|||
return &KubeflowV2beta1Client{c}
|
||||
}
|
||||
|
||||
func setConfigDefaults(config *rest.Config) error {
|
||||
func setConfigDefaults(config *rest.Config) {
|
||||
gv := kubeflowv2beta1.SchemeGroupVersion
|
||||
config.GroupVersion = &gv
|
||||
config.APIPath = "/apis"
|
||||
|
|
@ -91,8 +87,6 @@ func setConfigDefaults(config *rest.Config) error {
|
|||
if config.UserAgent == "" {
|
||||
config.UserAgent = rest.DefaultKubernetesUserAgent()
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// RESTClient returns a RESTClient that is used to communicate
|
||||
|
|
|
|||
|
|
@ -60,13 +60,25 @@ func NewFilteredMPIJobInformer(client versioned.Interface, namespace string, res
|
|||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.KubeflowV2beta1().MPIJobs(namespace).List(context.TODO(), options)
|
||||
return client.KubeflowV2beta1().MPIJobs(namespace).List(context.Background(), options)
|
||||
},
|
||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.KubeflowV2beta1().MPIJobs(namespace).Watch(context.TODO(), options)
|
||||
return client.KubeflowV2beta1().MPIJobs(namespace).Watch(context.Background(), options)
|
||||
},
|
||||
ListWithContextFunc: func(ctx context.Context, options v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.KubeflowV2beta1().MPIJobs(namespace).List(ctx, options)
|
||||
},
|
||||
WatchFuncWithContext: func(ctx context.Context, options v1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.KubeflowV2beta1().MPIJobs(namespace).Watch(ctx, options)
|
||||
},
|
||||
},
|
||||
&apiskubeflowv2beta1.MPIJob{},
|
||||
|
|
|
|||
|
|
@ -265,6 +265,7 @@ type MPIJobController struct {
|
|||
|
||||
// NewMPIJobController returns a new MPIJob controller.
|
||||
func NewMPIJobController(
|
||||
ctx context.Context,
|
||||
kubeClient kubernetes.Interface,
|
||||
kubeflowClient clientset.Interface,
|
||||
volcanoClient volcanoclient.Interface,
|
||||
|
|
@ -277,13 +278,14 @@ func NewMPIJobController(
|
|||
priorityClassInformer schedulinginformers.PriorityClassInformer,
|
||||
mpiJobInformer informers.MPIJobInformer,
|
||||
opt *options.ServerOption) (*MPIJobController, error) {
|
||||
return NewMPIJobControllerWithClock(kubeClient, kubeflowClient, volcanoClient, schedClient,
|
||||
return NewMPIJobControllerWithClock(ctx, kubeClient, kubeflowClient, volcanoClient, schedClient,
|
||||
configMapInformer, secretInformer, serviceInformer, jobInformer, podInformer,
|
||||
priorityClassInformer, mpiJobInformer, &clock.RealClock{}, opt)
|
||||
}
|
||||
|
||||
// NewMPIJobControllerWithClock returns a new MPIJob controller.
|
||||
func NewMPIJobControllerWithClock(
|
||||
ctx context.Context,
|
||||
kubeClient kubernetes.Interface,
|
||||
kubeflowClient clientset.Interface,
|
||||
volcanoClient volcanoclient.Interface,
|
||||
|
|
@ -371,7 +373,7 @@ func NewMPIJobControllerWithClock(
|
|||
for name, informer := range informers {
|
||||
err := informer.SetWatchErrorHandler(func(r *cache.Reflector, err error) {
|
||||
// Pipe to default handler first, which just logs the error
|
||||
cache.DefaultWatchErrorHandler(r, err)
|
||||
cache.DefaultWatchErrorHandler(ctx, r, err)
|
||||
|
||||
if apierrors.IsUnauthorized(err) || apierrors.IsForbidden(err) {
|
||||
klog.Fatalf("Unable to sync cache for informer %s: %s. Requesting controller to exit.", name, err)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
|
@ -159,13 +160,14 @@ func newMPIJob(name string, replicas *int32, startTime, completionTime *metav1.T
|
|||
return mpiJob
|
||||
}
|
||||
|
||||
func (f *fixture) newController(clock clock.WithTicker) (*MPIJobController, informers.SharedInformerFactory, kubeinformers.SharedInformerFactory) {
|
||||
func (f *fixture) newController(ctx context.Context, clock clock.WithTicker) (*MPIJobController, informers.SharedInformerFactory, kubeinformers.SharedInformerFactory) {
|
||||
f.client = fake.NewSimpleClientset(f.objects...)
|
||||
f.kubeClient = k8sfake.NewSimpleClientset(f.kubeObjects...)
|
||||
i := informers.NewSharedInformerFactory(f.client, noResyncPeriodFunc())
|
||||
k8sI := kubeinformers.NewSharedInformerFactory(f.kubeClient, noResyncPeriodFunc())
|
||||
|
||||
c, err := NewMPIJobControllerWithClock(
|
||||
ctx,
|
||||
f.kubeClient,
|
||||
f.client,
|
||||
f.volcanoClient,
|
||||
|
|
@ -263,20 +265,20 @@ func (f *fixture) newController(clock clock.WithTicker) (*MPIJobController, info
|
|||
return c, i, k8sI
|
||||
}
|
||||
|
||||
func (f *fixture) run(mpiJobName string) {
|
||||
f.runWithClock(mpiJobName, clock.RealClock{})
|
||||
func (f *fixture) run(ctx context.Context, mpiJobName string) {
|
||||
f.runWithClock(ctx, mpiJobName, clock.RealClock{})
|
||||
}
|
||||
|
||||
func (f *fixture) runWithClock(mpiJobName string, clock clock.WithTicker) {
|
||||
f.runController(mpiJobName, true, false, clock)
|
||||
func (f *fixture) runWithClock(ctx context.Context, mpiJobName string, clock clock.WithTicker) {
|
||||
f.runController(ctx, mpiJobName, true, false, clock)
|
||||
}
|
||||
|
||||
func (f *fixture) runExpectError(mpiJobName string) {
|
||||
f.runController(mpiJobName, true, true, clock.RealClock{})
|
||||
func (f *fixture) runExpectError(ctx context.Context, mpiJobName string) {
|
||||
f.runController(ctx, mpiJobName, true, true, clock.RealClock{})
|
||||
}
|
||||
|
||||
func (f *fixture) runController(mpiJobName string, startInformers, expectError bool, clock clock.WithTicker) {
|
||||
c, i, k8sI := f.newController(clock)
|
||||
func (f *fixture) runController(ctx context.Context, mpiJobName string, startInformers, expectError bool, clock clock.WithTicker) {
|
||||
c, i, k8sI := f.newController(ctx, clock)
|
||||
if startInformers {
|
||||
stopCh := make(chan struct{})
|
||||
defer close(stopCh)
|
||||
|
|
@ -490,7 +492,7 @@ func getKey(mpiJob *kubeflow.MPIJob, t *testing.T) string {
|
|||
|
||||
func TestDoNothingWithInvalidKey(t *testing.T) {
|
||||
f := newFixture(t, "")
|
||||
f.run("foo/bar/baz")
|
||||
f.run(t.Context(), "foo/bar/baz")
|
||||
}
|
||||
|
||||
func TestDoNothingWithNonexistentMPIJob(t *testing.T) {
|
||||
|
|
@ -498,7 +500,7 @@ func TestDoNothingWithNonexistentMPIJob(t *testing.T) {
|
|||
startTime := metav1.Now()
|
||||
completionTime := metav1.Now()
|
||||
mpiJob := newMPIJob("test", ptr.To[int32](64), &startTime, &completionTime)
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestDoNothingWithInvalidMPIJob(t *testing.T) {
|
||||
|
|
@ -511,7 +513,7 @@ func TestDoNothingWithInvalidMPIJob(t *testing.T) {
|
|||
},
|
||||
}
|
||||
f.setUpMPIJob(mpiJob)
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestDoNothingWithMPIJobManagedExternally(t *testing.T) {
|
||||
|
|
@ -523,7 +525,7 @@ func TestDoNothingWithMPIJobManagedExternally(t *testing.T) {
|
|||
mpiJob.Spec.MPIImplementation = kubeflow.MPIImplementationOpenMPI
|
||||
mpiJob.Spec.RunPolicy.ManagedBy = ptr.To(kubeflow.MultiKueueController)
|
||||
f.setUpMPIJob(mpiJob)
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
if !f.expectNoKubeActions() {
|
||||
t.Fatalf("Expected no kubeActions (secrets, pods, services etc.)")
|
||||
}
|
||||
|
|
@ -563,7 +565,7 @@ func TestAllResourcesCreated(t *testing.T) {
|
|||
}
|
||||
f.expectUpdateMPIJobStatusAction(mpiJobCopy)
|
||||
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -583,7 +585,7 @@ func TestLauncherNotControlledByUs(t *testing.T) {
|
|||
launcher.OwnerReferences = nil
|
||||
f.setUpLauncher(launcher)
|
||||
|
||||
f.runExpectError(getKey(mpiJob, t))
|
||||
f.runExpectError(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestLauncherSucceeded(t *testing.T) {
|
||||
|
|
@ -629,7 +631,7 @@ func TestLauncherSucceeded(t *testing.T) {
|
|||
updateMPIJobConditions(mpiJobCopy, kubeflow.JobSucceeded, corev1.ConditionTrue, mpiJobSucceededReason, msg)
|
||||
f.expectUpdateMPIJobStatusAction(mpiJobCopy)
|
||||
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestLauncherFailed(t *testing.T) {
|
||||
|
|
@ -693,7 +695,7 @@ func TestLauncherFailed(t *testing.T) {
|
|||
|
||||
f.expectUpdateMPIJobStatusAction(mpiJobCopy)
|
||||
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestConfigMapNotControlledByUs(t *testing.T) {
|
||||
|
|
@ -711,7 +713,7 @@ func TestConfigMapNotControlledByUs(t *testing.T) {
|
|||
configMap.OwnerReferences = nil
|
||||
f.setUpConfigMap(configMap)
|
||||
|
||||
f.runExpectError(getKey(mpiJob, t))
|
||||
f.runExpectError(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestWorkerServiceNotControlledByUs(t *testing.T) {
|
||||
|
|
@ -729,7 +731,7 @@ func TestWorkerServiceNotControlledByUs(t *testing.T) {
|
|||
service.OwnerReferences = nil
|
||||
f.setUpService(service)
|
||||
|
||||
f.runExpectError(getKey(mpiJob, t))
|
||||
f.runExpectError(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestLauncherServiceNotControlledByUs(t *testing.T) {
|
||||
|
|
@ -761,7 +763,7 @@ func TestLauncherServiceNotControlledByUs(t *testing.T) {
|
|||
f.setUpPod(worker)
|
||||
}
|
||||
|
||||
f.runExpectError(getKey(mpiJob, t))
|
||||
f.runExpectError(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestSecretNotControlledByUs(t *testing.T) {
|
||||
|
|
@ -787,7 +789,7 @@ func TestSecretNotControlledByUs(t *testing.T) {
|
|||
secret.OwnerReferences = nil
|
||||
f.setUpSecret(secret)
|
||||
|
||||
f.runExpectError(getKey(mpiJob, t))
|
||||
f.runExpectError(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestShutdownWorker(t *testing.T) {
|
||||
|
|
@ -839,7 +841,7 @@ func TestShutdownWorker(t *testing.T) {
|
|||
setUpMPIJobTimestamp(mpiJobCopy, &startTime, &completionTime)
|
||||
f.expectUpdateMPIJobStatusAction(mpiJobCopy)
|
||||
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestCreateSuspendedMPIJob(t *testing.T) {
|
||||
|
|
@ -886,7 +888,7 @@ func TestCreateSuspendedMPIJob(t *testing.T) {
|
|||
updateMPIJobConditions(mpiJobCopy, kubeflow.JobRunning, corev1.ConditionFalse, mpiJobSuspendedReason, msg)
|
||||
f.expectUpdateMPIJobStatusAction(mpiJobCopy)
|
||||
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -975,7 +977,7 @@ func TestSuspendedRunningMPIJob(t *testing.T) {
|
|||
}
|
||||
f.expectUpdateMPIJobStatusAction(mpiJobCopy)
|
||||
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestResumeMPIJob(t *testing.T) {
|
||||
|
|
@ -1039,7 +1041,7 @@ func TestResumeMPIJob(t *testing.T) {
|
|||
updateMPIJobConditions(mpiJobCopy, kubeflow.JobSuspended, corev1.ConditionFalse, "MPIJobResumed", "MPIJob resumed")
|
||||
f.expectUpdateMPIJobStatusAction(mpiJobCopy)
|
||||
|
||||
f.runWithClock(getKey(mpiJob, t), fakeClock)
|
||||
f.runWithClock(t.Context(), getKey(mpiJob, t), fakeClock)
|
||||
}
|
||||
|
||||
func TestWorkerNotControlledByUs(t *testing.T) {
|
||||
|
|
@ -1070,7 +1072,7 @@ func TestWorkerNotControlledByUs(t *testing.T) {
|
|||
f.setUpPod(worker)
|
||||
}
|
||||
|
||||
f.runExpectError(getKey(mpiJob, t))
|
||||
f.runExpectError(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestLauncherActiveWorkerNotReady(t *testing.T) {
|
||||
|
|
@ -1123,7 +1125,7 @@ func TestLauncherActiveWorkerNotReady(t *testing.T) {
|
|||
setUpMPIJobTimestamp(mpiJobCopy, &startTime, &completionTime)
|
||||
f.expectUpdateMPIJobStatusAction(mpiJobCopy)
|
||||
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestLauncherActiveWorkerReady(t *testing.T) {
|
||||
|
|
@ -1182,7 +1184,7 @@ func TestLauncherActiveWorkerReady(t *testing.T) {
|
|||
updateMPIJobConditions(mpiJobCopy, kubeflow.JobRunning, corev1.ConditionTrue, mpiJobRunningReason, msg)
|
||||
f.expectUpdateMPIJobStatusAction(mpiJobCopy)
|
||||
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestWorkerReady(t *testing.T) {
|
||||
|
|
@ -1237,7 +1239,7 @@ func TestWorkerReady(t *testing.T) {
|
|||
setUpMPIJobTimestamp(mpiJobCopy, &startTime, &completionTime)
|
||||
f.expectUpdateMPIJobStatusAction(mpiJobCopy)
|
||||
|
||||
f.run(getKey(mpiJob, t))
|
||||
f.run(t.Context(), getKey(mpiJob, t))
|
||||
}
|
||||
|
||||
func TestNewLauncherAndWorker(t *testing.T) {
|
||||
|
|
|
|||
|
|
@ -283,8 +283,9 @@ func TestNewPodGroup(t *testing.T) {
|
|||
}
|
||||
for name, tc := range testCases {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
volcanoFixture := newFixture(t, "default-scheduler")
|
||||
jobController, _, _ := volcanoFixture.newController(clock.RealClock{})
|
||||
jobController, _, _ := volcanoFixture.newController(ctx, clock.RealClock{})
|
||||
volcanoPGCtrl := &VolcanoCtrl{
|
||||
Client: volcanoFixture.volcanoClient,
|
||||
PriorityClassLister: jobController.priorityClassLister,
|
||||
|
|
@ -294,7 +295,7 @@ func TestNewPodGroup(t *testing.T) {
|
|||
t.Errorf("Unexpected volcano PodGroup (-want,+got):\n%s", diff)
|
||||
}
|
||||
schedFixture := newFixture(t, "default-scheduler")
|
||||
schedController, _, _ := schedFixture.newController(clock.RealClock{})
|
||||
schedController, _, _ := schedFixture.newController(ctx, clock.RealClock{})
|
||||
schedPGCtrl := &SchedulerPluginsCtrl{
|
||||
Client: schedFixture.schedClient,
|
||||
PriorityClassLister: schedController.priorityClassLister,
|
||||
|
|
@ -555,13 +556,14 @@ func TestCalculatePGMinResources(t *testing.T) {
|
|||
}
|
||||
for name, tc := range volcanoTests {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
f := newFixture(t, "volcano-scheduler")
|
||||
if tc.priorityClasses != nil {
|
||||
for _, pc := range tc.priorityClasses {
|
||||
f.setUpPriorityClass(pc)
|
||||
}
|
||||
}
|
||||
jobController, _, _ := f.newController(clock.RealClock{})
|
||||
jobController, _, _ := f.newController(ctx, clock.RealClock{})
|
||||
pgCtrl := VolcanoCtrl{Client: f.volcanoClient, PriorityClassLister: jobController.priorityClassLister}
|
||||
got := pgCtrl.calculatePGMinResources(&tc.minMember, tc.job)
|
||||
if diff := cmp.Diff(tc.want, got); len(diff) != 0 {
|
||||
|
|
@ -778,13 +780,14 @@ func TestCalculatePGMinResources(t *testing.T) {
|
|||
}
|
||||
for name, tc := range schedTests {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
f := newFixture(t, "default-scheduler")
|
||||
if tc.priorityClasses != nil {
|
||||
for _, pc := range tc.priorityClasses {
|
||||
f.setUpPriorityClass(pc)
|
||||
}
|
||||
}
|
||||
jobController, _, _ := f.newController(clock.RealClock{})
|
||||
jobController, _, _ := f.newController(ctx, clock.RealClock{})
|
||||
pgCtrl := SchedulerPluginsCtrl{
|
||||
Client: f.schedClient,
|
||||
PriorityClassLister: jobController.priorityClassLister,
|
||||
|
|
|
|||
|
|
@ -7,12 +7,16 @@ Name | Type | Description | Notes
|
|||
------------ | ------------- | ------------- | -------------
|
||||
**build_date** | **str** | | [default to '']
|
||||
**compiler** | **str** | | [default to '']
|
||||
**emulation_major** | **str** | EmulationMajor is the major version of the emulation version | [optional]
|
||||
**emulation_minor** | **str** | EmulationMinor is the minor version of the emulation version | [optional]
|
||||
**git_commit** | **str** | | [default to '']
|
||||
**git_tree_state** | **str** | | [default to '']
|
||||
**git_version** | **str** | | [default to '']
|
||||
**go_version** | **str** | | [default to '']
|
||||
**major** | **str** | | [default to '']
|
||||
**minor** | **str** | | [default to '']
|
||||
**major** | **str** | Major is the major version of the binary version | [default to '']
|
||||
**min_compatibility_major** | **str** | MinCompatibilityMajor is the major version of the minimum compatibility version | [optional]
|
||||
**min_compatibility_minor** | **str** | MinCompatibilityMinor is the minor version of the minimum compatibility version | [optional]
|
||||
**minor** | **str** | Minor is the minor version of the binary version | [default to '']
|
||||
**platform** | **str** | | [default to '']
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
|
|
|||
|
|
@ -35,11 +35,15 @@ class K8sIoApimachineryPkgVersionInfo(object):
|
|||
openapi_types = {
|
||||
'build_date': 'str',
|
||||
'compiler': 'str',
|
||||
'emulation_major': 'str',
|
||||
'emulation_minor': 'str',
|
||||
'git_commit': 'str',
|
||||
'git_tree_state': 'str',
|
||||
'git_version': 'str',
|
||||
'go_version': 'str',
|
||||
'major': 'str',
|
||||
'min_compatibility_major': 'str',
|
||||
'min_compatibility_minor': 'str',
|
||||
'minor': 'str',
|
||||
'platform': 'str'
|
||||
}
|
||||
|
|
@ -47,16 +51,20 @@ class K8sIoApimachineryPkgVersionInfo(object):
|
|||
attribute_map = {
|
||||
'build_date': 'buildDate',
|
||||
'compiler': 'compiler',
|
||||
'emulation_major': 'emulationMajor',
|
||||
'emulation_minor': 'emulationMinor',
|
||||
'git_commit': 'gitCommit',
|
||||
'git_tree_state': 'gitTreeState',
|
||||
'git_version': 'gitVersion',
|
||||
'go_version': 'goVersion',
|
||||
'major': 'major',
|
||||
'min_compatibility_major': 'minCompatibilityMajor',
|
||||
'min_compatibility_minor': 'minCompatibilityMinor',
|
||||
'minor': 'minor',
|
||||
'platform': 'platform'
|
||||
}
|
||||
|
||||
def __init__(self, build_date='', compiler='', git_commit='', git_tree_state='', git_version='', go_version='', major='', minor='', platform='', local_vars_configuration=None): # noqa: E501
|
||||
def __init__(self, build_date='', compiler='', emulation_major=None, emulation_minor=None, git_commit='', git_tree_state='', git_version='', go_version='', major='', min_compatibility_major=None, min_compatibility_minor=None, minor='', platform='', local_vars_configuration=None): # noqa: E501
|
||||
"""K8sIoApimachineryPkgVersionInfo - a model defined in OpenAPI""" # noqa: E501
|
||||
if local_vars_configuration is None:
|
||||
local_vars_configuration = Configuration.get_default_copy()
|
||||
|
|
@ -64,22 +72,34 @@ class K8sIoApimachineryPkgVersionInfo(object):
|
|||
|
||||
self._build_date = None
|
||||
self._compiler = None
|
||||
self._emulation_major = None
|
||||
self._emulation_minor = None
|
||||
self._git_commit = None
|
||||
self._git_tree_state = None
|
||||
self._git_version = None
|
||||
self._go_version = None
|
||||
self._major = None
|
||||
self._min_compatibility_major = None
|
||||
self._min_compatibility_minor = None
|
||||
self._minor = None
|
||||
self._platform = None
|
||||
self.discriminator = None
|
||||
|
||||
self.build_date = build_date
|
||||
self.compiler = compiler
|
||||
if emulation_major is not None:
|
||||
self.emulation_major = emulation_major
|
||||
if emulation_minor is not None:
|
||||
self.emulation_minor = emulation_minor
|
||||
self.git_commit = git_commit
|
||||
self.git_tree_state = git_tree_state
|
||||
self.git_version = git_version
|
||||
self.go_version = go_version
|
||||
self.major = major
|
||||
if min_compatibility_major is not None:
|
||||
self.min_compatibility_major = min_compatibility_major
|
||||
if min_compatibility_minor is not None:
|
||||
self.min_compatibility_minor = min_compatibility_minor
|
||||
self.minor = minor
|
||||
self.platform = platform
|
||||
|
||||
|
|
@ -129,6 +149,52 @@ class K8sIoApimachineryPkgVersionInfo(object):
|
|||
|
||||
self._compiler = compiler
|
||||
|
||||
@property
|
||||
def emulation_major(self):
|
||||
"""Gets the emulation_major of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
|
||||
EmulationMajor is the major version of the emulation version # noqa: E501
|
||||
|
||||
:return: The emulation_major of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:rtype: str
|
||||
"""
|
||||
return self._emulation_major
|
||||
|
||||
@emulation_major.setter
|
||||
def emulation_major(self, emulation_major):
|
||||
"""Sets the emulation_major of this K8sIoApimachineryPkgVersionInfo.
|
||||
|
||||
EmulationMajor is the major version of the emulation version # noqa: E501
|
||||
|
||||
:param emulation_major: The emulation_major of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:type emulation_major: str
|
||||
"""
|
||||
|
||||
self._emulation_major = emulation_major
|
||||
|
||||
@property
|
||||
def emulation_minor(self):
|
||||
"""Gets the emulation_minor of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
|
||||
EmulationMinor is the minor version of the emulation version # noqa: E501
|
||||
|
||||
:return: The emulation_minor of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:rtype: str
|
||||
"""
|
||||
return self._emulation_minor
|
||||
|
||||
@emulation_minor.setter
|
||||
def emulation_minor(self, emulation_minor):
|
||||
"""Sets the emulation_minor of this K8sIoApimachineryPkgVersionInfo.
|
||||
|
||||
EmulationMinor is the minor version of the emulation version # noqa: E501
|
||||
|
||||
:param emulation_minor: The emulation_minor of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:type emulation_minor: str
|
||||
"""
|
||||
|
||||
self._emulation_minor = emulation_minor
|
||||
|
||||
@property
|
||||
def git_commit(self):
|
||||
"""Gets the git_commit of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
|
|
@ -225,6 +291,7 @@ class K8sIoApimachineryPkgVersionInfo(object):
|
|||
def major(self):
|
||||
"""Gets the major of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
|
||||
Major is the major version of the binary version # noqa: E501
|
||||
|
||||
:return: The major of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:rtype: str
|
||||
|
|
@ -235,6 +302,7 @@ class K8sIoApimachineryPkgVersionInfo(object):
|
|||
def major(self, major):
|
||||
"""Sets the major of this K8sIoApimachineryPkgVersionInfo.
|
||||
|
||||
Major is the major version of the binary version # noqa: E501
|
||||
|
||||
:param major: The major of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:type major: str
|
||||
|
|
@ -244,10 +312,57 @@ class K8sIoApimachineryPkgVersionInfo(object):
|
|||
|
||||
self._major = major
|
||||
|
||||
@property
|
||||
def min_compatibility_major(self):
|
||||
"""Gets the min_compatibility_major of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
|
||||
MinCompatibilityMajor is the major version of the minimum compatibility version # noqa: E501
|
||||
|
||||
:return: The min_compatibility_major of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:rtype: str
|
||||
"""
|
||||
return self._min_compatibility_major
|
||||
|
||||
@min_compatibility_major.setter
|
||||
def min_compatibility_major(self, min_compatibility_major):
|
||||
"""Sets the min_compatibility_major of this K8sIoApimachineryPkgVersionInfo.
|
||||
|
||||
MinCompatibilityMajor is the major version of the minimum compatibility version # noqa: E501
|
||||
|
||||
:param min_compatibility_major: The min_compatibility_major of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:type min_compatibility_major: str
|
||||
"""
|
||||
|
||||
self._min_compatibility_major = min_compatibility_major
|
||||
|
||||
@property
|
||||
def min_compatibility_minor(self):
|
||||
"""Gets the min_compatibility_minor of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
|
||||
MinCompatibilityMinor is the minor version of the minimum compatibility version # noqa: E501
|
||||
|
||||
:return: The min_compatibility_minor of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:rtype: str
|
||||
"""
|
||||
return self._min_compatibility_minor
|
||||
|
||||
@min_compatibility_minor.setter
|
||||
def min_compatibility_minor(self, min_compatibility_minor):
|
||||
"""Sets the min_compatibility_minor of this K8sIoApimachineryPkgVersionInfo.
|
||||
|
||||
MinCompatibilityMinor is the minor version of the minimum compatibility version # noqa: E501
|
||||
|
||||
:param min_compatibility_minor: The min_compatibility_minor of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:type min_compatibility_minor: str
|
||||
"""
|
||||
|
||||
self._min_compatibility_minor = min_compatibility_minor
|
||||
|
||||
@property
|
||||
def minor(self):
|
||||
"""Gets the minor of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
|
||||
Minor is the minor version of the binary version # noqa: E501
|
||||
|
||||
:return: The minor of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:rtype: str
|
||||
|
|
@ -258,6 +373,7 @@ class K8sIoApimachineryPkgVersionInfo(object):
|
|||
def minor(self, minor):
|
||||
"""Sets the minor of this K8sIoApimachineryPkgVersionInfo.
|
||||
|
||||
Minor is the minor version of the binary version # noqa: E501
|
||||
|
||||
:param minor: The minor of this K8sIoApimachineryPkgVersionInfo. # noqa: E501
|
||||
:type minor: str
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ const (
|
|||
envVolcanoSchedulerVersion = "VOLCANO_SCHEDULER_VERSION"
|
||||
|
||||
defaultMPIOperatorImage = "mpioperator/mpi-operator:local"
|
||||
defaultKindImage = "kindest/node:v1.32.5"
|
||||
defaultKindImage = "kindest/node:v1.33.4"
|
||||
defaultOpenMPIImage = "mpioperator/mpi-pi:openmpi"
|
||||
defaultIntelMPIImage = "mpioperator/mpi-pi:intel"
|
||||
defaultMPICHImage = "mpioperator/mpi-pi:mpich"
|
||||
|
|
|
|||
|
|
@ -938,6 +938,7 @@ func startController(
|
|||
}
|
||||
}
|
||||
ctrl, err := controller.NewMPIJobController(
|
||||
ctx,
|
||||
kClient,
|
||||
mpiClient,
|
||||
volcanoClient,
|
||||
|
|
|
|||
Loading…
Reference in New Issue