From 33a39e533348cbff6af5d1f8635cebec6ee046ef Mon Sep 17 00:00:00 2001 From: Yecheng Fu Date: Tue, 7 Jul 2020 12:58:44 +0800 Subject: [PATCH] api changes --- .../src/k8s.io/kube-scheduler/extender/v1/types.go | 4 ++++ .../k8s.io/kube-scheduler/extender/v1/types_test.go | 11 ++++++----- .../extender/v1/zz_generated.deepcopy.go | 7 +++++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/staging/src/k8s.io/kube-scheduler/extender/v1/types.go b/staging/src/k8s.io/kube-scheduler/extender/v1/types.go index 4557c8fd011..e1f07c3dd7c 100644 --- a/staging/src/k8s.io/kube-scheduler/extender/v1/types.go +++ b/staging/src/k8s.io/kube-scheduler/extender/v1/types.go @@ -92,6 +92,10 @@ type ExtenderFilterResult struct { NodeNames *[]string // Filtered out nodes where the pod can't be scheduled and the failure messages FailedNodes FailedNodesMap + // Filtered out nodes where the pod can't be scheduled and preemption would + // not change anything. The value is the failure message same as FailedNodes. + // Nodes specified here takes precedence over FailedNodes. + FailedAndUnresolvableNodes FailedNodesMap // Error message indicating failure Error string } 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 index 201a1b54d96..c692eae11d5 100644 --- a/staging/src/k8s.io/kube-scheduler/extender/v1/types_test.go +++ b/staging/src/k8s.io/kube-scheduler/extender/v1/types_test.go @@ -67,12 +67,13 @@ func TestCompatibility(t *testing.T) { { emptyObj: &ExtenderFilterResult{}, obj: &ExtenderFilterResult{ - Nodes: &corev1.NodeList{Items: []corev1.Node{{ObjectMeta: metav1.ObjectMeta{Name: "nodename"}}}}, - NodeNames: &[]string{"node1"}, - FailedNodes: FailedNodesMap{"foo": "bar"}, - Error: "myerror", + Nodes: &corev1.NodeList{Items: []corev1.Node{{ObjectMeta: metav1.ObjectMeta{Name: "nodename"}}}}, + NodeNames: &[]string{"node1"}, + FailedNodes: FailedNodesMap{"foo": "bar"}, + FailedAndUnresolvableNodes: FailedNodesMap{"baz": "qux"}, + 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"}`, + 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"},"FailedAndUnresolvableNodes":{"baz":"qux"},"Error":"myerror"}`, }, { emptyObj: &ExtenderBindingArgs{}, diff --git a/staging/src/k8s.io/kube-scheduler/extender/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-scheduler/extender/v1/zz_generated.deepcopy.go index e568fe00a78..e2042264411 100644 --- a/staging/src/k8s.io/kube-scheduler/extender/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-scheduler/extender/v1/zz_generated.deepcopy.go @@ -115,6 +115,13 @@ func (in *ExtenderFilterResult) DeepCopyInto(out *ExtenderFilterResult) { (*out)[key] = val } } + if in.FailedAndUnresolvableNodes != nil { + in, out := &in.FailedAndUnresolvableNodes, &out.FailedAndUnresolvableNodes + *out = make(FailedNodesMap, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return }