On 06/03/11 - 10:28:09AM, Scott Seago wrote:
So between Mark's earlier writeup and
http://www.aeolusproject.org/page/Audrey_Overview I've come up with some
initial ideas around what to expect in a Deployable definition XML file.
The first iteration of this (which is all we'll support in the context
of this sprint) will not support parameters, return values, or services
(i.e. all of the audrey-oriented configuration bits). For this first
iteration, a deployable simply has a name, a description, and a list of
embedded assemblies, each of which includes a name, a hardware profile,
and an image (or image build) reference:
<deployable name="Redmine">
<description>Redmine is a web-based project management
application</description>
<assemblies>
<assembly name="frontend" hwp="small">
<image id="11abf870-894c-4336-bc9f-37904c394924">
</image>
</assembly>
<assembly name="backend" hwp="medium">
<image id="11abf870-894c-4336-bc9f-37904c394924"
build="be2a8e6">
</image>
</assembly>
</assemblies>
</deployable>
Right. Going back and reading Mark's earlier proposals here, I think we should
start off simply here and just embed the assemblies in the deployables for
now. We can always go back later and add in the "references" to external
assemblies.
The next step will be to build in support for the audrey config bits --
which brings in parameters, services, and return values. Here's an
example of that -- this is a lot more preliminary, as I'm still not
entirely clear on the interactions of the various levels of params, etc,
but what follows may at least be a starting point for discussion:
<deployable name="Redmine">
<description>Redmine is a web-based project management
application</description>
<assemblies>
<assembly name="frontend" hwp="small">
<image id="11abf870-894c-4336-bc9f-37904c394924">
<parameter type="string" name="redmine_admin">
<value>#{admin_user}</value>
</parameter>
<return name="http_port"/>
</image>
<services>
<service name="service1">
<scripts>
<script href="...."></script>
<script>
<contents><![CDATA[
#!/bin/bash
...
]]</contents>
One thing I suggest here is a type field for the contents, i.e.
<contents type='base64'>
That way, you can drop the CDATA completely, and this also allows for injecting
binary files (base64 encoded, of course).
--
Chris Lalancette