1. A computer-implemented method performed on one or more computers, the method comprising: initializing a first virtual machine (VM) on a first host machine using one or more elements of user-specified initialization metadata; receiving a notification that the first VM has published one or more elements of new VM-generated metadata to a metadata service; in response to receiving the notification, requesting the one or more elements of new VM-generated metadata from the metadata service; receiving the one or more elements of new VM-generated metadata from the metadata service; receiving a request for one or more elements of VM-generated metadata; and providing the one or more elements of new VM-generated metadata in response to the request.