Don't trigger resync if ingresses or secrets change

This commit is contained in:
James Munnelly 2018-04-10 01:27:18 +01:00
parent c05d255675
commit add2c76923

View File

@ -7,8 +7,6 @@ import (
"time"
"github.com/golang/glog"
corev1 "k8s.io/api/core/v1"
extv1beta1 "k8s.io/api/extensions/v1beta1"
k8sErrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/wait"
@ -88,11 +86,9 @@ func New(
ctrl.syncedFuncs = append(ctrl.syncedFuncs, clusterIssuersInformer.Informer().HasSynced)
}
secretsInformer.Informer().AddEventHandler(&controllerpkg.BlockingEventHandler{WorkFunc: ctrl.secretDeleted})
ctrl.secretLister = secretsInformer.Lister()
ctrl.syncedFuncs = append(ctrl.syncedFuncs, secretsInformer.Informer().HasSynced)
ingressInformer.Informer().AddEventHandler(&controllerpkg.BlockingEventHandler{WorkFunc: ctrl.ingressDeleted})
ctrl.ingressLister = ingressInformer.Lister()
ctrl.syncedFuncs = append(ctrl.syncedFuncs, ingressInformer.Informer().HasSynced)
@ -108,51 +104,6 @@ func New(
return ctrl
}
// TODO: replace with generic handleObjet function (like Navigator)
func (c *Controller) secretDeleted(obj interface{}) {
var secret *corev1.Secret
var ok bool
secret, ok = obj.(*corev1.Secret)
if !ok {
runtime.HandleError(fmt.Errorf("Object is not a Secret object %#v", obj))
return
}
crts, err := c.certificatesForSecret(secret)
if err != nil {
runtime.HandleError(fmt.Errorf("Error looking up Certificates observing Secret: %s/%s", secret.Namespace, secret.Name))
return
}
for _, crt := range crts {
key, err := keyFunc(crt)
if err != nil {
runtime.HandleError(err)
continue
}
c.queue.Add(key)
}
}
func (c *Controller) ingressDeleted(obj interface{}) {
ingress, ok := obj.(*extv1beta1.Ingress)
if !ok {
runtime.HandleError(fmt.Errorf("Object is not an Ingress object %#v", obj))
return
}
crts, err := c.certificatesForIngress(ingress)
if err != nil {
runtime.HandleError(fmt.Errorf("Error looking up certificates observing Ingress: %s/%s", ingress.Namespace, ingress.Name))
return
}
for _, crt := range crts {
key, err := keyFunc(crt)
if err != nil {
runtime.HandleError(err)
continue
}
c.queue.Add(key)
}
}
func (c *Controller) Run(workers int, stopCh <-chan struct{}) error {
glog.V(4).Infof("Starting %s control loop", ControllerName)
// wait for all the informer caches we depend to sync