Use UpdateStatus, not Update, to add LoadBalancerStatus to Federated Ingress.

This commit is contained in:
Quinton Hoole 2016-09-26 10:06:05 -07:00
parent f74b40ed81
commit 894a4e226f

View File

@ -678,6 +678,16 @@ func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) {
glog.V(4).Infof(logStr, "Transferring") glog.V(4).Infof(logStr, "Transferring")
if !baseIPAnnotationExists && clusterIPNameExists { if !baseIPAnnotationExists && clusterIPNameExists {
baseIngress.ObjectMeta.Annotations[staticIPNameKeyWritable] = clusterIPName baseIngress.ObjectMeta.Annotations[staticIPNameKeyWritable] = clusterIPName
glog.V(4).Infof("Attempting to update base federated ingress annotations: %v", baseIngress)
if updatedFedIngress, err := ic.federatedApiClient.Extensions().Ingresses(baseIngress.Namespace).Update(baseIngress); err != nil {
glog.Errorf("Failed to add static IP annotation to federated ingress %q, will try again later: %v", ingress, err)
ic.deliverIngress(ingress, ic.ingressReviewDelay, true)
return
} else {
glog.V(4).Infof("Successfully updated federated ingress %q (added IP annotation), after update: %q", ingress, updatedFedIngress)
ic.deliverIngress(ingress, ic.smallDelay, false)
return
}
} }
if !baseLBStatusExists && clusterLBStatusExists { if !baseLBStatusExists && clusterLBStatusExists {
lbstatusObj, lbErr := conversion.NewCloner().DeepCopy(&clusterIngress.Status.LoadBalancer) lbstatusObj, lbErr := conversion.NewCloner().DeepCopy(&clusterIngress.Status.LoadBalancer)
@ -688,16 +698,16 @@ func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) {
return return
} }
baseIngress.Status.LoadBalancer = *lbstatus baseIngress.Status.LoadBalancer = *lbstatus
} glog.V(4).Infof("Attempting to update base federated ingress status: %v", baseIngress)
glog.V(4).Infof("Attempting to update base federated ingress: %v", baseIngress) if updatedFedIngress, err := ic.federatedApiClient.Extensions().Ingresses(baseIngress.Namespace).UpdateStatus(baseIngress); err != nil {
if updatedFedIngress, err := ic.federatedApiClient.Extensions().Ingresses(baseIngress.Namespace).Update(baseIngress); err != nil { glog.Errorf("Failed to update federated ingress status of %q (loadbalancer status), will try again later: %v", ingress, err)
glog.Errorf("Failed to add static IP annotation to federated ingress %q, will try again later: %v", ingress, err) ic.deliverIngress(ingress, ic.ingressReviewDelay, true)
ic.deliverIngress(ingress, ic.ingressReviewDelay, true) return
return } else {
} else { glog.V(4).Infof("Successfully updated federated ingress status of %q (added loadbalancer status), after update: %q", ingress, updatedFedIngress)
glog.V(4).Infof("Successfully updated federated ingress %q (added IP), after update: %q", ingress, updatedFedIngress) ic.deliverIngress(ingress, ic.smallDelay, false)
ic.deliverIngress(ingress, ic.smallDelay, false) return
return }
} }
} else { } else {
glog.V(4).Infof(logStr, "Not transferring") glog.V(4).Infof(logStr, "Not transferring")