Backend name with docker-compose and segments.
This commit is contained in:
parent
6ceb2af4a7
commit
bb3f28ffa7
2 changed files with 22 additions and 6 deletions
|
@ -263,11 +263,16 @@ func isBackendLBSwarm(container dockerData) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getSegmentBackendName(container dockerData) string {
|
func getSegmentBackendName(container dockerData) string {
|
||||||
if value := label.GetStringValue(container.SegmentLabels, label.TraefikBackend, ""); len(value) > 0 {
|
serviceName := container.ServiceName
|
||||||
return provider.Normalize(container.ServiceName + "-" + value)
|
if values, err := label.GetStringMultipleStrict(container.Labels, labelDockerComposeProject, labelDockerComposeService); err == nil {
|
||||||
|
serviceName = provider.Normalize(values[labelDockerComposeService] + "_" + values[labelDockerComposeProject])
|
||||||
}
|
}
|
||||||
|
|
||||||
return provider.Normalize(container.ServiceName + "-" + getDefaultBackendName(container) + "-" + container.SegmentName)
|
if value := label.GetStringValue(container.SegmentLabels, label.TraefikBackend, ""); len(value) > 0 {
|
||||||
|
return provider.Normalize(serviceName + "-" + value)
|
||||||
|
}
|
||||||
|
|
||||||
|
return provider.Normalize(serviceName + "-" + getDefaultBackendName(container) + "-" + container.SegmentName)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getDefaultBackendName(container dockerData) string {
|
func getDefaultBackendName(container dockerData) string {
|
||||||
|
|
|
@ -850,8 +850,9 @@ func TestDockerGetFrontendRule(t *testing.T) {
|
||||||
|
|
||||||
func TestDockerGetBackendName(t *testing.T) {
|
func TestDockerGetBackendName(t *testing.T) {
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
container docker.ContainerJSON
|
container docker.ContainerJSON
|
||||||
expected string
|
segmentName string
|
||||||
|
expected string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
container: containerJSON(name("foo")),
|
container: containerJSON(name("foo")),
|
||||||
|
@ -874,6 +875,15 @@ func TestDockerGetBackendName(t *testing.T) {
|
||||||
})),
|
})),
|
||||||
expected: "bar-foo",
|
expected: "bar-foo",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
container: containerJSON(labels(map[string]string{
|
||||||
|
"com.docker.compose.project": "foo",
|
||||||
|
"com.docker.compose.service": "bar",
|
||||||
|
"traefik.sauternes.backend": "titi",
|
||||||
|
})),
|
||||||
|
segmentName: "sauternes",
|
||||||
|
expected: "bar-foo-titi",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for containerID, test := range testCases {
|
for containerID, test := range testCases {
|
||||||
|
@ -883,7 +893,8 @@ func TestDockerGetBackendName(t *testing.T) {
|
||||||
|
|
||||||
dData := parseContainer(test.container)
|
dData := parseContainer(test.container)
|
||||||
segmentProperties := label.ExtractTraefikLabels(dData.Labels)
|
segmentProperties := label.ExtractTraefikLabels(dData.Labels)
|
||||||
dData.SegmentLabels = segmentProperties[""]
|
dData.SegmentLabels = segmentProperties[test.segmentName]
|
||||||
|
dData.SegmentName = test.segmentName
|
||||||
|
|
||||||
actual := getBackendName(dData)
|
actual := getBackendName(dData)
|
||||||
assert.Equal(t, test.expected, actual)
|
assert.Equal(t, test.expected, actual)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue