@@ -3,12 +3,13 @@ package kube
3
3
import (
4
4
"log"
5
5
"regexp"
6
+ "sort"
6
7
8
+ apps "k8s.io/api/apps/v1"
7
9
v1Batch "k8s.io/api/batch/v1"
10
+ v1 "k8s.io/api/core/v1"
8
11
extensions "k8s.io/api/extensions/v1beta1"
9
12
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
10
- apps "k8s.io/api/apps/v1"
11
- v1 "k8s.io/api/core/v1"
12
13
13
14
"k8s.io/client-go/kubernetes"
14
15
"k8s.io/client-go/rest"
@@ -119,10 +120,19 @@ func groupByServiceName(ingresses *extensions.IngressList) map[string][]K8sIngre
119
120
for _ , rule := range ing .Spec .Rules {
120
121
for _ , p := range rule .HTTP .Paths {
121
122
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 })
123
124
}
124
125
}
125
126
}
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
+ }
126
136
return ingressIndex
127
137
}
128
138
0 commit comments