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
cfba438e
Commit
cfba438e
authored
Oct 14, 2016
by
Kubernetes Submit Queue
Committed by
GitHub
Oct 14, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #34084 from ingvagabund/replace-client-with-clientset-in-scheduler-factory
Automatic merge from submit-queue replace kubeclient with kubeclientset in scheduler factory
parents
d671fcf0
19ab3c61
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
54 additions
and
46 deletions
+54
-46
server.go
plugin/cmd/kube-scheduler/app/server.go
+3
-4
compatibility_test.go
...cheduler/algorithmprovider/defaults/compatibility_test.go
+2
-2
factory.go
plugin/pkg/scheduler/factory/factory.go
+16
-16
factory_test.go
plugin/pkg/scheduler/factory/factory_test.go
+9
-9
extender_test.go
test/integration/scheduler/extender_test.go
+5
-2
scheduler_test.go
test/integration/scheduler/scheduler_test.go
+9
-4
util.go
test/integration/scheduler_perf/util.go
+10
-9
No files found.
plugin/cmd/kube-scheduler/app/server.go
View file @
cfba438e
...
@@ -28,11 +28,11 @@ import (
...
@@ -28,11 +28,11 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
unversionedcore
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/unversioned"
"k8s.io/kubernetes/pkg/client/leaderelection"
"k8s.io/kubernetes/pkg/client/leaderelection"
"k8s.io/kubernetes/pkg/client/leaderelection/resourcelock"
"k8s.io/kubernetes/pkg/client/leaderelection/resourcelock"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/client/restclient"
"k8s.io/kubernetes/pkg/client/restclient"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
"k8s.io/kubernetes/pkg/healthz"
"k8s.io/kubernetes/pkg/healthz"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime"
...
@@ -88,7 +88,6 @@ func Run(s *options.SchedulerServer) error {
...
@@ -88,7 +88,6 @@ func Run(s *options.SchedulerServer) error {
kubeconfig
.
QPS
=
s
.
KubeAPIQPS
kubeconfig
.
QPS
=
s
.
KubeAPIQPS
kubeconfig
.
Burst
=
int
(
s
.
KubeAPIBurst
)
kubeconfig
.
Burst
=
int
(
s
.
KubeAPIBurst
)
kubeClient
,
err
:=
client
.
New
(
kubeconfig
)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Fatalf
(
"Invalid API configuration: %v"
,
err
)
glog
.
Fatalf
(
"Invalid API configuration: %v"
,
err
)
}
}
...
@@ -115,7 +114,7 @@ func Run(s *options.SchedulerServer) error {
...
@@ -115,7 +114,7 @@ func Run(s *options.SchedulerServer) error {
glog
.
Fatal
(
server
.
ListenAndServe
())
glog
.
Fatal
(
server
.
ListenAndServe
())
}()
}()
configFactory
:=
factory
.
NewConfigFactory
(
kube
Client
,
s
.
SchedulerName
,
s
.
HardPodAffinitySymmetricWeight
,
s
.
FailureDomains
)
configFactory
:=
factory
.
NewConfigFactory
(
leaderElection
Client
,
s
.
SchedulerName
,
s
.
HardPodAffinitySymmetricWeight
,
s
.
FailureDomains
)
config
,
err
:=
createConfig
(
s
,
configFactory
)
config
,
err
:=
createConfig
(
s
,
configFactory
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -125,7 +124,7 @@ func Run(s *options.SchedulerServer) error {
...
@@ -125,7 +124,7 @@ func Run(s *options.SchedulerServer) error {
eventBroadcaster
:=
record
.
NewBroadcaster
()
eventBroadcaster
:=
record
.
NewBroadcaster
()
config
.
Recorder
=
eventBroadcaster
.
NewRecorder
(
api
.
EventSource
{
Component
:
s
.
SchedulerName
})
config
.
Recorder
=
eventBroadcaster
.
NewRecorder
(
api
.
EventSource
{
Component
:
s
.
SchedulerName
})
eventBroadcaster
.
StartLogging
(
glog
.
Infof
)
eventBroadcaster
.
StartLogging
(
glog
.
Infof
)
eventBroadcaster
.
StartRecordingToSink
(
kubeClient
.
Events
(
""
)
)
eventBroadcaster
.
StartRecordingToSink
(
&
unversionedcore
.
EventSinkImpl
{
Interface
:
leaderElectionClient
.
Core
()
.
Events
(
""
)}
)
sched
:=
scheduler
.
New
(
config
)
sched
:=
scheduler
.
New
(
config
)
...
...
plugin/pkg/scheduler/algorithmprovider/defaults/compatibility_test.go
View file @
cfba438e
...
@@ -25,8 +25,8 @@ import (
...
@@ -25,8 +25,8 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/apimachinery/registered"
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/pkg/client/restclient"
"k8s.io/kubernetes/pkg/client/restclient"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util/sets"
"k8s.io/kubernetes/pkg/util/sets"
utiltesting
"k8s.io/kubernetes/pkg/util/testing"
utiltesting
"k8s.io/kubernetes/pkg/util/testing"
...
@@ -408,7 +408,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) {
...
@@ -408,7 +408,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) {
}
}
server
:=
httptest
.
NewServer
(
&
handler
)
server
:=
httptest
.
NewServer
(
&
handler
)
defer
server
.
Close
()
defer
server
.
Close
()
client
:=
client
.
New
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
client
:=
client
set
.
NewForConfig
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
if
_
,
err
:=
factory
.
NewConfigFactory
(
client
,
"some-scheduler-name"
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
.
CreateFromConfig
(
policy
);
err
!=
nil
{
if
_
,
err
:=
factory
.
NewConfigFactory
(
client
,
"some-scheduler-name"
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
.
CreateFromConfig
(
policy
);
err
!=
nil
{
t
.
Errorf
(
"%s: Error constructing: %v"
,
v
,
err
)
t
.
Errorf
(
"%s: Error constructing: %v"
,
v
,
err
)
...
...
plugin/pkg/scheduler/factory/factory.go
View file @
cfba438e
...
@@ -28,7 +28,7 @@ import (
...
@@ -28,7 +28,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/client/cache"
"k8s.io/kubernetes/pkg/client/cache"
client
"k8s.io/kubernetes/pkg/client/unversioned
"
client
set
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset
"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/types"
"k8s.io/kubernetes/pkg/types"
"k8s.io/kubernetes/pkg/util/runtime"
"k8s.io/kubernetes/pkg/util/runtime"
...
@@ -53,7 +53,7 @@ const (
...
@@ -53,7 +53,7 @@ const (
// ConfigFactory knows how to fill out a scheduler config with its support functions.
// ConfigFactory knows how to fill out a scheduler config with its support functions.
type
ConfigFactory
struct
{
type
ConfigFactory
struct
{
Client
*
client
.
Client
Client
clientset
.
Interface
// queue for pods that need scheduling
// queue for pods that need scheduling
PodQueue
*
cache
.
FIFO
PodQueue
*
cache
.
FIFO
// a means to list all known scheduled pods.
// a means to list all known scheduled pods.
...
@@ -96,7 +96,7 @@ type ConfigFactory struct {
...
@@ -96,7 +96,7 @@ type ConfigFactory struct {
}
}
// Initializes the factory.
// Initializes the factory.
func
NewConfigFactory
(
client
*
client
.
Client
,
schedulerName
string
,
hardPodAffinitySymmetricWeight
int
,
failureDomains
string
)
*
ConfigFactory
{
func
NewConfigFactory
(
client
clientset
.
Interface
,
schedulerName
string
,
hardPodAffinitySymmetricWeight
int
,
failureDomains
string
)
*
ConfigFactory
{
stopEverything
:=
make
(
chan
struct
{})
stopEverything
:=
make
(
chan
struct
{})
schedulerCache
:=
schedulercache
.
New
(
30
*
time
.
Second
,
stopEverything
)
schedulerCache
:=
schedulercache
.
New
(
30
*
time
.
Second
,
stopEverything
)
...
@@ -478,7 +478,7 @@ func getNodeConditionPredicate() cache.NodeConditionPredicate {
...
@@ -478,7 +478,7 @@ func getNodeConditionPredicate() cache.NodeConditionPredicate {
// scheduled.
// scheduled.
func
(
factory
*
ConfigFactory
)
createUnassignedNonTerminatedPodLW
()
*
cache
.
ListWatch
{
func
(
factory
*
ConfigFactory
)
createUnassignedNonTerminatedPodLW
()
*
cache
.
ListWatch
{
selector
:=
fields
.
ParseSelectorOrDie
(
"spec.nodeName=="
+
""
+
",status.phase!="
+
string
(
api
.
PodSucceeded
)
+
",status.phase!="
+
string
(
api
.
PodFailed
))
selector
:=
fields
.
ParseSelectorOrDie
(
"spec.nodeName=="
+
""
+
",status.phase!="
+
string
(
api
.
PodSucceeded
)
+
",status.phase!="
+
string
(
api
.
PodFailed
))
return
cache
.
NewListWatchFromClient
(
factory
.
Client
,
"pods"
,
api
.
NamespaceAll
,
selector
)
return
cache
.
NewListWatchFromClient
(
factory
.
Client
.
Core
()
.
GetRESTClient
()
,
"pods"
,
api
.
NamespaceAll
,
selector
)
}
}
// Returns a cache.ListWatch that finds all pods that are
// Returns a cache.ListWatch that finds all pods that are
...
@@ -486,7 +486,7 @@ func (factory *ConfigFactory) createUnassignedNonTerminatedPodLW() *cache.ListWa
...
@@ -486,7 +486,7 @@ func (factory *ConfigFactory) createUnassignedNonTerminatedPodLW() *cache.ListWa
// TODO: return a ListerWatcher interface instead?
// TODO: return a ListerWatcher interface instead?
func
(
factory
*
ConfigFactory
)
createAssignedNonTerminatedPodLW
()
*
cache
.
ListWatch
{
func
(
factory
*
ConfigFactory
)
createAssignedNonTerminatedPodLW
()
*
cache
.
ListWatch
{
selector
:=
fields
.
ParseSelectorOrDie
(
"spec.nodeName!="
+
""
+
",status.phase!="
+
string
(
api
.
PodSucceeded
)
+
",status.phase!="
+
string
(
api
.
PodFailed
))
selector
:=
fields
.
ParseSelectorOrDie
(
"spec.nodeName!="
+
""
+
",status.phase!="
+
string
(
api
.
PodSucceeded
)
+
",status.phase!="
+
string
(
api
.
PodFailed
))
return
cache
.
NewListWatchFromClient
(
factory
.
Client
,
"pods"
,
api
.
NamespaceAll
,
selector
)
return
cache
.
NewListWatchFromClient
(
factory
.
Client
.
Core
()
.
GetRESTClient
()
,
"pods"
,
api
.
NamespaceAll
,
selector
)
}
}
// createNodeLW returns a cache.ListWatch that gets all changes to nodes.
// createNodeLW returns a cache.ListWatch that gets all changes to nodes.
...
@@ -494,32 +494,32 @@ func (factory *ConfigFactory) createNodeLW() *cache.ListWatch {
...
@@ -494,32 +494,32 @@ func (factory *ConfigFactory) createNodeLW() *cache.ListWatch {
// all nodes are considered to ensure that the scheduler cache has access to all nodes for lookups
// all nodes are considered to ensure that the scheduler cache has access to all nodes for lookups
// the NodeCondition is used to filter out the nodes that are not ready or unschedulable
// the NodeCondition is used to filter out the nodes that are not ready or unschedulable
// the filtered list is used as the super set of nodes to consider for scheduling
// the filtered list is used as the super set of nodes to consider for scheduling
return
cache
.
NewListWatchFromClient
(
factory
.
Client
,
"nodes"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
return
cache
.
NewListWatchFromClient
(
factory
.
Client
.
Core
()
.
GetRESTClient
()
,
"nodes"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
}
}
// createPersistentVolumeLW returns a cache.ListWatch that gets all changes to persistentVolumes.
// createPersistentVolumeLW returns a cache.ListWatch that gets all changes to persistentVolumes.
func
(
factory
*
ConfigFactory
)
createPersistentVolumeLW
()
*
cache
.
ListWatch
{
func
(
factory
*
ConfigFactory
)
createPersistentVolumeLW
()
*
cache
.
ListWatch
{
return
cache
.
NewListWatchFromClient
(
factory
.
Client
,
"persistentVolumes"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
return
cache
.
NewListWatchFromClient
(
factory
.
Client
.
Core
()
.
GetRESTClient
()
,
"persistentVolumes"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
}
}
// createPersistentVolumeClaimLW returns a cache.ListWatch that gets all changes to persistentVolumeClaims.
// createPersistentVolumeClaimLW returns a cache.ListWatch that gets all changes to persistentVolumeClaims.
func
(
factory
*
ConfigFactory
)
createPersistentVolumeClaimLW
()
*
cache
.
ListWatch
{
func
(
factory
*
ConfigFactory
)
createPersistentVolumeClaimLW
()
*
cache
.
ListWatch
{
return
cache
.
NewListWatchFromClient
(
factory
.
Client
,
"persistentVolumeClaims"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
return
cache
.
NewListWatchFromClient
(
factory
.
Client
.
Core
()
.
GetRESTClient
()
,
"persistentVolumeClaims"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
}
}
// Returns a cache.ListWatch that gets all changes to services.
// Returns a cache.ListWatch that gets all changes to services.
func
(
factory
*
ConfigFactory
)
createServiceLW
()
*
cache
.
ListWatch
{
func
(
factory
*
ConfigFactory
)
createServiceLW
()
*
cache
.
ListWatch
{
return
cache
.
NewListWatchFromClient
(
factory
.
Client
,
"services"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
return
cache
.
NewListWatchFromClient
(
factory
.
Client
.
Core
()
.
GetRESTClient
()
,
"services"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
}
}
// Returns a cache.ListWatch that gets all changes to controllers.
// Returns a cache.ListWatch that gets all changes to controllers.
func
(
factory
*
ConfigFactory
)
createControllerLW
()
*
cache
.
ListWatch
{
func
(
factory
*
ConfigFactory
)
createControllerLW
()
*
cache
.
ListWatch
{
return
cache
.
NewListWatchFromClient
(
factory
.
Client
,
"replicationControllers"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
return
cache
.
NewListWatchFromClient
(
factory
.
Client
.
Core
()
.
GetRESTClient
()
,
"replicationControllers"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
}
}
// Returns a cache.ListWatch that gets all changes to replicasets.
// Returns a cache.ListWatch that gets all changes to replicasets.
func
(
factory
*
ConfigFactory
)
createReplicaSetLW
()
*
cache
.
ListWatch
{
func
(
factory
*
ConfigFactory
)
createReplicaSetLW
()
*
cache
.
ListWatch
{
return
cache
.
NewListWatchFromClient
(
factory
.
Client
.
Extensions
Client
,
"replicasets"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
return
cache
.
NewListWatchFromClient
(
factory
.
Client
.
Extensions
()
.
GetRESTClient
()
,
"replicasets"
,
api
.
NamespaceAll
,
fields
.
ParseSelectorOrDie
(
""
))
}
}
func
(
factory
*
ConfigFactory
)
makeDefaultErrorFunc
(
backoff
*
podBackoff
,
podQueue
*
cache
.
FIFO
)
func
(
pod
*
api
.
Pod
,
err
error
)
{
func
(
factory
*
ConfigFactory
)
makeDefaultErrorFunc
(
backoff
*
podBackoff
,
podQueue
*
cache
.
FIFO
)
func
(
pod
*
api
.
Pod
,
err
error
)
{
...
@@ -547,7 +547,7 @@ func (factory *ConfigFactory) makeDefaultErrorFunc(backoff *podBackoff, podQueue
...
@@ -547,7 +547,7 @@ func (factory *ConfigFactory) makeDefaultErrorFunc(backoff *podBackoff, podQueue
// Get the pod again; it may have changed/been scheduled already.
// Get the pod again; it may have changed/been scheduled already.
getBackoff
:=
initialGetBackoff
getBackoff
:=
initialGetBackoff
for
{
for
{
pod
,
err
:=
factory
.
Client
.
Pods
(
podID
.
Namespace
)
.
Get
(
podID
.
Name
)
pod
,
err
:=
factory
.
Client
.
Core
()
.
Pods
(
podID
.
Namespace
)
.
Get
(
podID
.
Name
)
if
err
==
nil
{
if
err
==
nil
{
if
len
(
pod
.
Spec
.
NodeName
)
==
0
{
if
len
(
pod
.
Spec
.
NodeName
)
==
0
{
podQueue
.
AddIfNotPresent
(
pod
)
podQueue
.
AddIfNotPresent
(
pod
)
...
@@ -587,26 +587,26 @@ func (ne *nodeEnumerator) Get(index int) interface{} {
...
@@ -587,26 +587,26 @@ func (ne *nodeEnumerator) Get(index int) interface{} {
}
}
type
binder
struct
{
type
binder
struct
{
*
client
.
Client
Client
clientset
.
Interface
}
}
// Bind just does a POST binding RPC.
// Bind just does a POST binding RPC.
func
(
b
*
binder
)
Bind
(
binding
*
api
.
Binding
)
error
{
func
(
b
*
binder
)
Bind
(
binding
*
api
.
Binding
)
error
{
glog
.
V
(
3
)
.
Infof
(
"Attempting to bind %v to %v"
,
binding
.
Name
,
binding
.
Target
.
Name
)
glog
.
V
(
3
)
.
Infof
(
"Attempting to bind %v to %v"
,
binding
.
Name
,
binding
.
Target
.
Name
)
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
binding
.
Namespace
)
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
binding
.
Namespace
)
return
b
.
Post
()
.
Namespace
(
api
.
NamespaceValue
(
ctx
))
.
Resource
(
"bindings"
)
.
Body
(
binding
)
.
Do
()
.
Error
()
return
b
.
Client
.
Core
()
.
GetRESTClient
()
.
Post
()
.
Namespace
(
api
.
NamespaceValue
(
ctx
))
.
Resource
(
"bindings"
)
.
Body
(
binding
)
.
Do
()
.
Error
()
// TODO: use Pods interface for binding once clusters are upgraded
// TODO: use Pods interface for binding once clusters are upgraded
// return b.Pods(binding.Namespace).Bind(binding)
// return b.Pods(binding.Namespace).Bind(binding)
}
}
type
podConditionUpdater
struct
{
type
podConditionUpdater
struct
{
*
client
.
Client
Client
clientset
.
Interface
}
}
func
(
p
*
podConditionUpdater
)
Update
(
pod
*
api
.
Pod
,
condition
*
api
.
PodCondition
)
error
{
func
(
p
*
podConditionUpdater
)
Update
(
pod
*
api
.
Pod
,
condition
*
api
.
PodCondition
)
error
{
glog
.
V
(
2
)
.
Infof
(
"Updating pod condition for %s/%s to (%s==%s)"
,
pod
.
Namespace
,
pod
.
Name
,
condition
.
Type
,
condition
.
Status
)
glog
.
V
(
2
)
.
Infof
(
"Updating pod condition for %s/%s to (%s==%s)"
,
pod
.
Namespace
,
pod
.
Name
,
condition
.
Type
,
condition
.
Status
)
if
api
.
UpdatePodCondition
(
&
pod
.
Status
,
condition
)
{
if
api
.
UpdatePodCondition
(
&
pod
.
Status
,
condition
)
{
_
,
err
:=
p
.
Pods
(
pod
.
Namespace
)
.
UpdateStatus
(
pod
)
_
,
err
:=
p
.
Client
.
Core
()
.
Pods
(
pod
.
Namespace
)
.
UpdateStatus
(
pod
)
return
err
return
err
}
}
return
nil
return
nil
...
...
plugin/pkg/scheduler/factory/factory_test.go
View file @
cfba438e
...
@@ -28,8 +28,8 @@ import (
...
@@ -28,8 +28,8 @@ import (
apitesting
"k8s.io/kubernetes/pkg/api/testing"
apitesting
"k8s.io/kubernetes/pkg/api/testing"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/client/cache"
"k8s.io/kubernetes/pkg/client/cache"
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/pkg/client/restclient"
"k8s.io/kubernetes/pkg/client/restclient"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/types"
"k8s.io/kubernetes/pkg/types"
utiltesting
"k8s.io/kubernetes/pkg/util/testing"
utiltesting
"k8s.io/kubernetes/pkg/util/testing"
...
@@ -47,7 +47,7 @@ func TestCreate(t *testing.T) {
...
@@ -47,7 +47,7 @@ func TestCreate(t *testing.T) {
}
}
server
:=
httptest
.
NewServer
(
&
handler
)
server
:=
httptest
.
NewServer
(
&
handler
)
defer
server
.
Close
()
defer
server
.
Close
()
client
:=
client
.
New
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
client
:=
client
set
.
NewForConfig
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
factory
:=
NewConfigFactory
(
client
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
factory
:=
NewConfigFactory
(
client
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
factory
.
Create
()
factory
.
Create
()
}
}
...
@@ -65,7 +65,7 @@ func TestCreateFromConfig(t *testing.T) {
...
@@ -65,7 +65,7 @@ func TestCreateFromConfig(t *testing.T) {
}
}
server
:=
httptest
.
NewServer
(
&
handler
)
server
:=
httptest
.
NewServer
(
&
handler
)
defer
server
.
Close
()
defer
server
.
Close
()
client
:=
client
.
New
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
client
:=
client
set
.
NewForConfig
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
factory
:=
NewConfigFactory
(
client
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
factory
:=
NewConfigFactory
(
client
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
// Pre-register some predicate and priority functions
// Pre-register some predicate and priority functions
...
@@ -106,7 +106,7 @@ func TestCreateFromEmptyConfig(t *testing.T) {
...
@@ -106,7 +106,7 @@ func TestCreateFromEmptyConfig(t *testing.T) {
}
}
server
:=
httptest
.
NewServer
(
&
handler
)
server
:=
httptest
.
NewServer
(
&
handler
)
defer
server
.
Close
()
defer
server
.
Close
()
client
:=
client
.
New
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
client
:=
client
set
.
NewForConfig
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
factory
:=
NewConfigFactory
(
client
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
factory
:=
NewConfigFactory
(
client
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
configData
=
[]
byte
(
`{}`
)
configData
=
[]
byte
(
`{}`
)
...
@@ -149,7 +149,7 @@ func TestDefaultErrorFunc(t *testing.T) {
...
@@ -149,7 +149,7 @@ func TestDefaultErrorFunc(t *testing.T) {
mux
.
Handle
(
testapi
.
Default
.
ResourcePath
(
"pods"
,
"bar"
,
"foo"
),
&
handler
)
mux
.
Handle
(
testapi
.
Default
.
ResourcePath
(
"pods"
,
"bar"
,
"foo"
),
&
handler
)
server
:=
httptest
.
NewServer
(
mux
)
server
:=
httptest
.
NewServer
(
mux
)
defer
server
.
Close
()
defer
server
.
Close
()
factory
:=
NewConfigFactory
(
client
.
New
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}}),
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
factory
:=
NewConfigFactory
(
client
set
.
NewForConfig
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}}),
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
queue
:=
cache
.
NewFIFO
(
cache
.
MetaNamespaceKeyFunc
)
queue
:=
cache
.
NewFIFO
(
cache
.
MetaNamespaceKeyFunc
)
podBackoff
:=
podBackoff
{
podBackoff
:=
podBackoff
{
perPodBackoff
:
map
[
types
.
NamespacedName
]
*
backoffEntry
{},
perPodBackoff
:
map
[
types
.
NamespacedName
]
*
backoffEntry
{},
...
@@ -232,7 +232,7 @@ func TestBind(t *testing.T) {
...
@@ -232,7 +232,7 @@ func TestBind(t *testing.T) {
}
}
server
:=
httptest
.
NewServer
(
&
handler
)
server
:=
httptest
.
NewServer
(
&
handler
)
defer
server
.
Close
()
defer
server
.
Close
()
client
:=
client
.
New
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
client
:=
client
set
.
NewForConfig
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
b
:=
binder
{
client
}
b
:=
binder
{
client
}
if
err
:=
b
.
Bind
(
item
.
binding
);
err
!=
nil
{
if
err
:=
b
.
Bind
(
item
.
binding
);
err
!=
nil
{
...
@@ -317,7 +317,7 @@ func TestResponsibleForPod(t *testing.T) {
...
@@ -317,7 +317,7 @@ func TestResponsibleForPod(t *testing.T) {
}
}
server
:=
httptest
.
NewServer
(
&
handler
)
server
:=
httptest
.
NewServer
(
&
handler
)
defer
server
.
Close
()
defer
server
.
Close
()
client
:=
client
.
New
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
client
:=
client
set
.
NewForConfig
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
// factory of "default-scheduler"
// factory of "default-scheduler"
factoryDefaultScheduler
:=
NewConfigFactory
(
client
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
factoryDefaultScheduler
:=
NewConfigFactory
(
client
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
// factory of "foo-scheduler"
// factory of "foo-scheduler"
...
@@ -381,7 +381,7 @@ func TestInvalidHardPodAffinitySymmetricWeight(t *testing.T) {
...
@@ -381,7 +381,7 @@ func TestInvalidHardPodAffinitySymmetricWeight(t *testing.T) {
server
:=
httptest
.
NewServer
(
&
handler
)
server
:=
httptest
.
NewServer
(
&
handler
)
// TODO: Uncomment when fix #19254
// TODO: Uncomment when fix #19254
// defer server.Close()
// defer server.Close()
client
:=
client
.
New
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
client
:=
client
set
.
NewForConfig
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
// factory of "default-scheduler"
// factory of "default-scheduler"
factory
:=
NewConfigFactory
(
client
,
api
.
DefaultSchedulerName
,
-
1
,
api
.
DefaultFailureDomains
)
factory
:=
NewConfigFactory
(
client
,
api
.
DefaultSchedulerName
,
-
1
,
api
.
DefaultFailureDomains
)
_
,
err
:=
factory
.
Create
()
_
,
err
:=
factory
.
Create
()
...
@@ -398,7 +398,7 @@ func TestInvalidFactoryArgs(t *testing.T) {
...
@@ -398,7 +398,7 @@ func TestInvalidFactoryArgs(t *testing.T) {
}
}
server
:=
httptest
.
NewServer
(
&
handler
)
server
:=
httptest
.
NewServer
(
&
handler
)
defer
server
.
Close
()
defer
server
.
Close
()
client
:=
client
.
New
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
client
:=
client
set
.
NewForConfig
OrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
testCases
:=
[]
struct
{
testCases
:=
[]
struct
{
hardPodAffinitySymmetricWeight
int
hardPodAffinitySymmetricWeight
int
...
...
test/integration/scheduler/extender_test.go
View file @
cfba438e
...
@@ -33,6 +33,8 @@ import (
...
@@ -33,6 +33,8 @@ import (
"k8s.io/kubernetes/pkg/api/resource"
"k8s.io/kubernetes/pkg/api/resource"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/apimachinery/registered"
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
unversionedcore
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/unversioned"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/client/restclient"
"k8s.io/kubernetes/pkg/client/restclient"
client
"k8s.io/kubernetes/pkg/client/unversioned"
client
"k8s.io/kubernetes/pkg/client/unversioned"
...
@@ -196,6 +198,7 @@ func TestSchedulerExtender(t *testing.T) {
...
@@ -196,6 +198,7 @@ func TestSchedulerExtender(t *testing.T) {
defer
framework
.
DeleteTestingNamespace
(
ns
,
s
,
t
)
defer
framework
.
DeleteTestingNamespace
(
ns
,
s
,
t
)
restClient
:=
client
.
NewOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
restClient
:=
client
.
NewOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
clientSet
:=
clientset
.
NewForConfigOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
extender1
:=
&
Extender
{
extender1
:=
&
Extender
{
name
:
"extender1"
,
name
:
"extender1"
,
...
@@ -237,14 +240,14 @@ func TestSchedulerExtender(t *testing.T) {
...
@@ -237,14 +240,14 @@ func TestSchedulerExtender(t *testing.T) {
}
}
policy
.
APIVersion
=
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
.
String
()
policy
.
APIVersion
=
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
.
String
()
schedulerConfigFactory
:=
factory
.
NewConfigFactory
(
restClien
t
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfigFactory
:=
factory
.
NewConfigFactory
(
clientSe
t
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfig
,
err
:=
schedulerConfigFactory
.
CreateFromConfig
(
policy
)
schedulerConfig
,
err
:=
schedulerConfigFactory
.
CreateFromConfig
(
policy
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Couldn't create scheduler config: %v"
,
err
)
t
.
Fatalf
(
"Couldn't create scheduler config: %v"
,
err
)
}
}
eventBroadcaster
:=
record
.
NewBroadcaster
()
eventBroadcaster
:=
record
.
NewBroadcaster
()
schedulerConfig
.
Recorder
=
eventBroadcaster
.
NewRecorder
(
api
.
EventSource
{
Component
:
api
.
DefaultSchedulerName
})
schedulerConfig
.
Recorder
=
eventBroadcaster
.
NewRecorder
(
api
.
EventSource
{
Component
:
api
.
DefaultSchedulerName
})
eventBroadcaster
.
StartRecordingToSink
(
restClient
.
Events
(
ns
.
Name
)
)
eventBroadcaster
.
StartRecordingToSink
(
&
unversionedcore
.
EventSinkImpl
{
Interface
:
clientSet
.
Core
()
.
Events
(
""
)}
)
scheduler
.
New
(
schedulerConfig
)
.
Run
()
scheduler
.
New
(
schedulerConfig
)
.
Run
()
defer
close
(
schedulerConfig
.
StopEverything
)
defer
close
(
schedulerConfig
.
StopEverything
)
...
...
test/integration/scheduler/scheduler_test.go
View file @
cfba438e
...
@@ -31,6 +31,7 @@ import (
...
@@ -31,6 +31,7 @@ import (
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/client/cache"
"k8s.io/kubernetes/pkg/client/cache"
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/client/restclient"
"k8s.io/kubernetes/pkg/client/restclient"
client
"k8s.io/kubernetes/pkg/client/unversioned"
client
"k8s.io/kubernetes/pkg/client/unversioned"
...
@@ -57,8 +58,9 @@ func TestUnschedulableNodes(t *testing.T) {
...
@@ -57,8 +58,9 @@ func TestUnschedulableNodes(t *testing.T) {
defer
framework
.
DeleteTestingNamespace
(
ns
,
s
,
t
)
defer
framework
.
DeleteTestingNamespace
(
ns
,
s
,
t
)
restClient
:=
client
.
NewOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
restClient
:=
client
.
NewOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
clientSet
:=
clientset
.
NewForConfigOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
schedulerConfigFactory
:=
factory
.
NewConfigFactory
(
restClien
t
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfigFactory
:=
factory
.
NewConfigFactory
(
clientSe
t
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfig
,
err
:=
schedulerConfigFactory
.
Create
()
schedulerConfig
,
err
:=
schedulerConfigFactory
.
Create
()
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Couldn't create scheduler config: %v"
,
err
)
t
.
Fatalf
(
"Couldn't create scheduler config: %v"
,
err
)
...
@@ -322,12 +324,13 @@ func TestMultiScheduler(t *testing.T) {
...
@@ -322,12 +324,13 @@ func TestMultiScheduler(t *testing.T) {
*/
*/
// 1. create and start default-scheduler
// 1. create and start default-scheduler
restClient
:=
client
.
NewOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
restClient
:=
client
.
NewOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
clientSet
:=
clientset
.
NewForConfigOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
// NOTE: This test cannot run in parallel, because it is creating and deleting
// NOTE: This test cannot run in parallel, because it is creating and deleting
// non-namespaced objects (Nodes).
// non-namespaced objects (Nodes).
defer
restClient
.
Nodes
()
.
DeleteCollection
(
nil
,
api
.
ListOptions
{})
defer
restClient
.
Nodes
()
.
DeleteCollection
(
nil
,
api
.
ListOptions
{})
schedulerConfigFactory
:=
factory
.
NewConfigFactory
(
restClien
t
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfigFactory
:=
factory
.
NewConfigFactory
(
clientSe
t
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfig
,
err
:=
schedulerConfigFactory
.
Create
()
schedulerConfig
,
err
:=
schedulerConfigFactory
.
Create
()
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Couldn't create scheduler config: %v"
,
err
)
t
.
Fatalf
(
"Couldn't create scheduler config: %v"
,
err
)
...
@@ -397,8 +400,9 @@ func TestMultiScheduler(t *testing.T) {
...
@@ -397,8 +400,9 @@ func TestMultiScheduler(t *testing.T) {
// 5. create and start a scheduler with name "foo-scheduler"
// 5. create and start a scheduler with name "foo-scheduler"
restClient2
:=
client
.
NewOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
restClient2
:=
client
.
NewOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
clientSet2
:=
clientset
.
NewForConfigOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
schedulerConfigFactory2
:=
factory
.
NewConfigFactory
(
restClien
t2
,
"foo-scheduler"
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfigFactory2
:=
factory
.
NewConfigFactory
(
clientSe
t2
,
"foo-scheduler"
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfig2
,
err
:=
schedulerConfigFactory2
.
Create
()
schedulerConfig2
,
err
:=
schedulerConfigFactory2
.
Create
()
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"Couldn't create scheduler config: %v"
,
err
)
t
.
Errorf
(
"Couldn't create scheduler config: %v"
,
err
)
...
@@ -487,12 +491,13 @@ func TestAllocatable(t *testing.T) {
...
@@ -487,12 +491,13 @@ func TestAllocatable(t *testing.T) {
// 1. create and start default-scheduler
// 1. create and start default-scheduler
restClient
:=
client
.
NewOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
restClient
:=
client
.
NewOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
clientSet
:=
clientset
.
NewForConfigOrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
}})
// NOTE: This test cannot run in parallel, because it is creating and deleting
// NOTE: This test cannot run in parallel, because it is creating and deleting
// non-namespaced objects (Nodes).
// non-namespaced objects (Nodes).
defer
restClient
.
Nodes
()
.
DeleteCollection
(
nil
,
api
.
ListOptions
{})
defer
restClient
.
Nodes
()
.
DeleteCollection
(
nil
,
api
.
ListOptions
{})
schedulerConfigFactory
:=
factory
.
NewConfigFactory
(
restClien
t
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfigFactory
:=
factory
.
NewConfigFactory
(
clientSe
t
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfig
,
err
:=
schedulerConfigFactory
.
Create
()
schedulerConfig
,
err
:=
schedulerConfigFactory
.
Create
()
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Couldn't create scheduler config: %v"
,
err
)
t
.
Fatalf
(
"Couldn't create scheduler config: %v"
,
err
)
...
...
test/integration/scheduler_perf/util.go
View file @
cfba438e
...
@@ -24,9 +24,10 @@ import (
...
@@ -24,9 +24,10 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/resource"
"k8s.io/kubernetes/pkg/api/resource"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/apimachinery/registered"
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
unversionedcore
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/unversioned"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/client/restclient"
"k8s.io/kubernetes/pkg/client/restclient"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/util/workqueue"
"k8s.io/kubernetes/pkg/util/workqueue"
"k8s.io/kubernetes/plugin/pkg/scheduler"
"k8s.io/kubernetes/plugin/pkg/scheduler"
_
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider"
_
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider"
...
@@ -52,14 +53,14 @@ func mustSetupScheduler() (schedulerConfigFactory *factory.ConfigFactory, destro
...
@@ -52,14 +53,14 @@ func mustSetupScheduler() (schedulerConfigFactory *factory.ConfigFactory, destro
framework
.
RunAMasterUsingServer
(
framework
.
NewIntegrationTestMasterConfig
(),
s
,
h
)
framework
.
RunAMasterUsingServer
(
framework
.
NewIntegrationTestMasterConfig
(),
s
,
h
)
c
:=
client
.
New
OrDie
(
&
restclient
.
Config
{
c
lientSet
:=
clientset
.
NewForConfig
OrDie
(
&
restclient
.
Config
{
Host
:
s
.
URL
,
Host
:
s
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
},
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
},
QPS
:
5000.0
,
QPS
:
5000.0
,
Burst
:
5000
,
Burst
:
5000
,
})
})
schedulerConfigFactory
=
factory
.
NewConfigFactory
(
c
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfigFactory
=
factory
.
NewConfigFactory
(
c
lientSet
,
api
.
DefaultSchedulerName
,
api
.
DefaultHardPodAffinitySymmetricWeight
,
api
.
DefaultFailureDomains
)
schedulerConfig
,
err
:=
schedulerConfigFactory
.
Create
()
schedulerConfig
,
err
:=
schedulerConfigFactory
.
Create
()
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -67,7 +68,7 @@ func mustSetupScheduler() (schedulerConfigFactory *factory.ConfigFactory, destro
...
@@ -67,7 +68,7 @@ func mustSetupScheduler() (schedulerConfigFactory *factory.ConfigFactory, destro
}
}
eventBroadcaster
:=
record
.
NewBroadcaster
()
eventBroadcaster
:=
record
.
NewBroadcaster
()
schedulerConfig
.
Recorder
=
eventBroadcaster
.
NewRecorder
(
api
.
EventSource
{
Component
:
"scheduler"
})
schedulerConfig
.
Recorder
=
eventBroadcaster
.
NewRecorder
(
api
.
EventSource
{
Component
:
"scheduler"
})
eventBroadcaster
.
StartRecordingToSink
(
c
.
Events
(
""
)
)
eventBroadcaster
.
StartRecordingToSink
(
&
unversionedcore
.
EventSinkImpl
{
Interface
:
clientSet
.
Core
()
.
Events
(
""
)}
)
scheduler
.
New
(
schedulerConfig
)
.
Run
()
scheduler
.
New
(
schedulerConfig
)
.
Run
()
destroyFunc
=
func
()
{
destroyFunc
=
func
()
{
...
@@ -79,7 +80,7 @@ func mustSetupScheduler() (schedulerConfigFactory *factory.ConfigFactory, destro
...
@@ -79,7 +80,7 @@ func mustSetupScheduler() (schedulerConfigFactory *factory.ConfigFactory, destro
return
return
}
}
func
makeNodes
(
c
client
.
Interface
,
nodeCount
int
)
{
func
makeNodes
(
c
client
set
.
Interface
,
nodeCount
int
)
{
glog
.
Infof
(
"making %d nodes"
,
nodeCount
)
glog
.
Infof
(
"making %d nodes"
,
nodeCount
)
baseNode
:=
&
api
.
Node
{
baseNode
:=
&
api
.
Node
{
ObjectMeta
:
api
.
ObjectMeta
{
ObjectMeta
:
api
.
ObjectMeta
{
...
@@ -101,7 +102,7 @@ func makeNodes(c client.Interface, nodeCount int) {
...
@@ -101,7 +102,7 @@ func makeNodes(c client.Interface, nodeCount int) {
},
},
}
}
for
i
:=
0
;
i
<
nodeCount
;
i
++
{
for
i
:=
0
;
i
<
nodeCount
;
i
++
{
if
_
,
err
:=
c
.
Nodes
()
.
Create
(
baseNode
);
err
!=
nil
{
if
_
,
err
:=
c
.
Core
()
.
Nodes
()
.
Create
(
baseNode
);
err
!=
nil
{
panic
(
"error creating node: "
+
err
.
Error
())
panic
(
"error creating node: "
+
err
.
Error
())
}
}
}
}
...
@@ -129,7 +130,7 @@ func makePodSpec() api.PodSpec {
...
@@ -129,7 +130,7 @@ func makePodSpec() api.PodSpec {
// makePodsFromRC will create a ReplicationController object and
// makePodsFromRC will create a ReplicationController object and
// a given number of pods (imitating the controller).
// a given number of pods (imitating the controller).
func
makePodsFromRC
(
c
client
.
Interface
,
name
string
,
podCount
int
)
{
func
makePodsFromRC
(
c
client
set
.
Interface
,
name
string
,
podCount
int
)
{
rc
:=
&
api
.
ReplicationController
{
rc
:=
&
api
.
ReplicationController
{
ObjectMeta
:
api
.
ObjectMeta
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
name
,
Name
:
name
,
...
@@ -145,7 +146,7 @@ func makePodsFromRC(c client.Interface, name string, podCount int) {
...
@@ -145,7 +146,7 @@ func makePodsFromRC(c client.Interface, name string, podCount int) {
},
},
},
},
}
}
if
_
,
err
:=
c
.
ReplicationControllers
(
"default"
)
.
Create
(
rc
);
err
!=
nil
{
if
_
,
err
:=
c
.
Core
()
.
ReplicationControllers
(
"default"
)
.
Create
(
rc
);
err
!=
nil
{
glog
.
Fatalf
(
"unexpected error: %v"
,
err
)
glog
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
...
@@ -158,7 +159,7 @@ func makePodsFromRC(c client.Interface, name string, podCount int) {
...
@@ -158,7 +159,7 @@ func makePodsFromRC(c client.Interface, name string, podCount int) {
}
}
createPod
:=
func
(
i
int
)
{
createPod
:=
func
(
i
int
)
{
for
{
for
{
if
_
,
err
:=
c
.
Pods
(
"default"
)
.
Create
(
basePod
);
err
==
nil
{
if
_
,
err
:=
c
.
Core
()
.
Pods
(
"default"
)
.
Create
(
basePod
);
err
==
nil
{
break
break
}
}
}
}
...
...
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