Merge pull request #6833 from josedonizetti/kic-fix-unprivileged-port-bind

kic: fix unprivileged port bind tunnel docker for mac
pull/6839/head
Medya Ghazizadeh 2020-02-28 13:55:25 -08:00 committed by GitHub
commit 83dd0dbe26
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 1 deletions

View File

@ -44,6 +44,8 @@ func createSSHConn(name, sshPort, sshKey string, svc *v1.Service) *sshConn {
"-i", sshKey,
}
askForSudo := false
var privilegedPorts []int32
for _, port := range svc.Spec.Ports {
arg := fmt.Sprintf(
"-L %d:%s:%d",
@ -52,10 +54,27 @@ func createSSHConn(name, sshPort, sshKey string, svc *v1.Service) *sshConn {
port.Port,
)
// check if any port is privileged
if port.Port < 1024 {
privilegedPorts = append(privilegedPorts, port.Port)
askForSudo = true
}
sshArgs = append(sshArgs, arg)
}
cmd := exec.Command("ssh", sshArgs...)
command := "ssh"
if askForSudo {
// TODO: use out package
fmt.Printf("The service %s requires priviledged ports to be exposed: %v\n", svc.Name, privilegedPorts)
fmt.Printf("sudo permission will be asked for it.\n")
command = "sudo"
sshArgs = append([]string{"ssh"}, sshArgs...)
}
cmd := exec.Command(command, sshArgs...)
return &sshConn{
name: name,