in contrib/cmd/runkperf/commands/bench/utils.go [144:179]
func newLoadProfileFromEmbed(cliCtx *cli.Context, name string) (_name string, _spec *types.RunnerGroupSpec, _cleanup func() error, _err error) {
var rgSpec types.RunnerGroupSpec
rgCfgFile, rgCfgFileDone, err := utils.NewRunnerGroupSpecFileFromEmbed(
name,
func(spec *types.RunnerGroupSpec) error {
reqs := cliCtx.Int("total")
if reqs < 0 {
return fmt.Errorf("invalid total-requests value: %v", reqs)
}
rgAffinity := cliCtx.GlobalString("rg-affinity")
affinityLabels, err := kperfcmdutils.KeyValuesMap([]string{rgAffinity})
if err != nil {
return fmt.Errorf("failed to parse %s affinity: %w", rgAffinity, err)
}
if reqs != 0 {
spec.Profile.Spec.Total = reqs
}
spec.NodeAffinity = affinityLabels
spec.Profile.Spec.ContentType = types.ContentType(cliCtx.String("content-type"))
data, _ := yaml.Marshal(spec)
log.GetLogger(context.TODO()).
WithKeyValues("level", "info").
LogKV("msg", "dump load profile", "config", string(data))
rgSpec = *spec
return nil
},
)
if err != nil {
return "", nil, nil, err
}
return rgCfgFile, &rgSpec, rgCfgFileDone, nil
}