aboutsummaryrefslogtreecommitdiff
path: root/middleware/kubernetes/controller.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/kubernetes/controller.go')
-rw-r--r--middleware/kubernetes/controller.go77
1 files changed, 34 insertions, 43 deletions
diff --git a/middleware/kubernetes/controller.go b/middleware/kubernetes/controller.go
index 993078318..de6b98274 100644
--- a/middleware/kubernetes/controller.go
+++ b/middleware/kubernetes/controller.go
@@ -5,12 +5,13 @@ import (
"sync"
"time"
- "k8s.io/kubernetes/pkg/api"
- "k8s.io/kubernetes/pkg/client/cache"
- clientset_generated "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4"
- "k8s.io/kubernetes/pkg/labels"
- "k8s.io/kubernetes/pkg/runtime"
- "k8s.io/kubernetes/pkg/watch"
+ "k8s.io/client-go/1.5/pkg/api"
+ "k8s.io/client-go/1.5/pkg/api/v1"
+ "k8s.io/client-go/1.5/tools/cache"
+ "k8s.io/client-go/1.5/kubernetes"
+ "k8s.io/client-go/1.5/pkg/labels"
+ "k8s.io/client-go/1.5/pkg/runtime"
+ "k8s.io/client-go/1.5/pkg/watch"
)
var (
@@ -31,16 +32,14 @@ func (s *storeToNamespaceLister) List() (ns api.NamespaceList, err error) {
}
type dnsController struct {
- client *clientset_generated.Clientset
+ client *kubernetes.Clientset
selector *labels.Selector
- endpController *cache.Controller
svcController *cache.Controller
nsController *cache.Controller
svcLister cache.StoreToServiceLister
- endpLister cache.StoreToEndpointsLister
nsLister storeToNamespaceLister
// stopLock is used to enforce only a single call to Stop is active.
@@ -52,20 +51,13 @@ type dnsController struct {
}
// newDNSController creates a controller for CoreDNS.
-func newdnsController(kubeClient *clientset_generated.Clientset, resyncPeriod time.Duration, lselector *labels.Selector) *dnsController {
+func newdnsController(kubeClient *kubernetes.Clientset, resyncPeriod time.Duration, lselector *labels.Selector) *dnsController {
dns := dnsController{
client: kubeClient,
selector: lselector,
stopCh: make(chan struct{}),
}
- dns.endpLister.Store, dns.endpController = cache.NewInformer(
- &cache.ListWatch{
- ListFunc: endpointsListFunc(dns.client, namespace, dns.selector),
- WatchFunc: endpointsWatchFunc(dns.client, namespace, dns.selector),
- },
- &api.Endpoints{}, resyncPeriod, cache.ResourceEventHandlerFuncs{})
-
dns.svcLister.Indexer, dns.svcController = cache.NewIndexerInformer(
&cache.ListWatch{
ListFunc: serviceListFunc(dns.client, namespace, dns.selector),
@@ -86,62 +78,62 @@ func newdnsController(kubeClient *clientset_generated.Clientset, resyncPeriod ti
return &dns
}
-func serviceListFunc(c *clientset_generated.Clientset, ns string, s *labels.Selector) func(api.ListOptions) (runtime.Object, error) {
+func serviceListFunc(c *kubernetes.Clientset, ns string, s *labels.Selector) func(api.ListOptions) (runtime.Object, error) {
return func(opts api.ListOptions) (runtime.Object, error) {
if s != nil {
opts.LabelSelector = *s
}
- return c.Services(ns).List(opts)
- }
-}
-
-func serviceWatchFunc(c *clientset_generated.Clientset, ns string, s *labels.Selector) func(options api.ListOptions) (watch.Interface, error) {
- return func(options api.ListOptions) (watch.Interface, error) {
- if s != nil {
- options.LabelSelector = *s
+ list_v1, err := c.Core().Services(ns).List(opts)
+ if err != nil {
+ return nil, err
}
- return c.Services(ns).Watch(options)
- }
-}
-
-func endpointsListFunc(c *clientset_generated.Clientset, ns string, s *labels.Selector) func(api.ListOptions) (runtime.Object, error) {
- return func(opts api.ListOptions) (runtime.Object, error) {
- if s != nil {
- opts.LabelSelector = *s
+ var list_api api.ServiceList
+ err = v1.Convert_v1_ServiceList_To_api_ServiceList(list_v1, &list_api, nil)
+ if err != nil {
+ return nil, err
}
- return c.Endpoints(ns).List(opts)
+ return &list_api, err
}
}
-func endpointsWatchFunc(c *clientset_generated.Clientset, ns string, s *labels.Selector) func(options api.ListOptions) (watch.Interface, error) {
+func serviceWatchFunc(c *kubernetes.Clientset, ns string, s *labels.Selector) func(options api.ListOptions) (watch.Interface, error) {
return func(options api.ListOptions) (watch.Interface, error) {
if s != nil {
options.LabelSelector = *s
}
- return c.Endpoints(ns).Watch(options)
+ return c.Core().Services(ns).Watch(options)
}
}
-func namespaceListFunc(c *clientset_generated.Clientset, s *labels.Selector) func(api.ListOptions) (runtime.Object, error) {
+func namespaceListFunc(c *kubernetes.Clientset, s *labels.Selector) func(api.ListOptions) (runtime.Object, error) {
return func(opts api.ListOptions) (runtime.Object, error) {
if s != nil {
opts.LabelSelector = *s
}
- return c.Namespaces().List(opts)
+ list_v1, err := c.Core().Namespaces().List(opts)
+ if err != nil {
+ return nil, err
+ }
+ var list_api api.NamespaceList
+ err = v1.Convert_v1_NamespaceList_To_api_NamespaceList(list_v1, &list_api, nil)
+ if err != nil {
+ return nil, err
+ }
+ return &list_api, err
}
}
-func namespaceWatchFunc(c *clientset_generated.Clientset, s *labels.Selector) func(options api.ListOptions) (watch.Interface, error) {
+func namespaceWatchFunc(c *kubernetes.Clientset, s *labels.Selector) func(options api.ListOptions) (watch.Interface, error) {
return func(options api.ListOptions) (watch.Interface, error) {
if s != nil {
options.LabelSelector = *s
}
- return c.Namespaces().Watch(options)
+ return c.Core().Namespaces().Watch(options)
}
}
func (dns *dnsController) controllersInSync() bool {
- return dns.svcController.HasSynced() && dns.endpController.HasSynced()
+ return dns.svcController.HasSynced()
}
// Stop stops the controller.
@@ -162,7 +154,6 @@ func (dns *dnsController) Stop() error {
// Run starts the controller.
func (dns *dnsController) Run() {
- go dns.endpController.Run(dns.stopCh)
go dns.svcController.Run(dns.stopCh)
go dns.nsController.Run(dns.stopCh)
<-dns.stopCh