This week we've managed to get through one of the long overdue changes to the test infrastructure, which is making devstack-gate / project-config support and understand devstack's local.conf. Like all big transitions, it did not go quite as smoothly as hoped.
We broke everything using devstack plugins for about 12 hours on Thursday due to a line ending handling issue that wasn't caught during review (but that's all fixed now). There were issues specific to Ironic that took longer to resolve, but I think we're working there now. Given that there aren't a ton of well defined interfaces around this, some jobs might still be broken. Here is a bit of a guide on how to correct those going forward. There can only be one of local.conf / localrc ============================================= One of the things that people seem to have figured out is that under some circumstances if you write both a localrc and a local.conf, they both get used. That is mostly due to a bug, and stops really working the moment local.conf has a [[local|localrc]] section in it. If you are building a localrc file directly in something like a pre-test hook, you'll need to write to a local.conf file instead. An example of such an issue, and the fix, can be seen here on the Heat project - https://review.openstack.org/#/c/437686/1/heat_integrationtests/pre_test_hook.sh Overall it's actually *not* recommended to configure things in pre_test_hook.sh like this, because it's relying on some pass through behavior which isn't a hard contract. It seems to be working for now, but there are some other suggestions. local_conf in project-config ============================ A much requested feature was the ability to set local.conf (including post-config sections) in project-config definitions. There is now a way to do that. :: local_conf: conf: | [[local|localrc]] foo=a [[post-config|$NEUTRON_CONF]] [DEFAULT] global_physnet_mtu = 1400 is an example of what we are trying to enable here. We'll try to get some jobs merged today using it so there will be some more examples that people can work with. devstack plugins ================ DevStack plugins allow you to load and change any settings you want, and run arbitrary python code during the stack.sh run. A lot of what is done in the pre_test_hook.sh by many projects, could rather be done by an additional plugin, which also would let people reproduce those configs for local testing very easily. If you have other issues ======================== If you find your jobs failing, and it looks like it is because the new local.conf did not get generated correctly, please feel free to jump into the #openstack-infra IRC channel and provide links to the jobs and logs in question. We've been trying to debug as we go and figure out situations that weren't anticipated. Thanks to the Ironic and Heat teams to helping with some of those unanticipated ones, and working to help us test solutions. The fixes, like in the Heat case, may require projects to update their testing (and backport that to stable branches). In an ideal world that wouldn't be the case, but the lack of an interface to support local.conf in devstack-gate caused folks to do lots of work arounds using whatever seemed to work to get their job done. Some were more inventive than others. The hope is that with the stable ``local_conf`` stanza in project-config we're going to have something we can support going forward even as infrastructure evolves. -- Sean Dague http://dague.net __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev