[OpenStack-Infra] Switching test jobs to Xenial and the Trusty, Xenial split

Paul Belanger pabelanger at redhat.com
Wed Jun 29 17:56:10 UTC 2016


On Tue, Jun 28, 2016 at 01:23:25PM -0700, Clark Boylan wrote:
> It is an even year again which means there is a new Ubuntu LTS release
> out (Xenial). We currently have Xenial  images building and uploaded and
> the Openstack Ansible and Openstack Puppet groups are both taking
> advantage of them. Our "base" set of devstack jobs also seem happy on
> Xenial as well (see the experimental results on
> https://review.openstack.org/#/c/330835/1). All this to say I think we
> are ready to do the big switch and get everyone running on Xenial by
> default.
> 
> The tough part of this switch is that we will want to continue running
> stable/liberty and stable/mitaka jobs on Trusty and restrict Xenial to
> master (Newton) and future branches. Now if we want
> gate-tempest-dsvm-full to run on Trusty nodes for stable branches and
> Xenial for master we need some way of signaling that between gearman
> client and workers. I think we have two options for doing this (but
> really hope I am overlooking something because I am not super happy with
> these options).
> 
> The first is we can do what we did for the Precise/Trusty split. We used
> zuul parameter functions to set the node type based on the branch the
> build was for. This meant by default everything on old stable went to
> precise and everything on newer branches went to Trusty. If you wanted
> to do anything else like run on CentOS or Fedora then you had to have an
> explicit override in that parameter function. You can see what that
> looks like in the change that removed it,
> https://review.openstack.org/#/c/260214/.
> 
> The big downside to this option is it created confusion for people not
> realizing they need explicit override to break out of the default
> Precise/Trusty or Trusty/Xenial split. The upside to this is we can
> define each job once and for many jobs/projects/individuals they never
> have to think about where the job will run, it is handled for them
> properly.
> 
> The other option is we can explicitly tie every job to a specific node
> type. This means gate-tempest-dsvm-full becomes
> gate-tempest-dsvm-full-trusty and gate-tempest-dsvm-full-xenial (or
> similar). Then in the zuul layout we default to running old stable
> against any job ending in -trusty and run master against any job ending
> in -xenial. I have mocked this up in
> https://review.openstack.org/335166.
> 
Just to follow up on list, I like this approach, we do it for ansible / puppet
jobs today.  I would like to use gate-tempest-dsvm-full-ubuntu-xenial and
gate-tempest-dsvm-full-ubuntu-trusty as it is more inline with existing job name
formats currently.  It also lets us do gate-tempest-dsvm-full-centos-7 and
gate-tempest-dsvm-full-debian-jessie if needed.

> The downside here is we double our total number of jobs (though we do
> not double the number of gearman job registrations since gearman will
> register a job per node type regardless of option used). It is also much
> more explicit and will likely require a greater understanding of our job
> configs to edit them (this isn't all bad, where things used to mostly
> work before by magic they will now work by explicit design).
> 
> I would like to start transitioning jobs to Xenial soon so feedback on
> this is appreciated. Also if you can come up with better options I would
> love to hear about them as I am not entirely happy about the options
> above.
> 
> Thank you,
> Clark
> 
> _______________________________________________
> OpenStack-Infra mailing list
> OpenStack-Infra at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra



More information about the OpenStack-Infra mailing list