[Engine-devel] VM Payload feature

David Lutterkort lutter at redhat.com
Mon Feb 27 19:14:01 UTC 2012


On Mon, 2012-02-27 at 18:22 +0200, Itamar Heim wrote:
> On 02/27/2012 05:45 PM, Dan Kenigsberg wrote:
> > On Mon, Feb 27, 2012 at 04:19:02PM +0200, Shahar Havivi wrote:
> >> We encounter a problem with persisting the content to engine database (we don't
> >> want to save the file the database).
> >>
> >> There are some solution for that:
> >> 1. we do want to persist files to the database (with size limitation).
> >> 2. engine can expect file path (nfs or http) and persist only the file url
> >> 3. we can use this feature in run-once only hence no persistence is needed.
> 
> i think size limitation should be ok.

Yes, this only needs to allow for a small amount of data; EC2 limits it
to 16k (though they further limit it to 2k in certain circumstances[1])
Other providers have similar limits. In general, people pass only a few
hundred bytes in in most cases, so a limit of 16k is plenty.

> looking forward to next phase of supporting the cloud based api for 
> guests which david mentioned earlier in the thread, vm payload should 
> allow passing things like guest keypair files.
> looking at the API[1] david mentioned, i didn't notice files other than 
> keypair's, but i may have missed them.
> the rest of the API seems to be based on data that can be retrieved from 
> the DB.
> David - any more insight as to when/how files are needed?

A good thing to look at is cloud-init; it's a widely used tool for early
initialization of cloud instances. Yes, by far the most important thing
it does is retrieve the public key from the meta-data server and stuffs
it into $USER/.ssh/authroized_keys (USER is either root or sth like
ec2-user, depending on the image)

> (btw, can you please remind where in the metadata do you pass extra 
> information aelous needs?)

For Aeolus, it passes all the information it needs to talk to its config
server and pull down additional things as the user-data. The format is
completely custom, and the cloud platform only needs to make sure that
the data that's passed in through the API shows up in the instance - it
should be completely opaque to the oVirt.

> >>
> >> Thoughts, other ideas?
> >
> > Let's re-ask the question about the (Engine) API: Do we need the payload
> > to be passed on VM definition? Or is it enough to pass it on VM startup?
> 
> my view is vm definition, not only startup.

For a cloud, you generally want to launch multiple VM's off the same
image, and therefore need to be able to specify the user data for each
VM. Whether that happens when you define or launch the VM isn't all that
important, though it would be a little friendlier to users to do it at
VM start, since they then do not need to have the user data ready (or
know it) when they define a VM.

David

[1] https://forums.aws.amazon.com/thread.jspa?threadID=74488
[2] https://help.ubuntu.com/community/CloudInit





More information about the Engine-devel mailing list