Merge pull request #6879 from prasadkatti/populate_target_port_in_svc_list

service list: populate target port
pull/7295/head
Medya Ghazizadeh 2020-03-27 22:12:18 -07:00 committed by GitHub
commit da1d411e30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 3 deletions

View File

@ -52,6 +52,7 @@ 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
@ -59,7 +60,7 @@ var serviceListCmd = &cobra.Command{
serviceURLs = ""
}
data = append(data, []string{serviceURL.Namespace, serviceURL.Name, "", serviceURLs})
data = append(data, []string{serviceURL.Namespace, serviceURL.Name, servicePortNames, serviceURLs})
}
}

View File

@ -22,6 +22,7 @@ import (
"io"
"net/url"
"os"
"strconv"
"strings"
"text/template"
"time"
@ -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 {

View File

@ -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),
},
@ -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",
@ -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",