forked from Ivasoft/traefik
Fix marathon provider
The IP-Per-Task PR introduced a bug using the marathon application
port mapping. This port should be used only in the proxy server, the
downstream connection should be always made with the task port.
This commit fix the regression and adds a unit test to prevent new
problems in this setup.
This commit is contained in:
committed by
Vincent Demeester
parent
89ec25f718
commit
cbbb5f4ccb
@@ -496,11 +496,6 @@ func (provider *Marathon) getCircuitBreakerExpression(application marathon.Appli
|
||||
|
||||
func processPorts(application marathon.Application, task marathon.Task) []int {
|
||||
|
||||
// First using application ports
|
||||
if len(application.Ports) > 0 {
|
||||
return application.Ports
|
||||
}
|
||||
|
||||
// Using default port configuration
|
||||
if task.Ports != nil && len(task.Ports) > 0 {
|
||||
return task.Ports
|
||||
|
||||
@@ -1077,6 +1077,19 @@ func TestMarathonGetPort(t *testing.T) {
|
||||
Ports: []int{80, 443},
|
||||
},
|
||||
expected: "443",
|
||||
}, {
|
||||
applications: []marathon.Application{
|
||||
{
|
||||
ID: "application-with-port",
|
||||
Ports: []int{9999},
|
||||
Labels: &map[string]string{},
|
||||
},
|
||||
},
|
||||
task: marathon.Task{
|
||||
AppID: "application-with-port",
|
||||
Ports: []int{7777},
|
||||
},
|
||||
expected: "7777",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user