[openstack-dev] [openstack-tc] Splitting the Baremetal driver out of Nova

Chuck Short chuck.short at canonical.com
Fri Apr 26 18:36:40 UTC 2013


Hi

On 13-04-26 02:24 PM, Morgan Fainberg wrote:
> I agree with Russell's timeline.  Once Ironic is integrated, there 
> really isn't a need to maintain duplicate code paths (if the feature 
> parity is there).  If it's a vast departure/rearchitecture (which it 
> doesn't look like this will be) such as the split for openstack 
> networking from Nova-Network, the staged / dual system support is 
> required.
>
> +1 from me as well on the split.

I think that if you follow the way cinder did it I think that would work.
>
> It should also be made clear that this is a revisit of the approach 
> because it "doesn't fit in nova" as well as it really stands on it's 
> own as a project in light of the concerns that this process could be 
> used to fast-track projects.
>
>
> On Fri, Apr 26, 2013 at 8:56 AM, Russell Bryant <rbryant at redhat.com 
> <mailto:rbryant at redhat.com>> wrote:
>
>     On 04/26/2013 10:26 AM, Monty Taylor wrote:
>     >
>     >
>     > On 04/26/2013 09:56 AM, Russell Bryant wrote:
>     >> On 04/26/2013 06:29 AM, Mark McLoughlin wrote:
>     >>> Hey
>     >>>
>     >>> On Thu, 2013-04-25 at 11:57 -0700, Devananda van der Veen wrote:
>     >>>> In the Nova "Baremetal Next Steps" design session last
>     Thursday, I proposed
>     >>>> that we split the baremetal driver out into its own top-level
>     project -
>     >>>> this was met with support from everyone in the room. We then
>     discussed the
>     >>>> project's plans and how such a split should be done. I have
>     written up that
>     >>>> proposal in more detail here, and would like to bring this
>     before the TC.
>     >>>>
>     >>>> https://wiki.openstack.org/wiki/BaremetalSplitRationale
>     >>>
>     >>> I'm all for the code being in a separate project - I think
>     this thing
>     >>> could have users outside of Nova.
>     >>>
>     >>> I did work up an idea for how it could be done during Folsom
>     >>> development, but I actually was thinking of it just being a
>     library:
>     >>>
>     >>> https://gist.github.com/markmc/5466295
>     >>>
>     >>> Not much detail there, but BareMetalConnection/BareMetalNode
>     would be in
>     >>> the library and BareMetalDriver would be the Nova part. I
>     hadn't figured
>     >>> on this being a service with its own REST API, but perhaps
>     that does
>     >>> make sense.
>     >>
>     >> I'm +1 on splitting it out.  I wasn't too sure about library
>     vs. service
>     >> with an API because I'm not hugely familiar with this code,
>     anyway.  I
>     >> think Devananda did a nice job documenting the rationale,
>     though.  I
>     >> think this bullet from the doc helps push me toward the idea of
>     a service:
>     >>
>     >>     Operational teams often perform tasks on hardware which do not
>     >>     apply to virtual machines (eg., discovery, HW RAID
>     configuration,
>     >>     firmware updates, burn-in). These could be added as Nova API
>     >>     extensions, but again, it seems like the wrong approach.
>     Instead,
>     >>     a separate API could manage hardware before exposing via
>     the Nova
>     >>     API. For example, after being discovered, configured,
>     updated, and
>     >>     burned in by Ironic, it could then be enrolled with Nova and
>     >>     provisioned as any other cloud instance (eg, via "nova boot").
>     >>
>     >> It seems that a separate API makes sense here to avoid making
>     awkward
>     >> extensions to the compute API.
>     >>
>     >>> However, that does make me wonder whether we'd see desire to plug
>     >>> alternative baremetal provisioning technologies into that API,
>     in the
>     >>> same way we see a desire for alternative backends to the Swift
>     API.
>     >>
>     >> Would that be a problem?  Actually, is that different from how
>     it works
>     >> already?
>     >>
>     >>     cfg.StrOpt('driver',
>     >>  default='nova.virt.baremetal.pxe.PXE',
>     >>                help='Baremetal driver back-end (pxe or tilera)'),
>     >>     cfg.StrOpt('power_manager',
>     >>  default='nova.virt.baremetal.ipmi.IPMI',
>     >>                help='Baremetal power management method'),
>     >>
>     >>> Finally, making this a service (with a yet undefined API)
>     rather than a
>     >>> library makes me think the new project should go through an
>     incubation
>     >>> period, rather than bypassing incubation the way Cinder did.
>     >>
>     >> I agree here.
>     >>
>     >> I'm actually generally concerned with the fast-track approach.
>      I do not
>     >> think it is the case here, but it could be abused in the future
>     as an
>     >> alternative, perhaps easier method to getting a project to be
>     >> integrated.  I have actually heard this exact strategy mentioned in
>     >> conversation (growing something in a project and then splitting
>     it off,
>     >> because it seems as if it will be easier that way).
>     >
>     > Good point.
>     >
>     > As it pertains to incubated splits and the deprecation of the
>     feature in
>     > the original project - what do we think the cutover should be?
>     If, for
>     > instance, we moved forward with Ironic as an incubated project,
>     and then
>     > accepted into integrated for "I" - since there had already been the
>     > Havana cycle with the external project and the incubated
>     project, do we
>     > pull the code from nova in I? Or do we wait until J?
>
>     If there is a sufficiently documented migration path, I think pulling
>     baremetal out of Nova in the same release Ironic becomes integrated
>     would be acceptable (so, theoretically I in this case).
>
>     --
>     Russell Bryant
>
>     _______________________________________________
>     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