code: func (c *Command) startupJoin(config *Config, agent *Agent) error {
  	if len(config.StartJoin) == 0 {
  		return nil
  	}
  
  	c.Ui.Output(fmt.Sprintf("Joining cluster...(replay: %v)", config.ReplayOnJoin))
  	n, err := agent.Join(config.StartJoin, config.ReplayOnJoin)
  	if err != nil {
  		return err
  	}
  
  	c.Ui.Info(fmt.Sprintf("Join completed. Synced with %d initial agents", n))
  	return nil
  }
docs: // startupJoin is invoked to handle any joins specified to take place at start time