code: func CreateConfigMap(cfg *kubeletconfig.KubeletConfiguration, k8sVersionStr string, client clientset.Interface) error {
  
  	k8sVersion, err := version.ParseSemantic(k8sVersionStr)
  	if err != nil {
  		return err
  	}
  
  	configMapName := kubeadmconstants.GetKubeletConfigMapName(k8sVersion)
  	fmt.Printf("[kubelet] Creating a ConfigMap %q in namespace %s with the configuration for the kubelets in the cluster\n", configMapName, metav1.NamespaceSystem)
  
  	kubeletBytes, err := getConfigBytes(cfg)
  	if err != nil {
  		return err
  	}
  
  	if err := apiclient.CreateOrUpdateConfigMap(client, &v1.ConfigMap{
  		ObjectMeta: metav1.ObjectMeta{
  			Name:      configMapName,
  			Namespace: metav1.NamespaceSystem,
  		},
  		Data: map[string]string{
  			kubeadmconstants.KubeletBaseConfigurationConfigMapKey: string(kubeletBytes),
  		},
  	}); err != nil {
  		return err
  	}
  
  	if err := createConfigMapRBACRules(client, k8sVersion); err != nil {
  		return errors.Wrap(err, "error creating kubelet configuration configmap RBAC rules")
  	}
  	return nil
  }
docs: // CreateConfigMap creates a ConfigMap with the generic kubelet configuration.
  // Used at "kubeadm init" and "kubeadm upgrade" time