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
a856c7ab
Unverified
Commit
a856c7ab
authored
Nov 15, 2018
by
k8s-ci-robot
Committed by
GitHub
Nov 15, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #70973 from ping035627/k8s-181113
Refactor New function
parents
ab261f15
9e760732
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
25 deletions
+39
-25
scheduler.go
pkg/scheduler/scheduler.go
+39
-25
No files found.
pkg/scheduler/scheduler.go
View file @
a856c7ab
...
...
@@ -184,51 +184,65 @@ func New(client clientset.Interface,
policy
:=
&
schedulerapi
.
Policy
{}
switch
{
case
source
.
Policy
.
File
!=
nil
:
if
err
:=
initPolicyFromFile
(
source
.
Policy
.
File
.
Path
,
policy
);
err
!=
nil
{
return
nil
,
err
}
case
source
.
Policy
.
ConfigMap
!=
nil
:
if
err
:=
initPolicyFromConfigMap
(
client
,
source
.
Policy
.
ConfigMap
,
policy
);
err
!=
nil
{
return
nil
,
err
}
}
sc
,
err
:=
configurator
.
CreateFromConfig
(
*
policy
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"couldn't create scheduler from policy: %v"
,
err
)
}
config
=
sc
default
:
return
nil
,
fmt
.
Errorf
(
"unsupported algorithm source: %v"
,
source
)
}
// Additional tweaks to the config produced by the configurator.
config
.
Recorder
=
recorder
config
.
DisablePreemption
=
options
.
disablePreemption
config
.
StopEverything
=
stopCh
// Create the scheduler.
sched
:=
NewFromConfig
(
config
)
return
sched
,
nil
}
// initPolicyFromFile initialize policy from file
func
initPolicyFromFile
(
policyFile
string
,
policy
*
schedulerapi
.
Policy
)
error
{
// Use a policy serialized in a file.
policyFile
:=
source
.
Policy
.
File
.
Path
_
,
err
:=
os
.
Stat
(
policyFile
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"missing policy config file %s"
,
policyFile
)
return
fmt
.
Errorf
(
"missing policy config file %s"
,
policyFile
)
}
data
,
err
:=
ioutil
.
ReadFile
(
policyFile
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"couldn't read policy config: %v"
,
err
)
return
fmt
.
Errorf
(
"couldn't read policy config: %v"
,
err
)
}
err
=
runtime
.
DecodeInto
(
latestschedulerapi
.
Codec
,
[]
byte
(
data
),
policy
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"invalid policy: %v"
,
err
)
return
fmt
.
Errorf
(
"invalid policy: %v"
,
err
)
}
case
source
.
Policy
.
ConfigMap
!=
nil
:
return
nil
}
// initPolicyFromConfigMap initialize policy from configMap
func
initPolicyFromConfigMap
(
client
clientset
.
Interface
,
policyRef
*
kubeschedulerconfig
.
SchedulerPolicyConfigMapSource
,
policy
*
schedulerapi
.
Policy
)
error
{
// Use a policy serialized in a config map value.
policyRef
:=
source
.
Policy
.
ConfigMap
policyConfigMap
,
err
:=
client
.
CoreV1
()
.
ConfigMaps
(
policyRef
.
Namespace
)
.
Get
(
policyRef
.
Name
,
metav1
.
GetOptions
{})
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"couldn't get policy config map %s/%s: %v"
,
policyRef
.
Namespace
,
policyRef
.
Name
,
err
)
return
fmt
.
Errorf
(
"couldn't get policy config map %s/%s: %v"
,
policyRef
.
Namespace
,
policyRef
.
Name
,
err
)
}
data
,
found
:=
policyConfigMap
.
Data
[
kubeschedulerconfig
.
SchedulerPolicyConfigMapKey
]
if
!
found
{
return
nil
,
fmt
.
Errorf
(
"missing policy config map value at key %q"
,
kubeschedulerconfig
.
SchedulerPolicyConfigMapKey
)
return
fmt
.
Errorf
(
"missing policy config map value at key %q"
,
kubeschedulerconfig
.
SchedulerPolicyConfigMapKey
)
}
err
=
runtime
.
DecodeInto
(
latestschedulerapi
.
Codec
,
[]
byte
(
data
),
policy
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"invalid policy: %v"
,
err
)
}
}
sc
,
err
:=
configurator
.
CreateFromConfig
(
*
policy
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"couldn't create scheduler from policy: %v"
,
err
)
}
config
=
sc
default
:
return
nil
,
fmt
.
Errorf
(
"unsupported algorithm source: %v"
,
source
)
return
fmt
.
Errorf
(
"invalid policy: %v"
,
err
)
}
// Additional tweaks to the config produced by the configurator.
config
.
Recorder
=
recorder
config
.
DisablePreemption
=
options
.
disablePreemption
config
.
StopEverything
=
stopCh
// Create the scheduler.
sched
:=
NewFromConfig
(
config
)
return
sched
,
nil
return
nil
}
// NewFromConfigurator returns a new scheduler that is created entirely by the Configurator. Assumes Create() is implemented.
...
...
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