Spec for testing Newton on Xenial transition
This spec covers the details involved in transitioning our default test platform to Ubuntu Xenial during the Newton release cycle. Change-Id: I8e85eb64ede5fa7836b294177f870844d9c53ac4
This commit is contained in:
parent
571b46eefd
commit
9ec9061ab5
|
@ -18,12 +18,13 @@ infrastructure developers.
|
||||||
specs/nodepool-zookeeper-workers
|
specs/nodepool-zookeeper-workers
|
||||||
specs/task-tracker
|
specs/task-tracker
|
||||||
specs/zuulv3
|
specs/zuulv3
|
||||||
|
specs/newton-on-xenial
|
||||||
|
|
||||||
Gerrit query for all changes related to priority efforts::
|
Gerrit query for all changes related to priority efforts::
|
||||||
|
|
||||||
status:open AND (topic:puppet-apply OR topic:infra-cloud OR topic:downstream-puppet OR topic:nodepool-zk OR topic:storyboard-migration OR branch:feature/zuulv3)
|
status:open AND (topic:puppet-apply OR topic:infra-cloud OR topic:downstream-puppet OR topic:nodepool-zk OR topic:storyboard-migration OR branch:feature/zuulv3 OR topic:newton-xenial)
|
||||||
|
|
||||||
https://review.openstack.org/#/q/status:open+AND+%28topic:puppet-apply+OR+topic:infra-cloud+OR+topic:downstream-puppet+OR+topic:nodepool-zk+OR+topic:storyboard-migration+OR+branch:feature/zuulv3%29,n,z
|
https://review.openstack.org/#/q/status:open+AND+%28topic:puppet-apply+OR+topic:infra-cloud+OR+topic:downstream-puppet+OR+topic:nodepool-zk+OR+topic:storyboard-migration+OR+branch:feature/zuulv3+OR+topic:newton-xenial%29,n,z
|
||||||
|
|
||||||
Approved Design Specifications
|
Approved Design Specifications
|
||||||
==============================
|
==============================
|
||||||
|
|
|
@ -0,0 +1,156 @@
|
||||||
|
::
|
||||||
|
|
||||||
|
Copyright 2016 OpenStack Foundation
|
||||||
|
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0
|
||||||
|
Unported License.
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
..
|
||||||
|
This template should be in ReSTructured text. Please do not delete
|
||||||
|
any of the sections in this template. If you have nothing to say
|
||||||
|
for a whole section, just write: "None". For help with syntax, see
|
||||||
|
http://sphinx-doc.org/rest.html To test out your formatting, see
|
||||||
|
http://www.tele3.cz/jbar/rest/rest.html
|
||||||
|
|
||||||
|
========================
|
||||||
|
Newton testing on Xenial
|
||||||
|
========================
|
||||||
|
|
||||||
|
Include the URL of your StoryBoard story:
|
||||||
|
|
||||||
|
https://storyboard.openstack.org/#!/story/2000668
|
||||||
|
|
||||||
|
A new Ubuntu LTS release has happened and in order to keep up with the
|
||||||
|
TC's assertion that we support latest Ubuntu LTS and RHEL release we
|
||||||
|
need to shift our testing onto this new release. General plan is move the
|
||||||
|
default test image type from Ubuntu Trusty to Ubuntu Xenial for all testing
|
||||||
|
on branches >= Newton (currently Newton is called master).
|
||||||
|
|
||||||
|
Problem Description
|
||||||
|
===================
|
||||||
|
|
||||||
|
This poses a couple of issues. First we need a way to have Zuul instruct
|
||||||
|
Zuul launchers on using the appropriate image type for jobs based on the
|
||||||
|
branch. Second we need to do this in a way that avoids exploding the total
|
||||||
|
number of Gearman function registrations as there are scaling limits there.
|
||||||
|
|
||||||
|
Proposed Change
|
||||||
|
===============
|
||||||
|
|
||||||
|
Using JJB create jobs that are image type unique. This means instead of
|
||||||
|
having::
|
||||||
|
|
||||||
|
gate-tempest-dsvm-full
|
||||||
|
|
||||||
|
we will have::
|
||||||
|
|
||||||
|
gate-tempest-dsvm-full-ubuntu-trusty
|
||||||
|
gate-tempest-dsvm-full-ubuntu-xenial
|
||||||
|
|
||||||
|
We can build these jobs from the same JJB job template ensuring the actual
|
||||||
|
content of the jobs is shared.
|
||||||
|
|
||||||
|
Going this route and using a default Zuul Launcher or Jenkins with Gearman
|
||||||
|
plugin will result in the following job registrations::
|
||||||
|
|
||||||
|
gate-tempest-dsvm-full-ubuntu-trusty
|
||||||
|
gate-tempest-dsvm-full-ubuntu-trusty:ubuntu-trusty
|
||||||
|
gate-tempest-dsvm-full-ubuntu-xenial
|
||||||
|
gate-tempest-dsvm-full-ubuntu-xenial:ubuntu-xenial
|
||||||
|
|
||||||
|
which is problematic because it will double our total number of Gearman
|
||||||
|
function registrations on an already stressed system. We can address that
|
||||||
|
by updating Zuul Launcher to optionally drop the label specific function
|
||||||
|
registrations. This has been implemented in
|
||||||
|
https://review.openstack.org/#/c/336311/
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
An alternative solution would be to do what we did during the Precise to
|
||||||
|
Trusty transition. During that transition we used Zuul parameter functions
|
||||||
|
to introspect the branch under test then set the ZUUL_NODE parameter to
|
||||||
|
choose the correct test node type. The problem with this method was that
|
||||||
|
it hid away a lot of the node selection logic in the parameter function
|
||||||
|
where people did not expect to find it. On top of that any test not wanting
|
||||||
|
to use this default split (eg anything wanting to use centos) needed an
|
||||||
|
explicit override in that parameter function.
|
||||||
|
|
||||||
|
General consensus seems to be that we should try something different even
|
||||||
|
if we know there are other deficiencies with the other options as this
|
||||||
|
particular option was painful.
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
clarkb
|
||||||
|
|
||||||
|
Gerrit Topic
|
||||||
|
------------
|
||||||
|
|
||||||
|
Use Gerrit topic "newton-xenial" for all patches related to this spec.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
git-review -t newton-xenial
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
Update Zuul Launcher code to optionally prevent label registrations.
|
||||||
|
Update Zuul Launcher installs and config to prevent label registrations.
|
||||||
|
Notify dev mailing list of switch.
|
||||||
|
Convert groups of jobs over to being run in a split setup. Likely we
|
||||||
|
will want to do this with a common set at a time. pep8, docs, unittests,
|
||||||
|
functional tests, tempest/integration tests. We can perform tests of
|
||||||
|
these jobs ahead of time as well to ensure that things work well.
|
||||||
|
|
||||||
|
Repositories
|
||||||
|
------------
|
||||||
|
|
||||||
|
No new repos required.
|
||||||
|
|
||||||
|
Servers
|
||||||
|
-------
|
||||||
|
|
||||||
|
This will make use of the existing ubuntu-xenial test images and instances.
|
||||||
|
We will also be taking advantage of the Xenial Ubuntu apt mirror and the
|
||||||
|
Xenial wheel mirror.
|
||||||
|
|
||||||
|
DNS Entries
|
||||||
|
-----------
|
||||||
|
|
||||||
|
No new DNS entries.
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The biggest impact here should just be in notifying the developers of the
|
||||||
|
switch. If we do this switchover like we have done it in the past it will
|
||||||
|
happen in a controlled manner after we have tested that things generally
|
||||||
|
work. It is possible that we will run into another major bug like the
|
||||||
|
Trusty python34 garbage collection bug so we should notify people that
|
||||||
|
this change is happening.
|
||||||
|
|
||||||
|
Security
|
||||||
|
--------
|
||||||
|
|
||||||
|
No new security issues as this only affects single use test instances that
|
||||||
|
already hand out root.
|
||||||
|
|
||||||
|
Testing
|
||||||
|
-------
|
||||||
|
|
||||||
|
For previous distro release transitions we have held test instances
|
||||||
|
and run unittests and integration tests on them to ensure that the new
|
||||||
|
platform works as expected.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
- Just the new Zuul Launcher config being merged and deployed.
|
Loading…
Reference in New Issue