[openstack-dev] [Nova] [Ironic] [Infra] Making Ironic vote as a third-party Nova driver

Joshua Hesketh joshua.hesketh at rackspace.com
Tue Jun 3 05:59:15 UTC 2014


Howdy,

Here is my first pass at allowing different voters for different pipelines.
https://review.openstack.org/#/c/97391/2

Cheers,
Josh

Rackspace Australia

On 5/30/14 3:30 AM, Devananda van der Veen wrote:
> On Wed, May 28, 2014 at 10:54 PM, Joshua Hesketh 
> <joshua.hesketh at rackspace.com <mailto:joshua.hesketh at rackspace.com>> 
> wrote:
>
>     On 5/29/14 8:52 AM, James E. Blair wrote:
>
>         Devananda van der Veen <devananda.vdv at gmail.com
>         <mailto:devananda.vdv at gmail.com>> writes:
>
>             Hi all!
>
>             This is a follow-up to several summit discussions on
>             how-do-we-deprecate-baremetal, a summary of the plan
>             forward, a call to
>             raise awareness of the project's status, and hopefully
>             gain some interest
>             from folks on nova-core to help with spec and code reviews.
>
>             The nova.virt.ironic driver lives in Ironic's git tree
>             today [1]. We're
>             cleaning it up and submitting it to Nova again this cycle.
>             I've posted
>             specs [2] outlining the design and planned upgrade
>             process. Earlier today,
>             we enabled voting in Ironic's check and gate queues for the
>             tempest-dsvm-virtual-ironic job. This runs a tempest
>             scenario test [3]
>             against devstack, exercising Nova with the Ironic driver
>             to PXE boot a
>             virtual machine. It has been running for a few months on
>             Ironic, and has
>             been stable for more than a month. However, because Ironic
>             is not
>             integrated, we also can't vote in check/gate queues on
>             integrated projects
>             (like Nova). We can - and do - report the test result in a
>             non-voting way,
>             though that's easy to miss, since it looks like every
>             other non-voting test.
>
>             At the summit [4], it was suggested that we make this job
>             report as though
>             it were a third-party CI test for a Nova driver. This
>             would be removed at
>             the time that Ironic graduates and the job is allowed to
>             vote in the gate.
>             Until that time, I'm happy to have the nova.virt.ironic
>             driver reporting as
>             a third-party driver (even though it's not) simply to help
>             raise awareness
>             (third-party CI jobs are watched more closely than
>             non-voting jobs) and
>             decrease the likelihood that Nova developers will
>             inadvertently break
>             Ironic's gate.
>
>             Given that there's a concrete plan forward, why am I
>             sending this email to
>             all three teams? A few reasons:
>             - document the plan that we discussed
>             - many people from infra and nova were not present during
>             the discussion
>             and may not be aware of the details
>             - I may have gotten something wrong (it was a long week)
>             - and mostly because I don't technically know how to make
>             an upstream job
>             report as though it's a third-party job, and am hoping
>             someone wants to
>             volunteer to help figure that out
>
>         I think it's a reasonable plan.  To elaborate a bit, I think we
>         identified three categories of jobs that we run:
>
>         a) jobs that are voting
>         b) jobs that are non-voting because they are advisory
>         c) jobs that are non-voting for policy reasons but we feel fairly
>             strongly about
>
>         There's a pretty subtle distinction between b and c.  Ideally,
>         there
>         shouldn't be any.  We've tried to minimize the number of
>         non-voting jobs
>         to make sure that people don't ignore them.  Nonetheless, it
>         seems that
>         a large enough number of people still do that non-voting jobs are
>         considered ineffective in Nova.  I think it's worth noting the
>         potential
>         danger of de-emphasizing the actual results.  It may make other
>         non-voting jobs even less effective than they already are.
>
>         The intent is to make the jobs described by (c) into voting
>         jobs, but in
>         a way that they can still be overridden if need be.  The aim
>         is to help
>         new (eg, incubated) projects join the integrated gate in a way
>         that lets
>         them prove they are sufficiently mature to do so without
>         impacting the
>         currently integrated projects.  I believe we're currently
>         thinking that
>         point is after their integration approval.  If we are
>         comfortable with
>         incubated projects being able to block the integrated gate
>         earlier, we
>         could simply make the non-voting jobs voting instead.
>
>         Back to the proposal at hand.  I think we should call the
>         kinds of jobs
>         described in (c) as "non-binding".
>
>         The best way to do that is to register a second user with
>         Gerrit for
>         Zuul to use, and have it report non-binding jobs with a +/- 1
>         vote in
>         the check queue that is separate from the normal "Jenkins"
>         vote.  In
>         order to do that, we will have to modify Zuul to be able to
>         support a
>         second user, and associate that user with a pipeline.  Then
>         configure a
>         new "non-binding" pipeline to use that user and run the
>         desired jobs.
>
>         Note that a similar problem of curation may occur with the
>         non-binding
>         jobs.  If we run jobs for the incubated projects Foo and Bar,
>         they will
>         share a vote in Gerrit, and Nova developers will have to
>         examine the
>         results of -1 votes; if Bar consistently fails tests, it may
>         need to be
>         made non-voting or removed to avoid obscuring Foo's results.
>
>         I expect the Zuul modification to take an experienced Zuul
>         developer
>         about 2-3 days to write, or an inexperienced one about a week.
>          If no
>         one else has started it by then, I will probably have some
>         time around
>         the middle of the cycle to hack on it.  In the mean time, we
>         may want to
>         make sure that the number of non-voting jobs is at a minimum (and
>         further reduce them if possible), and emphasize to reviewers the
>         importance of checking posted results.
>
>
>     I like this plan. I can make a start on implementing this :-)
>
>     Cheers,
>     Josh
>
>
> Fantastic! Please don't hesitate to poke me (or anyone in 
> #openstack-ironic) with questions, if you have any.
>
> -Devananda
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140603/131e6983/attachment.html>


More information about the OpenStack-dev mailing list