diff --git a/pkg/scheduler/BUILD b/pkg/scheduler/BUILD index 5d48770e5d4..d794f0d1934 100644 --- a/pkg/scheduler/BUILD +++ b/pkg/scheduler/BUILD @@ -64,7 +64,6 @@ go_test( "//pkg/features:go_default_library", "//pkg/scheduler/apis/config:go_default_library", "//pkg/scheduler/apis/config/scheme:go_default_library", - "//pkg/scheduler/apis/extender/v1:go_default_library", "//pkg/scheduler/core:go_default_library", "//pkg/scheduler/framework/plugins:go_default_library", "//pkg/scheduler/framework/plugins/defaultbinder:go_default_library", @@ -102,6 +101,7 @@ go_test( "//staging/src/k8s.io/client-go/testing:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//staging/src/k8s.io/client-go/tools/events:go_default_library", + "//staging/src/k8s.io/kube-scheduler/extender/v1:go_default_library", "//vendor/github.com/google/go-cmp/cmp:go_default_library", ], ) @@ -119,7 +119,6 @@ filegroup( ":package-srcs", "//pkg/scheduler/algorithmprovider:all-srcs", "//pkg/scheduler/apis/config:all-srcs", - "//pkg/scheduler/apis/extender/v1:all-srcs", "//pkg/scheduler/core:all-srcs", "//pkg/scheduler/framework:all-srcs", "//pkg/scheduler/internal/cache:all-srcs", diff --git a/pkg/scheduler/core/BUILD b/pkg/scheduler/core/BUILD index 6121b3f0e30..51e543bdc29 100644 --- a/pkg/scheduler/core/BUILD +++ b/pkg/scheduler/core/BUILD @@ -11,7 +11,6 @@ go_library( deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/scheduler/apis/config:go_default_library", - "//pkg/scheduler/apis/extender/v1:go_default_library", "//pkg/scheduler/framework/v1alpha1:go_default_library", "//pkg/scheduler/internal/cache:go_default_library", "//pkg/scheduler/internal/queue:go_default_library", @@ -30,6 +29,7 @@ go_library( "//staging/src/k8s.io/client-go/listers/policy/v1beta1:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", "//staging/src/k8s.io/client-go/util/workqueue:go_default_library", + "//staging/src/k8s.io/kube-scheduler/extender/v1:go_default_library", "//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/utils/trace:go_default_library", ], @@ -45,7 +45,6 @@ go_test( deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/scheduler/apis/config:go_default_library", - "//pkg/scheduler/apis/extender/v1:go_default_library", "//pkg/scheduler/framework/plugins/defaultbinder:go_default_library", "//pkg/scheduler/framework/plugins/defaultpodtopologyspread:go_default_library", "//pkg/scheduler/framework/plugins/interpodaffinity:go_default_library", @@ -79,6 +78,7 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library", + "//staging/src/k8s.io/kube-scheduler/extender/v1:go_default_library", ], ) diff --git a/pkg/scheduler/core/extender.go b/pkg/scheduler/core/extender.go index 11d33a7d04b..2bcbb990c2d 100644 --- a/pkg/scheduler/core/extender.go +++ b/pkg/scheduler/core/extender.go @@ -28,8 +28,8 @@ import ( utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/sets" restclient "k8s.io/client-go/rest" + extenderv1 "k8s.io/kube-scheduler/extender/v1" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" - extenderv1 "k8s.io/kubernetes/pkg/scheduler/apis/extender/v1" "k8s.io/kubernetes/pkg/scheduler/listers" schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo" ) diff --git a/pkg/scheduler/core/extender_test.go b/pkg/scheduler/core/extender_test.go index 2d3b64295d5..035102cb536 100644 --- a/pkg/scheduler/core/extender_test.go +++ b/pkg/scheduler/core/extender_test.go @@ -32,9 +32,9 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/informers" clientsetfake "k8s.io/client-go/kubernetes/fake" + extenderv1 "k8s.io/kube-scheduler/extender/v1" podutil "k8s.io/kubernetes/pkg/api/v1/pod" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" - extenderv1 "k8s.io/kubernetes/pkg/scheduler/apis/extender/v1" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/queuesort" framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1" diff --git a/pkg/scheduler/core/generic_scheduler.go b/pkg/scheduler/core/generic_scheduler.go index 8a6acce0eb6..cbd76275740 100644 --- a/pkg/scheduler/core/generic_scheduler.go +++ b/pkg/scheduler/core/generic_scheduler.go @@ -36,8 +36,8 @@ import ( corelisters "k8s.io/client-go/listers/core/v1" policylisters "k8s.io/client-go/listers/policy/v1beta1" "k8s.io/client-go/util/workqueue" + extenderv1 "k8s.io/kube-scheduler/extender/v1" podutil "k8s.io/kubernetes/pkg/api/v1/pod" - extenderv1 "k8s.io/kubernetes/pkg/scheduler/apis/extender/v1" framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1" internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache" internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" diff --git a/pkg/scheduler/core/generic_scheduler_test.go b/pkg/scheduler/core/generic_scheduler_test.go index 5aad5b1cac6..a91766efd87 100644 --- a/pkg/scheduler/core/generic_scheduler_test.go +++ b/pkg/scheduler/core/generic_scheduler_test.go @@ -37,8 +37,8 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/informers" clientsetfake "k8s.io/client-go/kubernetes/fake" + extenderv1 "k8s.io/kube-scheduler/extender/v1" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" - extenderv1 "k8s.io/kubernetes/pkg/scheduler/apis/extender/v1" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpodtopologyspread" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity" diff --git a/pkg/scheduler/factory_test.go b/pkg/scheduler/factory_test.go index b702e798345..1c6498a8f51 100644 --- a/pkg/scheduler/factory_test.go +++ b/pkg/scheduler/factory_test.go @@ -36,11 +36,11 @@ import ( clienttesting "k8s.io/client-go/testing" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/events" + extenderv1 "k8s.io/kube-scheduler/extender/v1" apitesting "k8s.io/kubernetes/pkg/api/testing" kubefeatures "k8s.io/kubernetes/pkg/features" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" "k8s.io/kubernetes/pkg/scheduler/apis/config/scheme" - extenderv1 "k8s.io/kubernetes/pkg/scheduler/apis/extender/v1" frameworkplugins "k8s.io/kubernetes/pkg/scheduler/framework/plugins" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity" diff --git a/pkg/scheduler/util/BUILD b/pkg/scheduler/util/BUILD index 7270ca8f316..857710883e1 100644 --- a/pkg/scheduler/util/BUILD +++ b/pkg/scheduler/util/BUILD @@ -16,13 +16,13 @@ go_test( ], embed = [":go_default_library"], deps = [ - "//pkg/scheduler/apis/extender/v1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/selection:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//staging/src/k8s.io/kube-scheduler/extender/v1:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", ], ) @@ -40,11 +40,11 @@ go_library( deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/apis/core/v1/helper:go_default_library", - "//pkg/scheduler/apis/extender/v1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//staging/src/k8s.io/kube-scheduler/extender/v1:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], ) diff --git a/pkg/scheduler/util/utils.go b/pkg/scheduler/util/utils.go index f46b0c0746a..77cd9a0da22 100644 --- a/pkg/scheduler/util/utils.go +++ b/pkg/scheduler/util/utils.go @@ -22,8 +22,8 @@ import ( v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/klog" + extenderv1 "k8s.io/kube-scheduler/extender/v1" podutil "k8s.io/kubernetes/pkg/api/v1/pod" - extenderv1 "k8s.io/kubernetes/pkg/scheduler/apis/extender/v1" ) // GetPodFullName returns a name that uniquely identifies a pod. diff --git a/pkg/scheduler/util/utils_test.go b/pkg/scheduler/util/utils_test.go index 4c8361d0ada..4c1467da558 100644 --- a/pkg/scheduler/util/utils_test.go +++ b/pkg/scheduler/util/utils_test.go @@ -23,7 +23,7 @@ import ( v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - extenderv1 "k8s.io/kubernetes/pkg/scheduler/apis/extender/v1" + extenderv1 "k8s.io/kube-scheduler/extender/v1" ) func TestGetPodFullName(t *testing.T) { diff --git a/staging/publishing/import-restrictions.yaml b/staging/publishing/import-restrictions.yaml index ac4776f367c..4422f5f06bb 100644 --- a/staging/publishing/import-restrictions.yaml +++ b/staging/publishing/import-restrictions.yaml @@ -194,6 +194,7 @@ - baseImportPath: "./vendor/k8s.io/kube-scheduler/" allowedImports: + - k8s.io/api - k8s.io/apimachinery - k8s.io/component-base - k8s.io/klog diff --git a/staging/src/k8s.io/kube-scheduler/BUILD b/staging/src/k8s.io/kube-scheduler/BUILD index 916422f7f77..60f5cf5da45 100644 --- a/staging/src/k8s.io/kube-scheduler/BUILD +++ b/staging/src/k8s.io/kube-scheduler/BUILD @@ -12,6 +12,7 @@ filegroup( "//staging/src/k8s.io/kube-scheduler/config/v1:all-srcs", "//staging/src/k8s.io/kube-scheduler/config/v1alpha1:all-srcs", "//staging/src/k8s.io/kube-scheduler/config/v1alpha2:all-srcs", + "//staging/src/k8s.io/kube-scheduler/extender/v1:all-srcs", ], tags = ["automanaged"], visibility = ["//visibility:public"], diff --git a/staging/src/k8s.io/kube-scheduler/extender/OWNERS b/staging/src/k8s.io/kube-scheduler/extender/OWNERS new file mode 100644 index 00000000000..7fbfadd4f4a --- /dev/null +++ b/staging/src/k8s.io/kube-scheduler/extender/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# Disable inheritance as this is an api owners file +options: + no_parent_owners: true +approvers: +- api-approvers +reviewers: +- api-reviewers +- sig-scheduling +labels: +- kind/api-change +- sig/scheduling diff --git a/pkg/scheduler/apis/extender/v1/BUILD b/staging/src/k8s.io/kube-scheduler/extender/v1/BUILD similarity index 50% rename from pkg/scheduler/apis/extender/v1/BUILD rename to staging/src/k8s.io/kube-scheduler/extender/v1/BUILD index a4d7ca21ba5..dd3ce8195cd 100644 --- a/pkg/scheduler/apis/extender/v1/BUILD +++ b/staging/src/k8s.io/kube-scheduler/extender/v1/BUILD @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", @@ -7,7 +7,8 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - importpath = "k8s.io/kubernetes/pkg/scheduler/apis/extender/v1", + importmap = "k8s.io/kubernetes/vendor/k8s.io/kube-scheduler/extender/v1", + importpath = "k8s.io/kube-scheduler/extender/v1", visibility = ["//visibility:public"], deps = [ "//staging/src/k8s.io/api/core/v1:go_default_library", @@ -28,3 +29,15 @@ filegroup( tags = ["automanaged"], visibility = ["//visibility:public"], ) + +go_test( + name = "go_default_test", + srcs = ["types_test.go"], + embed = [":go_default_library"], + deps = [ + "//staging/src/k8s.io/api/core/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/github.com/google/go-cmp/cmp:go_default_library", + ], +) diff --git a/pkg/scheduler/apis/extender/v1/doc.go b/staging/src/k8s.io/kube-scheduler/extender/v1/doc.go similarity index 89% rename from pkg/scheduler/apis/extender/v1/doc.go rename to staging/src/k8s.io/kube-scheduler/extender/v1/doc.go index 856d4c628d2..202572083ac 100644 --- a/pkg/scheduler/apis/extender/v1/doc.go +++ b/staging/src/k8s.io/kube-scheduler/extender/v1/doc.go @@ -17,4 +17,4 @@ limitations under the License. // +k8s:deepcopy-gen=package // Package v1 contains scheduler API objects. -package v1 // import "k8s.io/kubernetes/pkg/scheduler/apis/extender/v1" +package v1 // import "k8s.io/kube-scheduler/extender/v1" diff --git a/pkg/scheduler/apis/extender/v1/types.go b/staging/src/k8s.io/kube-scheduler/extender/v1/types.go similarity index 100% rename from pkg/scheduler/apis/extender/v1/types.go rename to staging/src/k8s.io/kube-scheduler/extender/v1/types.go diff --git a/staging/src/k8s.io/kube-scheduler/extender/v1/types_test.go b/staging/src/k8s.io/kube-scheduler/extender/v1/types_test.go new file mode 100644 index 00000000000..201a1b54d96 --- /dev/null +++ b/staging/src/k8s.io/kube-scheduler/extender/v1/types_test.go @@ -0,0 +1,116 @@ +/* +Copyright 2020 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1 + +import ( + "encoding/json" + "reflect" + "strings" + "testing" + + "github.com/google/go-cmp/cmp" + + corev1 "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" +) + +// TestCompatibility verifies that the types in extender/v1 can be successfully encoded to json and decoded back, even when lowercased, +// since these types were written around JSON tags and we need to enforce consistency on them now. +// @TODO(88634): v2 of these types should be defined with proper JSON tags to enforce field casing to a single approach +func TestCompatibility(t *testing.T) { + testcases := []struct { + emptyObj interface{} + obj interface{} + expectJSON string + }{ + { + emptyObj: &ExtenderPreemptionResult{}, + obj: &ExtenderPreemptionResult{ + NodeNameToMetaVictims: map[string]*MetaVictims{"foo": {Pods: []*MetaPod{{UID: "myuid"}}, NumPDBViolations: 1}}, + }, + expectJSON: `{"NodeNameToMetaVictims":{"foo":{"Pods":[{"UID":"myuid"}],"NumPDBViolations":1}}}`, + }, + { + emptyObj: &ExtenderPreemptionArgs{}, + obj: &ExtenderPreemptionArgs{ + Pod: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "podname"}}, + NodeNameToVictims: map[string]*Victims{"foo": {Pods: []*v1.Pod{&corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "podname"}}}, NumPDBViolations: 1}}, + NodeNameToMetaVictims: map[string]*MetaVictims{"foo": {Pods: []*MetaPod{{UID: "myuid"}}, NumPDBViolations: 1}}, + }, + expectJSON: `{"Pod":{"metadata":{"name":"podname","creationTimestamp":null},"spec":{"containers":null},"status":{}},"NodeNameToVictims":{"foo":{"Pods":[{"metadata":{"name":"podname","creationTimestamp":null},"spec":{"containers":null},"status":{}}],"NumPDBViolations":1}},"NodeNameToMetaVictims":{"foo":{"Pods":[{"UID":"myuid"}],"NumPDBViolations":1}}}`, + }, + { + emptyObj: &ExtenderArgs{}, + obj: &ExtenderArgs{ + Pod: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "podname"}}, + Nodes: &corev1.NodeList{Items: []corev1.Node{{ObjectMeta: metav1.ObjectMeta{Name: "nodename"}}}}, + NodeNames: &[]string{"node1"}, + }, + expectJSON: `{"Pod":{"metadata":{"name":"podname","creationTimestamp":null},"spec":{"containers":null},"status":{}},"Nodes":{"metadata":{},"items":[{"metadata":{"name":"nodename","creationTimestamp":null},"spec":{},"status":{"daemonEndpoints":{"kubeletEndpoint":{"Port":0}},"nodeInfo":{"machineID":"","systemUUID":"","bootID":"","kernelVersion":"","osImage":"","containerRuntimeVersion":"","kubeletVersion":"","kubeProxyVersion":"","operatingSystem":"","architecture":""}}}]},"NodeNames":["node1"]}`, + }, + { + emptyObj: &ExtenderFilterResult{}, + obj: &ExtenderFilterResult{ + Nodes: &corev1.NodeList{Items: []corev1.Node{{ObjectMeta: metav1.ObjectMeta{Name: "nodename"}}}}, + NodeNames: &[]string{"node1"}, + FailedNodes: FailedNodesMap{"foo": "bar"}, + Error: "myerror", + }, + expectJSON: `{"Nodes":{"metadata":{},"items":[{"metadata":{"name":"nodename","creationTimestamp":null},"spec":{},"status":{"daemonEndpoints":{"kubeletEndpoint":{"Port":0}},"nodeInfo":{"machineID":"","systemUUID":"","bootID":"","kernelVersion":"","osImage":"","containerRuntimeVersion":"","kubeletVersion":"","kubeProxyVersion":"","operatingSystem":"","architecture":""}}}]},"NodeNames":["node1"],"FailedNodes":{"foo":"bar"},"Error":"myerror"}`, + }, + { + emptyObj: &ExtenderBindingArgs{}, + obj: &ExtenderBindingArgs{ + PodName: "mypodname", + PodNamespace: "mypodnamespace", + PodUID: types.UID("mypoduid"), + Node: "mynode", + }, + expectJSON: `{"PodName":"mypodname","PodNamespace":"mypodnamespace","PodUID":"mypoduid","Node":"mynode"}`, + }, + { + emptyObj: &ExtenderBindingResult{}, + obj: &ExtenderBindingResult{Error: "myerror"}, + expectJSON: `{"Error":"myerror"}`, + }, + { + emptyObj: &HostPriority{}, + obj: &HostPriority{Host: "myhost", Score: 1}, + expectJSON: `{"Host":"myhost","Score":1}`, + }, + } + + for _, tc := range testcases { + t.Run(reflect.TypeOf(tc.obj).String(), func(t *testing.T) { + data, err := json.Marshal(tc.obj) + if err != nil { + t.Fatal(err) + } + if string(data) != tc.expectJSON { + t.Fatalf("expected %s, got %s", tc.expectJSON, string(data)) + } + if err := json.Unmarshal([]byte(strings.ToLower(string(data))), tc.emptyObj); err != nil { + t.Fatal(err) + } + if !reflect.DeepEqual(tc.emptyObj, tc.obj) { + t.Fatalf("round-tripped case-insensitive diff: %s", cmp.Diff(tc.obj, tc.emptyObj)) + } + }) + } +} diff --git a/pkg/scheduler/apis/extender/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-scheduler/extender/v1/zz_generated.deepcopy.go similarity index 100% rename from pkg/scheduler/apis/extender/v1/zz_generated.deepcopy.go rename to staging/src/k8s.io/kube-scheduler/extender/v1/zz_generated.deepcopy.go diff --git a/staging/src/k8s.io/kube-scheduler/go.mod b/staging/src/k8s.io/kube-scheduler/go.mod index 0c92b6f348c..9dcfaeee8c8 100644 --- a/staging/src/k8s.io/kube-scheduler/go.mod +++ b/staging/src/k8s.io/kube-scheduler/go.mod @@ -5,6 +5,8 @@ module k8s.io/kube-scheduler go 1.13 require ( + github.com/google/go-cmp v0.3.0 + k8s.io/api v0.0.0 k8s.io/apimachinery v0.0.0 k8s.io/component-base v0.0.0 ) diff --git a/test/integration/scheduler/BUILD b/test/integration/scheduler/BUILD index 35a508bc5fb..5baae871611 100644 --- a/test/integration/scheduler/BUILD +++ b/test/integration/scheduler/BUILD @@ -29,7 +29,6 @@ go_test( "//pkg/features:go_default_library", "//pkg/scheduler:go_default_library", "//pkg/scheduler/apis/config:go_default_library", - "//pkg/scheduler/apis/extender/v1:go_default_library", "//pkg/scheduler/framework/plugins/defaultbinder:go_default_library", "//pkg/scheduler/framework/v1alpha1:go_default_library", "//pkg/scheduler/nodeinfo:go_default_library", @@ -59,6 +58,7 @@ go_test( "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//staging/src/k8s.io/client-go/tools/events:go_default_library", "//staging/src/k8s.io/component-base/featuregate/testing:go_default_library", + "//staging/src/k8s.io/kube-scheduler/extender/v1:go_default_library", "//test/e2e/framework/pod:go_default_library", "//test/integration/framework:go_default_library", "//test/utils:go_default_library", diff --git a/test/integration/scheduler/extender_test.go b/test/integration/scheduler/extender_test.go index e09382039d9..9765f348286 100644 --- a/test/integration/scheduler/extender_test.go +++ b/test/integration/scheduler/extender_test.go @@ -33,8 +33,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" + extenderv1 "k8s.io/kube-scheduler/extender/v1" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" - extenderv1 "k8s.io/kubernetes/pkg/scheduler/apis/extender/v1" imageutils "k8s.io/kubernetes/test/utils/image" ) diff --git a/vendor/modules.txt b/vendor/modules.txt index 3ae95871ab2..1fb00b6c4c3 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1777,6 +1777,7 @@ k8s.io/kube-proxy/config/v1alpha1 k8s.io/kube-scheduler/config/v1 k8s.io/kube-scheduler/config/v1alpha1 k8s.io/kube-scheduler/config/v1alpha2 +k8s.io/kube-scheduler/extender/v1 # k8s.io/kubectl v0.0.0 => ./staging/src/k8s.io/kubectl k8s.io/kubectl/pkg/apps k8s.io/kubectl/pkg/cmd