From c77575cafe965663b3d46a7bb732d0bd97ab9e93 Mon Sep 17 00:00:00 2001 From: Ulysses Souza Date: Thu, 26 Aug 2021 06:47:09 -0300 Subject: [PATCH] Fix port merging on partial reference Signed-off-by: Ulysses Souza --- loader/merge.go | 6 +++++- loader/merge_test.go | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/loader/merge.go b/loader/merge.go index dd4fe429..78af4cfe 100644 --- a/loader/merge.go +++ b/loader/merge.go @@ -148,7 +148,11 @@ func toServicePortConfigsMap(s interface{}) (map[interface{}]interface{}, error) } m := map[interface{}]interface{}{} for _, p := range ports { - m[p.Published] = p + k := p.Published + if k == 0 { + k = p.Target + } + m[k] = p } return m, nil } diff --git a/loader/merge_test.go b/loader/merge_test.go index 1e9ea04b..7bc01776 100644 --- a/loader/merge_test.go +++ b/loader/merge_test.go @@ -306,6 +306,30 @@ func TestLoadMultipleServicePorts(t *testing.T) { }, }, }, + { + name: "override_one_sided", + portBase: map[string]interface{}{ + "ports": []interface{}{ + "5000", + "6000", + }, + }, + portOverride: map[string]interface{}{}, + expected: []types.ServicePortConfig{ + { + Mode: "ingress", + Published: 0, + Target: 5000, + Protocol: "tcp", + }, + { + Mode: "ingress", + Published: 0, + Target: 6000, + Protocol: "tcp", + }, + }, + }, } for _, tc := range portsCases {