From ee8822d1b9df5916a000d821ffc60a6e3a10e121 Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk <alena@rancher.com> Date: Thu, 12 Dec 2019 13:33:43 -0800 Subject: [PATCH] Do not drop source port --- apis/project.cattle.io/v3/schema/schema.go | 2 -- mapper/container_ports.go | 9 +++------ 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/apis/project.cattle.io/v3/schema/schema.go b/apis/project.cattle.io/v3/schema/schema.go index ad179ed0..bfc3b6de 100644 --- a/apis/project.cattle.io/v3/schema/schema.go +++ b/apis/project.cattle.io/v3/schema/schema.go @@ -514,8 +514,6 @@ func podTypes(schemas *types.Schemas) *types.Schemas { ). AddMapperForType(&Version, v1.ContainerPort{}, m.Move{From: "hostIP", To: "hostIp"}, - m.Copy{From: "hostPort", To: "sourcePort"}, - m.Drop{Field: "hostPort"}, ). AddMapperForType(&Version, v1.Handler{}, mapper.ContainerProbeHandler{}). diff --git a/mapper/container_ports.go b/mapper/container_ports.go index 5ae8e990..8b2209e4 100644 --- a/mapper/container_ports.go +++ b/mapper/container_ports.go @@ -66,14 +66,13 @@ func (n ContainerPorts) FromInternal(data map[string]interface{}) { if annotationPort, ok := portMap[convert.ToString(portName)]; ok { containerPorts = append(containerPorts, annotationPort) } else { - hostPort, _ := values.GetValue(asMap, "sourcePort") + hostPort, _ := values.GetValue(asMap, "hostPort") if hostPort == nil { asMap["kind"] = "ClusterIP" } else { asMap["sourcePort"] = hostPort asMap["kind"] = "HostPort" } - delete(asMap, "hostPort") containerPorts = append(containerPorts, asMap) } } @@ -98,11 +97,9 @@ func (n ContainerPorts) ToInternal(data map[string]interface{}) error { logrus.Warnf("Failed to encode port: %v", err) return obj } - if !strings.EqualFold(convert.ToString(mapped["kind"]), "HostPort") { - // delete the source port so it doesn't get converted to the host port by default mapper - delete(mapped, "sourcePort") + if strings.EqualFold(convert.ToString(mapped["kind"]), "HostPort") { + mapped["hostPort"] = mapped["sourcePort"] } - } ports = append(ports, l) }