Skip to content

Commit

Permalink
Ensure ingress cleanup when finalizer exists
Browse files Browse the repository at this point in the history
  • Loading branch information
skmatti committed Jul 21, 2020
1 parent 82122cd commit 5a5fdb6
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions pkg/controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -166,20 +166,22 @@ func NewLoadBalancerController(
UpdateFunc: func(old, cur interface{}) {
curIng := cur.(*v1beta1.Ingress)
if !utils.IsGLBCIngress(curIng) {
oldIng := old.(*v1beta1.Ingress)
// If ingress was GLBC Ingress, we need to track ingress class change
// and run GC to delete LB resources.
if utils.IsGLBCIngress(oldIng) {
klog.V(4).Infof("Ingress %v class was changed, enqueuing", common.NamespacedName(curIng))
// Ingress needs to be enqueued if a ingress finalizer exists.
// An existing finalizer means that
// 1. Ingress update for class change.
// 2. Ingress cleanup failed and re-queued.
// 3. Finalizer remove failed and re-queued.
if common.HasFinalizer(curIng.ObjectMeta) {
klog.V(2).Infof("Ingress %s class was changed but has a glbc finalizer, enqueuing", common.NamespacedName(curIng))
lbc.ingQueue.Enqueue(cur)
return
}
return
}
if reflect.DeepEqual(old, cur) {
klog.V(2).Infof("Periodic enqueueing of %v", common.NamespacedName(curIng))
klog.V(2).Infof("Periodic enqueueing of %s", common.NamespacedName(curIng))
} else {
klog.V(2).Infof("Ingress %v changed, enqueuing", common.NamespacedName(curIng))
klog.V(2).Infof("Ingress %s changed, enqueuing", common.NamespacedName(curIng))
}
lbc.ctx.Recorder(curIng.Namespace).Eventf(curIng, apiv1.EventTypeNormal, events.SyncIngress, "Scheduled for sync")
lbc.ingQueue.Enqueue(cur)
Expand Down

0 comments on commit 5a5fdb6

Please sign in to comment.