Kubernetes: cleanup channel handling

Only use one channel for all watches
Re-use stop channel from the provider
Skip events that have already been handled by the provider, builds on 007f8cc48ea9504bb7754c5e3244124be422f47d
This commit is contained in:
Yves Peter 2016-12-03 21:20:39 +01:00
parent 87eac1dc1a
commit fc788eb426
3 changed files with 20 additions and 40 deletions

View file

@ -52,7 +52,7 @@ func (provider *Kubernetes) Provide(configurationChan chan<- types.ConfigMessage
pool.Go(func(stop chan bool) {
operation := func() error {
for {
stopWatch := make(chan bool, 5)
stopWatch := make(chan struct{}, 1)
defer close(stopWatch)
log.Debugf("Using label selector: '%s'", provider.LabelSelector)
eventsChan, err := k8sClient.WatchAll(provider.LabelSelector, stopWatch)
@ -69,7 +69,6 @@ func (provider *Kubernetes) Provide(configurationChan chan<- types.ConfigMessage
for {
select {
case <-stop:
stopWatch <- true
return nil
case event := <-eventsChan:
log.Debugf("Received event from kubernetes %+v", event)