in cmd/kperf/commands/runnergroup/server.go [89:134]
func buildRunnerGroupHandlers(cliCtx *cli.Context, serverName string) ([]*runnergroup.Handler, error) {
clientset, err := buildKubernetesClientset(cliCtx)
if err != nil {
return nil, fmt.Errorf("failed to build kubernetes clientset: %w", err)
}
specURIs := cliCtx.StringSlice("runnergroup")
imgRef := cliCtx.String("runner-image")
namespace := cliCtx.String("namespace")
runnerVerbosity := cliCtx.Int("runner-verbosity")
ownerRef := ""
if cliCtx.IsSet("runner-owner") {
ownerRef = cliCtx.String("runner-owner")
}
sa := ""
if cliCtx.IsSet("runner-sa") {
sa = cliCtx.String("runner-sa")
}
groups := make([]*runnergroup.Handler, 0, len(specURIs))
for idx, specURI := range specURIs {
spec, err := runnergroup.NewRunnerGroupSpecFromURI(clientset, specURI)
if err != nil {
return nil, err
}
if ownerRef != "" {
spec.OwnerReference = &ownerRef
}
if sa != "" {
spec.ServiceAccount = &sa
}
groupName := fmt.Sprintf("%s-%d", serverName, idx)
g, err := runnergroup.NewHandler(clientset, namespace, groupName, spec, imgRef, runnerVerbosity)
if err != nil {
return nil, err
}
groups = append(groups, g)
}
return groups, nil
}