Skip to content

Commit 3b59ab2

Browse files
authored
Merge pull request #84 from thetechnick/secret-retry
Secret retry
2 parents 0199908 + 46eff6c commit 3b59ab2

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

nginx-controller/controller/controller.go

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,14 @@ func (lbc *LoadBalancerController) syncEndp(key string) {
287287
if !isNginxIngress(&ing) {
288288
continue
289289
}
290-
ingEx := lbc.createIngress(&ing)
290+
ingEx, err := lbc.createIngress(&ing)
291+
if err != nil {
292+
glog.Warningf("Error updating endpoints for %v/%v: %v, skipping", ing.Namespace, ing.Name, err)
293+
continue
294+
}
291295
glog.V(3).Infof("Updating Endpoints for %v/%v", ing.Name, ing.Namespace)
292296
name := ing.Namespace + "-" + ing.Name
293-
lbc.cnf.UpdateEndpoints(name, &ingEx)
297+
lbc.cnf.UpdateEndpoints(name, ingEx)
294298
}
295299
}
296300

@@ -479,8 +483,12 @@ func (lbc *LoadBalancerController) syncIng(key string) {
479483
glog.V(2).Infof("Adding or Updating Ingress: %v\n", key)
480484

481485
ing := obj.(*extensions.Ingress)
482-
ingEx := lbc.createIngress(ing)
483-
lbc.cnf.AddOrUpdateIngress(name, &ingEx)
486+
ingEx, err := lbc.createIngress(ing)
487+
if err != nil {
488+
lbc.ingQueue.requeueAfter(key, err, 5*time.Second)
489+
return
490+
}
491+
lbc.cnf.AddOrUpdateIngress(name, ingEx)
484492
}
485493
}
486494

@@ -519,8 +527,8 @@ func (lbc *LoadBalancerController) getIngressForEndpoints(obj interface{}) []ext
519527
return ings
520528
}
521529

522-
func (lbc *LoadBalancerController) createIngress(ing *extensions.Ingress) nginx.IngressEx {
523-
ingEx := nginx.IngressEx{
530+
func (lbc *LoadBalancerController) createIngress(ing *extensions.Ingress) (*nginx.IngressEx, error) {
531+
ingEx := &nginx.IngressEx{
524532
Ingress: ing,
525533
}
526534

@@ -529,8 +537,7 @@ func (lbc *LoadBalancerController) createIngress(ing *extensions.Ingress) nginx.
529537
secretName := tls.SecretName
530538
secret, err := lbc.client.Secrets(ing.Namespace).Get(secretName)
531539
if err != nil {
532-
glog.Warningf("Error retrieving secret %v for Ingress %v: %v", secretName, ing.Name, err)
533-
continue
540+
return nil, fmt.Errorf("Error retrieving secret %v for Ingress %v: %v", secretName, ing.Name, err)
534541
}
535542
ingEx.Secrets[secretName] = secret
536543
}
@@ -560,7 +567,7 @@ func (lbc *LoadBalancerController) createIngress(ing *extensions.Ingress) nginx.
560567
}
561568
}
562569

563-
return ingEx
570+
return ingEx, nil
564571
}
565572

566573
func (lbc *LoadBalancerController) getEndpointsForIngressBackend(backend *extensions.IngressBackend, namespace string) ([]string, error) {

nginx-controller/controller/utils.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ func (t *taskQueue) requeue(key string, err error) {
5959
t.queue.Add(key)
6060
}
6161

62+
func (t *taskQueue) requeueAfter(key string, err error, after time.Duration) {
63+
glog.Errorf("Requeuing %v after %s, err %v", key, after.String(), err)
64+
go func(key string, after time.Duration) {
65+
time.Sleep(after)
66+
t.queue.Add(key)
67+
}(key, after)
68+
}
69+
6270
// worker processes work in the queue through sync.
6371
func (t *taskQueue) worker() {
6472
for {

0 commit comments

Comments
 (0)