diff options
Diffstat (limited to 'middleware/kubernetes/controller.go')
-rw-r--r-- | middleware/kubernetes/controller.go | 77 |
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 |