diff --git a/provider/consul/consul_catalog_test.go b/provider/consul/consul_catalog_test.go index 3e6899f80..06d3a8495 100644 --- a/provider/consul/consul_catalog_test.go +++ b/provider/consul/consul_catalog_test.go @@ -12,14 +12,6 @@ import ( ) func TestConsulCatalogGetFrontendRule(t *testing.T) { - provider := &CatalogProvider{ - Domain: "localhost", - Prefix: "traefik", - FrontEndRule: "Host:{{.ServiceName}}.{{.Domain}}", - frontEndRuleTemplate: template.New("consul catalog frontend rule"), - } - provider.setupFrontEndTemplate() - testCases := []struct { desc string service serviceUpdate @@ -71,6 +63,14 @@ func TestConsulCatalogGetFrontendRule(t *testing.T) { t.Run(test.desc, func(t *testing.T) { t.Parallel() + provider := &CatalogProvider{ + Domain: "localhost", + Prefix: "traefik", + FrontEndRule: "Host:{{.ServiceName}}.{{.Domain}}", + frontEndRuleTemplate: template.New("consul catalog frontend rule"), + } + provider.setupFrontEndTemplate() + actual := provider.getFrontendRule(test.service) assert.Equal(t, test.expected, actual) }) diff --git a/provider/docker/docker.go b/provider/docker/docker.go index 34a60a2f3..fb6a86aee 100644 --- a/provider/docker/docker.go +++ b/provider/docker/docker.go @@ -433,9 +433,9 @@ func (p *Provider) getServicePriority(container dockerData, serviceName string) // Extract backend from labels for a given service and a given docker container func (p *Provider) getServiceBackend(container dockerData, serviceName string) string { if value, ok := getContainerServiceLabel(container, serviceName, "frontend.backend"); ok { - return container.ServiceName + "-" + value + return provider.Normalize(container.ServiceName + "-" + value) } - return strings.TrimPrefix(container.ServiceName, "/") + "-" + p.getBackend(container) + "-" + provider.Normalize(serviceName) + return provider.Normalize(container.ServiceName + "-" + p.getBackend(container) + "-" + serviceName) } // Extract rule from labels for a given service and a given docker container diff --git a/provider/docker/service_test.go b/provider/docker/service_test.go index 08febf216..c4659b01b 100644 --- a/provider/docker/service_test.go +++ b/provider/docker/service_test.go @@ -173,12 +173,22 @@ func TestDockerGetServiceBackend(t *testing.T) { container: containerJSON(name("foo")), expected: "foo-foo-myservice", }, + { + container: containerJSON(name("foo.bar")), + expected: "foo-bar-foo-bar-myservice", + }, { container: containerJSON(labels(map[string]string{ types.LabelBackend: "another-backend", })), expected: "fake-another-backend-myservice", }, + { + container: containerJSON(labels(map[string]string{ + types.LabelBackend: "another.backend", + })), + expected: "fake-another-backend-myservice", + }, { container: containerJSON(labels(map[string]string{ "traefik.myservice.frontend.backend": "custom-backend",