diff --git a/provider/kubernetes/kubernetes.go b/provider/kubernetes/kubernetes.go index d23173287..d57834cc9 100644 --- a/provider/kubernetes/kubernetes.go +++ b/provider/kubernetes/kubernetes.go @@ -224,7 +224,12 @@ func (p *Provider) loadIngresses(k8sClient Client) (*types.Configuration, error) } for _, pa := range r.HTTP.Paths { + priority := getIntValue(i.Annotations, annotationKubernetesPriority, 0) baseName := r.Host + pa.Path + if priority > 0 { + baseName = strconv.Itoa(priority) + "-" + baseName + } + if _, exists := templateObjects.Backends[baseName]; !exists { templateObjects.Backends[baseName] = &types.Backend{ Servers: make(map[string]types.Server), @@ -250,7 +255,6 @@ func (p *Provider) loadIngresses(k8sClient Client) (*types.Configuration, error) passHostHeader := getBoolValue(i.Annotations, annotationKubernetesPreserveHost, !p.DisablePassHostHeaders) passTLSCert := getBoolValue(i.Annotations, annotationKubernetesPassTLSCert, p.EnablePassTLSCert) - priority := getIntValue(i.Annotations, annotationKubernetesPriority, 0) entryPoints := getSliceStringValue(i.Annotations, annotationKubernetesFrontendEntryPoints) templateObjects.Frontends[baseName] = &types.Frontend{ diff --git a/provider/kubernetes/kubernetes_test.go b/provider/kubernetes/kubernetes_test.go index ee296dc3c..b4595eb68 100644 --- a/provider/kubernetes/kubernetes_test.go +++ b/provider/kubernetes/kubernetes_test.go @@ -1849,13 +1849,13 @@ func TestPriorityHeaderValue(t *testing.T) { expected := buildConfiguration( backends( - backend("foo/bar", + backend("1337-foo/bar", servers(server("http://example.com", weight(1))), lbMethod("wrr"), ), ), frontends( - frontend("foo/bar", + frontend("1337-foo/bar", passHostHeader(), priority(1337), routes(