Skip to content

Commit 04c0a95

Browse files
committed
Refactor README and Makefile
Signed-off-by: Andrey Velichkevich <[email protected]>
1 parent e7414ba commit 04c0a95

File tree

6 files changed

+79
-204
lines changed

6 files changed

+79
-204
lines changed

Makefile

Lines changed: 50 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
# Image URL to use all building/pushing image targets
2-
IMG ?= kubeflow/training-operator:latest
3-
# CRD generation options
4-
CRD_OPTIONS ?= "crd:generateEmbeddedObjectMeta=true,maxDescLen=400"
5-
61
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
72
ifeq (,$(shell go env GOBIN))
83
GOBIN=$(shell go env GOPATH)/bin
@@ -16,8 +11,6 @@ endif
1611
SHELL = /usr/bin/env bash -o pipefail
1712
.SHELLFLAGS = -ec
1813

19-
all: build
20-
2114
##@ General
2215

2316
# The help target prints out all targets with their descriptions organized
@@ -36,108 +29,78 @@ help: ## Display this help.
3629

3730
##@ Development
3831

32+
PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
33+
34+
35+
## Tool Binaries
36+
LOCALBIN ?= $(PROJECT_DIR)/bin
37+
CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen
38+
ENVTEST ?= $(LOCALBIN)/setup-envtest
39+
40+
ENVTEST_K8S_VERSION ?= 1.31
41+
42+
.PHONY: envtest
43+
envtest: ## Download the setup-envtest binary if required.
44+
test -s $(ENVTEST) || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-runtime/tools/[email protected]
45+
46+
.PHONY: controller-gen
47+
controller-gen: ## Download the controller-gen binary if required.
48+
test -s $(CONTROLLER_GEN) || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-tools/cmd/[email protected]
49+
50+
# Download external CRDs for the integration testings.
51+
EXTERNAL_CRDS_DIR ?= $(PROJECT_DIR)/manifests/external-crds
52+
53+
JOBSET_ROOT = $(shell go list -m -mod=readonly -f "{{.Dir}}" sigs.k8s.io/jobset)
54+
.PHONY: jobset-operator-crd
55+
jobset-operator-crd: ## Copy the CRDs from the JobSet repository to the manifests/external-crds directory.
56+
mkdir -p $(EXTERNAL_CRDS_DIR)/jobset-operator/
57+
cp -f $(JOBSET_ROOT)/config/components/crd/bases/* $(EXTERNAL_CRDS_DIR)/jobset-operator/
58+
59+
SCHEDULER_PLUGINS_ROOT = $(shell go list -m -f "{{.Dir}}" sigs.k8s.io/scheduler-plugins)
60+
.PHONY: scheduler-plugins-crd
61+
scheduler-plugins-crd: ## Copy the CRDs from the Scheduler Plugins repository to the manifests/external-crds directory.
62+
mkdir -p $(EXTERNAL_CRDS_DIR)/scheduler-plugins/
63+
cp -f $(SCHEDULER_PLUGINS_ROOT)/manifests/coscheduling/* $(EXTERNAL_CRDS_DIR)/scheduler-plugins
64+
65+
.PHONY: manifests
3966
manifests: controller-gen ## Generate manifests.
4067
$(CONTROLLER_GEN) "crd:generateEmbeddedObjectMeta=true" rbac:roleName=training-operator-v2 webhook \
4168
paths="./pkg/apis/kubeflow.org/v2alpha1/...;./pkg/controller.v2/...;./pkg/runtime.v2/...;./pkg/webhooks.v2/...;./pkg/cert/..." \
4269
output:crd:artifacts:config=manifests/v2/base/crds \
4370
output:rbac:artifacts:config=manifests/v2/base/rbac \
4471
output:webhook:artifacts:config=manifests/v2/base/webhook
4572

73+
.PHONY: generate
4674
generate: go-mod-download manifests ## Generate APIs and SDK.
4775
$(CONTROLLER_GEN) object:headerFile="hack/boilerplate/boilerplate.go.txt" paths="./pkg/apis/..."
4876
hack/update-codegen.sh
4977
hack/python-sdk-v2/gen-sdk.sh
5078

51-
fmt: ## Run go fmt against code.
79+
.PHONY: go-mod-download
80+
go-mod-download: ## Run go mod download to download modules.
81+
go mod download
82+
83+
.PHONY: fmt
84+
fmt: ## Run go fmt against the code.
5285
go fmt ./...
5386

54-
vet: ## Run go vet against code.
87+
.PHONY: vet
88+
vet: ## Run go vet against the code.
5589
go vet ./...
5690

5791
GOLANGCI_LINT=$(shell which golangci-lint)
58-
golangci-lint:
92+
.PHONY: golangci-lint
93+
golangci-lint: ## Run golangci-lint to verify Go files.
5994
ifeq ($(GOLANGCI_LINT),)
6095
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(shell go env GOPATH)/bin v1.61.0
6196
$(info golangci-lint has been installed)
6297
endif
6398
golangci-lint run --timeout 5m --go 1.23 ./...
6499

65-
ENVTEST_K8S_VERSION ?= 1.31
66-
HAS_SETUP_ENVTEST := $(shell command -v setup-envtest;)
67-
68-
testall: manifests generate fmt vet golangci-lint test ## Run tests.
69-
70-
test: envtest
71-
KUBEBUILDER_ASSETS="$(shell setup-envtest use $(ENVTEST_K8S_VERSION) -p path)" \
72-
go test ./pkg/apis/kubeflow.org/v1/... ./pkg/cert/... ./pkg/common/... ./pkg/config/... ./pkg/controller.v1/... ./pkg/core/... ./pkg/util/... ./pkg/webhooks/... -coverprofile cover.out
73-
74-
.PHONY: test-integrationv2
75-
test-integrationv2: envtest jobset-operator-crd scheduler-plugins-crd
76-
KUBEBUILDER_ASSETS="$(shell setup-envtest use $(ENVTEST_K8S_VERSION) -p path)" go test ./test/... -coverprofile cover.out
77-
78-
.PHONY: testv2
79-
testv2:
100+
.PHONY: test
101+
test: ## Run Go unit test.
80102
go test ./pkg/apis/kubeflow.org/v2alpha1/... ./pkg/controller.v2/... ./pkg/runtime.v2/... ./pkg/webhooks.v2/... ./pkg/util.v2/... -coverprofile cover.out
81103

82-
envtest:
83-
ifndef HAS_SETUP_ENVTEST
84-
go install sigs.k8s.io/controller-runtime/tools/[email protected]
85-
@echo "setup-envtest has been installed"
86-
endif
87-
@echo "setup-envtest has already installed"
88-
89-
build: generate fmt vet ## Build manager binary.
90-
go build -o bin/manager cmd/training-operator.v1/main.go
91-
92-
run: manifests generate fmt vet ## Run a controller from your host.
93-
go run ./cmd/training-operator.v1/main.go
94-
95-
docker-build: test ## Build docker image with the manager.
96-
docker build -t ${IMG} -f build/images/training-operator/Dockerfile .
97-
98-
docker-push: ## Push docker image with the manager.
99-
docker push ${IMG}
100-
101-
##@ Deployment
102-
103-
install: manifests kustomize ## Install CRDs into the K8s cluster specified in ~/.kube/config.
104-
$(KUSTOMIZE) build manifests/base/crds | kubectl apply --server-side -f -
105-
106-
uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified in ~/.kube/config.
107-
$(KUSTOMIZE) build manifests/base/crds | kubectl delete -f -
108-
109-
deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config.
110-
cd manifests/overlays/standalone && $(KUSTOMIZE) edit set image kubeflow/training-operator=${IMG}
111-
$(KUSTOMIZE) build manifests/overlays/standalone | kubectl apply -f -
112-
113-
undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/config.
114-
$(KUSTOMIZE) build manifests/overlays/standalone | kubectl delete -f -
115-
116-
PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
117-
118-
.PHONY: go-mod-download
119-
go-mod-download:
120-
go mod download
121-
122-
CONTROLLER_GEN = $(shell pwd)/bin/controller-gen
123-
controller-gen: ## Download controller-gen locally if necessary.
124-
GOBIN=$(PROJECT_DIR)/bin go install sigs.k8s.io/controller-tools/cmd/[email protected]
125-
126-
KUSTOMIZE = $(shell pwd)/bin/kustomize
127-
kustomize: ## Download kustomize locally if necessary.
128-
GOBIN=$(PROJECT_DIR)/bin go install sigs.k8s.io/kustomize/kustomize/[email protected]
129-
130-
## Download external CRDs for the integration testings.
131-
EXTERNAL_CRDS_DIR ?= $(PROJECT_DIR)/manifests/external-crds
132-
133-
JOBSET_ROOT = $(shell go list -m -mod=readonly -f "{{.Dir}}" sigs.k8s.io/jobset)
134-
.PHONY: jobset-operator-crd
135-
jobset-operator-crd: ## Copy the CRDs from the jobset-operator to the manifests/external-crds directory.
136-
mkdir -p $(EXTERNAL_CRDS_DIR)/jobset-operator/
137-
cp -f $(JOBSET_ROOT)/config/components/crd/bases/* $(EXTERNAL_CRDS_DIR)/jobset-operator/
138-
139-
SCHEDULER_PLUGINS_ROOT = $(shell go list -m -f "{{.Dir}}" sigs.k8s.io/scheduler-plugins)
140-
.PHONY: scheduler-plugins-crd
141-
scheduler-plugins-crd:
142-
mkdir -p $(EXTERNAL_CRDS_DIR)/scheduler-plugins/
143-
cp -f $(SCHEDULER_PLUGINS_ROOT)/manifests/coscheduling/* $(EXTERNAL_CRDS_DIR)/scheduler-plugins
104+
.PHONY: test-integration
105+
test-integration: envtest jobset-operator-crd scheduler-plugins-crd ## Run Go integration test.
106+
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) -p path)" go test ./test/... -coverprofile cover.out

README.md

Lines changed: 25 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,62 @@
1-
# Kubeflow Training Operator
1+
# Kubeflow Trainer
22

33
[![Build Status](https://github.com/kubeflow/training-operator/actions/workflows/test-go.yaml/badge.svg?branch=master)](https://github.com/kubeflow/training-operator/actions/workflows/test-go.yaml?branch=master)
44
[![Coverage Status](https://coveralls.io/repos/github/kubeflow/training-operator/badge.svg?branch=master)](https://coveralls.io/github/kubeflow/training-operator?branch=master)
55
[![Go Report Card](https://goreportcard.com/badge/github.com/kubeflow/training-operator)](https://goreportcard.com/report/github.com/kubeflow/training-operator)
66

7-
## Overview
8-
9-
Kubeflow Training Operator is a Kubernetes-native project for fine-tuning and
10-
scalable distributed training of machine learning (ML) models created with various ML frameworks
11-
such as PyTorch, TensorFlow, HuggingFace, [JAX](https://jax.readthedocs.io/en/latest/), DeepSpeed, XGBoost, PaddlePaddle and others.
12-
13-
You can run high-performance computing (HPC) tasks with the Training Operator and `MPIJob` since it
14-
supports running Message Passing Interface (MPI) on Kubernetes which is heavily used for HPC.
15-
The Training Operator implements the V1 API version of MPI Operator. For the MPI Operator V2 version,
16-
please follow [this guide](https://www.kubeflow.org/docs/components/training/user-guides/mpi/) to
17-
install MPI Operator V2.
18-
19-
The Training Operator allows you to use Kubernetes workloads to effectively train your large models
20-
via [Kubernetes Custom Resources APIs](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)
21-
or using the Training Operator Python SDK.
22-
23-
## Prerequisites
24-
25-
Please check [the official Kubeflow documentation](https://www.kubeflow.org/docs/components/training/installation/#prerequisites)
26-
for prerequisites to install the Training Operator.
27-
28-
## Installation
29-
30-
Please follow [the Kubeflow Training Operator guide](https://www.kubeflow.org/docs/components/training/installation/#installing-the-training-operator)
31-
for the detailed instructions on how to install Training Operator.
32-
33-
### Installing the Control Plane
7+
TODO (andreyvelich): Add logo
348

35-
Run the following command to install the latest stable release of the Training Operator control plane: `v1.8.0`.
9+
TODO (andreyvelich): Add diagram
3610

37-
```bash
38-
kubectl apply --server-side -k "github.com/kubeflow/training-operator.git/manifests/overlays/standalone?ref=v1.8.0"
39-
```
11+
## Overview
4012

41-
Run the following command to install the latest changes of the Training Operator control plane:
13+
Kubeflow Trainer is a Kubernetes-native project designed for large language models (LLMs)
14+
fine-tuning and enabling scalable, distributed training of machine learning (ML) models across
15+
various frameworks, including PyTorch, JAX, TensorFlow, and others.
4216

43-
```bash
44-
kubectl apply --server-side -k "github.com/kubeflow/training-operator/manifests/overlays/standalone"
45-
```
17+
You can integrate other ML libraries such as [HuggingFace](https://huggingface.co),
18+
[DeepSpeed](https://github.com/microsoft/DeepSpeed), or [Megatron-LM](https://github.com/NVIDIA/Megatron-LM)
19+
with Kubeflow Training to orchestrate their ML training on Kubernetes.
4620

47-
### Installing the Python SDK
21+
Kubeflow Trainer allows you effortlessly develop your LLMs with the Kubeflow Python SDK and
22+
build Kubernetes-native Training Runtimes with Kubernetes Custom Resources APIs.
4823

49-
The Training Operator [implements a Python SDK](https://pypi.org/project/kubeflow-training/)
50-
to simplify creation of distributed training and fine-tuning jobs for Data Scientists.
24+
## Kubeflow Trainer Introduction
5125

52-
Run the following command to install the latest stable release of the Training SDK:
26+
The following KubeCon + CloudNativeCon 2024 talk provides an overview of Kubeflow Trainer capabilities:
5327

54-
```
55-
pip install -U kubeflow-training
56-
```
28+
[![Kubeflow Trainer](https://img.youtube.com/vi/Lgy4ir1AhYw/0.jpg)](https://www.youtube.com/watch?v=Lgy4ir1AhYw)
5729

5830
## Getting Started
5931

60-
Please refer to [the getting started guide](https://www.kubeflow.org/docs/components/training/getting-started/#getting-started-with-pytorchjob)
61-
to quickly create your first distributed training job using the Python SDK.
62-
63-
If you want to work directly with Kubernetes Custom Resources provided by Training Operator,
64-
follow [the PyTorchJob MNIST guide](https://www.kubeflow.org/docs/components/training/pytorch/#creating-a-pytorch-training-job).
32+
Please check [the official Kubeflow documentation](https://www.kubeflow.org/docs/components/training/getting-started)
33+
to install and get started with Kubeflow Trainer.
6534

6635
## Community
6736

6837
The following links provide information on how to get involved in the community:
6938

70-
- Attend [the bi-weekly AutoML and Training Working Group](https://bit.ly/2PWVCkV) community meeting.
7139
- Join our [`#kubeflow-training` Slack channel](https://www.kubeflow.org/docs/about/community/#kubeflow-slack).
40+
- Attend [the bi-weekly AutoML and Training Working Group](https://bit.ly/2PWVCkV) community meeting.
7241
- Check out [who is using the Training Operator](ADOPTERS.md).
7342

74-
This is a part of Kubeflow, so please see [readme in kubeflow/kubeflow](https://github.com/kubeflow/kubeflow#get-involved) to get in touch with the community.
75-
7643
## Contributing
7744

7845
Please refer to the [CONTRIBUTING guide](CONTRIBUTING.md).
7946

80-
## Change Log
47+
## Changelog
8148

8249
Please refer to the [CHANGELOG](CHANGELOG.md).
8350

84-
## Version Matrix
85-
86-
The following table lists the most recent few versions of the operator.
87-
88-
| Operator Version | API Version | Kubernetes Version |
89-
| ---------------------- | ----------- | ------------------ |
90-
| `v1.4.x` | `v1` | 1.23+ |
91-
| `v1.5.x` | `v1` | 1.23+ |
92-
| `v1.6.x` | `v1` | 1.23+ |
93-
| `v1.7.x` | `v1` | 1.25+ |
94-
| `v1.8.x` | `v1` | 1.27+ |
95-
| `latest` (master HEAD) | `v1` | 1.27+ |
96-
97-
## Reference
51+
## Kubeflow Training Operator V1
9852

99-
For a complete reference of the custom resource definitions, please refer to the API Definition.
53+
Kubeflow Trainer project is currently in <strong>alpha</strong> status, and APIs may change.
54+
If you are using Kubeflow Training Operator V1, please refer [to this migration document](/docs/components/training/operator-guides/migration).
10055

101-
- [TensorFlow API Definition](pkg/apis/kubeflow.org/v1/tensorflow_types.go)
102-
- [PyTorch API Definition](pkg/apis/kubeflow.org/v1/pytorch_types.go)
103-
- [XGBoost API Definition](pkg/apis/kubeflow.org/v1/xgboost_types.go)
104-
- [MPI API Definition](pkg/apis/kubeflow.org/v1/mpi_types.go)
105-
- [PaddlePaddle API Definition](pkg/apis/kubeflow.org/v1/paddlepaddle_types.go)
106-
- [JAX API Definition](pkg/apis/kubeflow.org/v1/jax_types.go)
56+
Kubeflow Community will maintain the Training Operator V1 source code at
57+
[the `release-1.9` branch](https://github.com/kubeflow/training-operator/tree/release-1.9).
10758

108-
For details on the Training Operator custom resources APIs, refer to
109-
[the following API documentation](docs/api/kubeflow.org_v1_generated.asciidoc)
59+
You can find the documentation for Kubeflow Training V1 in [these guides](https://www.kubeflow.org/docs/components/training/legacy-v1).
11060

11161
## Acknowledgement
11262

generate

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
test

go.mod

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@ require (
88
github.com/onsi/ginkgo/v2 v2.20.1
99
github.com/onsi/gomega v1.35.1
1010
github.com/open-policy-agent/cert-controller v0.12.0
11-
github.com/prometheus/client_golang v1.20.2
12-
github.com/sirupsen/logrus v1.9.3
13-
github.com/stretchr/testify v1.9.0
1411
go.uber.org/zap v1.27.0
1512
k8s.io/api v0.31.3
1613
k8s.io/apimachinery v0.31.3
@@ -24,8 +21,6 @@ require (
2421
sigs.k8s.io/kueue v0.6.3
2522
sigs.k8s.io/scheduler-plugins v0.28.9
2623
sigs.k8s.io/structured-merge-diff/v4 v4.4.1
27-
sigs.k8s.io/yaml v1.4.0
28-
volcano.sh/apis v1.9.0
2924
)
3025

3126
require (
@@ -58,7 +53,7 @@ require (
5853
github.com/modern-go/reflect2 v1.0.2 // indirect
5954
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
6055
github.com/pkg/errors v0.9.1 // indirect
61-
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
56+
github.com/prometheus/client_golang v1.20.2 // indirect
6257
github.com/prometheus/client_model v0.6.1 // indirect
6358
github.com/prometheus/common v0.55.0 // indirect
6459
github.com/prometheus/procfs v0.15.1 // indirect
@@ -85,4 +80,5 @@ require (
8580
k8s.io/apiextensions-apiserver v0.31.2 // indirect
8681
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect
8782
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
83+
sigs.k8s.io/yaml v1.4.0 // indirect
8884
)

go.sum

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,10 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg
9494
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
9595
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
9696
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
97-
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
98-
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
9997
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
10098
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
10199
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
102100
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
103-
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
104101
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
105102
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
106103
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
@@ -140,7 +137,6 @@ golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
140137
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
141138
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
142139
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
143-
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
144140
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
145141
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
146142
golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24=
@@ -175,7 +171,6 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
175171
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
176172
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
177173
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
178-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
179174
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
180175
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
181176
k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8=
@@ -212,5 +207,3 @@ sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+s
212207
sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
213208
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
214209
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
215-
volcano.sh/apis v1.9.0 h1:e+9yEbQOi6HvgaayAxYULT6n+59mkYvmqjKhp9Z06sY=
216-
volcano.sh/apis v1.9.0/go.mod h1:yXNfsZRzAOq6EUyPJYFrlMorh1XsYQGonGWyr4IiznM=

0 commit comments

Comments
 (0)