<div dir="ltr">tuskar-ui is supposed to enroll nodes into ironic.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 8, 2015 at 4:36 AM, Zhou, Zhenzan <span dir="ltr"><<a href="mailto:zhenzan.zhou@intel.com" target="_blank">zhenzan.zhou@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sounds like we could add something new to automate the enrollment of new nodes:-)<br>
Collecting IPMI info into a csv file is still a trivial job...<br>
<span class="im HOEnZb"><br>
BR<br>
Zhou Zhenzan<br>
<br>
-----Original Message-----<br>
From: Dmitry Tantsur [mailto:<a href="mailto:dtantsur@redhat.com">dtantsur@redhat.com</a>]<br>
</span><div class="HOEnZb"><div class="h5">Sent: Thursday, January 8, 2015 5:19 PM<br>
To: <a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a><br>
Subject: Re: [openstack-dev] [Ironic] ironic-discoverd status update<br>
<br>
On 01/08/2015 06:48 AM, Kumar, Om (Cloud OS R&D) wrote:<br>
> My understanding of discovery was to get all details for a node and then register that node to ironic. i.e. Enrollment of the node to ironic. Pardon me if it was out of line with your understanding of discovery.<br>
That's why we agreed to use terms inspection/introspection :) sorry for not being consistent here (name 'discoverd' is pretty old and hard to change).<br>
<br>
discoverd does not enroll nodes. while possible, I'm somewhat resistant to make it do enrolling, mostly because I want it to be user-controlled process.<br>
<br>
><br>
> What I understand from the below mentioned spec is that the Node is registered, but the spec will help ironic discover other properties of the node.<br>
that's what discoverd does currently.<br>
<br>
><br>
> -Om<br>
><br>
> -----Original Message-----<br>
> From: Dmitry Tantsur [mailto:<a href="mailto:dtantsur@redhat.com">dtantsur@redhat.com</a>]<br>
> Sent: 07 January 2015 20:20<br>
> To: <a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a><br>
> Subject: Re: [openstack-dev] [Ironic] ironic-discoverd status update<br>
><br>
> On 01/07/2015 03:44 PM, Matt Keenan wrote:<br>
>> On 01/07/15 14:24, Kumar, Om (Cloud OS R&D) wrote:<br>
>>> If it's a separate project, can it be extended to perform out of band<br>
>>> discovery too..? That way there will be a single service to perform<br>
>>> in-band as well as out of band discoveries.. May be it could follow<br>
>>> driver framework for discovering nodes, where one driver could be<br>
>>> native (in-band) and other could be iLO specific etc...<br>
>>><br>
>><br>
>> I believe the following spec outlines plans for out-of-band discovery:<br>
>>     <a href="https://review.openstack.org/#/c/100951/" target="_blank">https://review.openstack.org/#/c/100951/</a><br>
> Right, so Ironic will have drivers, one of which (I hope) will be a driver for discoverd.<br>
><br>
>><br>
>> No idea what the progress is with regard to implementation within the<br>
>> Kilo cycle though.<br>
> For now we hope to get it merged in K.<br>
><br>
>><br>
>> cheers<br>
>><br>
>> Matt<br>
>><br>
>>> Just a thought.<br>
>>><br>
>>> -Om<br>
>>><br>
>>> -----Original Message-----<br>
>>> From: Dmitry Tantsur [mailto:<a href="mailto:dtantsur@redhat.com">dtantsur@redhat.com</a>]<br>
>>> Sent: 07 January 2015 14:34<br>
>>> To: <a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a><br>
>>> Subject: Re: [openstack-dev] [Ironic] ironic-discoverd status update<br>
>>><br>
>>> On 01/07/2015 09:58 AM, Zhou, Zhenzan wrote:<br>
>>>> So is it possible to just integrate this project into ironic? I mean<br>
>>>> when you create an ironic node, it will start discover in the<br>
>>>> background. So we don't need two services?<br>
>>> Well, the decision on the summit was that it's better to keep it<br>
>>> separate. Please see <a href="https://review.openstack.org/#/c/135605/" target="_blank">https://review.openstack.org/#/c/135605/</a> for<br>
>>> details on future interaction between discoverd and Ironic.<br>
>>><br>
>>>> Just a thought, thanks.<br>
>>>><br>
>>>> BR<br>
>>>> Zhou Zhenzan<br>
>>>><br>
>>>> -----Original Message-----<br>
>>>> From: Dmitry Tantsur [mailto:<a href="mailto:dtantsur@redhat.com">dtantsur@redhat.com</a>]<br>
>>>> Sent: Monday, January 5, 2015 4:49 PM<br>
>>>> To: <a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a><br>
>>>> Subject: Re: [openstack-dev] [Ironic] ironic-discoverd status update<br>
>>>><br>
>>>> On 01/05/2015 09:31 AM, Zhou, Zhenzan wrote:<br>
>>>>> Hi, Dmitry<br>
>>>>><br>
>>>>> I think this is a good project.<br>
>>>>> I got one question: what is the relationship with ironic-python-agent?<br>
>>>>> Thanks.<br>
>>>> Hi!<br>
>>>><br>
>>>> No relationship right now, but I'm hoping to use IPA as a base for<br>
>>>> introspection ramdisk in the (near?) future.<br>
>>>>><br>
>>>>> BR<br>
>>>>> Zhou Zhenzan<br>
>>>>><br>
>>>>> -----Original Message-----<br>
>>>>> From: Dmitry Tantsur [mailto:<a href="mailto:dtantsur@redhat.com">dtantsur@redhat.com</a>]<br>
>>>>> Sent: Thursday, December 11, 2014 10:35 PM<br>
>>>>> To: OpenStack Development Mailing List (not for usage questions)<br>
>>>>> Subject: [openstack-dev] [Ironic] ironic-discoverd status update<br>
>>>>><br>
>>>>> Hi all!<br>
>>>>><br>
>>>>> As you know I actively promote ironic-discoverd project [1] as one<br>
>>>>> of the means to do hardware inspection for Ironic (see e.g. spec<br>
>>>>> [2]), so I decided it's worth to give some updates to the community<br>
>>>>> from time to time. This email is purely informative, you may safely<br>
>>>>> skip it, if you're not interested.<br>
>>>>><br>
>>>>> Background<br>
>>>>> ==========<br>
>>>>><br>
>>>>> The discoverd project (I usually skip the "ironic-" part when<br>
>>>>> talking about it) solves the problem of populating information<br>
>>>>> about a node in Ironic database without help of any vendor-specific<br>
>>>>> tool. This information usually includes Nova scheduling properties<br>
>>>>> (CPU, RAM, disk<br>
>>>>> size) and MAC's for ports.<br>
>>>>><br>
>>>>> Introspection is done by booting a ramdisk on a node, collecting<br>
>>>>> data there and posting it back to discoverd HTTP API. Thus actually<br>
>>>>> discoverd consists of 2 components: the service [1] and the ramdisk<br>
>>>>> [3]. The service handles 2 major tasks:<br>
>>>>> * Processing data posted by the ramdisk, i.e. finding the node in<br>
>>>>> Ironic database and updating node properties with new data.<br>
>>>>> * Managing iptables so that the default PXE environment for<br>
>>>>> introspection does not interfere with Neutron<br>
>>>>><br>
>>>>> The project was born from a series of patches to Ironic itself<br>
>>>>> after we discovered that this change is going to be too intrusive.<br>
>>>>> Discoverd was actively tested as part of Instack [4] and it's RPM<br>
>>>>> is a part of Juno RDO. After the Paris summit, we agreed on<br>
>>>>> bringing it closer to the Ironic upstream, and now discoverd is<br>
>>>>> hosted on StackForge and tracks bugs on Launchpad.<br>
>>>>><br>
>>>>> Future<br>
>>>>> ======<br>
>>>>><br>
>>>>> The basic feature of discoverd: supply Ironic with properties<br>
>>>>> required for scheduling, is pretty finished as of the latest stable<br>
>>>>> series 0.2.<br>
>>>>><br>
>>>>> However, more features are planned for release 1.0.0 this January [5].<br>
>>>>> They go beyond the bare minimum of finding out CPU, RAM, disk size<br>
>>>>> and NIC MAC's.<br>
>>>>><br>
>>>>> Plugability<br>
>>>>> ~~~~~~~~~~~<br>
>>>>><br>
>>>>> An interesting feature of discoverd is support for plugins, which I<br>
>>>>> prefer to call hooks. It's possible to hook into the introspection<br>
>>>>> data processing chain in 2 places:<br>
>>>>> * Before any data processing. This opens opportunity to adopt<br>
>>>>> discoverd to ramdisks that have different data format. The only<br>
>>>>> requirement is that the ramdisk posts a JSON object.<br>
>>>>> * After a node is found in Ironic database and ports are created<br>
>>>>> for MAC's, but before any actual data update. This gives an<br>
>>>>> opportunity to alter, which properties discoverd is going to update.<br>
>>>>><br>
>>>>> Actually, even the default logic of update Node.properties is<br>
>>>>> contained in a plugin - see SchedulerHook in<br>
>>>>> ironic_discoverd/plugins/standard.py<br>
>>>>> [6]. This plugability opens wide opportunities for integrating with<br>
>>>>> 3rd party ramdisks and CMDB's (which as we know Ironic is not ;).<br>
>>>>><br>
>>>>> Enrolling<br>
>>>>> ~~~~~~~~~<br>
>>>>><br>
>>>>> Some people have found it limiting that the introspection requires<br>
>>>>> power credentials (IPMI user name and password) to be already set.<br>
>>>>> The recent set of patches [7] introduces a possibility to request<br>
>>>>> manual power on of the machine and update IPMI credentials via the<br>
>>>>> ramdisk to the expected values. Note that support of this feature<br>
>>>>> in the reference ramdisk [3] is not ready yet. Also note that this<br>
>>>>> scenario is only possible when using discoverd directly via it's<br>
>>>>> API, not via Ironic API like in [2].<br>
>>>>><br>
>>>>> Get Involved<br>
>>>>> ============<br>
>>>>><br>
>>>>> Discoverd terribly lacks reviews. Out team is very small and<br>
>>>>> self-approving is not a rare case. I'm even not against<br>
>>>>> fast-tracking any existing Ironic core to a discoverd core after a<br>
>>>>> couple of meaningful reviews :)<br>
>>>>><br>
>>>>> And of course patches are welcome, especially plugins for<br>
>>>>> integration with existing systems doing similar things and CMDB's.<br>
>>>>> Patches are accepted via usual Gerrit workflow. Ideas are accepted<br>
>>>>> as Launchpad blueprints (we do not follow the Gerrit spec process<br>
>>>>> right now).<br>
>>>>><br>
>>>>> Finally, please comment on the Ironic spec [2], I'd like to know<br>
>>>>> what you think.<br>
>>>>><br>
>>>>> References<br>
>>>>> ==========<br>
>>>>><br>
>>>>> [1] <a href="https://pypi.python.org/pypi/ironic-discoverd" target="_blank">https://pypi.python.org/pypi/ironic-discoverd</a><br>
>>>>> [2] <a href="https://review.openstack.org/#/c/135605/" target="_blank">https://review.openstack.org/#/c/135605/</a><br>
>>>>> [3]<br>
>>>>> <a href="https://github.com/openstack/diskimage-builder/tree/master/elements" target="_blank">https://github.com/openstack/diskimage-builder/tree/master/elements</a><br>
>>>>> /i<br>
>>>>> r<br>
>>>>> onic-discoverd-ramdisk [4]<br>
>>>>> <a href="https://github.com/agroup/instack-undercloud/" target="_blank">https://github.com/agroup/instack-undercloud/</a><br>
>>>>> [5] <a href="https://bugs.launchpad.net/ironic-discoverd/+milestone/1.0.0" target="_blank">https://bugs.launchpad.net/ironic-discoverd/+milestone/1.0.0</a><br>
>>>>> [6]<br>
>>>>> <a href="https://github.com/stackforge/ironic-discoverd/blob/master/ironic_d" target="_blank">https://github.com/stackforge/ironic-discoverd/blob/master/ironic_d</a><br>
>>>>> is<br>
>>>>> c<br>
>>>>> overd/plugins/standard.py<br>
>>>>> [7]<br>
>>>>> <a href="https://blueprints.launchpad.net/ironic-discoverd/+spec/setup-ipmi-" target="_blank">https://blueprints.launchpad.net/ironic-discoverd/+spec/setup-ipmi-</a><br>
>>>>> cr<br>
>>>>> e<br>
>>>>> dentials<br>
>>>>><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>
>>>>> _______________________________________________<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>
>>>><br>
>>>><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>
>>>> _______________________________________________<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>
>>><br>
>>><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>
>>> _______________________________________________<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>
>><br>
>><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>
><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>
> _______________________________________________<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>
<br>
<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>
_______________________________________________<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>
</div></div></blockquote></div><br></div>