code: func (a *Agent) SetTags(tags map[string]string) error {
  	// Update the tags file if we have one
  	if a.agentConf.TagsFile != "" {
  		if err := a.writeTagsFile(tags); err != nil {
  			a.logger.Printf("[ERR] agent: %s", err)
  			return err
  		}
  	}
  
  	// Set the tags in Serf, start gossiping out
  	return a.serf.SetTags(tags)
  }
docs: // SetTags is used to update the tags. The agent will make sure to
  // persist tags if necessary before gossiping to the cluster.