func newLoadProfileFromEmbed()

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
}