<div dir="ltr">Russell, <div><br></div><div>Great to hear you are going to move towards Pecan+WSME. Yesterday I had a look at teeth projects. Next few days I am going to start contributing. First of all, I think, we need to arrange all that stuff about pluggable architecture. I've created a wiki page about Ironic python agent <a href="https://wiki.openstack.org/wiki/Ironic-python-agent">https://wiki.openstack.org/wiki/Ironic-python-agent</a>. </div>
<div><br></div><div>And the question about contributing. Have you managed to send pull request to openstack-infra in order to move this project into <a href="http://github.com/stackforge">github.com/stackforge</a>? Or we are supposed to arrange everything (werkzeug -> Pecan/WSME, architectural questions) before we move this agent to stackforge?</div>
<div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div>Vladimir Kozhukalov</div></div>
<br><br><div class="gmail_quote">On Fri, Mar 7, 2014 at 8:53 PM, Russell Haering <span dir="ltr"><<a href="mailto:russellhaering@gmail.com" target="_blank">russellhaering@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Vladmir,<div><br></div><div>Hey, I'm on the team working on this agent, let me offer a little history. We were working on a system of our own for managing bare metal gear which we were calling "Teeth". The project was mostly composed of:</div>

<div><br></div><div>1. teeth-agent: an on-host provisioning agent</div><div>2. teeth-overlord: a centralized automation mechanism</div><div><br></div><div>Plus a few other libraries (including teeth-rest, which contains some common code we factored out of the agent/overlord).</div>

<div><br></div><div>A few weeks back we decided to shift our focus to using Ironic. At this point we have effectively abandoned teeth-overlord, and are instead focusing on upstream Ironic development, continued agent development and building an Ironic driver capable of talking to our agent.</div>

<div><br></div><div>Over the last few days we've been removing non-OS-approved dependencies from our agent: I think teeth-rest (and werkzeug, which it depends on) will be the last to go when we replace it with Pecan+WSME sometime in the next few days.</div>

<div><br></div><div>Thanks,</div><div>Russell</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Mar 7, 2014 at 8:26 AM, Vladimir Kozhukalov <span dir="ltr"><<a href="mailto:vkozhukalov@mirantis.com" target="_blank">vkozhukalov@mirantis.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">As far as I understand, there are 4 projects which are connected with this topic. Another two projects which were not mentioned by Devananda are <div>

<a href="https://github.com/rackerlabs/teeth-rest" target="_blank">https://github.com/rackerlabs/teeth-rest</a></div>
<div><a href="https://github.com/rackerlabs/teeth-overlord" target="_blank">https://github.com/rackerlabs/teeth-overlord</a><br></div><div><br></div><div>Vladimir Kozhukalov<br></div><div class="gmail_extra">
<br><br><div class="gmail_quote"><div><div>On Fri, Mar 7, 2014 at 4:41 AM, Devananda van der Veen <span dir="ltr"><<a href="mailto:devananda.vdv@gmail.com" target="_blank">devananda.vdv@gmail.com</a>></span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>
<div dir="ltr">All,<div><br></div><div>The Ironic team has been discussing the need for a "deploy agent" since well before the last summit -- we even laid out a few blueprints along those lines. That work was deferred  and we have been using the same deploy ramdisk that nova-baremetal used, and we will continue to use that ramdisk for the PXE driver in the Icehouse release.</div>




<div><br></div><div>That being the case, at the sprint this week, a team from Rackspace shared work they have been doing to create a more featureful hardware agent and an Ironic driver which utilizes that agent. Early drafts of that work can be found here:</div>




<div><br></div><div><a href="https://github.com/rackerlabs/teeth-agent" target="_blank">https://github.com/rackerlabs/teeth-agent</a><br></div><div><a href="https://github.com/rackerlabs/ironic-teeth-driver" target="_blank">https://github.com/rackerlabs/ironic-teeth-driver</a><br>




</div><div><br></div><div>I've updated the original blueprint and assigned it to Josh. For reference:</div><div><br></div><div><a href="https://blueprints.launchpad.net/ironic/+spec/utility-ramdisk" target="_blank">https://blueprints.launchpad.net/ironic/+spec/utility-ramdisk</a><br>




</div><div><br></div><div>I believe this agent falls within the scope of the baremetal provisioning program, and welcome their contributions and collaboration on this. To that effect, I have suggested that the code be moved to a new OpenStack project named "openstack/ironic-python-agent". This would follow an independent release cycle, and reuse some components of tripleo (os-*-config). To keep the collaborative momentup up, I would like this work to be done now (after all, it's not part of the Ironic repo or release). The new driver which will interface with that agent will need to stay on github -- or in a gerrit feature branch -- until Juno opens, at which point it should be proposed to Ironic.</div>




<div><br></div><div>The agent architecture we discussed is roughly:</div><div>- a pluggable JSON transport layer by which the Ironic driver will pass information to the ramdisk. Their initial implementation is a REST API.</div>




<div>- a collection of hardware-specific utilities (python modules, bash scripts, what ever) which take JSON as input and perform specific actions (whether gathering data about the hardware or applying changes to it).<br>




</div><div>- and an agent which routes the incoming JSON to the appropriate utility, and routes the response back via the transport layer.</div><span><font color="#888888"><div><br></div><div><br></div><div>
-Devananda<br></div></font></span></div>
<br></div></div>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</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><br>
<br></blockquote></div><br></div></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</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><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</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><br>
<br></blockquote></div><br></div>