From fe53ec34cf853b4ed935c3ac817052e2ec46bb05 Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Tue, 9 Aug 2016 17:43:38 -0700 Subject: [PATCH] Use unversioned client in scheduledjobs and set group version to batch/v2alpha1 --- .../app/controllermanager.go | 4 +++- pkg/controller/scheduledjob/controller.go | 15 +++++++-------- pkg/controller/scheduledjob/injection.go | 6 +++--- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/cmd/kube-controller-manager/app/controllermanager.go b/cmd/kube-controller-manager/app/controllermanager.go index 76fa7013bfb..38cb2979fe2 100644 --- a/cmd/kube-controller-manager/app/controllermanager.go +++ b/cmd/kube-controller-manager/app/controllermanager.go @@ -36,6 +36,7 @@ import ( "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/kubernetes/pkg/apis/batch" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/leaderelection" "k8s.io/kubernetes/pkg/client/record" @@ -128,6 +129,7 @@ func Run(s *options.CMServer) error { } kubeconfig.ContentConfig.ContentType = s.ContentType + kubeconfig.ContentConfig.GroupVersion = &unversioned.GroupVersion{Group: batch.GroupName, Version: "v2alpha1"} // Override kubeconfig qps/burst settings from flags kubeconfig.QPS = s.KubeAPIQPS kubeconfig.Burst = int(s.KubeAPIBurst) @@ -390,7 +392,7 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig glog.Infof("Starting %s apis", groupVersion) if containsResource(resources, "scheduledjobs") { glog.Infof("Starting scheduledjob controller") - go scheduledjob.NewScheduledJobController(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "scheduledjob-controller"))). + go scheduledjob.NewScheduledJobController(kubeClient). Run(wait.NeverStop) time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) diff --git a/pkg/controller/scheduledjob/controller.go b/pkg/controller/scheduledjob/controller.go index 87cb9891736..45d64054511 100644 --- a/pkg/controller/scheduledjob/controller.go +++ b/pkg/controller/scheduledjob/controller.go @@ -37,9 +37,8 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/unversioned" "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" + client "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/controller/job" "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/util/metrics" @@ -50,20 +49,20 @@ import ( // Utilities for dealing with Jobs and ScheduledJobs and time. type ScheduledJobController struct { - kubeClient clientset.Interface + kubeClient *client.Client jobControl jobControlInterface sjControl sjControlInterface recorder record.EventRecorder } -func NewScheduledJobController(kubeClient clientset.Interface) *ScheduledJobController { +func NewScheduledJobController(kubeClient *client.Client) *ScheduledJobController { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) // TODO: remove the wrapper when every clients have moved to use the clientset. - eventBroadcaster.StartRecordingToSink(&unversionedcore.EventSinkImpl{Interface: kubeClient.Core().Events("")}) + eventBroadcaster.StartRecordingToSink(kubeClient.Events("")) - if kubeClient != nil && kubeClient.Batch().GetRESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("scheduledjob_controller", kubeClient.Batch().GetRESTClient().GetRateLimiter()) + if kubeClient != nil && kubeClient.GetRateLimiter() != nil { + metrics.RegisterMetricAndTrackRateLimiterUsage("scheduledjob_controller", kubeClient.GetRateLimiter()) } jm := &ScheduledJobController{ @@ -76,7 +75,7 @@ func NewScheduledJobController(kubeClient clientset.Interface) *ScheduledJobCont return jm } -func NewScheduledJobControllerFromClient(kubeClient clientset.Interface) *ScheduledJobController { +func NewScheduledJobControllerFromClient(kubeClient *client.Client) *ScheduledJobController { jm := NewScheduledJobController(kubeClient) return jm } diff --git a/pkg/controller/scheduledjob/injection.go b/pkg/controller/scheduledjob/injection.go index fed5c06aa51..9181dd001c9 100644 --- a/pkg/controller/scheduledjob/injection.go +++ b/pkg/controller/scheduledjob/injection.go @@ -20,8 +20,8 @@ import ( "sync" "k8s.io/kubernetes/pkg/apis/batch" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/record" + client "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/labels" ) @@ -33,7 +33,7 @@ type sjControlInterface interface { // realSJControl is the default implementation of sjControlInterface. type realSJControl struct { - KubeClient clientset.Interface + KubeClient *client.Client } var _ sjControlInterface = &realSJControl{} @@ -69,7 +69,7 @@ type jobControlInterface interface { // realJobControl is the default implementation of jobControlInterface. type realJobControl struct { - KubeClient clientset.Interface + KubeClient *client.Client Recorder record.EventRecorder }