runner/runnergroup_common.go (40 lines of code) (raw):

// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. package runner import ( "fmt" "github.com/Azure/kperf/portforward" ) var ( // runnerGroupReleaseLabels is used to mark that helm chart release // is managed by kperf. runnerGroupReleaseLabels = map[string]string{ "runnergroups.kperf.io/managed": "true", } ) const ( // runnerGroupServerChartName should be aligned with ../manifests/runnergroup/server. runnerGroupServerChartName = "runnergroup/server" // runnerGroupServerReleaseName is the helm releas name for runner groups's server. runnerGroupServerReleaseName = "runnergroup-server" // runnerGroupServerPort should be aligned with ../manifests/runnergroup/server/templates/pod.yaml. runnerGroupServerPort uint16 = 8080 // runnerGroupReleaseNamespace is used to host runner groups. runnerGroupReleaseNamespace = "runnergroups-kperf-io" ) // initPortForwardToServer creates local listener to forward traffic to runner // groups' server. func initPortForwardToServer(kubecfgPath string) (_localhost string, _cleanup func(), retErr error) { pf, err := portforward.NewPodPortForwarder( kubecfgPath, runnerGroupReleaseNamespace, runnerGroupServerReleaseName, runnerGroupServerPort, ) if err != nil { return "", nil, fmt.Errorf("failed to init pod portforward: %w", err) } defer func() { if retErr != nil { pf.Stop() } }() if err = pf.Start(); err != nil { return "", nil, fmt.Errorf("failed to start pod port forward: %w", err) } localPort, err := pf.GetLocalPort() if err != nil { return "", nil, fmt.Errorf("failed to get local port: %w", err) } return fmt.Sprintf("localhost:%d", localPort), pf.Stop, nil }