mirror of https://github.com/k3s-io/k3s
Merge pull request #37572 from mwielgus/ing-fix-loop
Automatic merge from submit-queue Fix infinte loop in federated ingress controller Previously ingress controller was constantly scheduling reconcilation, even if no updates were needed. That behavior creates a big mess in the logs and consumes resources. This pr also fixes the stop function for federated ingress controller. cc: @nikhiljindal @madhusudancspull/6/head
commit
9068bdc693
|
@ -357,6 +357,12 @@ func (ic *IngressController) Run(stopChan <-chan struct{}) {
|
|||
ic.ingressFederatedInformer.Stop()
|
||||
glog.Infof("Stopping ConfigMap Federated Informer")
|
||||
ic.configMapFederatedInformer.Stop()
|
||||
glog.Infof("Stopoing ingress deliverer")
|
||||
ic.ingressDeliverer.Stop()
|
||||
glog.Infof("Stopping configmap deliverer")
|
||||
ic.configMapDeliverer.Stop()
|
||||
glog.Infof("Stopping cluster deliverer")
|
||||
ic.clusterDeliverer.Stop()
|
||||
}()
|
||||
ic.ingressDeliverer.StartWithHandler(func(item *util.DelayingDelivererItem) {
|
||||
ingress := item.Value.(types.NamespacedName)
|
||||
|
@ -393,7 +399,7 @@ func (ic *IngressController) deliverIngressObj(obj interface{}, delay time.Durat
|
|||
}
|
||||
|
||||
func (ic *IngressController) deliverIngress(ingress types.NamespacedName, delay time.Duration, failed bool) {
|
||||
glog.V(4).Infof("Delivering ingress: %s", ingress)
|
||||
glog.V(4).Infof("Delivering ingress: %s with delay: %v error: %v", ingress, delay, failed)
|
||||
key := ingress.String()
|
||||
if failed {
|
||||
ic.ingressBackoff.Next(key, time.Now())
|
||||
|
@ -711,7 +717,7 @@ func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) {
|
|||
if err != nil {
|
||||
glog.Errorf("Failed to ensure delete object from underlying clusters finalizer in ingress %s: %v",
|
||||
baseIngress.Name, err)
|
||||
ic.deliverIngress(ingress, 0, false)
|
||||
ic.deliverIngress(ingress, 0, true)
|
||||
return
|
||||
}
|
||||
baseIngress = updatedIngressObj.(*extensions_v1beta1.Ingress)
|
||||
|
@ -875,7 +881,6 @@ func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) {
|
|||
if len(operations) == 0 {
|
||||
// Everything is in order
|
||||
glog.V(4).Infof("Ingress %q is up-to-date in all clusters - no propagation to clusters required.", ingress)
|
||||
ic.deliverIngress(ingress, ic.ingressReviewDelay, false)
|
||||
return
|
||||
}
|
||||
glog.V(4).Infof("Calling federatedUpdater.Update() - operations: %v", operations)
|
||||
|
|
Loading…
Reference in New Issue