func ciliumCustomResourceListRun()

in contrib/cmd/runkperf/commands/bench/cilium_cr_list.go [69:113]


func ciliumCustomResourceListRun(cliCtx *cli.Context) (*internaltypes.BenchmarkReport, error) {
	ctx := context.Background()

	rgCfgFile, rgSpec, rgCfgFileDone, err := newLoadProfileFromEmbed(cliCtx, "loadprofile/cilium_cr_list.yaml")
	if err != nil {
		return nil, err
	}
	defer func() { _ = rgCfgFileDone() }()

	kubeCfgPath := cliCtx.GlobalString("kubeconfig")
	kr := utils.NewKubectlRunner(kubeCfgPath, "")

	if cliCtx.BoolT(installCiliumCRDsFlag) {
		if err := installCiliumCRDs(ctx, kr); err != nil {
			return nil, fmt.Errorf("failed to install Cilium CRDs: %w", err)
		}
	}

	numCID := cliCtx.Int(numCIDFlag)
	numCEP := cliCtx.Int(numCEPFlag)
	if err := loadCiliumData(ctx, kr, numCID, numCEP); err != nil {
		return nil, fmt.Errorf("failed to load Cilium data: %w", err)
	}

	rgResult, err := utils.DeployRunnerGroup(ctx,
		cliCtx.GlobalString("kubeconfig"),
		cliCtx.GlobalString("runner-image"),
		rgCfgFile,
		cliCtx.GlobalString("runner-flowcontrol"),
		cliCtx.GlobalString("rg-affinity"),
	)
	if err != nil {
		return nil, fmt.Errorf("failed to deploy runner group: %w", err)
	}

	return &internaltypes.BenchmarkReport{
		Description: fmt.Sprintf(`Deploy %d CiliumIdentities and %d CiliumEndpoints, then run stale list requests against them`, numCID, numCEP),
		LoadSpec:    *rgSpec,
		Result:      *rgResult,
		Info: map[string]interface{}{
			"numCiliumIdentities": numCID,
			"numCiliumEndpoints":  numCEP,
		},
	}, nil
}