From 32fc3be8079a72e98b4cc2f502cba0e90d0c056f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A1ndor=20Istv=C3=A1n=20Kr=C3=A1cser?= Date: Tue, 29 Nov 2022 14:50:06 +0100 Subject: [PATCH] port-forward: fix existing service scenario (#31) --- internal/cmd/portforward.go | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/internal/cmd/portforward.go b/internal/cmd/portforward.go index 8f031cc..a2cc12f 100644 --- a/internal/cmd/portforward.go +++ b/internal/cmd/portforward.go @@ -176,12 +176,35 @@ func NewPortForwardCommand(rootParams *rootCommandParams) *cobra.Command { } }() + serviceRequestPort := requestPort.Name + if !kurunServiceCreated { + serviceRequestPort = kurunService.Spec.Ports[0].Name + + hasControlPortAlready := false + for _, port := range kurunService.Spec.Ports { + switch port.Name { + case "control": + hasControlPortAlready = true + } + } + + if !hasControlPortAlready { + kurunService.Spec.Ports = append(kurunService.Spec.Ports, corev1.ServicePort{ + Name: "control", + Port: controlPort.ContainerPort, + }) + + if err = kubeClient.Update(cmd.Context(), kurunService); err != nil { + return err + } + } + labelsMap = kurunService.Spec.Selector for _, port := range kurunService.Spec.Ports { switch port.Name { - case "request": + case serviceRequestPort: setContainerPortFromServicePort(&requestPort, &port) case "control": setContainerPortFromServicePort(&controlPort, &port) @@ -324,7 +347,7 @@ func NewPortForwardCommand(rootParams *rootCommandParams) *cobra.Command { }() fmt.Fprintf(os.Stdout, "Forwarding %s://%s.%s.svc:%d -> %s\n", - requestScheme, kurunService.Name, kurunService.Namespace, selectServicePort(kurunService, "request").Port, + requestScheme, kurunService.Name, kurunService.Namespace, selectServicePort(kurunService, serviceRequestPort).Port, downstreamURL.String()) <-cmdCtx.Done()