Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
4540bb9e
Commit
4540bb9e
authored
Feb 22, 2017
by
Haoran Wang
Committed by
Haoran Wang
Feb 25, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
move the lister.go to testing folder
parent
56841e84
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
119 additions
and
95 deletions
+119
-95
BUILD
plugin/pkg/scheduler/algorithm/BUILD
+0
-2
BUILD
plugin/pkg/scheduler/algorithm/predicates/BUILD
+1
-0
predicates_test.go
plugin/pkg/scheduler/algorithm/predicates/predicates_test.go
+7
-6
BUILD
plugin/pkg/scheduler/algorithm/priorities/BUILD
+1
-1
interpod_affinity_test.go
.../scheduler/algorithm/priorities/interpod_affinity_test.go
+9
-9
selector_spreading_test.go
...scheduler/algorithm/priorities/selector_spreading_test.go
+8
-8
types.go
plugin/pkg/scheduler/algorithm/types.go
+63
-0
BUILD
plugin/pkg/scheduler/core/BUILD
+1
-0
extender_test.go
plugin/pkg/scheduler/core/extender_test.go
+2
-1
generic_scheduler_test.go
plugin/pkg/scheduler/core/generic_scheduler_test.go
+6
-5
scheduler_test.go
plugin/pkg/scheduler/scheduler_test.go
+8
-8
BUILD
plugin/pkg/scheduler/testing/BUILD
+4
-0
fake_cache.go
plugin/pkg/scheduler/testing/fake_cache.go
+1
-1
fake_lister.go
plugin/pkg/scheduler/testing/fake_lister.go
+7
-53
pods_to_cache.go
plugin/pkg/scheduler/testing/pods_to_cache.go
+1
-1
No files found.
plugin/pkg/scheduler/algorithm/BUILD
View file @
4540bb9e
...
@@ -12,7 +12,6 @@ go_library(
...
@@ -12,7 +12,6 @@ go_library(
name = "go_default_library",
name = "go_default_library",
srcs = [
srcs = [
"doc.go",
"doc.go",
"listers.go",
"scheduler_interface.go",
"scheduler_interface.go",
"types.go",
"types.go",
],
],
...
@@ -22,7 +21,6 @@ go_library(
...
@@ -22,7 +21,6 @@ go_library(
"//pkg/apis/extensions/v1beta1:go_default_library",
"//pkg/apis/extensions/v1beta1:go_default_library",
"//plugin/pkg/scheduler/api:go_default_library",
"//plugin/pkg/scheduler/api:go_default_library",
"//plugin/pkg/scheduler/schedulercache:go_default_library",
"//plugin/pkg/scheduler/schedulercache:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/labels",
"//vendor:k8s.io/apimachinery/pkg/labels",
],
],
)
)
...
...
plugin/pkg/scheduler/algorithm/predicates/BUILD
View file @
4540bb9e
...
@@ -44,6 +44,7 @@ go_test(
...
@@ -44,6 +44,7 @@ go_test(
"//pkg/api/v1:go_default_library",
"//pkg/api/v1:go_default_library",
"//plugin/pkg/scheduler/algorithm:go_default_library",
"//plugin/pkg/scheduler/algorithm:go_default_library",
"//plugin/pkg/scheduler/schedulercache:go_default_library",
"//plugin/pkg/scheduler/schedulercache:go_default_library",
"//plugin/pkg/scheduler/testing:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/api/resource",
"//vendor:k8s.io/apimachinery/pkg/api/resource",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/labels",
"//vendor:k8s.io/apimachinery/pkg/labels",
...
...
plugin/pkg/scheduler/algorithm/predicates/predicates_test.go
View file @
4540bb9e
...
@@ -27,6 +27,7 @@ import (
...
@@ -27,6 +27,7 @@ import (
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
schedulertesting
"k8s.io/kubernetes/plugin/pkg/scheduler/testing"
)
)
type
FakeNodeInfo
v1
.
Node
type
FakeNodeInfo
v1
.
Node
...
@@ -116,7 +117,7 @@ func newResourceInitPod(pod *v1.Pod, usage ...schedulercache.Resource) *v1.Pod {
...
@@ -116,7 +117,7 @@ func newResourceInitPod(pod *v1.Pod, usage ...schedulercache.Resource) *v1.Pod {
}
}
func
PredicateMetadata
(
p
*
v1
.
Pod
,
nodeInfo
map
[
string
]
*
schedulercache
.
NodeInfo
)
interface
{}
{
func
PredicateMetadata
(
p
*
v1
.
Pod
,
nodeInfo
map
[
string
]
*
schedulercache
.
NodeInfo
)
interface
{}
{
pm
:=
PredicateMetadataFactory
{
algorithm
.
FakePodLister
{
p
}}
pm
:=
PredicateMetadataFactory
{
schedulertesting
.
FakePodLister
{
p
}}
return
pm
.
GetMetadata
(
p
,
nodeInfo
)
return
pm
.
GetMetadata
(
p
,
nodeInfo
)
}
}
...
@@ -1500,7 +1501,7 @@ func TestServiceAffinity(t *testing.T) {
...
@@ -1500,7 +1501,7 @@ func TestServiceAffinity(t *testing.T) {
nodeInfo
.
SetNode
(
test
.
node
)
nodeInfo
.
SetNode
(
test
.
node
)
nodeInfoMap
:=
map
[
string
]
*
schedulercache
.
NodeInfo
{
test
.
node
.
Name
:
nodeInfo
}
nodeInfoMap
:=
map
[
string
]
*
schedulercache
.
NodeInfo
{
test
.
node
.
Name
:
nodeInfo
}
// Reimplementing the logic that the scheduler implements: Any time it makes a predicate, it registers any precomputations.
// Reimplementing the logic that the scheduler implements: Any time it makes a predicate, it registers any precomputations.
predicate
,
precompute
:=
NewServiceAffinityPredicate
(
algorithm
.
FakePodLister
(
test
.
pods
),
algorithm
.
FakeServiceLister
(
test
.
services
),
FakeNodeListInfo
(
nodes
),
test
.
labels
)
predicate
,
precompute
:=
NewServiceAffinityPredicate
(
schedulertesting
.
FakePodLister
(
test
.
pods
),
schedulertesting
.
FakeServiceLister
(
test
.
services
),
FakeNodeListInfo
(
nodes
),
test
.
labels
)
// Register a precomputation or Rewrite the precomputation to a no-op, depending on the state we want to test.
// Register a precomputation or Rewrite the precomputation to a no-op, depending on the state we want to test.
RegisterPredicatePrecomputation
(
"checkServiceAffinity-unitTestPredicate"
,
func
(
pm
*
predicateMetadata
)
{
RegisterPredicatePrecomputation
(
"checkServiceAffinity-unitTestPredicate"
,
func
(
pm
*
predicateMetadata
)
{
if
!
skipPrecompute
{
if
!
skipPrecompute
{
...
@@ -2572,7 +2573,7 @@ func TestInterPodAffinity(t *testing.T) {
...
@@ -2572,7 +2573,7 @@ func TestInterPodAffinity(t *testing.T) {
fit
:=
PodAffinityChecker
{
fit
:=
PodAffinityChecker
{
info
:
FakeNodeInfo
(
*
node
),
info
:
FakeNodeInfo
(
*
node
),
podLister
:
algorithm
.
FakePodLister
(
test
.
pods
),
podLister
:
schedulertesting
.
FakePodLister
(
test
.
pods
),
}
}
nodeInfo
:=
schedulercache
.
NewNodeInfo
(
podsOnNode
...
)
nodeInfo
:=
schedulercache
.
NewNodeInfo
(
podsOnNode
...
)
nodeInfo
.
SetNode
(
test
.
node
)
nodeInfo
.
SetNode
(
test
.
node
)
...
@@ -2901,7 +2902,7 @@ func TestInterPodAffinityWithMultipleNodes(t *testing.T) {
...
@@ -2901,7 +2902,7 @@ func TestInterPodAffinityWithMultipleNodes(t *testing.T) {
testFit
:=
PodAffinityChecker
{
testFit
:=
PodAffinityChecker
{
info
:
nodeListInfo
,
info
:
nodeListInfo
,
podLister
:
algorithm
.
FakePodLister
(
test
.
pods
),
podLister
:
schedulertesting
.
FakePodLister
(
test
.
pods
),
}
}
nodeInfo
:=
schedulercache
.
NewNodeInfo
(
podsOnNode
...
)
nodeInfo
:=
schedulercache
.
NewNodeInfo
(
podsOnNode
...
)
nodeInfo
.
SetNode
(
&
node
)
nodeInfo
.
SetNode
(
&
node
)
...
@@ -4427,7 +4428,7 @@ func TestInterPodAffinityAnnotations(t *testing.T) {
...
@@ -4427,7 +4428,7 @@ func TestInterPodAffinityAnnotations(t *testing.T) {
fit
:=
PodAffinityChecker
{
fit
:=
PodAffinityChecker
{
info
:
FakeNodeInfo
(
*
node
),
info
:
FakeNodeInfo
(
*
node
),
podLister
:
algorithm
.
FakePodLister
(
test
.
pods
),
podLister
:
schedulertesting
.
FakePodLister
(
test
.
pods
),
}
}
nodeInfo
:=
schedulercache
.
NewNodeInfo
(
podsOnNode
...
)
nodeInfo
:=
schedulercache
.
NewNodeInfo
(
podsOnNode
...
)
nodeInfo
.
SetNode
(
test
.
node
)
nodeInfo
.
SetNode
(
test
.
node
)
...
@@ -4673,7 +4674,7 @@ func TestInterPodAffinityAnnotationsWithMultipleNodes(t *testing.T) {
...
@@ -4673,7 +4674,7 @@ func TestInterPodAffinityAnnotationsWithMultipleNodes(t *testing.T) {
testFit
:=
PodAffinityChecker
{
testFit
:=
PodAffinityChecker
{
info
:
nodeListInfo
,
info
:
nodeListInfo
,
podLister
:
algorithm
.
FakePodLister
(
test
.
pods
),
podLister
:
schedulertesting
.
FakePodLister
(
test
.
pods
),
}
}
nodeInfo
:=
schedulercache
.
NewNodeInfo
(
podsOnNode
...
)
nodeInfo
:=
schedulercache
.
NewNodeInfo
(
podsOnNode
...
)
nodeInfo
.
SetNode
(
&
node
)
nodeInfo
.
SetNode
(
&
node
)
...
...
plugin/pkg/scheduler/algorithm/priorities/BUILD
View file @
4540bb9e
...
@@ -61,10 +61,10 @@ go_test(
...
@@ -61,10 +61,10 @@ go_test(
deps = [
deps = [
"//pkg/api/v1:go_default_library",
"//pkg/api/v1:go_default_library",
"//pkg/apis/extensions/v1beta1:go_default_library",
"//pkg/apis/extensions/v1beta1:go_default_library",
"//plugin/pkg/scheduler/algorithm:go_default_library",
"//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library",
"//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library",
"//plugin/pkg/scheduler/api:go_default_library",
"//plugin/pkg/scheduler/api:go_default_library",
"//plugin/pkg/scheduler/schedulercache:go_default_library",
"//plugin/pkg/scheduler/schedulercache:go_default_library",
"//plugin/pkg/scheduler/testing:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/api/resource",
"//vendor:k8s.io/apimachinery/pkg/api/resource",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apiserver/pkg/util/feature",
"//vendor:k8s.io/apiserver/pkg/util/feature",
...
...
plugin/pkg/scheduler/algorithm/priorities/interpod_affinity_test.go
View file @
4540bb9e
...
@@ -24,9 +24,9 @@ import (
...
@@ -24,9 +24,9 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
utilfeature
"k8s.io/apiserver/pkg/util/feature"
utilfeature
"k8s.io/apiserver/pkg/util/feature"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
schedulerapi
"k8s.io/kubernetes/plugin/pkg/scheduler/api"
schedulerapi
"k8s.io/kubernetes/plugin/pkg/scheduler/api"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
schedulertesting
"k8s.io/kubernetes/plugin/pkg/scheduler/testing"
)
)
type
FakeNodeListInfo
[]
*
v1
.
Node
type
FakeNodeListInfo
[]
*
v1
.
Node
...
@@ -513,8 +513,8 @@ func TestInterPodAffinityPriority(t *testing.T) {
...
@@ -513,8 +513,8 @@ func TestInterPodAffinityPriority(t *testing.T) {
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
test
.
nodes
)
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
test
.
nodes
)
interPodAffinity
:=
InterPodAffinity
{
interPodAffinity
:=
InterPodAffinity
{
info
:
FakeNodeListInfo
(
test
.
nodes
),
info
:
FakeNodeListInfo
(
test
.
nodes
),
nodeLister
:
algorithm
.
FakeNodeLister
(
test
.
nodes
),
nodeLister
:
schedulertesting
.
FakeNodeLister
(
test
.
nodes
),
podLister
:
algorithm
.
FakePodLister
(
test
.
pods
),
podLister
:
schedulertesting
.
FakePodLister
(
test
.
pods
),
hardPodAffinityWeight
:
v1
.
DefaultHardPodAffinitySymmetricWeight
,
hardPodAffinityWeight
:
v1
.
DefaultHardPodAffinitySymmetricWeight
,
}
}
list
,
err
:=
interPodAffinity
.
CalculateInterPodAffinityPriority
(
test
.
pod
,
nodeNameToInfo
,
test
.
nodes
)
list
,
err
:=
interPodAffinity
.
CalculateInterPodAffinityPriority
(
test
.
pod
,
nodeNameToInfo
,
test
.
nodes
)
...
@@ -601,8 +601,8 @@ func TestHardPodAffinitySymmetricWeight(t *testing.T) {
...
@@ -601,8 +601,8 @@ func TestHardPodAffinitySymmetricWeight(t *testing.T) {
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
test
.
nodes
)
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
test
.
nodes
)
ipa
:=
InterPodAffinity
{
ipa
:=
InterPodAffinity
{
info
:
FakeNodeListInfo
(
test
.
nodes
),
info
:
FakeNodeListInfo
(
test
.
nodes
),
nodeLister
:
algorithm
.
FakeNodeLister
(
test
.
nodes
),
nodeLister
:
schedulertesting
.
FakeNodeLister
(
test
.
nodes
),
podLister
:
algorithm
.
FakePodLister
(
test
.
pods
),
podLister
:
schedulertesting
.
FakePodLister
(
test
.
pods
),
hardPodAffinityWeight
:
test
.
hardPodAffinityWeight
,
hardPodAffinityWeight
:
test
.
hardPodAffinityWeight
,
}
}
list
,
err
:=
ipa
.
CalculateInterPodAffinityPriority
(
test
.
pod
,
nodeNameToInfo
,
test
.
nodes
)
list
,
err
:=
ipa
.
CalculateInterPodAffinityPriority
(
test
.
pod
,
nodeNameToInfo
,
test
.
nodes
)
...
@@ -1075,8 +1075,8 @@ func TestInterPodAffinityAnnotationsPriority(t *testing.T) {
...
@@ -1075,8 +1075,8 @@ func TestInterPodAffinityAnnotationsPriority(t *testing.T) {
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
test
.
nodes
)
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
test
.
nodes
)
interPodAffinity
:=
InterPodAffinity
{
interPodAffinity
:=
InterPodAffinity
{
info
:
FakeNodeListInfo
(
test
.
nodes
),
info
:
FakeNodeListInfo
(
test
.
nodes
),
nodeLister
:
algorithm
.
FakeNodeLister
(
test
.
nodes
),
nodeLister
:
schedulertesting
.
FakeNodeLister
(
test
.
nodes
),
podLister
:
algorithm
.
FakePodLister
(
test
.
pods
),
podLister
:
schedulertesting
.
FakePodLister
(
test
.
pods
),
hardPodAffinityWeight
:
v1
.
DefaultHardPodAffinitySymmetricWeight
,
hardPodAffinityWeight
:
v1
.
DefaultHardPodAffinitySymmetricWeight
,
}
}
list
,
err
:=
interPodAffinity
.
CalculateInterPodAffinityPriority
(
test
.
pod
,
nodeNameToInfo
,
test
.
nodes
)
list
,
err
:=
interPodAffinity
.
CalculateInterPodAffinityPriority
(
test
.
pod
,
nodeNameToInfo
,
test
.
nodes
)
...
@@ -1165,8 +1165,8 @@ func TestHardPodAffinityAnnotationsSymmetricWeight(t *testing.T) {
...
@@ -1165,8 +1165,8 @@ func TestHardPodAffinityAnnotationsSymmetricWeight(t *testing.T) {
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
test
.
nodes
)
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
test
.
nodes
)
ipa
:=
InterPodAffinity
{
ipa
:=
InterPodAffinity
{
info
:
FakeNodeListInfo
(
test
.
nodes
),
info
:
FakeNodeListInfo
(
test
.
nodes
),
nodeLister
:
algorithm
.
FakeNodeLister
(
test
.
nodes
),
nodeLister
:
schedulertesting
.
FakeNodeLister
(
test
.
nodes
),
podLister
:
algorithm
.
FakePodLister
(
test
.
pods
),
podLister
:
schedulertesting
.
FakePodLister
(
test
.
pods
),
hardPodAffinityWeight
:
test
.
hardPodAffinityWeight
,
hardPodAffinityWeight
:
test
.
hardPodAffinityWeight
,
}
}
list
,
err
:=
ipa
.
CalculateInterPodAffinityPriority
(
test
.
pod
,
nodeNameToInfo
,
test
.
nodes
)
list
,
err
:=
ipa
.
CalculateInterPodAffinityPriority
(
test
.
pod
,
nodeNameToInfo
,
test
.
nodes
)
...
...
plugin/pkg/scheduler/algorithm/priorities/selector_spreading_test.go
View file @
4540bb9e
...
@@ -24,9 +24,9 @@ import (
...
@@ -24,9 +24,9 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
extensions
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
extensions
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
schedulerapi
"k8s.io/kubernetes/plugin/pkg/scheduler/api"
schedulerapi
"k8s.io/kubernetes/plugin/pkg/scheduler/api"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
schedulertesting
"k8s.io/kubernetes/plugin/pkg/scheduler/testing"
)
)
func
controllerRef
(
kind
,
name
,
uid
string
)
[]
metav1
.
OwnerReference
{
func
controllerRef
(
kind
,
name
,
uid
string
)
[]
metav1
.
OwnerReference
{
...
@@ -286,9 +286,9 @@ func TestSelectorSpreadPriority(t *testing.T) {
...
@@ -286,9 +286,9 @@ func TestSelectorSpreadPriority(t *testing.T) {
for
_
,
test
:=
range
tests
{
for
_
,
test
:=
range
tests
{
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
nil
)
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
nil
)
selectorSpread
:=
SelectorSpread
{
selectorSpread
:=
SelectorSpread
{
serviceLister
:
algorithm
.
FakeServiceLister
(
test
.
services
),
serviceLister
:
schedulertesting
.
FakeServiceLister
(
test
.
services
),
controllerLister
:
algorithm
.
FakeControllerLister
(
test
.
rcs
),
controllerLister
:
schedulertesting
.
FakeControllerLister
(
test
.
rcs
),
replicaSetLister
:
algorithm
.
FakeReplicaSetLister
(
test
.
rss
),
replicaSetLister
:
schedulertesting
.
FakeReplicaSetLister
(
test
.
rss
),
}
}
list
,
err
:=
selectorSpread
.
CalculateSpreadPriority
(
test
.
pod
,
nodeNameToInfo
,
makeNodeList
(
test
.
nodes
))
list
,
err
:=
selectorSpread
.
CalculateSpreadPriority
(
test
.
pod
,
nodeNameToInfo
,
makeNodeList
(
test
.
nodes
))
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -493,9 +493,9 @@ func TestZoneSelectorSpreadPriority(t *testing.T) {
...
@@ -493,9 +493,9 @@ func TestZoneSelectorSpreadPriority(t *testing.T) {
for
_
,
test
:=
range
tests
{
for
_
,
test
:=
range
tests
{
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
nil
)
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
nil
)
selectorSpread
:=
SelectorSpread
{
selectorSpread
:=
SelectorSpread
{
serviceLister
:
algorithm
.
FakeServiceLister
(
test
.
services
),
serviceLister
:
schedulertesting
.
FakeServiceLister
(
test
.
services
),
controllerLister
:
algorithm
.
FakeControllerLister
(
test
.
rcs
),
controllerLister
:
schedulertesting
.
FakeControllerLister
(
test
.
rcs
),
replicaSetLister
:
algorithm
.
FakeReplicaSetLister
(
test
.
rss
),
replicaSetLister
:
schedulertesting
.
FakeReplicaSetLister
(
test
.
rss
),
}
}
list
,
err
:=
selectorSpread
.
CalculateSpreadPriority
(
test
.
pod
,
nodeNameToInfo
,
makeLabeledNodeList
(
labeledNodes
))
list
,
err
:=
selectorSpread
.
CalculateSpreadPriority
(
test
.
pod
,
nodeNameToInfo
,
makeLabeledNodeList
(
labeledNodes
))
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -668,7 +668,7 @@ func TestZoneSpreadPriority(t *testing.T) {
...
@@ -668,7 +668,7 @@ func TestZoneSpreadPriority(t *testing.T) {
for
_
,
test
:=
range
tests
{
for
_
,
test
:=
range
tests
{
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
nil
)
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
nil
)
zoneSpread
:=
ServiceAntiAffinity
{
podLister
:
algorithm
.
FakePodLister
(
test
.
pods
),
serviceLister
:
algorithm
.
FakeServiceLister
(
test
.
services
),
label
:
"zone"
}
zoneSpread
:=
ServiceAntiAffinity
{
podLister
:
schedulertesting
.
FakePodLister
(
test
.
pods
),
serviceLister
:
schedulertesting
.
FakeServiceLister
(
test
.
services
),
label
:
"zone"
}
list
,
err
:=
zoneSpread
.
CalculateAntiAffinityPriority
(
test
.
pod
,
nodeNameToInfo
,
makeLabeledNodeList
(
test
.
nodes
))
list
,
err
:=
zoneSpread
.
CalculateAntiAffinityPriority
(
test
.
pod
,
nodeNameToInfo
,
makeLabeledNodeList
(
test
.
nodes
))
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
...
...
plugin/pkg/scheduler/algorithm/types.go
View file @
4540bb9e
...
@@ -17,7 +17,9 @@ limitations under the License.
...
@@ -17,7 +17,9 @@ limitations under the License.
package
algorithm
package
algorithm
import
(
import
(
"k8s.io/apimachinery/pkg/labels"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
extensions
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
schedulerapi
"k8s.io/kubernetes/plugin/pkg/scheduler/api"
schedulerapi
"k8s.io/kubernetes/plugin/pkg/scheduler/api"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
)
)
...
@@ -64,3 +66,64 @@ type PredicateFailureReason interface {
...
@@ -64,3 +66,64 @@ type PredicateFailureReason interface {
}
}
type
GetEquivalencePodFunc
func
(
pod
*
v1
.
Pod
)
interface
{}
type
GetEquivalencePodFunc
func
(
pod
*
v1
.
Pod
)
interface
{}
// NodeLister interface represents anything that can list nodes for a scheduler.
type
NodeLister
interface
{
// We explicitly return []*v1.Node, instead of v1.NodeList, to avoid
// performing expensive copies that are unneeded.
List
()
([]
*
v1
.
Node
,
error
)
}
// PodLister interface represents anything that can list pods for a scheduler.
type
PodLister
interface
{
// We explicitly return []*v1.Pod, instead of v1.PodList, to avoid
// performing expensive copies that are unneeded.
List
(
labels
.
Selector
)
([]
*
v1
.
Pod
,
error
)
}
// ServiceLister interface represents anything that can produce a list of services; the list is consumed by a scheduler.
type
ServiceLister
interface
{
// Lists all the services
List
(
labels
.
Selector
)
([]
*
v1
.
Service
,
error
)
// Gets the services for the given pod
GetPodServices
(
*
v1
.
Pod
)
([]
*
v1
.
Service
,
error
)
}
// ControllerLister interface represents anything that can produce a list of ReplicationController; the list is consumed by a scheduler.
type
ControllerLister
interface
{
// Lists all the replication controllers
List
(
labels
.
Selector
)
([]
*
v1
.
ReplicationController
,
error
)
// Gets the services for the given pod
GetPodControllers
(
*
v1
.
Pod
)
([]
*
v1
.
ReplicationController
,
error
)
}
// ReplicaSetLister interface represents anything that can produce a list of ReplicaSet; the list is consumed by a scheduler.
type
ReplicaSetLister
interface
{
// Gets the replicasets for the given pod
GetPodReplicaSets
(
*
v1
.
Pod
)
([]
*
extensions
.
ReplicaSet
,
error
)
}
var
_
ControllerLister
=
&
EmptyControllerLister
{}
// EmptyControllerLister implements ControllerLister on []v1.ReplicationController returning empty data
type
EmptyControllerLister
struct
{}
// List returns nil
func
(
f
EmptyControllerLister
)
List
(
labels
.
Selector
)
([]
*
v1
.
ReplicationController
,
error
)
{
return
nil
,
nil
}
// GetPodControllers returns nil
func
(
f
EmptyControllerLister
)
GetPodControllers
(
pod
*
v1
.
Pod
)
(
controllers
[]
*
v1
.
ReplicationController
,
err
error
)
{
return
nil
,
nil
}
var
_
ReplicaSetLister
=
&
EmptyReplicaSetLister
{}
// EmptyReplicaSetLister implements ReplicaSetLister on []extensions.ReplicaSet returning empty data
type
EmptyReplicaSetLister
struct
{}
// GetPodReplicaSets returns nil
func
(
f
EmptyReplicaSetLister
)
GetPodReplicaSets
(
pod
*
v1
.
Pod
)
(
rss
[]
*
extensions
.
ReplicaSet
,
err
error
)
{
return
nil
,
nil
}
plugin/pkg/scheduler/core/BUILD
View file @
4540bb9e
...
@@ -25,6 +25,7 @@ go_test(
...
@@ -25,6 +25,7 @@ go_test(
"//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library",
"//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library",
"//plugin/pkg/scheduler/api:go_default_library",
"//plugin/pkg/scheduler/api:go_default_library",
"//plugin/pkg/scheduler/schedulercache:go_default_library",
"//plugin/pkg/scheduler/schedulercache:go_default_library",
"//plugin/pkg/scheduler/testing:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/api/resource",
"//vendor:k8s.io/apimachinery/pkg/api/resource",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/util/sets",
"//vendor:k8s.io/apimachinery/pkg/util/sets",
...
...
plugin/pkg/scheduler/core/extender_test.go
View file @
4540bb9e
...
@@ -27,6 +27,7 @@ import (
...
@@ -27,6 +27,7 @@ import (
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
schedulerapi
"k8s.io/kubernetes/plugin/pkg/scheduler/api"
schedulerapi
"k8s.io/kubernetes/plugin/pkg/scheduler/api"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
schedulertesting
"k8s.io/kubernetes/plugin/pkg/scheduler/testing"
)
)
type
fitPredicate
func
(
pod
*
v1
.
Pod
,
node
*
v1
.
Node
)
(
bool
,
error
)
type
fitPredicate
func
(
pod
*
v1
.
Pod
,
node
*
v1
.
Node
)
(
bool
,
error
)
...
@@ -289,7 +290,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
...
@@ -289,7 +290,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
scheduler
:=
NewGenericScheduler
(
scheduler
:=
NewGenericScheduler
(
cache
,
test
.
predicates
,
algorithm
.
EmptyMetadataProducer
,
test
.
prioritizers
,
algorithm
.
EmptyMetadataProducer
,
extenders
)
cache
,
test
.
predicates
,
algorithm
.
EmptyMetadataProducer
,
test
.
prioritizers
,
algorithm
.
EmptyMetadataProducer
,
extenders
)
podIgnored
:=
&
v1
.
Pod
{}
podIgnored
:=
&
v1
.
Pod
{}
machine
,
err
:=
scheduler
.
Schedule
(
podIgnored
,
algorithm
.
FakeNodeLister
(
makeNodeList
(
test
.
nodes
)))
machine
,
err
:=
scheduler
.
Schedule
(
podIgnored
,
schedulertesting
.
FakeNodeLister
(
makeNodeList
(
test
.
nodes
)))
if
test
.
expectsErr
{
if
test
.
expectsErr
{
if
err
==
nil
{
if
err
==
nil
{
t
.
Errorf
(
"Unexpected non-error for %s, machine %s"
,
test
.
name
,
machine
)
t
.
Errorf
(
"Unexpected non-error for %s, machine %s"
,
test
.
name
,
machine
)
...
...
plugin/pkg/scheduler/core/generic_scheduler_test.go
View file @
4540bb9e
...
@@ -37,6 +37,7 @@ import (
...
@@ -37,6 +37,7 @@ import (
priorityutil
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/util"
priorityutil
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/util"
schedulerapi
"k8s.io/kubernetes/plugin/pkg/scheduler/api"
schedulerapi
"k8s.io/kubernetes/plugin/pkg/scheduler/api"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
schedulertesting
"k8s.io/kubernetes/plugin/pkg/scheduler/testing"
)
)
func
falsePredicate
(
pod
*
v1
.
Pod
,
meta
interface
{},
nodeInfo
*
schedulercache
.
NodeInfo
)
(
bool
,
[]
algorithm
.
PredicateFailureReason
,
error
)
{
func
falsePredicate
(
pod
*
v1
.
Pod
,
meta
interface
{},
nodeInfo
*
schedulercache
.
NodeInfo
)
(
bool
,
[]
algorithm
.
PredicateFailureReason
,
error
)
{
...
@@ -307,7 +308,7 @@ func TestGenericScheduler(t *testing.T) {
...
@@ -307,7 +308,7 @@ func TestGenericScheduler(t *testing.T) {
scheduler
:=
NewGenericScheduler
(
scheduler
:=
NewGenericScheduler
(
cache
,
test
.
predicates
,
algorithm
.
EmptyMetadataProducer
,
test
.
prioritizers
,
algorithm
.
EmptyMetadataProducer
,
cache
,
test
.
predicates
,
algorithm
.
EmptyMetadataProducer
,
test
.
prioritizers
,
algorithm
.
EmptyMetadataProducer
,
[]
algorithm
.
SchedulerExtender
{})
[]
algorithm
.
SchedulerExtender
{})
machine
,
err
:=
scheduler
.
Schedule
(
test
.
pod
,
algorithm
.
FakeNodeLister
(
makeNodeList
(
test
.
nodes
)))
machine
,
err
:=
scheduler
.
Schedule
(
test
.
pod
,
schedulertesting
.
FakeNodeLister
(
makeNodeList
(
test
.
nodes
)))
if
!
reflect
.
DeepEqual
(
err
,
test
.
wErr
)
{
if
!
reflect
.
DeepEqual
(
err
,
test
.
wErr
)
{
t
.
Errorf
(
"Failed : %s, Unexpected error: %v, expected: %v"
,
test
.
name
,
err
,
test
.
wErr
)
t
.
Errorf
(
"Failed : %s, Unexpected error: %v, expected: %v"
,
test
.
name
,
err
,
test
.
wErr
)
...
@@ -515,16 +516,16 @@ func TestZeroRequest(t *testing.T) {
...
@@ -515,16 +516,16 @@ func TestZeroRequest(t *testing.T) {
{
Map
:
algorithmpriorities
.
BalancedResourceAllocationMap
,
Weight
:
1
},
{
Map
:
algorithmpriorities
.
BalancedResourceAllocationMap
,
Weight
:
1
},
{
{
Function
:
algorithmpriorities
.
NewSelectorSpreadPriority
(
Function
:
algorithmpriorities
.
NewSelectorSpreadPriority
(
algorithm
.
FakeServiceLister
([]
*
v1
.
Service
{}),
schedulertesting
.
FakeServiceLister
([]
*
v1
.
Service
{}),
algorithm
.
FakeControllerLister
([]
*
v1
.
ReplicationController
{}),
schedulertesting
.
FakeControllerLister
([]
*
v1
.
ReplicationController
{}),
algorithm
.
FakeReplicaSetLister
([]
*
extensions
.
ReplicaSet
{})),
schedulertesting
.
FakeReplicaSetLister
([]
*
extensions
.
ReplicaSet
{})),
Weight
:
1
,
Weight
:
1
,
},
},
}
}
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
test
.
nodes
)
nodeNameToInfo
:=
schedulercache
.
CreateNodeNameToInfoMap
(
test
.
pods
,
test
.
nodes
)
list
,
err
:=
PrioritizeNodes
(
list
,
err
:=
PrioritizeNodes
(
test
.
pod
,
nodeNameToInfo
,
algorithm
.
EmptyMetadataProducer
,
priorityConfigs
,
test
.
pod
,
nodeNameToInfo
,
algorithm
.
EmptyMetadataProducer
,
priorityConfigs
,
algorithm
.
FakeNodeLister
(
test
.
nodes
),
[]
algorithm
.
SchedulerExtender
{})
schedulertesting
.
FakeNodeLister
(
test
.
nodes
),
[]
algorithm
.
SchedulerExtender
{})
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
}
...
...
plugin/pkg/scheduler/scheduler_test.go
View file @
4540bb9e
...
@@ -153,7 +153,7 @@ func TestScheduler(t *testing.T) {
...
@@ -153,7 +153,7 @@ func TestScheduler(t *testing.T) {
gotAssumedPod
=
pod
gotAssumedPod
=
pod
},
},
},
},
NodeLister
:
algorithm
.
FakeNodeLister
(
NodeLister
:
schedulertesting
.
FakeNodeLister
(
[]
*
v1
.
Node
{
&
testNode
},
[]
*
v1
.
Node
{
&
testNode
},
),
),
Algorithm
:
item
.
algo
,
Algorithm
:
item
.
algo
,
...
@@ -205,7 +205,7 @@ func TestSchedulerNoPhantomPodAfterExpire(t *testing.T) {
...
@@ -205,7 +205,7 @@ func TestSchedulerNoPhantomPodAfterExpire(t *testing.T) {
pod
:=
podWithPort
(
"pod.Name"
,
""
,
8080
)
pod
:=
podWithPort
(
"pod.Name"
,
""
,
8080
)
node
:=
v1
.
Node
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"machine1"
}}
node
:=
v1
.
Node
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"machine1"
}}
scache
.
AddNode
(
&
node
)
scache
.
AddNode
(
&
node
)
nodeLister
:=
algorithm
.
FakeNodeLister
([]
*
v1
.
Node
{
&
node
})
nodeLister
:=
schedulertesting
.
FakeNodeLister
([]
*
v1
.
Node
{
&
node
})
predicateMap
:=
map
[
string
]
algorithm
.
FitPredicate
{
"PodFitsHostPorts"
:
predicates
.
PodFitsHostPorts
}
predicateMap
:=
map
[
string
]
algorithm
.
FitPredicate
{
"PodFitsHostPorts"
:
predicates
.
PodFitsHostPorts
}
scheduler
,
bindingChan
,
_
:=
setupTestSchedulerWithOnePodOnNode
(
t
,
queuedPodStore
,
scache
,
nodeLister
,
predicateMap
,
pod
,
&
node
)
scheduler
,
bindingChan
,
_
:=
setupTestSchedulerWithOnePodOnNode
(
t
,
queuedPodStore
,
scache
,
nodeLister
,
predicateMap
,
pod
,
&
node
)
...
@@ -263,7 +263,7 @@ func TestSchedulerNoPhantomPodAfterDelete(t *testing.T) {
...
@@ -263,7 +263,7 @@ func TestSchedulerNoPhantomPodAfterDelete(t *testing.T) {
firstPod
:=
podWithPort
(
"pod.Name"
,
""
,
8080
)
firstPod
:=
podWithPort
(
"pod.Name"
,
""
,
8080
)
node
:=
v1
.
Node
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"machine1"
}}
node
:=
v1
.
Node
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"machine1"
}}
scache
.
AddNode
(
&
node
)
scache
.
AddNode
(
&
node
)
nodeLister
:=
algorithm
.
FakeNodeLister
([]
*
v1
.
Node
{
&
node
})
nodeLister
:=
schedulertesting
.
FakeNodeLister
([]
*
v1
.
Node
{
&
node
})
predicateMap
:=
map
[
string
]
algorithm
.
FitPredicate
{
"PodFitsHostPorts"
:
predicates
.
PodFitsHostPorts
}
predicateMap
:=
map
[
string
]
algorithm
.
FitPredicate
{
"PodFitsHostPorts"
:
predicates
.
PodFitsHostPorts
}
scheduler
,
bindingChan
,
errChan
:=
setupTestSchedulerWithOnePodOnNode
(
t
,
queuedPodStore
,
scache
,
nodeLister
,
predicateMap
,
firstPod
,
&
node
)
scheduler
,
bindingChan
,
errChan
:=
setupTestSchedulerWithOnePodOnNode
(
t
,
queuedPodStore
,
scache
,
nodeLister
,
predicateMap
,
firstPod
,
&
node
)
...
@@ -346,7 +346,7 @@ func TestSchedulerErrorWithLongBinding(t *testing.T) {
...
@@ -346,7 +346,7 @@ func TestSchedulerErrorWithLongBinding(t *testing.T) {
node
:=
v1
.
Node
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"machine1"
}}
node
:=
v1
.
Node
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"machine1"
}}
scache
.
AddNode
(
&
node
)
scache
.
AddNode
(
&
node
)
nodeLister
:=
algorithm
.
FakeNodeLister
([]
*
v1
.
Node
{
&
node
})
nodeLister
:=
schedulertesting
.
FakeNodeLister
([]
*
v1
.
Node
{
&
node
})
predicateMap
:=
map
[
string
]
algorithm
.
FitPredicate
{
"PodFitsHostPorts"
:
predicates
.
PodFitsHostPorts
}
predicateMap
:=
map
[
string
]
algorithm
.
FitPredicate
{
"PodFitsHostPorts"
:
predicates
.
PodFitsHostPorts
}
scheduler
,
bindingChan
:=
setupTestSchedulerLongBindingWithRetry
(
scheduler
,
bindingChan
:=
setupTestSchedulerLongBindingWithRetry
(
...
@@ -377,7 +377,7 @@ func TestSchedulerErrorWithLongBinding(t *testing.T) {
...
@@ -377,7 +377,7 @@ func TestSchedulerErrorWithLongBinding(t *testing.T) {
// queuedPodStore: pods queued before processing.
// queuedPodStore: pods queued before processing.
// cache: scheduler cache that might contain assumed pods.
// cache: scheduler cache that might contain assumed pods.
func
setupTestSchedulerWithOnePodOnNode
(
t
*
testing
.
T
,
queuedPodStore
*
clientcache
.
FIFO
,
scache
schedulercache
.
Cache
,
func
setupTestSchedulerWithOnePodOnNode
(
t
*
testing
.
T
,
queuedPodStore
*
clientcache
.
FIFO
,
scache
schedulercache
.
Cache
,
nodeLister
algorithm
.
FakeNodeLister
,
predicateMap
map
[
string
]
algorithm
.
FitPredicate
,
pod
*
v1
.
Pod
,
node
*
v1
.
Node
)
(
*
Scheduler
,
chan
*
v1
.
Binding
,
chan
error
)
{
nodeLister
schedulertesting
.
FakeNodeLister
,
predicateMap
map
[
string
]
algorithm
.
FitPredicate
,
pod
*
v1
.
Pod
,
node
*
v1
.
Node
)
(
*
Scheduler
,
chan
*
v1
.
Binding
,
chan
error
)
{
scheduler
,
bindingChan
,
errChan
:=
setupTestScheduler
(
queuedPodStore
,
scache
,
nodeLister
,
predicateMap
)
scheduler
,
bindingChan
,
errChan
:=
setupTestScheduler
(
queuedPodStore
,
scache
,
nodeLister
,
predicateMap
)
...
@@ -441,7 +441,7 @@ func TestSchedulerFailedSchedulingReasons(t *testing.T) {
...
@@ -441,7 +441,7 @@ func TestSchedulerFailedSchedulingReasons(t *testing.T) {
scache
.
AddNode
(
&
node
)
scache
.
AddNode
(
&
node
)
nodes
=
append
(
nodes
,
&
node
)
nodes
=
append
(
nodes
,
&
node
)
}
}
nodeLister
:=
algorithm
.
FakeNodeLister
(
nodes
)
nodeLister
:=
schedulertesting
.
FakeNodeLister
(
nodes
)
predicateMap
:=
map
[
string
]
algorithm
.
FitPredicate
{
predicateMap
:=
map
[
string
]
algorithm
.
FitPredicate
{
"PodFitsResources"
:
predicates
.
PodFitsResources
,
"PodFitsResources"
:
predicates
.
PodFitsResources
,
}
}
...
@@ -477,7 +477,7 @@ func TestSchedulerFailedSchedulingReasons(t *testing.T) {
...
@@ -477,7 +477,7 @@ func TestSchedulerFailedSchedulingReasons(t *testing.T) {
// queuedPodStore: pods queued before processing.
// queuedPodStore: pods queued before processing.
// scache: scheduler cache that might contain assumed pods.
// scache: scheduler cache that might contain assumed pods.
func
setupTestScheduler
(
queuedPodStore
*
clientcache
.
FIFO
,
scache
schedulercache
.
Cache
,
nodeLister
algorithm
.
FakeNodeLister
,
predicateMap
map
[
string
]
algorithm
.
FitPredicate
)
(
*
Scheduler
,
chan
*
v1
.
Binding
,
chan
error
)
{
func
setupTestScheduler
(
queuedPodStore
*
clientcache
.
FIFO
,
scache
schedulercache
.
Cache
,
nodeLister
schedulertesting
.
FakeNodeLister
,
predicateMap
map
[
string
]
algorithm
.
FitPredicate
)
(
*
Scheduler
,
chan
*
v1
.
Binding
,
chan
error
)
{
algo
:=
core
.
NewGenericScheduler
(
algo
:=
core
.
NewGenericScheduler
(
scache
,
scache
,
predicateMap
,
predicateMap
,
...
@@ -507,7 +507,7 @@ func setupTestScheduler(queuedPodStore *clientcache.FIFO, scache schedulercache.
...
@@ -507,7 +507,7 @@ func setupTestScheduler(queuedPodStore *clientcache.FIFO, scache schedulercache.
return
New
(
cfg
),
bindingChan
,
errChan
return
New
(
cfg
),
bindingChan
,
errChan
}
}
func
setupTestSchedulerLongBindingWithRetry
(
queuedPodStore
*
clientcache
.
FIFO
,
scache
schedulercache
.
Cache
,
nodeLister
algorithm
.
FakeNodeLister
,
predicateMap
map
[
string
]
algorithm
.
FitPredicate
,
stop
chan
struct
{},
bindingTime
time
.
Duration
)
(
*
Scheduler
,
chan
*
v1
.
Binding
)
{
func
setupTestSchedulerLongBindingWithRetry
(
queuedPodStore
*
clientcache
.
FIFO
,
scache
schedulercache
.
Cache
,
nodeLister
schedulertesting
.
FakeNodeLister
,
predicateMap
map
[
string
]
algorithm
.
FitPredicate
,
stop
chan
struct
{},
bindingTime
time
.
Duration
)
(
*
Scheduler
,
chan
*
v1
.
Binding
)
{
algo
:=
core
.
NewGenericScheduler
(
algo
:=
core
.
NewGenericScheduler
(
scache
,
scache
,
predicateMap
,
predicateMap
,
...
...
plugin/pkg/scheduler/testing/BUILD
View file @
4540bb9e
...
@@ -11,12 +11,16 @@ go_library(
...
@@ -11,12 +11,16 @@ go_library(
name = "go_default_library",
name = "go_default_library",
srcs = [
srcs = [
"fake_cache.go",
"fake_cache.go",
"fake_lister.go",
"pods_to_cache.go",
"pods_to_cache.go",
],
],
tags = ["automanaged"],
tags = ["automanaged"],
deps = [
deps = [
"//pkg/api/v1:go_default_library",
"//pkg/api/v1:go_default_library",
"//pkg/apis/extensions/v1beta1:go_default_library",
"//plugin/pkg/scheduler/algorithm:go_default_library",
"//plugin/pkg/scheduler/schedulercache:go_default_library",
"//plugin/pkg/scheduler/schedulercache:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/labels",
"//vendor:k8s.io/apimachinery/pkg/labels",
],
],
)
)
...
...
plugin/pkg/scheduler/testing/fake_cache.go
View file @
4540bb9e
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
schedulercache
package
testing
import
(
import
(
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/labels"
...
...
plugin/pkg/scheduler/
algorithm/listers
.go
→
plugin/pkg/scheduler/
testing/fake_lister
.go
View file @
4540bb9e
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
algorithm
package
testing
import
(
import
(
"fmt"
"fmt"
...
@@ -23,14 +23,10 @@ import (
...
@@ -23,14 +23,10 @@ import (
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1"
extensions
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
extensions
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
.
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
)
)
// NodeLister interface represents anything that can list nodes for a scheduler.
var
_
NodeLister
=
&
FakeNodeLister
{}
type
NodeLister
interface
{
// We explicitly return []*v1.Node, instead of v1.NodeList, to avoid
// performing expensive copies that are unneeded.
List
()
([]
*
v1
.
Node
,
error
)
}
// FakeNodeLister implements NodeLister on a []string for test purposes.
// FakeNodeLister implements NodeLister on a []string for test purposes.
type
FakeNodeLister
[]
*
v1
.
Node
type
FakeNodeLister
[]
*
v1
.
Node
...
@@ -40,12 +36,7 @@ func (f FakeNodeLister) List() ([]*v1.Node, error) {
...
@@ -40,12 +36,7 @@ func (f FakeNodeLister) List() ([]*v1.Node, error) {
return
f
,
nil
return
f
,
nil
}
}
// PodLister interface represents anything that can list pods for a scheduler.
var
_
PodLister
=
&
FakePodLister
{}
type
PodLister
interface
{
// We explicitly return []*v1.Pod, instead of v1.PodList, to avoid
// performing expensive copies that are unneeded.
List
(
labels
.
Selector
)
([]
*
v1
.
Pod
,
error
)
}
// FakePodLister implements PodLister on an []v1.Pods for test purposes.
// FakePodLister implements PodLister on an []v1.Pods for test purposes.
type
FakePodLister
[]
*
v1
.
Pod
type
FakePodLister
[]
*
v1
.
Pod
...
@@ -60,13 +51,7 @@ func (f FakePodLister) List(s labels.Selector) (selected []*v1.Pod, err error) {
...
@@ -60,13 +51,7 @@ func (f FakePodLister) List(s labels.Selector) (selected []*v1.Pod, err error) {
return
selected
,
nil
return
selected
,
nil
}
}
// ServiceLister interface represents anything that can produce a list of services; the list is consumed by a scheduler.
var
_
ServiceLister
=
&
FakeServiceLister
{}
type
ServiceLister
interface
{
// Lists all the services
List
(
labels
.
Selector
)
([]
*
v1
.
Service
,
error
)
// Gets the services for the given pod
GetPodServices
(
*
v1
.
Pod
)
([]
*
v1
.
Service
,
error
)
}
// FakeServiceLister implements ServiceLister on []v1.Service for test purposes.
// FakeServiceLister implements ServiceLister on []v1.Service for test purposes.
type
FakeServiceLister
[]
*
v1
.
Service
type
FakeServiceLister
[]
*
v1
.
Service
...
@@ -94,26 +79,7 @@ func (f FakeServiceLister) GetPodServices(pod *v1.Pod) (services []*v1.Service,
...
@@ -94,26 +79,7 @@ func (f FakeServiceLister) GetPodServices(pod *v1.Pod) (services []*v1.Service,
return
return
}
}
// ControllerLister interface represents anything that can produce a list of ReplicationController; the list is consumed by a scheduler.
var
_
ControllerLister
=
&
FakeControllerLister
{}
type
ControllerLister
interface
{
// Lists all the replication controllers
List
(
labels
.
Selector
)
([]
*
v1
.
ReplicationController
,
error
)
// Gets the services for the given pod
GetPodControllers
(
*
v1
.
Pod
)
([]
*
v1
.
ReplicationController
,
error
)
}
// EmptyControllerLister implements ControllerLister on []v1.ReplicationController returning empty data
type
EmptyControllerLister
struct
{}
// List returns nil
func
(
f
EmptyControllerLister
)
List
(
labels
.
Selector
)
([]
*
v1
.
ReplicationController
,
error
)
{
return
nil
,
nil
}
// GetPodControllers returns nil
func
(
f
EmptyControllerLister
)
GetPodControllers
(
pod
*
v1
.
Pod
)
(
controllers
[]
*
v1
.
ReplicationController
,
err
error
)
{
return
nil
,
nil
}
// FakeControllerLister implements ControllerLister on []v1.ReplicationController for test purposes.
// FakeControllerLister implements ControllerLister on []v1.ReplicationController for test purposes.
type
FakeControllerLister
[]
*
v1
.
ReplicationController
type
FakeControllerLister
[]
*
v1
.
ReplicationController
...
@@ -144,19 +110,7 @@ func (f FakeControllerLister) GetPodControllers(pod *v1.Pod) (controllers []*v1.
...
@@ -144,19 +110,7 @@ func (f FakeControllerLister) GetPodControllers(pod *v1.Pod) (controllers []*v1.
return
return
}
}
// ReplicaSetLister interface represents anything that can produce a list of ReplicaSet; the list is consumed by a scheduler.
var
_
ReplicaSetLister
=
&
FakeReplicaSetLister
{}
type
ReplicaSetLister
interface
{
// Gets the replicasets for the given pod
GetPodReplicaSets
(
*
v1
.
Pod
)
([]
*
extensions
.
ReplicaSet
,
error
)
}
// EmptyReplicaSetLister implements ReplicaSetLister on []extensions.ReplicaSet returning empty data
type
EmptyReplicaSetLister
struct
{}
// GetPodReplicaSets returns nil
func
(
f
EmptyReplicaSetLister
)
GetPodReplicaSets
(
pod
*
v1
.
Pod
)
(
rss
[]
*
extensions
.
ReplicaSet
,
err
error
)
{
return
nil
,
nil
}
// FakeReplicaSetLister implements ControllerLister on []extensions.ReplicaSet for test purposes.
// FakeReplicaSetLister implements ControllerLister on []extensions.ReplicaSet for test purposes.
type
FakeReplicaSetLister
[]
*
extensions
.
ReplicaSet
type
FakeReplicaSetLister
[]
*
extensions
.
ReplicaSet
...
...
plugin/pkg/scheduler/testing/pods_to_cache.go
View file @
4540bb9e
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
schedulercache
package
testing
import
(
import
(
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/labels"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment