From 8743f24c4b2004e558d804bab436b79e13d5117a Mon Sep 17 00:00:00 2001 From: Jakob Meng Date: Wed, 13 Jul 2022 12:13:19 +0200 Subject: [PATCH] Refactored TripleO jobs Added a note that we do not have to build the RPM of the Ansible OpenStack collection from source because TripleO Quickstart installs the collection from job.required-projects [1]. The latter shadows the RPM release which is installed later by TripleO because it has a higher precedence in ansible.cfg [2][3]. Changed the job hierarchy to base jobs tripleo-ci-centos-8-\ standalone-build and tripleo-ci-centos-9-standalone-build. This reduces the number of variables we have to define. In particular, variables containers_base_image, build_container_images and featureset will be inherited from parent jobs. The CentOS9 jobs are no longer based on the CentOS8 job which prevents issues with job variant collections due to our branched repository. Added more Ansible modules to files which trigger TripleO jobs, because Ansible role os_tempest [4] requires those modules and is called in TripleO jobs. Modules which have been added include: * openstack.cloud.compute_flavor * openstack.cloud.image * openstack.cloud.network * openstack.cloud.router * openstack.cloud.subnet Dropped tripleo-ci-centos-9-standalone-osa from check jobs because the master branch of TripleO C9 will have the OpenStack SDK 1.x.x release series only which requires the master branch of the Ansible OpenStack collection. The only RDO branches with openstacksdk <0.99.0 which will be maintained longterm are C8 Train, C8 Wallaby and C9 Wallaby. Dropped TripleO job based on C8 Train from check and periodic and moved it to experimental. It is unlikely that C8 Train will receive updates for Ansible OpenStack collection. [1] https://opendev.org/openstack/tripleo-quickstart/src/commit/cb1595223b09c991c3e8451c6d1b332a78f65a94/quickstart.sh#L123 [2] https://opendev.org/openstack/tripleo-quickstart/src/commit/cb1595223b09c991c3e8451c6d1b332a78f65a94/ansible.cfg#L19 [3] https://opendev.org/openstack/tripleo-quickstart/src/commit/cb1595223b09c991c3e8451c6d1b332a78f65a94/quickstart.sh#L595 [4] https://opendev.org/openstack/openstack-ansible-os_tempest.git Change-Id: Ibde318678a3e44fdc297a6f29761eb0c7d77cbc9 (cherry picked from commit fc2dda1d8682e30f445e93052a364e7087d30c25) --- .zuul.yaml | 91 ++++++++++++++++++++++++++---------------------------- 1 file changed, 43 insertions(+), 48 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 6869f2c2..d330eb7a 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -405,78 +405,83 @@ # TripleO jobs - job: - name: tripleo-ci-centos-8-standalone-osa - parent: tripleo-ci-base-standalone-centos-8 - vars: - featureset: '052' + name: tripleo-ci-centos-8-standalone-osa-pre-zed + parent: tripleo-ci-centos-8-standalone-build + # Do not restrict branches in base jobs because else Zuul would not find a matching + # parent job variant during job freeze when child jobs are on other branches. + vars: &tripleo_vars consumer_job: false - build_container_images: true + # Define branch_override in child jobs, e.g. branch_override: stable/yoga force_non_periodic: true - required-projects: - - openstack/ansible-collections-openstack + required-projects: &tripleo_required_projects + - # Required for TripleO Quickstart to install current patchset of the collection + # Ref.: https://opendev.org/openstack/tripleo-quickstart/src/commit/b48d869e14de40444d69a107a0b718b5f721e912/quickstart.sh#L123 + openstack/ansible-collections-openstack - # always use master branch when collecting parent job variants, refer to git blame for rationale. name: openstack/tripleo-ci override-checkout: master - irrelevant-files: &irr_files + irrelevant-files: &tripleo_irrelevant_files - .*molecule.* - ^.*\.md$ - ^.*\.rst$ - - ^docs/.*$ - - ^contrib/.*$ - ^changelogs/.*$ + - ^contrib/.*$ + - ^docs/.*$ - ^meta/.*$ - - ^tests/.*$ - - ^tools/.*$ - ^requirements.*$ - ^setup.*$ + - ^tests/.*$ + - ^tools/.*$ - tox.ini # Run only on files used in TripleO - files: &ooo_files + files: &tripleo_files + - ^.zuul.yaml$ + - ^plugins/module_utils/openstack.*$ - ^plugins/modules/catalog_service.*$ + - ^plugins/modules/compute_flavor.*$ - ^plugins/modules/endpoint.*$ - ^plugins/modules/identity_domain.*$ - ^plugins/modules/identity_domain_info.*$ - ^plugins/modules/identity_role.*$ - ^plugins/modules/identity_user.*$ + - ^plugins/modules/image.*$ - ^plugins/modules/keypair.*$ + - ^plugins/modules/network.*$ - ^plugins/modules/project.*$ - ^plugins/modules/role_assignment.*$ + - ^plugins/modules/router.*$ - ^plugins/modules/stack.*$ - - ^plugins/module_utils/openstack.*$ + - ^plugins/modules/subnet.*$ - job: - name: tripleo-ci-centos-9-standalone-osa - parent: tripleo-ci-centos-8-standalone-osa - nodeset: single-centos-9-node - branches: ^(stable/1.0.0|master).*$ - override-checkout: master - vars: - containers_base_image: quay.io/centos/centos:stream9 - consumer_job: false - build_container_images: true - branch_override: master - files: *ooo_files - irrelevant-files: *irr_files + name: tripleo-ci-centos-9-standalone-osa-pre-zed + parent: tripleo-ci-centos-9-standalone-build + # Do not restrict branches in base jobs because else Zuul would not find a matching + # parent job variant during job freeze when child jobs are on other branches. + vars: *tripleo_vars + required-projects: *tripleo_required_projects + irrelevant-files: *tripleo_irrelevant_files + files: *tripleo_files - job: - name: tripleo-ci-centos-8-standalone-train-osa - parent: tripleo-ci-centos-8-standalone-osa + name: tripleo-ci-centos-8-standalone-osa-train + parent: tripleo-ci-centos-8-standalone-osa-pre-zed branches: stable/1.0.0 override-checkout: stable/train vars: branch_override: stable/train - job: - name: tripleo-ci-centos-8-standalone-wallaby-osa - parent: tripleo-ci-centos-8-standalone-osa + name: tripleo-ci-centos-8-standalone-osa-wallaby + parent: tripleo-ci-centos-8-standalone-osa-pre-zed branches: stable/1.0.0 override-checkout: stable/wallaby vars: branch_override: stable/wallaby - job: - name: tripleo-ci-centos-9-standalone-wallaby-osa - parent: tripleo-ci-centos-9-standalone-osa + name: tripleo-ci-centos-9-standalone-osa-wallaby + parent: tripleo-ci-centos-9-standalone-osa-pre-zed branches: stable/1.0.0 override-checkout: stable/wallaby vars: @@ -539,18 +544,9 @@ dependencies: *deps_unit_lint irrelevant-files: *ignore_files - - tripleo-ci-centos-8-standalone-wallaby-osa: + - tripleo-ci-centos-8-standalone-osa-wallaby: dependencies: *deps_unit_lint - - - tripleo-ci-centos-8-standalone-train-osa: - voting: false - dependencies: *deps_unit_lint - - - tripleo-ci-centos-9-standalone-osa: - voting: false - dependencies: *deps_unit_lint - - - tripleo-ci-centos-9-standalone-wallaby-osa: + - tripleo-ci-centos-9-standalone-osa-wallaby: voting: false dependencies: *deps_unit_lint @@ -565,7 +561,7 @@ - ansible-collections-openstack-functional-devstack-xena-ansible-2.12 - ansible-collections-openstack-functional-devstack-train-ansible-2.11 - ansible-collections-openstack-functional-devstack-octavia - - tripleo-ci-centos-8-standalone-wallaby-osa + - tripleo-ci-centos-8-standalone-osa-wallaby periodic: jobs: @@ -582,13 +578,12 @@ - bifrost-collections-src - bifrost-keystone-collections-src - ansible-collections-openstack-functional-devstack-octavia - - tripleo-ci-centos-9-standalone-wallaby-osa - - tripleo-ci-centos-9-standalone-osa - - tripleo-ci-centos-8-standalone-train-osa - - tripleo-ci-centos-8-standalone-wallaby-osa + - tripleo-ci-centos-9-standalone-osa-wallaby + - tripleo-ci-centos-8-standalone-osa-wallaby experimental: jobs: + - tripleo-ci-centos-8-standalone-osa-train - ansible-collections-openstack-functional-devstack-ansible-2.11 - ansible-collections-openstack-functional-devstack-victoria-ansible-2.12 - ansible-collections-openstack-functional-devstack-ussuri-ansible-2.11