Skip to content

Commit 07be859

Browse files
Merge pull request #15 from AOEpeople/prefer-direct-path-ingresses
Prefer direct path ingresses
2 parents c4fdba7 + 764c834 commit 07be859

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/model/kube/k8s.go

+13-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ package kube
33
import (
44
"log"
55
"regexp"
6+
"sort"
67

8+
apps "k8s.io/api/apps/v1"
79
v1Batch "k8s.io/api/batch/v1"
10+
v1 "k8s.io/api/core/v1"
811
extensions "k8s.io/api/extensions/v1beta1"
912
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
10-
apps "k8s.io/api/apps/v1"
11-
v1 "k8s.io/api/core/v1"
1213

1314
"k8s.io/client-go/kubernetes"
1415
"k8s.io/client-go/rest"
@@ -119,10 +120,19 @@ func groupByServiceName(ingresses *extensions.IngressList) map[string][]K8sIngre
119120
for _, rule := range ing.Spec.Rules {
120121
for _, p := range rule.HTTP.Paths {
121122
name := p.Backend.ServiceName
122-
ingressIndex[name] = append(ingressIndex[name], K8sIngressInfo{URL: rule.Host + p.Path, Host: rule.Host})
123+
ingressIndex[name] = append(ingressIndex[name], K8sIngressInfo{URL: rule.Host + p.Path, Host: rule.Host, Path: p.Path})
123124
}
124125
}
125126
}
127+
128+
// sort the available ingresses for an application by their path's length
129+
// => prefer direct path ingresses
130+
for name, ingresses := range ingressIndex {
131+
sort.Slice(ingresses, func(i, j int) bool {
132+
return len(ingresses[i].Path) < len(ingresses[j].Path)
133+
})
134+
ingressIndex[name] = ingresses
135+
}
126136
return ingressIndex
127137
}
128138

src/model/kube/statusFetcher.go

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ type (
5454
K8sIngressInfo struct {
5555
URL string
5656
Host string
57+
Path string
5758
Alive bool
5859
}
5960

0 commit comments

Comments
 (0)