code: func parsePorts(ports []string) ([]ForwardedPort, error) {
  	var forwards []ForwardedPort
  	for _, portString := range ports {
  		parts := strings.Split(portString, ":")
  		var localString, remoteString string
  		if len(parts) == 1 {
  			localString = parts[0]
  			remoteString = parts[0]
  		} else if len(parts) == 2 {
  			localString = parts[0]
  			if localString == "" {
  				// support :5000
  				localString = "0"
  			}
  			remoteString = parts[1]
  		} else {
  			return nil, fmt.Errorf("Invalid port format '%s'", portString)
  		}
  
  		localPort, err := strconv.ParseUint(localString, 10, 16)
  		if err != nil {
  			return nil, fmt.Errorf("Error parsing local port '%s': %s", localString, err)
  		}
  
  		remotePort, err := strconv.ParseUint(remoteString, 10, 16)
  		if err != nil {
  			return nil, fmt.Errorf("Error parsing remote port '%s': %s", remoteString, err)
  		}
  		if remotePort == 0 {
  			return nil, fmt.Errorf("Remote port must be > 0")
  		}
  
  		forwards = append(forwards, ForwardedPort{uint16(localPort), uint16(remotePort)})
  	}
  
  	return forwards, nil
  }
docs: /*
  	valid port specifications:
  
  	5000
  	- forwards from localhost:5000 to pod:5000
  
  	8888:5000
  	- forwards from localhost:8888 to pod:5000
  
  	0:5000
  	:5000
  	- selects a random available local port,
  	  forwards from localhost:<random port> to pod:5000
  */