[openstack-dev] [infra][gate][all] Changes to the devstack-gate feature matrix

Sean M. Collins sean at coreitpro.com
Mon Nov 14 14:20:55 UTC 2016

I have been working on a patch to devstack-gate[1], to implement a long
standing TODO, where the feature grid will be used to determine the
MY_ENABLED_SERVICES that are set[2].

Prior to this patch, there was a lot of manipulation being done to 
MY_ENABLED_SERVICES based on environment variables, and a lot of
conditional checks.

If your job configuration uses the OVERRIDE_ENABLED_SERVICES environment
variable, you are not affected. However, you may wish to examine this
patchset, since it is supposed to make things easier to maintain, going

The motivation for this patch is to solve the issue of setting the
services that would run on the primary node and the subnode (when
running Grenade jobs), without creating more logic checks in Bash. For
projects like Neutron[3], there is work that needs to be done to move
some services from the primary node (where they are currently upgraded)
to the subnode, to match how they will most likely be upgraded in a
production environment, where the control plane is upgraded first and
data plane components are upgraded later.

Introducing roles to devstack-gate in the feature matrix allows us to
define roles, and also set the enabled services, based on the role, more
easily. For example, this patch will make the movement of certain Neutron
agents (L3 agent, dhcp, metadata, etc) from the primary node over to
the subnode when running a Grenade test, easier.

Please take a look at the patch, a lot of work was done to ensure that
the emitted services when running test-matrix.py matches the logic that
was originally baked directly into devstack-gate, but more eyes on it is
always nice.

[1]: https://review.openstack.org/386072
[2]: https://review.openstack.org/#/c/386072/16/devstack-vm-gate.sh
[3]: https://etherpad.openstack.org/p/neutron-multinode-jobs-newton

Sean M. Collins

More information about the OpenStack-dev mailing list