Merge "Propose a new goal to migrate all legacy zuul jobs"
This commit is contained in:
109
goals/proposed/native-zuulv3-jobs.rst
Normal file
109
goals/proposed/native-zuulv3-jobs.rst
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
=================================
|
||||||
|
Switch legacy Zuul jobs to native
|
||||||
|
=================================
|
||||||
|
|
||||||
|
As part of the the switch to Zuul v3, all the existing jobs have been
|
||||||
|
automatically converted from their Jenkins counterparts.
|
||||||
|
Unfortunately not all of them have been migrated to fully native
|
||||||
|
Zuul v3 jobs, making their maintainance more complicated.
|
||||||
|
Legacy jobs, created using automated scripts, brings with them
|
||||||
|
a lot of duplicated code. They also rely on obsoleted (zuul-cloner)
|
||||||
|
or difficult to maintain components (devstack-gate) and in general
|
||||||
|
an older job creation logic. All these factors make their
|
||||||
|
maintainence extremely difficult.
|
||||||
|
|
||||||
|
Given the benefits of the usage of native Zuul v3 jobs, it is
|
||||||
|
worth asking why not all the jobs have been converted.
|
||||||
|
There are several reasons. For example, the required functionality
|
||||||
|
for native Tempest tests were not available at the time of the switch.
|
||||||
|
Native Grenade jobs are not yet available,
|
||||||
|
even though some work is in progress.
|
||||||
|
|
||||||
|
Nevertheless, the general status improved significantly in the last year
|
||||||
|
and we can finally move the remaining legacy jobs to the native Zuul v3
|
||||||
|
jobs for all official OpenStack projects.
|
||||||
|
|
||||||
|
Champion
|
||||||
|
========
|
||||||
|
|
||||||
|
Luigi Toscano (tosky)
|
||||||
|
|
||||||
|
Gerrit Topic
|
||||||
|
============
|
||||||
|
|
||||||
|
To facilitate tracking, commits related to this goal should use the
|
||||||
|
gerrit topic::
|
||||||
|
|
||||||
|
native-zuulv3-migration
|
||||||
|
|
||||||
|
Completion Criteria
|
||||||
|
===================
|
||||||
|
|
||||||
|
#. All legacy jobs for official OpenStack projects, if still relevant,
|
||||||
|
should be replaced by native Zuul v3 jobs in the master branch.
|
||||||
|
#. The replacement jobs should be designed in a way which does not
|
||||||
|
prevent their backport to the stable branches.
|
||||||
|
|
||||||
|
Stretch goals
|
||||||
|
=============
|
||||||
|
|
||||||
|
#. If a replaced job is also used in some stable branches, backport it
|
||||||
|
to all supported branches.
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
The main reference for converting legacy Zuul jobs is the `Zuul v3
|
||||||
|
Migration Guide <https://docs.openstack.org/infra/manual/zuulv3.html>`_,
|
||||||
|
part of the `Infrastructure User Manual
|
||||||
|
<https://docs.openstack.org/infra/manual/>`_.
|
||||||
|
|
||||||
|
A complete reference to the Zuul jobs is available as part of the
|
||||||
|
`Zuul User's Guide <https://zuul-ci.org/docs/zuul/user/config.html#job>`_.
|
||||||
|
|
||||||
|
During the Dublin PTG 2018 the QA team provided some updates and
|
||||||
|
examples on the Zuul v3 migrations. The slides are not merged yet
|
||||||
|
in the publications repository but the `work-in-progress patch
|
||||||
|
<https://review.opendev.org/548178>`_ can still be useful.
|
||||||
|
|
||||||
|
Examples of migration:
|
||||||
|
|
||||||
|
- sahara-tests: https://review.opendev.org/512058/
|
||||||
|
and https://review.opendev.org/547669/
|
||||||
|
|
||||||
|
This latter was an early migration and the jobs have evolved
|
||||||
|
a bit since then. Specifically, the second change fixes the
|
||||||
|
multinode support. Together, and taking into account
|
||||||
|
the current version of the affected files, they are a
|
||||||
|
good starting point.
|
||||||
|
|
||||||
|
This porting includes both "straightforward" conversions
|
||||||
|
(inheriting from devstack-tempest)
|
||||||
|
and examples of custom ansible code.
|
||||||
|
|
||||||
|
- python-cinderclient: https://review.opendev.org/672784/
|
||||||
|
A more recent example of a devstack (non-tempest) job.
|
||||||
|
|
||||||
|
Current State / Anticipated Impact
|
||||||
|
==================================
|
||||||
|
|
||||||
|
Jobs which executes devstack alone or combined with common
|
||||||
|
operations like running tempest tests have been ported already or
|
||||||
|
can be ported without many problems.
|
||||||
|
|
||||||
|
Jobs which requires less standard operations (for example, a cycle of
|
||||||
|
reconfiguration/test executions, or custom tests) require additional
|
||||||
|
work.
|
||||||
|
|
||||||
|
Grenade-based jobs are not yet available, but there are `patches in advanced
|
||||||
|
state of development <https://review.opendev.org/#/q/topic:grenade_zuulv3>`_
|
||||||
|
and they should be ready when the Victoria cycle starts.
|
||||||
|
If not, finalizing the effort is considered part of the goal,
|
||||||
|
which can still move forward with all the other non-Grenade conversions.
|
||||||
|
Once they are finalized, porting most Grenade jobs should be trivial.
|
||||||
|
|
||||||
|
While cleaning the legacy jobs from `openstack-zuul-jobs
|
||||||
|
<https://opendev.org/openstack/openstack-zuul-jobs.git>`_ and
|
||||||
|
`project-config <https://opendev.org/openstack/project-config.git>`_
|
||||||
|
is not part of the completion criteria, achieving the stretch goal
|
||||||
|
would reduce the amount of items to track in those repositories.
|
||||||
Reference in New Issue
Block a user