[openstack-tc] Straw man to start the incubation / graduation requirements discussion

Sean Dague sean at dague.net
Wed Nov 13 11:41:44 UTC 2013


On 11/13/2013 05:14 AM, Thierry Carrez wrote:
> I have a few remarks (mostly around our enforcement of grenade
> testing, since there is little we can do once the project is
> "integrated"), but I don't want to start a larger discussion on the
> -tc list... Could you repost this to -dev first ?
> 
> (rationale: we must be careful not to have "closed" discussions on the
> -tc list so that the TC is not seen as a kabbale / ivory tower -- so
> the -tc list should be limited to TC meeting organization
> administrativia and posting pointers to other threads of interest to
> TC members)

Sure, absolutely. Reposting on -dev now.

> 
> Thanks,
> 
> Sean Dague wrote:
>> There were a few chats at summit about this, mostly on the infra / 
>> devstack / qa side of the house. Consider the following a straw man
>> to explain the current state of the world, and what I think a
>> starting point for discussion would be. I call out projects by name
>> here, not to make fun of them, but that I think concrete examples
>> bring the point home much more than abstracts (at least for me).
> 
>> This is looking at raising the bar quite a bit along the way.
>> However, as someone that spends a lot of time trying to keep the
>> whole ball of wax holding together, and is spending a lot of time
>> retroactively trying to get projects into our integrated gate (and
>> huge pain to everyone, as their gate commits get bounced by racey
>> projects), I think we really need to up this bar if we want a 20
>> integrated project version of OpenStack to hold together.
> 
>> ===================================================== Proposed new
>> Incubation and Graduation Requirements 
>> =====================================================
> 
> 
>> The Current State of the World ============================== 
>> OpenStack is currently 9 integrated projects in Havana, 10 once we
>> get to Icehouse (+Trove).
> 
>> Heat added tests to our integrated gate during the Havana cycle, 
>> though the deeper guest testing is not part of our gate.
>> Ceilometer has been integrated for 2 releases, and doesn't have
>> integrated gate testing. Trove is just now exploring how they'd get
>> into the gate for Icehouse release.
> 
>> Upgrade testing situation is worse. Only 5 projects currently are
>> part of upgrade testing: Nova, Cinder, Swift, Glance, Keystone. The
>> rest are not set up in that model at all, so we have no
>> infrastructure to ensure the other projects don't break upgrades of
>> themselves.
> 
>> Heat, Trove, and Savana represent an interesting challenge from 
>> current gate models in that real validation requires something
>> beyond a trivial guest, as they care about the contents inside
>> compute resources. This desire is likely to grow with other "Layer
>> 4" projects coming into the OpenStack ecosystem [1].
> 
>> Ironic as an incubated project provides an even different set of 
>> challenges, as not only do we not have a gating approach, but we
>> also really should have an approach to test an upgrade from
>> nova-baremetal => ironic to ensure there is a migration path for
>> people in the future.
> 
>> Ceilometer once relied on a version of MongoDB that worked in the 
>> gate, but they were never gating, so now they rely on a version of 
>> MongoDB that doesn't work in the gate. They made a technical
>> decision to upgrade requirements with no gate feedback because they
>> weren't actually integration testing on a regular basis.
> 
> 
>> Proposed Incubation requirements ================================ 
>> Once something becomes an integrated project, it's important that
>> they are able to run in the gate.
> 
>> Both devstack and devstack-gate now support hooks, so with a couple
>> of days of work any project in stackforge could build a gate job
>> which sets up a devstack of their configuration, including their
>> code, running some project specific test they feel is appropriate
>> to ensure they could run in the gate environment.
> 
>> This would ensure an incubated project works with OpenStack global 
>> requirements, or if it requires something new, that's known very 
>> clearly before incubation.
> 
> 
>> Proposed Graduation requirements ================================ 
>> All integrated projects should be in the integrated gate, as this
>> is the only way we provably know that they can all work together,
>> at the same level of requirements, in a consistent way.
> 
>> During incubation landing appropriate tests in Tempest is fair 
>> game. So the expectation would be that once a project is incubated 
>> they would be able to land tests in tempest. Before integrated
>> we'd need to ensure the project had tests which could take part in
>> the integrated gate, so as soon as a project is voted integrated,
>> it has some working integrated gate tests. (Note: there is actually
>> a symmetric complexity here, to be worked out later).
> 
> 
>> Proposed Stable Release requirements 
>> ==================================== We have this automatic
>> transition that happens when a project that's integrated for a
>> release, actually releases as part of that. I.e. Trove and
>> Icehouse. There is no additional TC decision about whether or not
>> Trove is part of the stable release, once integrated, it just is.
>> Nothing that it does over that cycle will kick it out of the stable
>> release. This is one of the reasons it needs to be in the
>> integrated gate **before** graduation.
> 
>> Additionally, upgrade path is critically important to our users,
>> and the number one piece of feedback we received from the User
>> Survey. It was also important enough to our developers that it was
>> scattered all over the Icehouse Design Summit. All integrated
>> projects should be included in upgrade testing the moment they are
>> in a stable release. (ex: when Icehouse is released, Trove should
>> be in master grenade, and upgrade testing from Icehouse -> master
>> for the J cycle from day one).
> 
> 
> 
>> TL;DR ===== - To get to incubated you must have a devstack-gate
>> job - To get to integrated you must have useful tests in the
>> integrated gate - To get into the stable/release you must have
>> upgrade testing enabled
> 
>> Raised Questions ================ - what about existing incubated
>> projects, what would be their time frame to get with this new
>> program - what about existing integrated projects that currently
>> don't exist with either an upgrade or gate story? - what about an
>> upgrade deprecation path (i.e. nova-network => neutron,
>> nova-baremetal => ironic)
> 
> 
>> 1. 
>> http://hackstack.org/x/blog/2013/09/05/openstack-seven-layer-dip-as-a-service/
> 
> 
> (the layers pattern is useful from a testing requirements model)
> 
> 
> 
> 
>> _______________________________________________ OpenStack-TC
>> mailing list OpenStack-TC at lists.openstack.org 
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-tc
> 
> 
> 
> 
> _______________________________________________
> OpenStack-TC mailing list
> OpenStack-TC at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-tc
> 

-- 
Sean Dague
http://dague.net

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 482 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openstack.org/pipermail/openstack-tc/attachments/20131113/f4cb0fba/attachment-0001.pgp>


More information about the OpenStack-TC mailing list