Allow publishing same port as UDP and TCP using docker stack deploy

Signed-off-by: adeniyistephen <adeniyistadz@gmail.com>
This commit is contained in:
adeniyistephen 2020-12-02 02:05:21 +01:00
parent 0654e4d6ba
commit 097d268d48
2 changed files with 8 additions and 35 deletions

View File

@ -111,7 +111,7 @@ func toServicePortConfigsMap(s interface{}) (map[interface{}]interface{}, error)
} }
m := map[interface{}]interface{}{} m := map[interface{}]interface{}{}
for _, p := range ports { for _, p := range ports {
m[p] = p m[p.Published] = p
} }
return m, nil return m, nil
} }

View File

@ -237,10 +237,7 @@ func TestLoadMultipleServicePorts(t *testing.T) {
name: "no_override", name: "no_override",
portBase: map[string]interface{}{ portBase: map[string]interface{}{
"ports": []interface{}{ "ports": []interface{}{
Mode: "ingress", "8080:80",
Published: 8080,
Target: 80,
Protocol: "tcp",
}, },
}, },
portOverride: map[string]interface{}{}, portOverride: map[string]interface{}{},
@ -257,18 +254,12 @@ func TestLoadMultipleServicePorts(t *testing.T) {
name: "override_different_published", name: "override_different_published",
portBase: map[string]interface{}{ portBase: map[string]interface{}{
"ports": []interface{}{ "ports": []interface{}{
Mode: "ingress", "8080:80",
Published: 8080,
Target: 80,
Protocol: "tcp",
}, },
}, },
portOverride: map[string]interface{}{ portOverride: map[string]interface{}{
"ports": []interface{}{ "ports": []interface{}{
Mode: "ingress", "8081:80",
Published: 8081,
Target: 80,
Protocol: "tcp",
}, },
}, },
expected: []types.ServicePortConfig{ expected: []types.ServicePortConfig{
@ -290,18 +281,12 @@ func TestLoadMultipleServicePorts(t *testing.T) {
name: "override_same_published", name: "override_same_published",
portBase: map[string]interface{}{ portBase: map[string]interface{}{
"ports": []interface{}{ "ports": []interface{}{
Mode: "ingress", "8080:80",
Published: 8080,
Target: 80,
Protocol: "tcp",
}, },
}, },
portOverride: map[string]interface{}{ portOverride: map[string]interface{}{
"ports": []interface{}{ "ports": []interface{}{
Mode: "ingress", "8080:81",
Published: 8080,
Target: 81,
Protocol: "tcp",
}, },
}, },
expected: []types.ServicePortConfig{ expected: []types.ServicePortConfig{
@ -858,18 +843,8 @@ func TestLoadMultipleConfigs(t *testing.T) {
"dockerfile": "bar.Dockerfile", "dockerfile": "bar.Dockerfile",
}, },
"ports": []interface{}{ "ports": []interface{}{
{ "8080:80",
Mode: "ingress", "9090:90",
Published: 8080,
Target: 80,
Protocol: "tcp",
},
{
Mode: "ingress",
Published: 9090,
Target: 90,
Protocol: "tcp",
},
}, },
"labels": []interface{}{ "labels": []interface{}{
"foo=bar", "foo=bar",
@ -898,10 +873,8 @@ func TestLoadMultipleConfigs(t *testing.T) {
}, },
"ports": []interface{}{ "ports": []interface{}{
map[string]interface{}{ map[string]interface{}{
"Mode": "ingress",
"target": 81, "target": 81,
"published": 8080, "published": 8080,
"Protocol": "tcp",
}, },
}, },
"labels": map[string]interface{}{ "labels": map[string]interface{}{