in contrib/cmd/runkperf/commands/data/configmaps/configmap.go [282:322]
func createConfigmaps(clientset *kubernetes.Clientset, namespace string, cmName string, size int, groupSize int, total int) error {
// Generate configmaps in parallel with fixed group size
// and random data
for i := 0; i < total; i = i + groupSize {
ownerID := i
g := new(errgroup.Group)
for j := i; j < i+groupSize && j < total; j++ {
g.Go(func() error {
cli := clientset.CoreV1().ConfigMaps(namespace)
name := fmt.Sprintf("%s-cm-%s-%d", appLebel, cmName, j)
cm := &corev1.ConfigMap{}
cm.Name = name
// Set the labels for the configmap to easily identify in delete or list commands
cm.Labels = map[string]string{
"ownerID": strconv.Itoa(ownerID),
"app": appLebel,
"cmName": cmName,
}
data, err := randString(size)
if err != nil {
return fmt.Errorf("failed to generate random string for configmap %s: %v", name, err)
}
cm.Data = map[string]string{
"data": data,
}
_, err = cli.Create(context.TODO(), cm, metav1.CreateOptions{})
if err != nil {
return fmt.Errorf("failed to create configmap %s: %v", name, err)
}
return nil
})
}
if err := g.Wait(); err != nil {
return err
}
}
return nil
}