Merge pull request #579 from aledbf/avoid-removing-status

Detect if the ingress controller is running with multiple replicas
This commit is contained in:
Manuel Alejandro de Brito Fontes 2017-04-09 16:42:59 -03:00 committed by GitHub
commit 6ed6475e87

View file

@ -111,6 +111,11 @@ func (s statusSync) Shutdown() {
return return
} }
if s.isRunningMultiplePods() {
glog.V(2).Infof("skipping Ingress status update (multiple pods running - another one will be elected as master)")
return
}
glog.Infof("removing address from ingress status (%v)", addrs) glog.Infof("removing address from ingress status (%v)", addrs)
s.updateStatus([]api_v1.LoadBalancerIngress{}) s.updateStatus([]api_v1.LoadBalancerIngress{})
} }
@ -232,6 +237,17 @@ func (s *statusSync) runningAddresess() ([]string, error) {
return addrs, nil return addrs, nil
} }
func (s *statusSync) isRunningMultiplePods() bool {
pods, err := s.Client.Core().Pods(s.pod.Namespace).List(meta_v1.ListOptions{
LabelSelector: labels.SelectorFromSet(s.pod.Labels).String(),
})
if err != nil {
return false
}
return len(pods.Items) > 1
}
// sliceToStatus converts a slice of IP and/or hostnames to LoadBalancerIngress // sliceToStatus converts a slice of IP and/or hostnames to LoadBalancerIngress
func sliceToStatus(endpoints []string) []api_v1.LoadBalancerIngress { func sliceToStatus(endpoints []string) []api_v1.LoadBalancerIngress {
lbi := []api_v1.LoadBalancerIngress{} lbi := []api_v1.LoadBalancerIngress{}