<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=us-ascii">
<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:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.msochpdefault, li.msochpdefault, div.msochpdefault
        {mso-style-name:msochpdefault;
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Times New Roman",serif;}
span.emailstyle18
        {mso-style-name:emailstyle18;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.emailstyle19
        {mso-style-name:emailstyle19;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:2055347444;
        mso-list-type:hybrid;
        mso-list-template-ids:-949982142 67698711 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></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="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Hi <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">If we choose to use bifrost to deploy ironic standalone I think combining kevins previous<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">suggestion of modifying the bifrost install playbook with Steve Dake’s suggestion of creating a series
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">of supervisord configs for running each of the service is a reasonable approch.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I am currently look to scope how much effort would be required to split  the main task in the bifrost-ironic-install role
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><a href="https://github.com/openstack/bifrost/blob/master/playbooks/roles/bifrost-ironic-install/tasks/main.yml">https://github.com/openstack/bifrost/blob/master/playbooks/roles/bifrost-ironic-install/tasks/main.yml</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">into 3 files which would be included in the main.yml:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="color:#1F497D">Install_componets.yml (executed when skip_install is not defiend)<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="color:#1F497D">Bootstrap_components.yml (executed when skip_bootstrap is not defiend)<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="color:#1F497D">Start_components.yml  (executed when skip_start is not defiend)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">By default all three would be executed maintain the current behavior of bifrost today,.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">During the kolla build of the biforst image the
<a href="https://github.com/openstack/bifrost/blob/master/playbooks/install.yaml">
https://github.com/openstack/bifrost/blob/master/playbooks/install.yaml</a> would be in<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">run with skip_bootstrap and skip_start defined as true so only Install_componets.yml will be executed by the main task.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">This would install all software components of bifrost/ironic without preforming configuration or starting the services.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">At deployment time during the bootstrap phase we would spawn an instance of the biforst-base container and invoke
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><a href="https://github.com/openstack/bifrost/blob/master/playbooks/install.yaml">https://github.com/openstack/bifrost/blob/master/playbooks/install.yaml</a> with skip_install and skip_start defined executing
 Bootstrap_components.yml<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Bootstrap_components.yml would encapsulate all logic related to creating the ironic db(running migration scripts) and generating the configuration
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Files for the biforst components.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Finally in the start phase we have 3 options<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="color:#1F497D"><span style="mso-list:Ignore">a)<span style="font:7.0pt "Times New Roman"">     
</span></span></span><![endif]><span style="color:#1F497D">Spawn an instance of the bifrost-supervisor container and use supervisord to run the bifrost/ironic services (fat container)<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="color:#1F497D"><span style="mso-list:Ignore">b)<span style="font:7.0pt "Times New Roman"">     
</span></span></span><![endif]><span style="color:#1F497D">Spawn an instance of the bifrost-base container and Invoke
<a href="https://github.com/openstack/bifrost/blob/master/playbooks/install.yaml">
https://github.com/openstack/bifrost/blob/master/playbooks/install.yaml</a> with <br>
skip_install and skip_bootstrap and allow biforst to star the services.(fat container)<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="color:#1F497D"><span style="mso-list:Ignore">c)<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span style="color:#1F497D">Spawn a series of containers each running a single service sharing the required volumes to allow them  to communicate (app containers)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I would welcome any input for the bifrost community on this especially related to the decomposition of the main.yml into 3 phases.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Im hoping to do a quick poc this week to see how easy it is to do this decomposition.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I would also like to call out upfront that depending on the scope of this item I may have to withdraw from contributing to it.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I work in intel’s network platforms group so enabling baremetal installation is somewhat outside the standard<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Work our division undertakes.  If we can reuse bifrost to do most of the heavy lifting of creating the bifrost container and deploying ironic then<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">The scope of creating the bifrost container is small enough that I can justify spending some of my time working on it. if it requires<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Significant changes to bifrost or rework of kolla’s ironic support then I will have to step back and focus more on feature that are closer aligned to<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Our teams core networking and orchestration focus such as enhancing kolla to be able to deploy ovs with dpdk  and/or opendaylight which are<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Also items I would like to contribute to this cycle. I don’t want to commit to delivering this feature unless I know I will have the time to work on<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">It but am happy to help where I can.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">@kevin some replies to your questions inline.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Sean.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>From:</b> Fox, Kevin M [mailto:Kevin.Fox@pnnl.gov] <br>
<b>Sent:</b> Friday, May 6, 2016 9:17 PM<br>
<b>To:</b> OpenStack Development Mailing List (not for usage questions) <openstack-dev@lists.openstack.org><br>
<b>Subject:</b> Re: [openstack-dev] [kolla] [bifrost] bifrost container.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">I was under the impression bifrost was 2 things, one, an installer/configurator of ironic in a stand alone mode, and two, a management tool for getting machines
 deployed without needing nova using ironic.</span><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">[Mooney, Sean K] yes this is correct, bifrost does provide both install playbooks for deploying ironic in standalone mode and a series of playbooks for dynamically enrolling node in ironic and dynamically
 deploy imanges to host<o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">Without requiring nova. Bifrost also provides intergration with Disk image builder to generate machine images if desired.<o:p></o:p></span></i></b></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><br>
<br>
The first use case seems like it should just be handled by enhancing kolla's ironic container stuff to directly to handle the use case, doing things the kolla way. This seems much cleaner to me. Doing it at runtime looses most of the benefits of doing it in
 a container at all.</span><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">[Mooney, Sean K] I was not suggestiong doing the installation at runtime. Option 2 and 3   suggested spawning a container as part of the build in which the install playbook would be run.<o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">That container would then be stopped and exported to form the base image for the bifrost continer(s). The base image (bifrost-postinstall)  would either be use to create  a fat containter using an init
 system such as supervisord to run each of the services<o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">or be used as the base image for a set of bifrost container each of which ran a single component.
<o:p></o:p></span></i></b></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><br>
<br>
The second adds a lot of value I think, and thats what the bifrost container should be?</span><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">[Mooney, Sean K]  yes it does and I think it can be reused regarless or how we decide to deploy ironic.<o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D"><o:p> </o:p></span></i></b></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><br>
<br>
Thanks,<br>
Kevin<o:p></o:p></span></p>
<div>
<div class="MsoNormal" align="center" style="text-align:center"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">
<hr size="2" width="100%" align="center">
</span></div>
<div id="divRpF267773">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"> Mooney, Sean K [sean.k.mooney@intel.com]<br>
<b>Sent:</b> Friday, May 06, 2016 12:54 PM<br>
<b>To:</b> OpenStack Development Mailing List (not for usage questions)<br>
<b>Subject:</b> Re: [openstack-dev] [kolla] [bifrost] bifrost container.</span><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="color:#1F497D"> </span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><span style="color:black"><o:p></o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> Steven Dake (stdake) [<a href="mailto:stdake@cisco.com">mailto:stdake@cisco.com</a>]
<br>
<b>Sent:</b> Friday, May 6, 2016 6:56 PM<br>
<b>To:</b> OpenStack Development Mailing List (not for usage questions) <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<b>Subject:</b> Re: [openstack-dev] [kolla] [bifrost] bifrost container.<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">Sean,</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">Thanks for taking this on :)  I didn't know you had such an AR :)</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">[Mooney, Sean K] well if other want to do the work that ok with me too but I was planning on deploying bifrost
</span></i></b><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">At home again anyway so I taught I  might as well try to automate the process while im at it.</span></i></b><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="color:black">From: </span></b><span style="color:black">"Mooney, Sean K" <<a href="mailto:sean.k.mooney@intel.com" target="_blank">sean.k.mooney@intel.com</a>><br>
<b>Reply-To: </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>Date: </b>Friday, May 6, 2016 at 10:14 AM<br>
<b>To: </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>Subject: </b>[openstack-dev] [kolla] [bifrost] bifrost container.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<div>
<p class="MsoNormal"><span style="color:black">Hi everyone.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Following up on my AR from the kolla host repository session<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><a href="https://etherpad.openstack.org/p/kolla-newton-summit-kolla-kolla-host-repo" target="_blank">https://etherpad.openstack.org/p/kolla-newton-summit-kolla-kolla-host-repo</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">I started working on creating a kolla bifrost container.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Are some initial success it have hit a roadblock with the current install playbook provided by bifrost.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">In particular the install playbook both installs the ironic dependencies and configure and runs the services.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">What I'd do here is ignore the install playbook and duplicate what it installs.  We don't want to install at run time, we want to install at build time.  You weren't clear if that is what your
 doing.</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><b><i><span style="color:#1F497D">[Mooney, Sean K] that is certainly an option but bifrost is an installer for ironic and its supporting service. Not using its installation scripts significantly reduces the value of
</span></i></b><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">Integrating with bifrost vs fixing the existing ironic support in kolla and using that to provision the undercloud.
</span></i></b><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">The reason we would ignore the install playbook is because it runs the services.  We need to run the services in a different way.  This will (as we discussed at ODS) be a fat container on the underlord
 cloud – which I guess is ok.  I'd recommend not using systemd, as that will break systemd systems badly.  Instead use a different init system, such as supervisord.</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">[Mooney, Sean K] if we don’t use the  bifrost install playbook then yes supervisord would be a good choice for the init system.
</span></i></b><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">Looking at the official centos docker image
<a href="https://hub.docker.com/_/centos/" target="_blank">https://hub.docker.com/_/centos/</a>  they do provided instruction for running systemd containers tough I have had issues with this in the past.</span></i></b><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<div>
<p class="MsoNormal"><span style="color:black">The installation of ironic and its dependencies would not be a problem but the ansible service module is not cable able of starting the<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Infrastructure services (mysql,rabbit …) without a running init system which is not present during the docker build.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">When I created a biforst container in the past is spawned a Ubuntu upstart container then docker exec into the container and ran<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Bifrost install script. This works because the init system is running and the service module could test and start the relevant services.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">This leave me with 3 paths forward.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="color:black">1.</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">      
</span><span style="color:black">I can continue to try and make the bifrost install script work with the kolla build system by using sed to modify the install playbook or try start systemd during the docker build.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="color:black">2.</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">      
</span><span style="color:black">I can use the kolla build system to build only part of the image<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:72.0pt;text-indent:-18.0pt"><span style="color:black">a.</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">      
</span><span style="color:black"> the bifrost-base image would be build with the kolla build system without running the bifrost playbook. This<br>
would allow the existing allow the existing features of the build system such as adding headers/footers to be used.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:72.0pt;text-indent:-18.0pt"><span style="color:black">b.</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">     
</span><span style="color:black">After the base image is built by kolla I can spawn an instance of bifrost-base with systemd running
<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:72.0pt;text-indent:-18.0pt"><span style="color:black">c.</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">      
</span><span style="color:black">I can then connect to this running container and run the bifrost install script unmodified.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:72.0pt;text-indent:-18.0pt"><span style="color:black">d.</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">     
</span><span style="color:black">Once it is finished I can stop the container and export it to an image “bifros-postinstall”.
<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:72.0pt;text-indent:-18.0pt"><span style="color:black">e.</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">     
</span><span style="color:black">This can either be used directly (fat container) or as the base image for other container that run each of the ironic services (thin containers)<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="color:black">3.</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">      
</span><span style="color:black">I can  skip the kolla build system entirely and create a script/playbook that will build the bifrost container similar to 2.<o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">4.</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">Make a supervisord set of init scripts and make the docker file do what it was intended – install the files.  This is kind of a mashup of your 1-3 ideas.  Good thinking :)</span><span style="color:black"><o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<div>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">While option 1 would fully use the kolla build system It is my least favorite as it is both hacky and complicated to make work.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Docker really was not designed to run systemd as part of docker build.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">For option 2 and 3 I can provide a single playbook/script that will fully automate the build but the real question I have<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Is should I use the kolla build system to make the base image or not.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">If anyone else has suggestion on how I can progress  please let me know but currently I am leaning towards option 2.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">If you have questions about my suggestion to use supervisord, hit me up on IRC.  Ideally we would also contribute these init scripts back into bifrost code base assuming they want them, which I
 think they would.  Nobody will run systemd in a container, and we all have an interest in seeing BiFrost as the standard bare metal deployment model inside or outside of containers.</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">[Mooney, Sean K]  I have briefly used supervisord before for a pet project
<a href="https://github.com/SeanMooney/docker-devstack" target="_blank">https://github.com/SeanMooney/docker-devstack</a> to create a container for running devstack so it did hot pollute my host.</span></i></b><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">supervisord  is a nice tool. Im just about to head home for the weekend but I might grab you on irc on Monday to follow up.</span></i></b><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">Regards</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">-steve</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<div>
<p class="MsoNormal"><span style="color:black">The only other option I see would be to not use a container and either install biforst on the host or in a vm.<o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">GROAN – one advantage containers provide us is not mucking up the host OS with a bajillion dependencies.  I'd like to keep that part of Kolla intact :)</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">[Mooney, Sean K]  yes I would prefer not to break that too. This was basically the option of we don’t actually do the integration and instead just tell</span></i></b><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">The user how to use bifrost to do the deployment but leave it up to them do decide how to install it. so for me that was plan Z so we have a couple of letter</span></i></b><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><i><span style="color:#1F497D">Go through first.</span></i></b><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<div>
<p class="MsoNormal"><span style="color:black">These would essentially be a no op for kolla as we would simply have to document how to install bifrost which is covered<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Quite well as part of the bifrost project.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Sean.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>