'Create a GCE instance.
:param reactor: The twisted ``IReactorTime`` provider to use to
schedule delays.
:param unicode instance: The name of the instance to create.
:param unicode image: The link to the GCE image to use for the base
disk. Defaults to the latest CentOS 7 image if unspecified.
:param **kwargs: Other keyword arguments for the creation of the
instance. See documentation of ``_create_gce_instance_config`` for
keyword argument values.
:returns Deferred: Fires with the ``GCEInstance`` that was started.'

def create_instance_async(self, reactor, instance_name, image=None, **kwargs):

    operation = self._execute_create_instance(instance_name, image=image, **kwargs)
    operation_deferred = wait_for_operation_async(reactor, self.compute, operation, timeout_steps=([5] * 60))
    operation_deferred.addCallback((lambda _: self._make_gce_instance(instance_name)))
    return operation_deferred
