in contrib/cmd/runkperf/commands/warmup/command.go [198:231]
func deployWarmupVirtualNodepool(ctx context.Context, kubeCfgPath string, isEKS bool, nodeAffinity string) (func() error, error) {
target := "warmup"
infoLogger := log.GetLogger(ctx).WithKeyValues("level", "info")
warnLogger := log.GetLogger(ctx).WithKeyValues("level", "warn")
infoLogger.LogKV("msg", "deploying virtual nodepool", "name", target)
kr := utils.NewKperfRunner(kubeCfgPath, "")
sharedProviderID := ""
var err error
if isEKS {
sharedProviderID, err = utils.FetchNodeProviderIDByType(ctx, kubeCfgPath, utils.EKSIdleNodepoolInstanceType)
if err != nil {
return nil, fmt.Errorf("failed to get placeholder providerID: %w", err)
}
}
infoLogger.LogKV("msg", "trying to delete", "nodepool", target)
if err = kr.DeleteNodepool(ctx, 0, target); err != nil {
warnLogger.LogKV("msg", "failed to delete", "nodepool", target, "error", err)
}
err = kr.NewNodepool(ctx, 0, target, 100, 32, 96, 110, nodeAffinity, sharedProviderID)
if err != nil {
return nil, fmt.Errorf("failed to create nodepool %s: %w", target, err)
}
return func() error {
return kr.DeleteNodepool(ctx, 0, target)
}, nil
}