Remove unnecessary periodic sync
This commit is contained in:
parent
a091d3ede7
commit
69e766e042
3 changed files with 12 additions and 22 deletions
|
@ -232,7 +232,9 @@ func newIngressController(config *Configuration) *GenericController {
|
||||||
ic.syncQueue.Enqueue(obj)
|
ic.syncQueue.Enqueue(obj)
|
||||||
},
|
},
|
||||||
UpdateFunc: func(old, cur interface{}) {
|
UpdateFunc: func(old, cur interface{}) {
|
||||||
if !reflect.DeepEqual(old, cur) {
|
oep := old.(*api.Endpoints)
|
||||||
|
ocur := cur.(*api.Endpoints)
|
||||||
|
if !reflect.DeepEqual(ocur.Subsets, oep.Subsets) {
|
||||||
ic.syncQueue.Enqueue(cur)
|
ic.syncQueue.Enqueue(cur)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -410,7 +412,7 @@ func (ic *GenericController) syncIngress(key interface{}) error {
|
||||||
PassthroughBackends: passUpstreams,
|
PassthroughBackends: passUpstreams,
|
||||||
}
|
}
|
||||||
|
|
||||||
if !ic.forceReload || ic.runningConfig != nil && ic.runningConfig.Equal(&pcfg) {
|
if !ic.forceReload && ic.runningConfig != nil && ic.runningConfig.Equal(&pcfg) {
|
||||||
glog.V(3).Infof("skipping backend reload (no changes detected)")
|
glog.V(3).Infof("skipping backend reload (no changes detected)")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -1257,7 +1259,7 @@ func (ic GenericController) Start() {
|
||||||
runtime.HandleError(fmt.Errorf("Timed out waiting for caches to sync"))
|
runtime.HandleError(fmt.Errorf("Timed out waiting for caches to sync"))
|
||||||
}
|
}
|
||||||
|
|
||||||
go ic.syncQueue.Run(10*time.Second, ic.stopCh)
|
go ic.syncQueue.Run(time.Second, ic.stopCh)
|
||||||
|
|
||||||
if ic.syncStatus != nil {
|
if ic.syncStatus != nil {
|
||||||
go ic.syncStatus.Run(ic.stopCh)
|
go ic.syncStatus.Run(ic.stopCh)
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"net/http/pprof"
|
"net/http/pprof"
|
||||||
"os"
|
"os"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||||
|
@ -64,8 +65,8 @@ func NewIngressController(backend ingress.Controller) *GenericController {
|
||||||
service with the format namespace/serviceName and the port of the service could be a
|
service with the format namespace/serviceName and the port of the service could be a
|
||||||
number of the name of the port.`)
|
number of the name of the port.`)
|
||||||
|
|
||||||
resyncPeriod = flags.Duration("sync-period", 0,
|
resyncPeriod = flags.Duration("sync-period", 600*time.Second,
|
||||||
`Relist and confirm cloud resources this often. Default is 0 (no resync)`)
|
`Relist and confirm cloud resources this often. Default is 10 minutes`)
|
||||||
|
|
||||||
watchNamespace = flags.String("watch-namespace", api.NamespaceAll,
|
watchNamespace = flags.String("watch-namespace", api.NamespaceAll,
|
||||||
`Namespace to watch for Ingress. Default is to watch all namespaces`)
|
`Namespace to watch for Ingress. Default is to watch all namespaces`)
|
||||||
|
@ -148,6 +149,10 @@ func NewIngressController(backend ingress.Controller) *GenericController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if resyncPeriod.Seconds() < 10 {
|
||||||
|
glog.Fatalf("resync period (%vs) is too low", resyncPeriod.Seconds())
|
||||||
|
}
|
||||||
|
|
||||||
err = os.MkdirAll(ingress.DefaultSSLDirectory, 0655)
|
err = os.MkdirAll(ingress.DefaultSSLDirectory, 0655)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("Failed to mkdir SSL directory: %v", err)
|
glog.Errorf("Failed to mkdir SSL directory: %v", err)
|
||||||
|
|
|
@ -92,10 +92,7 @@ type statusSync struct {
|
||||||
// Run starts the loop to keep the status in sync
|
// Run starts the loop to keep the status in sync
|
||||||
func (s statusSync) Run(stopCh <-chan struct{}) {
|
func (s statusSync) Run(stopCh <-chan struct{}) {
|
||||||
go wait.Forever(s.elector.Run, 0)
|
go wait.Forever(s.elector.Run, 0)
|
||||||
go s.run()
|
|
||||||
|
|
||||||
go s.syncQueue.Run(time.Second, stopCh)
|
go s.syncQueue.Run(time.Second, stopCh)
|
||||||
|
|
||||||
<-stopCh
|
<-stopCh
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,20 +133,6 @@ func (s statusSync) Shutdown() {
|
||||||
s.updateStatus([]v1.LoadBalancerIngress{})
|
s.updateStatus([]v1.LoadBalancerIngress{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *statusSync) run() {
|
|
||||||
err := wait.PollInfinite(updateInterval, func() (bool, error) {
|
|
||||||
if s.syncQueue.IsShuttingDown() {
|
|
||||||
return true, nil
|
|
||||||
}
|
|
||||||
// send a dummy object to the queue to force a sync
|
|
||||||
s.syncQueue.Enqueue("dummy")
|
|
||||||
return false, nil
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
glog.Errorf("error waiting shutdown: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *statusSync) sync(key interface{}) error {
|
func (s *statusSync) sync(key interface{}) error {
|
||||||
s.runLock.Lock()
|
s.runLock.Lock()
|
||||||
defer s.runLock.Unlock()
|
defer s.runLock.Unlock()
|
||||||
|
|
Loading…
Reference in a new issue