code: func UploadCerts(client clientset.Interface, cfg *kubeadmapi.InitConfiguration, key string) error {
  	fmt.Printf("[upload-certs] Storing the certificates in Secret %q in the %q Namespace\n", kubeadmconstants.KubeadmCertsSecret, metav1.NamespaceSystem)
  	decodedKey, err := hex.DecodeString(key)
  	if err != nil {
  		return err
  	}
  	tokenID, err := createShortLivedBootstrapToken(client)
  	if err != nil {
  		return err
  	}
  
  	secretData, err := getDataFromDisk(cfg, decodedKey)
  	if err != nil {
  		return err
  	}
  	ref, err := getSecretOwnerRef(client, tokenID)
  	if err != nil {
  		return err
  	}
  
  	err = apiclient.CreateOrUpdateSecret(client, &v1.Secret{
  		ObjectMeta: metav1.ObjectMeta{
  			Name:            kubeadmconstants.KubeadmCertsSecret,
  			Namespace:       metav1.NamespaceSystem,
  			OwnerReferences: ref,
  		},
  		Data: secretData,
  	})
  	if err != nil {
  		return err
  	}
  
  	return createRBAC(client)
  }
docs: //UploadCerts save certs needs to join a new control-plane on kubeadm-certs sercret.