[openstack-dev] [Ironic] ironic-discoverd status update
Dmitry Tantsur
dtantsur at redhat.com
Fri Jan 9 10:11:05 UTC 2015
On 01/09/2015 08:43 AM, Jerry Xinyu Zhao wrote:
> tuskar-ui is supposed to enroll nodes into ironic.
Right. And it has support for discoverd IIRC.
>
> On Thu, Jan 8, 2015 at 4:36 AM, Zhou, Zhenzan <zhenzan.zhou at intel.com
> <mailto:zhenzan.zhou at intel.com>> wrote:
>
> Sounds like we could add something new to automate the enrollment of
> new nodes:-)
> Collecting IPMI info into a csv file is still a trivial job...
>
> BR
> Zhou Zhenzan
>
> -----Original Message-----
> From: Dmitry Tantsur [mailto:dtantsur at redhat.com
> <mailto:dtantsur at redhat.com>]
> Sent: Thursday, January 8, 2015 5:19 PM
> To: openstack-dev at lists.openstack.org
> <mailto:openstack-dev at lists.openstack.org>
> Subject: Re: [openstack-dev] [Ironic] ironic-discoverd status update
>
> On 01/08/2015 06:48 AM, Kumar, Om (Cloud OS R&D) wrote:
> > 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.
> 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).
>
> 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.
>
> >
> > 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.
> that's what discoverd does currently.
>
> >
> > -Om
> >
> > -----Original Message-----
> > From: Dmitry Tantsur [mailto:dtantsur at redhat.com
> <mailto:dtantsur at redhat.com>]
> > Sent: 07 January 2015 20:20
> > To: openstack-dev at lists.openstack.org
> <mailto:openstack-dev at lists.openstack.org>
> > Subject: Re: [openstack-dev] [Ironic] ironic-discoverd status update
> >
> > On 01/07/2015 03:44 PM, Matt Keenan wrote:
> >> On 01/07/15 14:24, Kumar, Om (Cloud OS R&D) wrote:
> >>> If it's a separate project, can it be extended to perform out
> of band
> >>> discovery too..? That way there will be a single service to perform
> >>> in-band as well as out of band discoveries.. May be it could follow
> >>> driver framework for discovering nodes, where one driver could be
> >>> native (in-band) and other could be iLO specific etc...
> >>>
> >>
> >> I believe the following spec outlines plans for out-of-band
> discovery:
> >> https://review.openstack.org/#/c/100951/
> > Right, so Ironic will have drivers, one of which (I hope) will be
> a driver for discoverd.
> >
> >>
> >> No idea what the progress is with regard to implementation
> within the
> >> Kilo cycle though.
> > For now we hope to get it merged in K.
> >
> >>
> >> cheers
> >>
> >> Matt
> >>
> >>> Just a thought.
> >>>
> >>> -Om
> >>>
> >>> -----Original Message-----
> >>> From: Dmitry Tantsur [mailto:dtantsur at redhat.com
> <mailto:dtantsur at redhat.com>]
> >>> Sent: 07 January 2015 14:34
> >>> To: openstack-dev at lists.openstack.org
> <mailto:openstack-dev at lists.openstack.org>
> >>> Subject: Re: [openstack-dev] [Ironic] ironic-discoverd status
> update
> >>>
> >>> On 01/07/2015 09:58 AM, Zhou, Zhenzan wrote:
> >>>> 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?
> >>> Well, the decision on the summit was that it's better to keep it
> >>> separate. Please see https://review.openstack.org/#/c/135605/ for
> >>> details on future interaction between discoverd and Ironic.
> >>>
> >>>> Just a thought, thanks.
> >>>>
> >>>> BR
> >>>> Zhou Zhenzan
> >>>>
> >>>> -----Original Message-----
> >>>> From: Dmitry Tantsur [mailto:dtantsur at redhat.com
> <mailto:dtantsur at redhat.com>]
> >>>> Sent: Monday, January 5, 2015 4:49 PM
> >>>> To: openstack-dev at lists.openstack.org
> <mailto:openstack-dev at 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:dtantsur at redhat.com
> <mailto:dtantsur at 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
> >>>>> /i
> >>>>> r
> >>>>> 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_d
> >>>>> is
> >>>>> c
> >>>>> overd/plugins/standard.py
> >>>>> [7]
> >>>>>
> https://blueprints.launchpad.net/ironic-discoverd/+spec/setup-ipmi-
> >>>>> cr
> >>>>> e
> >>>>> dentials
> >>>>>
> >>>>> _______________________________________________
> >>>>> OpenStack-dev mailing list
> >>>>> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> >>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>>>>
> >>>>> _______________________________________________
> >>>>> OpenStack-dev mailing list
> >>>>> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> >>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>>>>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> OpenStack-dev mailing list
> >>>> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> >>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>>>
> >>>> _______________________________________________
> >>>> OpenStack-dev mailing list
> >>>> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> >>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>>>
> >>>
> >>>
> >>> _______________________________________________
> >>> OpenStack-dev mailing list
> >>> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> >>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>>
> >>> _______________________________________________
> >>> OpenStack-dev mailing list
> >>> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> >>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>>
> >>
> >>
> >> _______________________________________________
> >> OpenStack-dev mailing list
> >> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
> >
> > _______________________________________________
> > OpenStack-dev mailing list
> > OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
> > _______________________________________________
> > OpenStack-dev mailing list
> > OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
More information about the OpenStack-dev
mailing list