Skip to content

Commit 92a14f4

Browse files
authored
Merge pull request kubernetes#85511 from oke-py/port-forward-named-port
Fix a bug in port-forward: named port not working with service
2 parents 5a45e30 + 73c1ab7 commit 92a14f4

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

staging/src/k8s.io/kubectl/pkg/cmd/portforward/portforward.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,10 +184,10 @@ func translateServicePortToTargetPort(ports []string, svc corev1.Service, pod co
184184
return nil, err
185185
}
186186

187-
if int32(portnum) != containerPort {
187+
if int32(portnum) != containerPort || localPort == "" {
188188
translated = append(translated, fmt.Sprintf("%s:%d", localPort, containerPort))
189189
} else {
190-
translated = append(translated, port)
190+
translated = append(translated, fmt.Sprintf("%d", containerPort))
191191
}
192192
}
193193
return translated, nil

staging/src/k8s.io/kubectl/pkg/cmd/portforward/portforward_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,36 @@ func TestTranslateServicePortToTargetPort(t *testing.T) {
413413
translated: []string{":8080", ":8443"},
414414
err: false,
415415
},
416+
{
417+
name: "test success 4 (named service port and named pod container port)",
418+
svc: corev1.Service{
419+
Spec: corev1.ServiceSpec{
420+
Ports: []corev1.ServicePort{
421+
{
422+
Port: 80,
423+
Name: "http",
424+
TargetPort: intstr.FromString("http"),
425+
},
426+
},
427+
},
428+
},
429+
pod: corev1.Pod{
430+
Spec: corev1.PodSpec{
431+
Containers: []corev1.Container{
432+
{
433+
Ports: []corev1.ContainerPort{
434+
{
435+
Name: "http",
436+
ContainerPort: int32(80)},
437+
},
438+
},
439+
},
440+
},
441+
},
442+
ports: []string{"http"},
443+
translated: []string{"80"},
444+
err: false,
445+
},
416446
{
417447
name: "test success (targetPort omitted)",
418448
svc: corev1.Service{

0 commit comments

Comments
 (0)