From 2c5693b0ad1ffaac0fafe2b9253347476bb92e2e Mon Sep 17 00:00:00 2001 From: Tim Hockin Date: Mon, 22 Sep 2014 11:49:01 -0700 Subject: [PATCH] Don't force a host port through kubecfg --- pkg/kubecfg/kubecfg.go | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/pkg/kubecfg/kubecfg.go b/pkg/kubecfg/kubecfg.go index 9058fbba0d..d03aea5da4 100644 --- a/pkg/kubecfg/kubecfg.go +++ b/pkg/kubecfg/kubecfg.go @@ -154,20 +154,36 @@ func portsFromString(spec string) []api.Port { var result []api.Port for _, part := range parts { pieces := strings.Split(part, ":") - if len(pieces) != 2 { + if len(pieces) < 1 || len(pieces) > 2 { glog.Infof("Bad port spec: %s", part) continue } - host, err := strconv.Atoi(pieces[0]) - if err != nil { - glog.Errorf("Host part is not integer: %s %v", pieces[0], err) - continue - } - container, err := strconv.Atoi(pieces[1]) - if err != nil { - glog.Errorf("Container part is not integer: %s %v", pieces[1], err) + host := 0 + container := 0 + var err error + if len(pieces) == 1 { + container, err = strconv.Atoi(pieces[0]) + if err != nil { + glog.Errorf("Container port is not integer: %s %v", pieces[0], err) + continue + } + } else { + host, err = strconv.Atoi(pieces[0]) + if err != nil { + glog.Errorf("Host port is not integer: %s %v", pieces[0], err) + continue + } + container, err = strconv.Atoi(pieces[1]) + if err != nil { + glog.Errorf("Container port is not integer: %s %v", pieces[1], err) + continue + } + } + if container < 1 { + glog.Errorf("Container port is not valid: %d", container) continue } + result = append(result, api.Port{ContainerPort: container, HostPort: host}) } return result