<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:Consolas;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">Pete, please clarify … I was going to push the dib elements that we currently have and you were writing CentOS elements. Is
 that right?<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">Seems like there are some crossed wires here.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">-amrith<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"><o:p> </o:p></span></font></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><font size="2" face="Calibri"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;font-weight:bold">From:</span></font></b><font size="2" face="Calibri"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Victoria
 Martínez de la Cruz [mailto:victoria@vmartinezdelacruz.com] <br>
<b><span style="font-weight:bold">Sent:</span></b> Thursday, May 05, 2016 10:30 AM<br>
<b><span style="font-weight:bold">To:</span></b> OpenStack Development Mailing List (not for usage questions) <openstack-dev@lists.openstack.org><br>
<b><span style="font-weight:bold">Subject:</span></b> Re: [openstack-dev] [trove][sahara][infra][Octavia][manila] discussion of image building in Trove<o:p></o:p></span></font></p>
</div>
</div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"><o:p> </o:p></span></font></p>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">We agreed during the summit that we were going to amend the spec to reflect latest discussions with regards to having DIB as a primary implementation and adding support
 for libguestfs in parallel. The spec blueprint is named "Trove image builder" and it's about building images and not about which tool we are going to use. Thanks for creating the artifacts we need to push the code, we take it over from there.<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"><o:p> </o:p></span></font></p>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">2016-05-05 11:12 GMT-03:00 Amrith Kumar <<a href="mailto:amrith@tesora.com" target="_blank">amrith@tesora.com</a>>:<o:p></o:p></span></font></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"> </span></font><o:p></o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><font size="2" face="Calibri"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;font-weight:bold">From:</span></font></b><font size="2" face="Calibri"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">
 Victoria Martínez de la Cruz [mailto:<a href="mailto:victoria@vmartinezdelacruz.com" target="_blank">victoria@vmartinezdelacruz.com</a>]
<br>
<b><span style="font-weight:bold">Sent:</span></b> Thursday, May 05, 2016 9:00 AM<br>
<b><span style="font-weight:bold">To:</span></b> OpenStack Development Mailing List (not for usage questions) <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
<b><span style="font-weight:bold">Subject:</span></b> Re: [openstack-dev] [trove][sahara][infra][Octavia][manila] discussion of image building in Trove</span></font><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> <o:p></o:p></span></font></p>
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">Hi all,<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> <o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">A few things:<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> <o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">- I agree that moving from DIB to libguestfs is a bold move and that we should try to avoid changing tools unless
 highly necessary. The downsides we found for DIB are detailed in this spec [0] and Ethan (in this same thread) also added valid points on the Sahara case. My concern here is, should we stick with DIB just because is the standard for image creation? Shouldn't
 we take in consideration that some projects, like Sahara, are moving away from it?<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">- In the long term it would be ideal that we reach to a common solution for image creation for all the projects
 that need tailored images: Trove, Sahara, Octavia, Manila, and IIRC, Kolla and Cue.<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">- In the short term, I'm on board or working on having tools based on DIB for image creation in Trove.<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">- Amrith, Pete is working on the image creation process for Trove. The spec is up there [0]. I think is his
 work to kick-off that repository.<o:p></o:p></span></font></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><i><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D;font-weight:bold;font-style:italic">[amrith] The spec [0] referenced
 is entitled “Separate trove image build project based on libguestfs tools”. I am working on image building using the existing DIB elements that are already part of trove-integration. In any event, please see line 220 of [0] for a detailed explanation of why
 I am making the repository.</span></font></i></b><o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> <o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">Best,<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> <o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">Victoria<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> <o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">[0] <a href="https://review.openstack.org/#/c/295274/" target="_blank">https://review.openstack.org/#/c/295274/</a><o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> <o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">2016-05-04 23:20 GMT-03:00 Amrith Kumar <<a href="mailto:amrith@tesora.com" target="_blank">amrith@tesora.com</a>>:<o:p></o:p></span></font></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">As we discussed at summit, (and consistent with all of the comments)
 we should move ahead with the project to advance the image builder for Trove and make it easier to build guest images for Trove by leveraging the DIB elements that we have in trove-integration.</span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"> </span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">To that end, the infra [1] and governance [2] changes have been
 submitted for review. The Launchpad tracker [3] has been registered.</span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"> </span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">I am working on taking the existing DIB elements in trove-integration
 and putting them in the new repository (openstack/trove-image-builder). I am also going to continue to watch this conversation and record any shortcomings with the existing DIB elements in Launchpad [3] and work on fixing those as well. Pete mentions one in
 his earlier email and I’ve logged that in Launchpad [4].</span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"> </span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">Thanks,</span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"> </span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">-amrith</span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"> </span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">[1]
<a href="https://review.openstack.org/#/c/312805/" target="_blank">https://review.openstack.org/#/c/312805/</a></span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">[2]
<a href="https://review.openstack.org/#/c/312806/" target="_blank">https://review.openstack.org/#/c/312806/</a></span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">[3]
<a href="https://launchpad.net/trove-image-builder" target="_blank">https://launchpad.net/trove-image-builder</a></span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">[4]
<a href="https://bugs.launchpad.net/trove-image-builder/+bug/1578454" target="_blank">
https://bugs.launchpad.net/trove-image-builder/+bug/1578454</a></span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"> </span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"> </span></font><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" color="#1f497d" face="Consolas"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D"> </span></font><o:p></o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><font size="2" face="Calibri"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;font-weight:bold">From:</span></font></b><font size="2" face="Calibri"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">
 Mariam John [mailto:<a href="mailto:mariamj@us.ibm.com" target="_blank">mariamj@us.ibm.com</a>]
<br>
<b><span style="font-weight:bold">Sent:</span></b> Wednesday, May 04, 2016 4:19 PM<br>
<b><span style="font-weight:bold">To:</span></b> OpenStack Development Mailing List (not for usage questions) <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>></span></font><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="2" face="Calibri"><span style="font-size:10.0pt;font-family:"Calibri",sans-serif"><br>
<b><span style="font-weight:bold">Subject:</span></b> Re: [openstack-dev] [trove][sahara][infra][Octavia][manila] discussion of image building in Trove</span></font><o:p></o:p></p>
</div>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> <o:p></o:p></span></font></p>
<p><font size="3" face="Times New Roman"><span style="font-size:12.0pt">The way I see this, these are the 2 main concerns I have been hearing regarding image building in Trove:<br>
1) making the process simple and easy for users<br>
2) addressing the issue of security <br>
<br>
I dont think there is any argument regarding the benefits of moving the database elements to a seperate repository and packaging and managing them from there.
<br>
<br>
It looks like the case that we make for whether to use libguestfs or DIB for image building are in the technical details of how image building happens and their nuances - assuming that ease of use & having a simple interface to build secure images matters most,
 I wonder if the end-users would be concerned about these details.<br>
<br>
By addressing some of the issues like:<br>
- moving the Trove elements to a new repository <br>
- adding support for new distros<br>
- creating a wrapper script for building an image -getting the Trove guest agent code & configuration files
<br>
- managing environment variables better<br>
<br>
I believe it will make a huge improvement in terms of simplifying and improving the ease of use for end users and hence could be the low hanging fruit that we can implement in the mean time. I agree that switching from DIB to any other tool is a big step and
 we need to put alot of thought into it like many others have suggested. Like Pete mentioned earlier in one of the links, there are couple of other tools available for building images. I am sure we could make the case for each of these tools and how it is easier/faster/better
 than the others. If we go down this route experimenting with libguestfs, is there anything stopping us couple of releases down the lane from wanting to experiment with some other tool because libguestfs doesn't perform well? The end user could use any tool
 they want to use to create images if they wish to do so but I agree and believe that Trove should support a standard way of building images (DIB being an OpenStack project, I would assume that would be the standard) and do it well keeping it simple and easy
 to use as opposed to what it is today. <br>
<br>
I think we should split this into 2 tasks<br>
- one for going forward with seperating image building into a seperate repository and putting all efforts into simplifying the current process, and
<br>
- second, to have a joint collaboration with the DIB/TripleO team to raise concerns regarding DIB and see if we can address them in turn OR if using a different tool like libguestfs makes sense at that point.<br>
<br>
Thanks,<br>
Mariam.<br>
<br>
<img border="0" width="16" height="16" id="Picture_x0020_1" src="cid:image001.gif@01D1A6DE.B1F50370" alt="Inactive hide details for Peter MacKinnon ---05/04/2016 12:39:15 PM---On 5/4/16 12:52 PM, Gregory Haynes wrote: > On Wed, May 4"><font color="#424282"><span style="color:#424282">Peter
 MacKinnon ---05/04/2016 12:39:15 PM---On 5/4/16 12:52 PM, Gregory Haynes wrote: > On Wed, May 4, 2016, at 08:55 AM, Flavio Percoco wrote:</span></font><br>
<br>
</span></font><font size="2" color="#5f5f5f"><span style="font-size:10.0pt;color:#5F5F5F">From:
</span></font><font size="2"><span style="font-size:10.0pt">Peter MacKinnon <<a href="mailto:pmackinn@redhat.com" target="_blank">pmackinn@redhat.com</a>></span></font><br>
<font size="2" color="#5f5f5f"><span style="font-size:10.0pt;color:#5F5F5F">To: </span>
</font><font size="2"><span style="font-size:10.0pt"><a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a></span></font><br>
<font size="2" color="#5f5f5f"><span style="font-size:10.0pt;color:#5F5F5F">Date:
</span></font><font size="2"><span style="font-size:10.0pt">05/04/2016 12:39 PM</span></font><br>
<font size="2" color="#5f5f5f"><span style="font-size:10.0pt;color:#5F5F5F">Subject:
</span></font><font size="2"><span style="font-size:10.0pt">Re: [openstack-dev] [trove][sahara][infra][Octavia][manila] discussion of image building in Trove</span></font><o:p></o:p></p>
<div>
<div>
<div>
<div class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt">
<hr size="2" width="100%" noshade="" style="color:#8091A5" align="left">
</span></font></div>
</div>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"><br>
<br>
<br>
</span></font><tt><font size="2" face="Courier New"><span style="font-size:10.0pt">On 5/4/16 12:52 PM, Gregory Haynes wrote:</span></font></tt><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""><br>
<tt><font face="Courier New">> On Wed, May 4, 2016, at 08:55 AM, Flavio Percoco wrote:</font></tt><br>
<tt><font face="Courier New">>> On 04/05/16 15:05 +0000, Amrith Kumar wrote:</font></tt><br>
<tt><font face="Courier New">>>> I'm emailing the ML on the subject of a review ongoing in the Trove project regarding image building[1].</font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> TL;DR</font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> One of the most frequent questions that new users of Trove ask is how and where to get guest images with which to experiment with Trove, and how to build these images for themselves. While documentation about this exists in
 multiple places (including [2], [3]) this is still something that can do with some improvement.</font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> Trove currently uses diskimage-builder for building images used in testing the product and these can serve as a good basis for anyone wishing to build an image for their own use of Trove. The review [1] makes the argument for
 the libguestfs based approach to building images and advocates that Trove should use this instead of diskimage-builder.</font></tt><br>
<tt><font face="Courier New">>> At the summit we discussed the possibility of providing an implementation</font></tt><br>
<tt><font face="Courier New">>> that</font></tt><br>
<tt><font face="Courier New">>> would allow for both DIB and libguestfs to be used but to give priority</font></tt><br>
<tt><font face="Courier New">>> to DIB.</font></tt><br>
<tt><font face="Courier New">>> Since there's no real intention of just switching tools at this point, I</font></tt><br>
<tt><font face="Courier New">>> believe</font></tt><br>
<tt><font face="Courier New">>> it'd be good to amend the spec so that it doesn't mention libguestfs</font></tt><br>
<tt><font face="Courier New">>> should be</font></tt><br>
<tt><font face="Courier New">>> used instead of DiB.</font></tt><br>
<tt><font face="Courier New">>></font></tt><br>
<tt><font face="Courier New">>> The goal at this stage is to provide both and help these move forward.</font></tt><br>
<tt><font face="Courier New">>></font></tt><br>
<tt><font face="Courier New">>>> I believe that a broader discussion of this is required and I appreciate Greg Haynes' proposal at the design summit to have this discussion on the ML. I took the action item to bring this discussion to the ML.</font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> Details follow ...</font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> Before going further, I will state my views on these matters.</font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> 1. It is important for the Trove project to do things quickly to make it easier for end users who wish to use Trove and who wish to build their own images. I am not concerned what tool or tools a person will use to build these
 images.</font></tt><br>
<tt><font face="Courier New">> ++. One of the biggest issues I see users of DIB hit is ease of use for</font></tt><br>
<tt><font face="Courier New">> 'just make me an image, I don't care about twiddling knobs'. A wrapper</font></tt><br>
<tt><font face="Courier New">> script in trove is one way to help with this, but I am sure there are</font></tt><br>
<tt><font face="Courier New">> other solutions as well... maybe by rethinking some of our fear about</font></tt><br>
<tt><font face="Courier New">> using elements as entry points to an image build, or by simply making</font></tt><br>
<tt><font face="Courier New">> element's with better defaults.</font></tt><br>
<tt><font face="Courier New">></font></tt><br>
<tt><font face="Courier New">>>> 2. If we provide multiple alternatives to image building as part of the Trove project, we should make sure that images built with all sets of tools are equivalent and usable interchangeably. Failing to do this will make it harder
 for users to use Trove because we will be providing them with a false choice (i.e. the alternatives aren't really alternatives). This is harder than it sounds given the combination of tools, operating systems, and the source(s) from which you can get database
 software.</font></tt><br>
<tt><font face="Courier New">>> Maintaining both in the long run will be harder especially because, as</font></tt><br>
<tt><font face="Courier New">>> you</font></tt><br>
<tt><font face="Courier New">>> mentioned, the output must be usable interchangeably. However, I think</font></tt><br>
<tt><font face="Courier New">>> we're at</font></tt><br>
<tt><font face="Courier New">>> a point, based on the comments in [1] made by Pino Toscano, Luigi Toscano</font></tt><br>
<tt><font face="Courier New">>> and</font></tt><br>
<tt><font face="Courier New">>> some other folks that it'd be beneficial for us to have this discussion</font></tt><br>
<tt><font face="Courier New">>> and to</font></tt><br>
<tt><font face="Courier New">>> also experiment/test other options.</font></tt><br>
<tt><font face="Courier New">>></font></tt><br>
<tt><font face="Courier New">>> The Sahara team seems to be going in a direction that differs with the</font></tt><br>
<tt><font face="Courier New">>> one used</font></tt><br>
<tt><font face="Courier New">>> by the infra team and the one we're headed to (although they overlap in</font></tt><br>
<tt><font face="Courier New">>> some</font></tt><br>
<tt><font face="Courier New">>> areas).</font></tt><br>
<tt><font face="Courier New">>></font></tt><br>
<tt><font face="Courier New">> I would highly recommend against having two sets of image building code</font></tt><br>
<tt><font face="Courier New">> for Trove - given DIB's current design there should not be any need for</font></tt><br>
<tt><font face="Courier New">> this and there's a HUGE downside to maintaining two sets of code to do</font></tt><br>
<tt><font face="Courier New">> the same thing in-tree. Ideally a single set of code would be used while</font></tt><br>
<tt><font face="Courier New">> being able to be run in different environments if there are mutually</font></tt><br>
<tt><font face="Courier New">> exclusive requirements being proposed by users.</font></tt><br>
<br>
<tt><font face="Courier New">Well, certainly one downside in the case of Trove (and probably
</font></tt><br>
<tt><font face="Courier New">elsewhere) with DIB is the src tree matrix of datastore-by-distro
</font></tt><br>
<tt><font face="Courier New">elements required to support various guest image combinations, leading
</font></tt><br>
<tt><font face="Courier New">to a proliferation of directories and files. We feel this can be greatly
</font></tt><br>
<tt><font face="Courier New">simplified using a libguestfs approach using a minimal set of bash and
</font></tt><br>
<tt><font face="Courier New">directly applicable data files (e.g., systemd unit files, conf files,
</font></tt><br>
<tt><font face="Courier New">etc.).</font></tt><br>
<br>
<tt><font face="Courier New">></font></tt><br>
<tt><font face="Courier New">> What seemed very apparent to me in the summit session is that there are</font></tt><br>
<tt><font face="Courier New">> a set of issues for Trove relating to image building, mostly relating to</font></tt><br>
<tt><font face="Courier New">> reliability and ease of use. There was no one who even mentioned let</font></tt><br>
<tt><font face="Courier New">> alone strongly cared about the issues which actually differentiate the</font></tt><br>
<tt><font face="Courier New">> existing DIB build process from libguestfs (which is isolation). If that</font></tt><br>
<tt><font face="Courier New">> has changed for some reason, then my recommendation would be to use a</font></tt><br>
<tt><font face="Courier New">> tool like virt-dib which will allow for a single image building code</font></tt><br>
<tt><font face="Courier New">> base while solving all the raised issues in the spec. I suspect when</font></tt><br>
<tt><font face="Courier New">> this is tried out the downsides to booting a VM will highly outweigh the</font></tt><br>
<tt><font face="Courier New">> benefits for almost all users (especially in trove's gate),</font></tt><br>
<br>
<tt><font face="Courier New">Anecdotally, it takes the same amount of time for a CentOS7 MySQL build
</font></tt><br>
<tt><font face="Courier New">(~ 7 minutes) with either toolchain.</font></tt><br>
<br>
<tt><font face="Courier New">> but if the</font></tt><br>
<tt><font face="Courier New">> libguestfs docs are to be believed this should be trivial to try out.</font></tt><br>
<br>
<tt><font face="Courier New">Not quite sure what you mean by "to be believed"?</font></tt><br>
<br>
<tt><font face="Courier New">></font></tt><br>
<tt><font face="Courier New">></font></tt><br>
<tt><font face="Courier New">>>> 3. Trove already has elements for all supported databases using DIB in the trove-integration project but these elements are not packaged for customer use. Making them usable by customers is a relatively small effort including
 providing a wrapper script (derived from redstack[4]) and providing an element to install the guest agent software from a fixed location in addition to the development and testing version that is better suited to Trove development [5] and [6].</font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> 4. My comments on various patch sets in the review[1].</font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> I agree with Monty and Greg Haynes that we should understand the deficiencies if any in DIB, and if it is in fact the case that they are "intractable/unsolvable", we should switch toolchains. This discussion should include issues
 faced by the Trove team as well as other teams that may have faced problems with DIB (such as the sahara team who described some of them in the past).</font></tt><br>
<tt><font face="Courier New">>> ++</font></tt><br>
<tt><font face="Courier New">>></font></tt><br>
<tt><font face="Courier New">>> Agreed with the above. I'm think collaboration should be the preferred</font></tt><br>
<tt><font face="Courier New">>> way. I</font></tt><br>
<tt><font face="Courier New">>> don't think I've enough technical insight on this topic to provide a</font></tt><br>
<tt><font face="Courier New">>> detailed</font></tt><br>
<tt><font face="Courier New">>> list of things that are good/bad on either of these tools but I wanted to</font></tt><br>
<tt><font face="Courier New">>> mention that I believe providing support for both in the short run is</font></tt><br>
<tt><font face="Courier New">>> good for</font></tt><br>
<tt><font face="Courier New">>> us and it helps to make a better decision on what tool works best for the</font></tt><br>
<tt><font face="Courier New">>> project.</font></tt><br>
<tt><font face="Courier New">> Rewriting image building code in order to find out if we want to use a</font></tt><br>
<tt><font face="Courier New">> tool seems completely backwards. Obviously, if some external team wants</font></tt><br>
<tt><font face="Courier New">> to do this there's nothing stopping them, but what we should focus on</font></tt><br>
<tt><font face="Courier New">> are what problems actually effect out user base and what we can do to</font></tt><br>
<tt><font face="Courier New">> solve them. We should *not* be focusing on finding ways to support</font></tt><br>
<tt><font face="Courier New">> various image building frameworks without a clear benefit to doing so.</font></tt><br>
<br>
<tt><font face="Courier New">The various image building frameworks have been noted here
</font></tt><br>
<tt><font face="Courier New"><a href="http://docs.openstack.org/image-guide/create-images-automatically.html" target="_blank">http://docs.openstack.org/image-guide/create-images-automatically.html</a> </font></tt><br>
<tt><font face="Courier New">including libguestfs. So it's not like it is an unknown quantity. In the
</font></tt><br>
<tt><font face="Courier New">interest of innovation I'm not sure I understand the hearty reluctance
</font></tt><br>
<tt><font face="Courier New">to explore this path. We are proposing simply another Trove repo with an
</font></tt><br>
<tt><font face="Courier New">alternate (and recognized) image build method. This is not displacing
</font></tt><br>
<tt><font face="Courier New">any established tool for Trove; such a tool doesn't exist today. The
</font></tt><br>
<tt><font face="Courier New">elements in trove-integration don't really count since they are largely
</font></tt><br>
<tt><font face="Courier New">developed for Ubuntu only, inject Trove guestagent src from git only,
</font></tt><br>
<tt><font face="Courier New">and, beyond MySQL 5.6, are not tested by the gate.</font></tt><br>
<br>
<tt><font face="Courier New">></font></tt><br>
<tt><font face="Courier New">>> There's someone willing to do the job and spend sometime doing the</font></tt><br>
<tt><font face="Courier New">>> research.</font></tt><br>
<tt><font face="Courier New">>> This same person will provide feedback in addition to the one already</font></tt><br>
<tt><font face="Courier New">>> provided</font></tt><br>
<tt><font face="Courier New">>> in [1].</font></tt><br>
<tt><font face="Courier New">>></font></tt><br>
<tt><font face="Courier New">>> Sorry for not providing much technical details now but I did want to</font></tt><br>
<tt><font face="Courier New">>> share the</font></tt><br>
<tt><font face="Courier New">>> above. Thanks for starting this thread, I believe this discussion in the</font></tt><br>
<tt><font face="Courier New">>> ML will</font></tt><br>
<tt><font face="Courier New">>> be beneficial.</font></tt><br>
<tt><font face="Courier New">>></font></tt><br>
<tt><font face="Courier New">>> Flavio</font></tt><br>
<tt><font face="Courier New">>></font></tt><br>
<tt><font face="Courier New">>>> Thanks,</font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> -amrith</font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> [1] <a href="https://review.openstack.org/#/c/295274/" target="_blank">
https://review.openstack.org/#/c/295274/</a></font></tt><br>
<tt><font face="Courier New">>>> [2] <a href="http://docs.openstack.org/developer/trove/dev/building_guest_images.html" target="_blank">
http://docs.openstack.org/developer/trove/dev/building_guest_images.html</a></font></tt><br>
<tt><font face="Courier New">>>> [3] <a href="https://git.openstack.org/cgit/openstack/diskimage-builder/tree/README.rst#writing-an-element" target="_blank">
https://git.openstack.org/cgit/openstack/diskimage-builder/tree/README.rst#writing-an-element</a></font></tt><br>
<tt><font face="Courier New">>>> [4] <a href="http://git.openstack.org/cgit/openstack/trove-integration/tree/scripts/redstack" target="_blank">
http://git.openstack.org/cgit/openstack/trove-integration/tree/scripts/redstack</a></font></tt><br>
<tt><font face="Courier New">>>> [5] <a href="http://git.openstack.org/cgit/openstack/trove-integration/tree/scripts/files/trove-guest.systemd.conf" target="_blank">
http://git.openstack.org/cgit/openstack/trove-integration/tree/scripts/files/trove-guest.systemd.conf</a></font></tt><br>
<tt><font face="Courier New">>>> [6] <a href="http://git.openstack.org/cgit/openstack/trove-integration/tree/scripts/files/trove-guest.upstart.conf" target="_blank">
http://git.openstack.org/cgit/openstack/trove-integration/tree/scripts/files/trove-guest.upstart.conf</a></font></tt><br>
<tt><font face="Courier New">>>></font></tt><br>
<tt><font face="Courier New">>>> __________________________________________________________________________</font></tt><br>
<tt><font face="Courier New">>>> OpenStack Development Mailing List (not for usage questions)</font></tt><br>
<tt><font face="Courier New">>>> Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a></font></tt><br>
<tt><font face="Courier New">>>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></font></tt><br>
<tt><font face="Courier New">>> -- </font></tt><br>
<tt><font face="Courier New">>> @flaper87</font></tt><br>
<tt><font face="Courier New">>> Flavio Percoco</font></tt><br>
<tt><font face="Courier New">>> __________________________________________________________________________</font></tt><br>
<tt><font face="Courier New">>> OpenStack Development Mailing List (not for usage questions)</font></tt><br>
<tt><font face="Courier New">>> Unsubscribe:</font></tt><br>
<tt><font face="Courier New">>> <a href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a></font></tt><br>
<tt><font face="Courier New">>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></font></tt><br>
<tt><font face="Courier New">>> Email had 1 attachment:</font></tt><br>
<tt><font face="Courier New">>> + signature.asc</font></tt><br>
<tt><font face="Courier New">>>    1k (application/pgp-signature)</font></tt><br>
<tt><font face="Courier New">> __________________________________________________________________________</font></tt><br>
<tt><font face="Courier New">> OpenStack Development Mailing List (not for usage questions)</font></tt><br>
<tt><font face="Courier New">> Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a></font></tt><br>
<tt><font face="Courier New">> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></font></tt><br>
<br>
<br>
<tt><font face="Courier New">__________________________________________________________________________</font></tt><br>
<tt><font face="Courier New">OpenStack Development Mailing List (not for usage questions)</font></tt><br>
<tt><font face="Courier New">Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a></font></tt><br>
<tt><font face="Courier New"><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></font></tt></span></font><o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"><br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><o:p></o:p></span></font></p>
</blockquote>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"> <o:p></o:p></span></font></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"><br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><o:p></o:p></span></font></p>
</blockquote>
</div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:12.0pt"><o:p> </o:p></span></font></p>
</div>
</div>
</div>
</body>
</html>