So is it possible to just integrate this project into ironic? I mean when you create an ironic node, it will start discover in the background. So we don't need two services? Just a thought, thanks.
BR Zhou Zhenzan -----Original Message----- From: Dmitry Tantsur [mailto:dtant...@redhat.com] Sent: Monday, January 5, 2015 4:49 PM To: openstack-dev@lists.openstack.org Subject: Re: [openstack-dev] [Ironic] ironic-discoverd status update On 01/05/2015 09:31 AM, Zhou, Zhenzan wrote: > Hi, Dmitry > > I think this is a good project. > I got one question: what is the relationship with ironic-python-agent? > Thanks. Hi! No relationship right now, but I'm hoping to use IPA as a base for introspection ramdisk in the (near?) future. > > BR > Zhou Zhenzan > > -----Original Message----- > From: Dmitry Tantsur [mailto:dtant...@redhat.com] > Sent: Thursday, December 11, 2014 10:35 PM > To: OpenStack Development Mailing List (not for usage questions) > Subject: [openstack-dev] [Ironic] ironic-discoverd status update > > Hi all! > > As you know I actively promote ironic-discoverd project [1] as one of the > means to do hardware inspection for Ironic (see e.g. spec [2]), so I decided > it's worth to give some updates to the community from time to time. This > email is purely informative, you may safely skip it, if you're not interested. > > Background > ========== > > The discoverd project (I usually skip the "ironic-" part when talking > about it) solves the problem of populating information about a node in > Ironic database without help of any vendor-specific tool. This > information usually includes Nova scheduling properties (CPU, RAM, > disk > size) and MAC's for ports. > > Introspection is done by booting a ramdisk on a node, collecting data there > and posting it back to discoverd HTTP API. Thus actually discoverd consists > of 2 components: the service [1] and the ramdisk [3]. The service handles 2 > major tasks: > * Processing data posted by the ramdisk, i.e. finding the node in Ironic > database and updating node properties with new data. > * Managing iptables so that the default PXE environment for > introspection does not interfere with Neutron > > The project was born from a series of patches to Ironic itself after we > discovered that this change is going to be too intrusive. Discoverd was > actively tested as part of Instack [4] and it's RPM is a part of Juno RDO. > After the Paris summit, we agreed on bringing it closer to the Ironic > upstream, and now discoverd is hosted on StackForge and tracks bugs on > Launchpad. > > Future > ====== > > The basic feature of discoverd: supply Ironic with properties required for > scheduling, is pretty finished as of the latest stable series 0.2. > > However, more features are planned for release 1.0.0 this January [5]. > They go beyond the bare minimum of finding out CPU, RAM, disk size and NIC > MAC's. > > Plugability > ~~~~~~~~~~~ > > An interesting feature of discoverd is support for plugins, which I prefer to > call hooks. It's possible to hook into the introspection data processing > chain in 2 places: > * Before any data processing. This opens opportunity to adopt discoverd to > ramdisks that have different data format. The only requirement is that the > ramdisk posts a JSON object. > * After a node is found in Ironic database and ports are created for MAC's, > but before any actual data update. This gives an opportunity to alter, which > properties discoverd is going to update. > > Actually, even the default logic of update Node.properties is > contained in a plugin - see SchedulerHook in > ironic_discoverd/plugins/standard.py > [6]. This plugability opens wide opportunities for integrating with 3rd party > ramdisks and CMDB's (which as we know Ironic is not ;). > > Enrolling > ~~~~~~~~~ > > Some people have found it limiting that the introspection requires power > credentials (IPMI user name and password) to be already set. The recent set > of patches [7] introduces a possibility to request manual power on of the > machine and update IPMI credentials via the ramdisk to the expected values. > Note that support of this feature in the reference ramdisk [3] is not ready > yet. Also note that this scenario is only possible when using discoverd > directly via it's API, not via Ironic API like in [2]. > > Get Involved > ============ > > Discoverd terribly lacks reviews. Out team is very small and > self-approving is not a rare case. I'm even not against fast-tracking > any existing Ironic core to a discoverd core after a couple of > meaningful reviews :) > > And of course patches are welcome, especially plugins for integration with > existing systems doing similar things and CMDB's. Patches are accepted via > usual Gerrit workflow. Ideas are accepted as Launchpad blueprints (we do not > follow the Gerrit spec process right now). > > Finally, please comment on the Ironic spec [2], I'd like to know what you > think. > > References > ========== > > [1] https://pypi.python.org/pypi/ironic-discoverd > [2] https://review.openstack.org/#/c/135605/ > [3] > https://github.com/openstack/diskimage-builder/tree/master/elements/ir > onic-discoverd-ramdisk [4] > https://github.com/agroup/instack-undercloud/ > [5] https://bugs.launchpad.net/ironic-discoverd/+milestone/1.0.0 > [6] > https://github.com/stackforge/ironic-discoverd/blob/master/ironic_disc > overd/plugins/standard.py > [7] > https://blueprints.launchpad.net/ironic-discoverd/+spec/setup-ipmi-cre > dentials > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev