From 894a4e226f37208a04d3c3cb8655afe0cf69c8b9 Mon Sep 17 00:00:00 2001 From: Quinton Hoole Date: Mon, 26 Sep 2016 10:06:05 -0700 Subject: [PATCH] Use UpdateStatus, not Update, to add LoadBalancerStatus to Federated Ingress. --- .../ingress/ingress_controller.go | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/federation/pkg/federation-controller/ingress/ingress_controller.go b/federation/pkg/federation-controller/ingress/ingress_controller.go index c22282bb252..2536925f3e8 100644 --- a/federation/pkg/federation-controller/ingress/ingress_controller.go +++ b/federation/pkg/federation-controller/ingress/ingress_controller.go @@ -678,6 +678,16 @@ func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) { glog.V(4).Infof(logStr, "Transferring") if !baseIPAnnotationExists && clusterIPNameExists { 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 { lbstatusObj, lbErr := conversion.NewCloner().DeepCopy(&clusterIngress.Status.LoadBalancer) @@ -688,16 +698,16 @@ func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) { return } baseIngress.Status.LoadBalancer = *lbstatus - } - glog.V(4).Infof("Attempting to update base federated ingress: %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), after update: %q", ingress, updatedFedIngress) - ic.deliverIngress(ingress, ic.smallDelay, false) - return + glog.V(4).Infof("Attempting to update base federated ingress status: %v", baseIngress) + if updatedFedIngress, err := ic.federatedApiClient.Extensions().Ingresses(baseIngress.Namespace).UpdateStatus(baseIngress); err != nil { + glog.Errorf("Failed to update federated ingress status of %q (loadbalancer status), will try again later: %v", ingress, err) + ic.deliverIngress(ingress, ic.ingressReviewDelay, true) + return + } else { + glog.V(4).Infof("Successfully updated federated ingress status of %q (added loadbalancer status), after update: %q", ingress, updatedFedIngress) + ic.deliverIngress(ingress, ic.smallDelay, false) + return + } } } else { glog.V(4).Infof(logStr, "Not transferring")