Excerpts from Alessandro Pilotti's message of 2013-12-13 07:13:01 -0800:
> Hi guys,
> 
> This seems to become a pretty long thread with quite a lot of ideas. What do 
> you think about setting up a meeting on IRC to talk about what direction to 
> take?
> IMO this has the potential of becoming a completely separated project to be 
> hosted on stackforge or similar.
> 
> Generally speaking, we already use Cloudbase-Init, which beside being the de 
> facto standard Windows "Cloud-Init type feature” (Apache 2 licensed) 
> has been recently used as a base to provide the same functionality on FreeBSD.
> 
> For reference: https://github.com/cloudbase/cloudbase-init and 
> http://www.cloudbase.it/cloud-init-for-windows-instances/
> 
> We’re seriously thinking if we should transform Cloudbase-init into an agent 
> or if we should keep it on line with the current “init only, let the guest to 
> the rest” approach which fits pretty
> well with the most common deployment approaches (Heat, Puppet / Chef, Salt, 
> etc). Last time I spoke with Scott about this agent stuff for cloud-init, the 
> general intention was
> to keep the init approach as well (please correct me if I missed something in 
> the meantime).
> 
> The limitations that we see, independently from which direction and tool will 
> be adopted for the agent, are mainly in the metadata services and the way 
> OpenStack users employ them to 
> communicate with Nova, Heat and the rest of the pack as orchestration 
> requirements complexity increases:
> 

Hi, Allessandro. Really interesting thoughts. Most of what you have
described that is not about agent transport is what we discussed
at the Icehouse summit under the topic of the hot-software-config
blueprint. There is definitely a need for better workflow integration
in Heat, and that work is happening now.

> 1) We need a way to post back small amounts of data (e.g. like we already do 
> for the encrypted Windows password) for status updates,
> so that the users know how things are going and can be properly notified in 
> case of post-boot errors. This might be irrelevant as long as you just create 
> a user and deploy some SSH keys,
> but becomes very important for most orchestration templates.
>

Heat already has this via wait conditions. hot-software-config will
improve upon this. I believe once a unified guest agent protocol is
agreed upon we will make Heat use that for wait condition signalling.

> 2) The HTTP metadata service accessible from the guest with its magic number 
> is IMO quite far from an optimal solution. Since every hypervisor commonly 
> used in OpenStack (e.g. KVM, XenServer, Hyper-V, ESXi) provides guest / host 
> communication services, we could define a common abstraction layer which will 
> include a guest side (to be included in cloud-init, cloudbase-init, etc) and 
> a hypervisor side, to be implemented for each hypervisor and included in the 
> related Nova drivers.
> This has already been proposed / implemented in various third party 
> scenarios, but never under the OpenStack umbrella for multiple hypervisors.
> 
> Metadata info can be at that point retrieved and posted by the Nova driver in 
> a secure way and proxied to / from the guest whithout needing to expose the 
> metadata 
> service to the guest itself. This would also simplify Neutron, as we could 
> get rid of the complexity of the Neutron metadata proxy. 
> 

The neutron metadata proxy is actually relatively simple. Have a look at
it. The basic way it works in pseudo code is:

port = lookup_requesting_ip_port(remote_ip)
instance_id = lookup_port_instance_id(port)
response = forward_and_sign_request_to_nova(REQUEST, instance_id, 
conf.nova_metadata_ip)
return response

Furthermore, if we have to embrace some complexity, I would rather do so
inside Neutron than in an agent that users must install and make work
on every guest OS.

The dumber an agent is, the better it will scale and more resilient it
will be. I would credit this principle with the success of cloud-init
(sorry, you know I love you Scott! ;). What we're talking about now is
having an equally dumb, but differently focused agent.

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to