func createConfigmaps()

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
}