code: func UpdateOrCreateTokens(client clientset.Interface, failIfExists bool, tokens []kubeadmapi.BootstrapToken) error {
  
  	for _, token := range tokens {
  
  		secretName := bootstraputil.BootstrapTokenSecretName(token.Token.ID)
  		secret, err := client.CoreV1().Secrets(metav1.NamespaceSystem).Get(secretName, metav1.GetOptions{})
  		if secret != nil && err == nil && failIfExists {
  			return errors.Errorf("a token with id %q already exists", token.Token.ID)
  		}
  
  		updatedOrNewSecret := token.ToSecret()
  		// Try to create or update the token with an exponential backoff
  		err = apiclient.TryRunCommand(func() error {
  			if err := apiclient.CreateOrUpdateSecret(client, updatedOrNewSecret); err != nil {
  				return errors.Wrapf(err, "failed to create or update bootstrap token with name %s", secretName)
  			}
  			return nil
  		}, 5)
  		if err != nil {
  			return err
  		}
  	}
  	return nil
  }
docs: // UpdateOrCreateTokens attempts to update a token with the given ID, or create if it does not already exist.