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
7a34347f
Commit
7a34347f
authored
Sep 13, 2016
by
Maciej Szulik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move ScheduledJob controller to use generated clientset
parent
5894834c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
20 deletions
+17
-20
controllermanager.go
cmd/kube-controller-manager/app/controllermanager.go
+2
-6
controller.go
pkg/controller/scheduledjob/controller.go
+9
-8
injection.go
pkg/controller/scheduledjob/injection.go
+6
-6
No files found.
cmd/kube-controller-manager/app/controllermanager.go
View file @
7a34347f
...
@@ -404,13 +404,9 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig
...
@@ -404,13 +404,9 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig
glog
.
Infof
(
"Starting %s apis"
,
groupVersion
)
glog
.
Infof
(
"Starting %s apis"
,
groupVersion
)
if
containsResource
(
resources
,
"scheduledjobs"
)
{
if
containsResource
(
resources
,
"scheduledjobs"
)
{
glog
.
Infof
(
"Starting scheduledjob controller"
)
glog
.
Infof
(
"Starting scheduledjob controller"
)
// TODO: this is a temp fix for allowing kubeClient list v2alpha1 sj, should switch to using clientset
//
//
TODO: this is a temp fix for allowing kubeClient list v2alpha1 sj, should switch to using clientset
kubeconfig
.
ContentConfig
.
GroupVersion
=
&
unversioned
.
GroupVersion
{
Group
:
batch
.
GroupName
,
Version
:
"v2alpha1"
}
kubeconfig
.
ContentConfig
.
GroupVersion
=
&
unversioned
.
GroupVersion
{
Group
:
batch
.
GroupName
,
Version
:
"v2alpha1"
}
kubeClient
,
err
:=
client
.
New
(
kubeconfig
)
go
scheduledjob
.
NewScheduledJobController
(
clientset
.
NewForConfigOrDie
(
restclient
.
AddUserAgent
(
kubeconfig
,
"scheduledjob-controller"
)))
.
if
err
!=
nil
{
glog
.
Fatalf
(
"Invalid API configuration: %v"
,
err
)
}
go
scheduledjob
.
NewScheduledJobController
(
kubeClient
)
.
Run
(
wait
.
NeverStop
)
Run
(
wait
.
NeverStop
)
time
.
Sleep
(
wait
.
Jitter
(
s
.
ControllerStartInterval
.
Duration
,
ControllerStartJitter
))
time
.
Sleep
(
wait
.
Jitter
(
s
.
ControllerStartInterval
.
Duration
,
ControllerStartJitter
))
time
.
Sleep
(
wait
.
Jitter
(
s
.
ControllerStartInterval
.
Duration
,
ControllerStartJitter
))
time
.
Sleep
(
wait
.
Jitter
(
s
.
ControllerStartInterval
.
Duration
,
ControllerStartJitter
))
...
...
pkg/controller/scheduledjob/controller.go
View file @
7a34347f
...
@@ -38,8 +38,9 @@ import (
...
@@ -38,8 +38,9 @@ import (
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apis/batch"
"k8s.io/kubernetes/pkg/apis/batch"
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"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/controller/job"
"k8s.io/kubernetes/pkg/controller/job"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime"
utilerrors
"k8s.io/kubernetes/pkg/util/errors"
utilerrors
"k8s.io/kubernetes/pkg/util/errors"
...
@@ -51,21 +52,21 @@ import (
...
@@ -51,21 +52,21 @@ import (
// Utilities for dealing with Jobs and ScheduledJobs and time.
// Utilities for dealing with Jobs and ScheduledJobs and time.
type
ScheduledJobController
struct
{
type
ScheduledJobController
struct
{
kubeClient
*
client
.
Client
kubeClient
clientset
.
Interface
jobControl
jobControlInterface
jobControl
jobControlInterface
sjControl
sjControlInterface
sjControl
sjControlInterface
podControl
podControlInterface
podControl
podControlInterface
recorder
record
.
EventRecorder
recorder
record
.
EventRecorder
}
}
func
NewScheduledJobController
(
kubeClient
*
client
.
Client
)
*
ScheduledJobController
{
func
NewScheduledJobController
(
kubeClient
clientset
.
Interface
)
*
ScheduledJobController
{
eventBroadcaster
:=
record
.
NewBroadcaster
()
eventBroadcaster
:=
record
.
NewBroadcaster
()
eventBroadcaster
.
StartLogging
(
glog
.
Infof
)
eventBroadcaster
.
StartLogging
(
glog
.
Infof
)
// TODO: remove the wrapper when every clients have moved to use the clientset.
// TODO: remove the wrapper when every clients have moved to use the clientset.
eventBroadcaster
.
StartRecordingToSink
(
kubeClient
.
Events
(
""
)
)
eventBroadcaster
.
StartRecordingToSink
(
&
unversionedcore
.
EventSinkImpl
{
Interface
:
kubeClient
.
Core
()
.
Events
(
""
)}
)
if
kubeClient
!=
nil
&&
kubeClient
.
GetRateLimiter
()
!=
nil
{
if
kubeClient
!=
nil
&&
kubeClient
.
Core
()
.
GetRESTClient
()
.
GetRateLimiter
()
!=
nil
{
metrics
.
RegisterMetricAndTrackRateLimiterUsage
(
"scheduledjob_controller"
,
kubeClient
.
GetRateLimiter
())
metrics
.
RegisterMetricAndTrackRateLimiterUsage
(
"scheduledjob_controller"
,
kubeClient
.
Core
()
.
GetRESTClient
()
.
GetRateLimiter
())
}
}
jm
:=
&
ScheduledJobController
{
jm
:=
&
ScheduledJobController
{
...
@@ -73,13 +74,13 @@ func NewScheduledJobController(kubeClient *client.Client) *ScheduledJobControlle
...
@@ -73,13 +74,13 @@ func NewScheduledJobController(kubeClient *client.Client) *ScheduledJobControlle
jobControl
:
realJobControl
{
KubeClient
:
kubeClient
},
jobControl
:
realJobControl
{
KubeClient
:
kubeClient
},
sjControl
:
&
realSJControl
{
KubeClient
:
kubeClient
},
sjControl
:
&
realSJControl
{
KubeClient
:
kubeClient
},
podControl
:
&
realPodControl
{
KubeClient
:
kubeClient
},
podControl
:
&
realPodControl
{
KubeClient
:
kubeClient
},
recorder
:
eventBroadcaster
.
NewRecorder
(
api
.
EventSource
{
Component
:
"scheduled
-
job-controller"
}),
recorder
:
eventBroadcaster
.
NewRecorder
(
api
.
EventSource
{
Component
:
"scheduledjob-controller"
}),
}
}
return
jm
return
jm
}
}
func
NewScheduledJobControllerFromClient
(
kubeClient
*
client
.
Client
)
*
ScheduledJobController
{
func
NewScheduledJobControllerFromClient
(
kubeClient
clientset
.
Interface
)
*
ScheduledJobController
{
jm
:=
NewScheduledJobController
(
kubeClient
)
jm
:=
NewScheduledJobController
(
kubeClient
)
return
jm
return
jm
}
}
...
...
pkg/controller/scheduledjob/injection.go
View file @
7a34347f
...
@@ -21,8 +21,8 @@ import (
...
@@ -21,8 +21,8 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/batch"
"k8s.io/kubernetes/pkg/apis/batch"
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/client/record"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/labels"
)
)
...
@@ -34,7 +34,7 @@ type sjControlInterface interface {
...
@@ -34,7 +34,7 @@ type sjControlInterface interface {
// realSJControl is the default implementation of sjControlInterface.
// realSJControl is the default implementation of sjControlInterface.
type
realSJControl
struct
{
type
realSJControl
struct
{
KubeClient
*
client
.
Client
KubeClient
clientset
.
Interface
}
}
var
_
sjControlInterface
=
&
realSJControl
{}
var
_
sjControlInterface
=
&
realSJControl
{}
...
@@ -73,7 +73,7 @@ type jobControlInterface interface {
...
@@ -73,7 +73,7 @@ type jobControlInterface interface {
// realJobControl is the default implementation of jobControlInterface.
// realJobControl is the default implementation of jobControlInterface.
type
realJobControl
struct
{
type
realJobControl
struct
{
KubeClient
*
client
.
Client
KubeClient
clientset
.
Interface
Recorder
record
.
EventRecorder
Recorder
record
.
EventRecorder
}
}
...
@@ -182,18 +182,18 @@ type podControlInterface interface {
...
@@ -182,18 +182,18 @@ type podControlInterface interface {
// realPodControl is the default implementation of podControlInterface.
// realPodControl is the default implementation of podControlInterface.
type
realPodControl
struct
{
type
realPodControl
struct
{
KubeClient
*
client
.
Client
KubeClient
clientset
.
Interface
Recorder
record
.
EventRecorder
Recorder
record
.
EventRecorder
}
}
var
_
podControlInterface
=
&
realPodControl
{}
var
_
podControlInterface
=
&
realPodControl
{}
func
(
r
realPodControl
)
ListPods
(
namespace
string
,
opts
api
.
ListOptions
)
(
*
api
.
PodList
,
error
)
{
func
(
r
realPodControl
)
ListPods
(
namespace
string
,
opts
api
.
ListOptions
)
(
*
api
.
PodList
,
error
)
{
return
r
.
KubeClient
.
Pods
(
namespace
)
.
List
(
opts
)
return
r
.
KubeClient
.
Core
()
.
Pods
(
namespace
)
.
List
(
opts
)
}
}
func
(
r
realPodControl
)
DeletePod
(
namespace
string
,
name
string
)
error
{
func
(
r
realPodControl
)
DeletePod
(
namespace
string
,
name
string
)
error
{
return
r
.
KubeClient
.
Pods
(
namespace
)
.
Delete
(
name
,
nil
)
return
r
.
KubeClient
.
Core
()
.
Pods
(
namespace
)
.
Delete
(
name
,
nil
)
}
}
type
fakePodControl
struct
{
type
fakePodControl
struct
{
...
...
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