code: func ProvideMachine(ctx context.Context, service iaas.Iaas) (client *docker.Client, machine *iaas.Machine, err error) {
  	machine, err = service.CreateMachine()
  	if err != nil {
  		if machine != nil {
  			cerr := service.DeleteMachine()
  			if cerr != nil {
  				log.Errorln(cerr)
  			}
  		}
  		return
  	}
  	if machine.Port == 0 {
  		machine.Port = dockerPort
  	}
  	addr := fmt.Sprintf("%s:%d", machine.IP, machine.Port)
  	client, err = provision.FnClient(addr, machine.CertsDir)
  	return
  }
docs: // ProvideMachine provisioning a machine in the cloud