Great question.
Right now there are 3 approaches to metadata/runtime config:
* ec2 metadata service - http://169.254.169.254/ (used by ubuntu's
cloud-init for example)
* config drive - added in diablo
* xenstore via openstack agent - https://launchpad.net/openstack-guest-agents
* injecting files into the filesystem prior to launch - on some
hypervisors / filesystems combinations
There are issues with each approach currently:
* metadata service - requires that cloud uses DHCP to configure network
* config drive - only sets values at runtime and no support from any guests
* xenstore approach - hypervisor specific.
* injecting into filesystem - brittle as it requires the host to
support arbitrary filesystems
If we assume that instance networking can be configured by DHCP, then
a metadata service is probably our best choice for simplicity of
implementation and user experience.
Given that Rackspace Public Cloud is the only openstack developer/user
(I know of) that doesn't use DHCP for network configuration of
instances, I reached out to the team to see if DHCP would be an
option. They are researching either a way use DHCP _or_ propose an
approach to initial network configuration that can be executed by the
openstack guest agent.
Based on those conversations we've been writing a proposal that would
recommend guests use a (currently non-existing) openstack metadata api
- http://wiki.openstack.org/guest-configuration
Hope this helps.
Thoughts on the optimal experience for essex?