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
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
26 deletions
+40
-26
scheduler.go
pkg/scheduler/scheduler.go
+40
-26
No files found.
pkg/scheduler/scheduler.go
View file @
a856c7ab
...
...
@@ -184,34 +184,12 @@ func New(client clientset.Interface,
policy
:=
&
schedulerapi
.
Policy
{}
switch
{
case
source
.
Policy
.
File
!=
nil
:
// 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
)
}
data
,
err
:=
ioutil
.
ReadFile
(
policyFile
)
if
err
!=
nil
{
return
nil
,
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
)
if
err
:=
initPolicyFromFile
(
source
.
Policy
.
File
.
Path
,
policy
);
err
!=
nil
{
return
nil
,
err
}
case
source
.
Policy
.
ConfigMap
!=
nil
:
// 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
)
}
data
,
found
:=
policyConfigMap
.
Data
[
kubeschedulerconfig
.
SchedulerPolicyConfigMapKey
]
if
!
found
{
return
nil
,
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
)
if
err
:=
initPolicyFromConfigMap
(
client
,
source
.
Policy
.
ConfigMap
,
policy
);
err
!=
nil
{
return
nil
,
err
}
}
sc
,
err
:=
configurator
.
CreateFromConfig
(
*
policy
)
...
...
@@ -231,6 +209,42 @@ func New(client clientset.Interface,
return
sched
,
nil
}
// initPolicyFromFile initialize policy from file
func
initPolicyFromFile
(
policyFile
string
,
policy
*
schedulerapi
.
Policy
)
error
{
// Use a policy serialized in a file.
_
,
err
:=
os
.
Stat
(
policyFile
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"missing policy config file %s"
,
policyFile
)
}
data
,
err
:=
ioutil
.
ReadFile
(
policyFile
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"couldn't read policy config: %v"
,
err
)
}
err
=
runtime
.
DecodeInto
(
latestschedulerapi
.
Codec
,
[]
byte
(
data
),
policy
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"invalid policy: %v"
,
err
)
}
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.
policyConfigMap
,
err
:=
client
.
CoreV1
()
.
ConfigMaps
(
policyRef
.
Namespace
)
.
Get
(
policyRef
.
Name
,
metav1
.
GetOptions
{})
if
err
!=
nil
{
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
fmt
.
Errorf
(
"missing policy config map value at key %q"
,
kubeschedulerconfig
.
SchedulerPolicyConfigMapKey
)
}
err
=
runtime
.
DecodeInto
(
latestschedulerapi
.
Codec
,
[]
byte
(
data
),
policy
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"invalid policy: %v"
,
err
)
}
return
nil
}
// NewFromConfigurator returns a new scheduler that is created entirely by the Configurator. Assumes Create() is implemented.
// Supports intermediate Config mutation for now if you provide modifier functions which will run after Config is created.
func
NewFromConfigurator
(
c
factory
.
Configurator
,
modifiers
...
func
(
c
*
factory
.
Config
))
(
*
Scheduler
,
error
)
{
...
...
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