Refactor k8s client config

Signed-off-by: Emile Vauge <emile@vauge.com>
This commit is contained in:
Emile Vauge 2017-03-14 15:59:13 +01:00
parent 51f3f6ba9c
commit b99a919bb4
No known key found for this signature in database
GPG key ID: D808B4C167352E59
2 changed files with 22 additions and 21 deletions

View file

@ -6,6 +6,7 @@ import (
"io/ioutil" "io/ioutil"
"time" "time"
"github.com/containous/traefik/log"
"k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes"
"k8s.io/client-go/pkg/api" "k8s.io/client-go/pkg/api"
"k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/api/v1"

View file

@ -231,39 +231,39 @@ func (provider *Kubernetes) loadIngresses(k8sClient k8s.Client) (*types.Configur
Weight: 1, Weight: 1,
} }
} else { } else {
endpoints, exists, err := k8sClient.GetEndpoints(service.ObjectMeta.Namespace, service.ObjectMeta.Name) endpoints, exists, err := k8sClient.GetEndpoints(service.ObjectMeta.Namespace, service.ObjectMeta.Name)
if err != nil { if err != nil {
log.Errorf("Error while retrieving endpoints from k8s API %s/%s: %v", service.ObjectMeta.Namespace, service.ObjectMeta.Name, err) log.Errorf("Error while retrieving endpoints from k8s API %s/%s: %v", service.ObjectMeta.Namespace, service.ObjectMeta.Name, err)
continue continue
} }
if !exists { if !exists {
log.Errorf("Service not found for %s/%s", service.ObjectMeta.Namespace, service.ObjectMeta.Name) log.Errorf("Service not found for %s/%s", service.ObjectMeta.Namespace, service.ObjectMeta.Name)
continue continue
} }
if len(endpoints.Subsets) == 0 { if len(endpoints.Subsets) == 0 {
log.Warnf("Endpoints not found for %s/%s, falling back to Service ClusterIP", service.ObjectMeta.Namespace, service.ObjectMeta.Name) log.Warnf("Endpoints not found for %s/%s, falling back to Service ClusterIP", service.ObjectMeta.Namespace, service.ObjectMeta.Name)
templateObjects.Backends[r.Host+pa.Path].Servers[string(service.UID)] = types.Server{ templateObjects.Backends[r.Host+pa.Path].Servers[string(service.UID)] = types.Server{
URL: protocol + "://" + service.Spec.ClusterIP + ":" + strconv.Itoa(int(port.Port)), URL: protocol + "://" + service.Spec.ClusterIP + ":" + strconv.Itoa(int(port.Port)),
Weight: 1, Weight: 1,
} }
} else { } else {
for _, subset := range endpoints.Subsets { for _, subset := range endpoints.Subsets {
for _, address := range subset.Addresses { for _, address := range subset.Addresses {
url := protocol + "://" + address.IP + ":" + strconv.Itoa(endpointPortNumber(port, subset.Ports)) url := protocol + "://" + address.IP + ":" + strconv.Itoa(endpointPortNumber(port, subset.Ports))
name := url name := url
if address.TargetRef != nil && address.TargetRef.Name != "" { if address.TargetRef != nil && address.TargetRef.Name != "" {
name = address.TargetRef.Name name = address.TargetRef.Name
} }
templateObjects.Backends[r.Host+pa.Path].Servers[name] = types.Server{ templateObjects.Backends[r.Host+pa.Path].Servers[name] = types.Server{
URL: url, URL: url,
Weight: 1, Weight: 1,
}
} }
} }
} }
} }
}
break break
} }
} }