code: func getGroups(secret *corev1.Secret) ([]string, error) {
  	// always include the default group
  	groups := sets.NewString(bootstrapapi.BootstrapDefaultGroup)
  
  	// grab any extra groups and if there are none, return just the default
  	extraGroupsString := getSecretString(secret, bootstrapapi.BootstrapTokenExtraGroupsKey)
  	if extraGroupsString == "" {
  		return groups.List(), nil
  	}
  
  	// validate the names of the extra groups
  	for _, group := range strings.Split(extraGroupsString, ",") {
  		if err := bootstraputil.ValidateBootstrapGroupName(group); err != nil {
  			return nil, err
  		}
  		groups.Insert(group)
  	}
  
  	// return the result as a deduplicated, sorted list
  	return groups.List(), nil
  }
docs: // getGroups loads and validates the bootstrapapi.BootstrapTokenExtraGroupsKey
  // key from the bootstrap token secret, returning a list of group names or an
  // error if any of the group names are invalid.