Fix panic setting ingress status

This commit is contained in:
Daniel Tomcej 2018-06-14 01:22:03 -06:00 committed by Traefiker Bot
parent d5b649bf1c
commit 2758664226

View file

@ -180,19 +180,21 @@ func (c *clientImpl) UpdateIngressStatus(namespace, name, ip, hostname string) e
} }
ing := item.(*extensionsv1beta1.Ingress) ing := item.(*extensionsv1beta1.Ingress)
if ing.Status.LoadBalancer.Ingress[0].Hostname == hostname && ing.Status.LoadBalancer.Ingress[0].IP == ip { if len(ing.Status.LoadBalancer.Ingress) > 0 {
// If status is already set, skip update if ing.Status.LoadBalancer.Ingress[0].Hostname == hostname && ing.Status.LoadBalancer.Ingress[0].IP == ip {
log.Debugf("Skipping status update on ingress %s/%s", ing.Namespace, ing.Name) // If status is already set, skip update
} else { log.Debugf("Skipping status update on ingress %s/%s", ing.Namespace, ing.Name)
ingCopy := ing.DeepCopy() return nil
ingCopy.Status = extensionsv1beta1.IngressStatus{LoadBalancer: corev1.LoadBalancerStatus{Ingress: []corev1.LoadBalancerIngress{{IP: ip, Hostname: hostname}}}}
_, err := c.clientset.ExtensionsV1beta1().Ingresses(ingCopy.Namespace).UpdateStatus(ingCopy)
if err != nil {
return fmt.Errorf("failed to update ingress status %s with error: %v", keyName, err)
} }
log.Infof("Updated status on ingress %s", keyName)
} }
ingCopy := ing.DeepCopy()
ingCopy.Status = extensionsv1beta1.IngressStatus{LoadBalancer: corev1.LoadBalancerStatus{Ingress: []corev1.LoadBalancerIngress{{IP: ip, Hostname: hostname}}}}
_, err = c.clientset.ExtensionsV1beta1().Ingresses(ingCopy.Namespace).UpdateStatus(ingCopy)
if err != nil {
return fmt.Errorf("failed to update ingress status %s with error: %v", keyName, err)
}
log.Infof("Updated status on ingress %s", keyName)
return nil return nil
} }