Skip to content

Commit

Permalink
Merge pull request #6879 from prasadkatti/populate_target_port_in_svc…
Browse files Browse the repository at this point in the history
…_list

service list: populate target port
  • Loading branch information
medyagh committed Mar 28, 2020
2 parents 5535242 + b7463fd commit da1d411
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 3 deletions.
3 changes: 2 additions & 1 deletion cmd/minikube/cmd/service_list.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,15 @@ var serviceListCmd = &cobra.Command{
if len(serviceURL.URLs) == 0 {
data = append(data, []string{serviceURL.Namespace, serviceURL.Name, "No node port"})
} else {
servicePortNames := strings.Join(serviceURL.PortNames, "\n")
serviceURLs := strings.Join(serviceURL.URLs, "\n")

// if we are running Docker on OSX we empty the internal service URLs
if runtime.GOOS == "darwin" && co.Config.Driver == oci.Docker {
serviceURLs = ""
}

data = append(data, []string{serviceURL.Namespace, serviceURL.Name, "", serviceURLs})
data = append(data, []string{serviceURL.Namespace, serviceURL.Name, servicePortNames, serviceURLs})
}
}

Expand Down
8 changes: 8 additions & 0 deletions pkg/minikube/service/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"io"
"net/url"
"os"
"strconv"
"strings"
"text/template"
"time"
Expand Down Expand Up @@ -196,6 +197,13 @@ func printURLsForService(c typed_core.CoreV1Interface, ip, service, namespace st
urls := []string{}
portNames := []string{}
for _, port := range svc.Spec.Ports {

if port.Name != "" {
m[port.TargetPort.IntVal] = fmt.Sprintf("%s/%d", port.Name, port.Port)
} else {
m[port.TargetPort.IntVal] = strconv.Itoa(int(port.Port))
}

if port.NodePort > 0 {
var doc bytes.Buffer
err = t.Execute(&doc, struct {
Expand Down
8 changes: 6 additions & 2 deletions pkg/minikube/service/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,13 +134,17 @@ var defaultNamespaceServiceInterface = &MockServiceInterface{
Spec: core.ServiceSpec{
Ports: []core.ServicePort{
{
Name: "port1",
NodePort: int32(1111),
Port: int32(11111),
TargetPort: intstr.IntOrString{
IntVal: int32(11111),
},
},
{
Name: "port2",
NodePort: int32(2222),
Port: int32(22222),
TargetPort: intstr.IntOrString{
IntVal: int32(22222),
},
Expand Down Expand Up @@ -324,7 +328,7 @@ func TestPrintURLsForService(t *testing.T) {
serviceName: "mock-dashboard",
namespace: "default",
tmpl: template.Must(template.New("svc-arbitrary-template").Parse("{{.Name}}={{.IP}}:{{.Port}}")),
expectedOutput: []string{"port1=127.0.0.1:1111", "port2=127.0.0.1:2222"},
expectedOutput: []string{"port1/11111=127.0.0.1:1111", "port2/22222=127.0.0.1:2222"},
},
{
description: "empty slice for no node ports",
Expand Down Expand Up @@ -452,7 +456,7 @@ func TestGetServiceURLs(t *testing.T) {
Namespace: "default",
Name: "mock-dashboard",
URLs: []string{"http://127.0.0.1:1111", "http://127.0.0.1:2222"},
PortNames: []string{"port1", "port2"},
PortNames: []string{"port1/11111", "port2/22222"},
},
{
Namespace: "default",
Expand Down

0 comments on commit da1d411

Please sign in to comment.