On Thu, 2010-01-14 at 13:15 +0300, Roman wrote:
I'm developing an application which can benefit from using a deltacloud API. It appeared very difficult to configure instances in practive. I've blogged on the subject here: http://it-result.me/configuring-cloud-nodes-with-deltacloud/
Nice, I see you even have a patch for supporting user data on that post. Before committing that, I'd like to see if we can expand that mechanism to other clouds than just EC2.
My personal opinion is that full-scale file injection via deltacloud API is likely not necessary. It is sufficient to be able to pass a single file to the instance on start. If instance needs to be heavily customized it is better to customize the image or use some kind of configuration management system.
I agree with that - I believe people are in general better off if they use some central cloud-independent service for configuring their instances. Of course, we still need to provide them with enough of a hook to bootstrap that process.
A solution which worked fine for me was instance model class modification to contain additional "client_data" property used to pass the configuration data to the instance (the patch attached below).
Not attached, but I saw it on your blog ;)
The patch does not attempt to establish any standard location for the client_data information on the instance filesystem. It is probably unnecessary because it is platform-dependent and because not all providers (e.g. EC2) support file injection anyway.
I think longer term, we'd also want some sort of cloud-compat package that people can install inside their instances so that you can get user data through the exact same mechanism, regardless of cloud.
The deltacloud API patch can be found here: http://it-result.me/wp-content/uploads/2010/01/client-data.patch.txt
I want to get some clarity on how we can simulate that in other clouds, but I think your patch will be the way to go as a generic mechanism.
David