Refactor Zuul jobs definitions

Change-Id: I7a9add709150f82a24883c94f2bdd62eb537776f
This commit is contained in:
Federico Ressi 2021-07-20 11:49:57 +02:00
parent 6e75cd73c4
commit b949bdccad
8 changed files with 279 additions and 244 deletions

View File

@ -1,11 +1,27 @@
---
- job: &CEPH_BASE
- project-template:
name: devstack-tobiko-ceph
description: |
DevStack jobs intended to gate Tobiko project changes
check:
jobs:
- devstack-tobiko-ceph
periodic:
jobs:
- devstack-tobiko-ceph
- devstack-tobiko-ceph-centos
- devstack-tobiko-ceph-fedora
# --- STANDALONE -------------------------------------------------------------
- job:
name: devstack-tobiko-ceph
parent: devstack-tobiko
abstract: true
required-projects:
- openstack/devstack-plugin-ceph
voting: false
vars:
devstack_plugins:
devstack-plugin-ceph:
@ -18,21 +34,14 @@
ENABLE_FILE_INJECTION: false
ENABLE_VOLUME_MULTIATTACH: false
# --- Gate -------------------------------------------------------------------
- job:
<<: *CEPH_BASE
name: devstack-tobiko-gate-ceph
parent: devstack-tobiko-gate
abstract: false
description: |
Tobiko devstack job used to gate with OVS and Ceph
voting: true
- job:
name: devstack-tobiko-gate-ceph-centos
parent: devstack-tobiko-gate-ceph
name: devstack-tobiko-ceph-centos
parent: devstack-tobiko-ceph
nodeset: devstack-tobiko-centos
voting: false
- job:
name: devstack-tobiko-ceph-fedora
parent: devstack-tobiko-ceph
nodeset: devstack-tobiko-fedora
voting: false

View File

@ -0,0 +1,73 @@
---
- project-template:
name: devstack-tobiko-faults
description: |
DevStack jobs intended to gate OpenStack project changes
check:
jobs:
- devstack-tobiko-faults
periodic:
jobs:
- devstack-tobiko-faults
- devstack-tobiko-faults-centos
- devstack-tobiko-faults-fedora
- devstack-tobiko-ovs-faults
- devstack-tobiko-ovs-faults-centos
- devstack-tobiko-ovs-faults-fedora
# --- DEFAULT ----------------------------------------------------------------
- job:
name: devstack-tobiko-faults
parent: devstack-tobiko-multinode
voting: false
description: |
Base Tobiko devstack job to execute scenario+faults+scenario test cases.
vars: &FAULTS_VARS
test_workflow: faults
irrelevant-files: &FAULTS_IRRELEVANT_FILES
- ^.*\.rst$
- ^doc/
- ^infrared_plugin/
- ^releasenotes/
- ^report/
- ^tobiko/tests/functional/
- ^tobiko/tests/unit/
- job:
name: devstack-tobiko-faults-centos
parent: devstack-tobiko-faults
nodeset: devstack-tobiko-multinode-centos
voting: false
- job:
name: devstack-tobiko-faults-fedora
parent: devstack-tobiko-faults
nodeset: devstack-tobiko-multinode-fedora
voting: false
# --- OVS jobs----------------------------------------------------------------
- job:
name: devstack-tobiko-ovs-faults
parent: devstack-tobiko-ovs
voting: false
description: |
Base Tobiko devstack job to execute scenario+faults+scenario test cases.
vars: *FAULTS_VARS
irrelevant-files: *FAULTS_IRRELEVANT_FILES
- job:
name: devstack-tobiko-ovs-faults-centos
parent: devstack-tobiko-ovs-faults
nodeset: devstack-tobiko-multinode-fedora
voting: false
- job:
name: devstack-tobiko-ovs-faults-fedora
parent: devstack-tobiko-ovs-faults
nodeset: devstack-tobiko-multinode-fedora
voting: false

View File

@ -1,15 +1,31 @@
---
- job: &OCTAVIA_BASE
- project-template:
name: devstack-tobiko-octavia
description: |
DevStack jobs intended to gate Tobiko project changes
check:
jobs:
- devstack-tobiko-octavia
periodic:
jobs:
- devstack-tobiko-octavia
- devstack-tobiko-octavia-centos
- devstack-tobiko-octavia-fedora
# --- STANDALONE -------------------------------------------------------------
- job:
name: devstack-tobiko-octavia
parent: devstack-tobiko
abstract: true
required-projects:
- openstack/diskimage-builder
- openstack/octavia
- openstack/octavia-lib
- openstack/python-barbicanclient
- openstack/tripleo-image-elements
voting: false
vars:
devstack_plugins:
octavia: https://opendev.org/openstack/octavia.git
@ -42,21 +58,14 @@
'/var/log/octavia-tenant-traffic.log': logs
'/var/log/octavia-amphora.log': logs
# --- Gate -------------------------------------------------------------------
- job:
<<: *OCTAVIA_BASE
name: devstack-tobiko-gate-octavia
parent: devstack-tobiko-gate
abstract: false
description: |
Tobiko devstack job used to gate with OVS and Octavia
voting: true
- job:
name: devstack-tobiko-gate-octavia-centos
parent: devstack-tobiko-gate-octavia
name: devstack-tobiko-octavia-centos
parent: devstack-tobiko-octavia
nodeset: devstack-tobiko-centos
voting: false
- job:
name: devstack-tobiko-octavia-fedora
parent: devstack-tobiko-octavia
nodeset: devstack-tobiko-fedora
voting: false

View File

@ -1,12 +1,31 @@
---
- project-template:
name: devstack-tobiko-ovs
description: |
DevStack jobs intended to gate Tobiko project changes
check:
jobs:
- devstack-tobiko-ovs
periodic:
jobs:
- devstack-tobiko-ovs
- devstack-tobiko-ovs-centos
- devstack-tobiko-ovs-fedora
- devstack-tobiko-multinode-ovs
- devstack-tobiko-multinode-ovs-centos
- devstack-tobiko-multinode-ovs-fedora
# --- STANDALONE -------------------------------------------------------------
- job:
name: devstack-tobiko-ovs
parent: devstack-tobiko
abstract: true
description: |
Base Tobiko devstack job to be used with ML2/OVS.
vars: &ovs_base
voting: false
vars: &OVS_VARS
# TODO(fressi): restore name servers list as soon external connectivity
# is fixed
ipv4_dns_nameservers: []
@ -58,21 +77,34 @@
s-object: false
s-proxy: false
tls-proxy: true
devstack_plugins:
neutron: "https://opendev.org/openstack/neutron"
- job:
name: devstack-tobiko-ovs-centos
parent: devstack-tobiko-ovs
nodeset: devstack-tobiko-centos
voting: false
- job:
name: devstack-tobiko-ovs-fedora
parent: devstack-tobiko-ovs
nodeset: devstack-tobiko-fedora
voting: false
# --- MULTINODE --------------------------------------------------------------
- job:
name: devstack-tobiko-multinode-ovs
parent: devstack-tobiko-multinode
abstract: true
description: Base DevStack Tobiko job with multinode.
vars: &ovs_multinode_vars
<<: *ovs_base
voting: false
vars:
<<: *OVS_VARS
extensions_to_txt:
db: true
group-vars: &ovs_multinode_group_vars
group-vars:
subnode:
devstack_services:
c-vol: true
@ -94,40 +126,14 @@
q-ovn-metadata-agent: false
tls-proxy: false
# --- Gate -------------------------------------------------------------------
- job:
name: devstack-tobiko-gate-ovs
parent: devstack-tobiko-gate
description: |
Tobiko devstack job used to gate with OVS
voting: true
vars:
<<: *ovs_base
- job:
name: devstack-tobiko-gate-ovs-centos
parent: devstack-tobiko-gate-ovs
nodeset: devstack-tobiko-centos
voting: false
# --- Faults -----------------------------------------------------------------
- job:
name: devstack-tobiko-faults-ovs
parent: devstack-tobiko-faults
abstract: true
vars:
<<: *ovs_multinode_vars
group-vars:
<<: *ovs_multinode_group_vars
- job:
name: devstack-tobiko-faults-ovs-centos
parent: devstack-tobiko-faults-ovs
name: devstack-tobiko-multinode-ovs-centos
parent: devstack-tobiko-multinode-ovs
nodeset: devstack-tobiko-multinode-centos
voting: false
- job:
name: devstack-tobiko-multinode-ovs-fedora
parent: devstack-tobiko-multinode-ovs
nodeset: devstack-tobiko-multinode-fedora
voting: false

View File

@ -1,9 +1,42 @@
---
- project-template:
name: devstack-tobiko
description: |
DevStack jobs intended to gate Tobiko project changes
check: &CHECK
jobs:
- devstack-tobiko
- devstack-tobiko-multinode
gate: &GATE
jobs:
- devstack-tobiko
periodic: &PERIODIC
jobs:
- devstack-tobiko
- devstack-tobiko-centos
- devstack-tobiko-fedora
- devstack-tobiko-multinode
- devstack-tobiko-multinode-centos
- devstack-tobiko-multinode-fedora
- project-template:
name: devstack-tobiko-gate
description: |
DevStack jobs intended to gate Tobiko project changes
check: *CHECK
gate: *GATE
periodic: *PERIODIC
# --- STANDALONE -------------------------------------------------------------
- job:
name: devstack-tobiko
parent: devstack
abstract: true
nodeset: devstack-tobiko
voting: true
description: |
Base Devstack Tobiko Plugin job.
@ -93,10 +126,10 @@
yml: true
test_log_debug: true
test_case_timeout: 1800
test_workflow: gate
requirements_dir: >-
{{ ansible_user_dir }}/src/opendev.org/openstack/requirements
upper_constraints_file: '{{ requirements_dir }}/upper-constraints.txt'
pre-run: playbooks/devstack/pre.yaml
run: playbooks/devstack/run.yaml
post-run: playbooks/devstack/post.yaml
@ -106,44 +139,27 @@
- ^infrared_plugin/
- ^releasenotes/
- ^report/
- ^tobiko/tests/unit/
- job: &DEVSTACK_TOBIKO_GATE_JOB
name: devstack-tobiko-gate
parent: devstack-tobiko
description: |
Tobiko devstack job for gating Tobiko changes.
nodeset: openstack-single-node-focal
voting: true
vars:
test_workflow: gate
irrelevant-files:
- ^.*\.rst$
- ^doc/
- ^infrared_plugin/
- ^releasenotes/
- ^report/
- job:
name: devstack-tobiko-gate-centos
parent: devstack-tobiko-gate
name: devstack-tobiko-centos
parent: devstack-tobiko
nodeset: devstack-tobiko-centos
voting: false
- job:
name: devstack-tobiko-gate-fedora
parent: devstack-tobiko-gate
name: devstack-tobiko-fedora
parent: devstack-tobiko
nodeset: devstack-tobiko-fedora
voting: false
# --- MULTINODE --------------------------------------------------------------
- job:
name: devstack-tobiko-multinode
parent: devstack-tobiko
abstract: true
nodeset: devstack-tobiko-multinode
voting: false
description: Base DevStack Tobiko job with multinode.
pre-run: playbooks/multinode-setup.yaml
vars:
@ -217,38 +233,14 @@
memory_tracker: false
tls-proxy: false
- job:
<<: *DEVSTACK_TOBIKO_GATE_JOB
name: devstack-tobiko-gate-multinode
name: devstack-tobiko-multinode-centos
parent: devstack-tobiko-multinode
description: |
Tobiko devstack job for gating Tobiko changes.
nodeset: devstack-tobiko-multinode-ubuntu
voting: true
- job:
name: devstack-tobiko-faults
parent: devstack-tobiko-multinode
nodeset: devstack-tobiko-multinode-ubuntu
voting: true
description: |
Base Tobiko devstack job to execute scenario+faults+scenario test cases.
vars:
test_workflow: faults
irrelevant-files:
- ^.*\.rst$
- ^doc/
- ^infrared_plugin/
- ^releasenotes/
- ^report/
- ^tobiko/tests/functional/
- ^tobiko/tests/unit/
- job:
name: devstack-tobiko-faults-centos
parent: devstack-tobiko-faults
nodeset: devstack-tobiko-multinode-centos
voting: false
- job:
name: devstack-tobiko-multinode-fedora
parent: devstack-tobiko-multinode
nodeset: devstack-tobiko-multinode-fedora
voting: false

View File

@ -1,26 +1,65 @@
---
- nodeset:
name: devstack-tobiko
nodes:
- name: controller
label: ubuntu-focal
groups: &STANDALONE_GROUPS
- name: tempest
nodes:
- controller
- nodeset:
name: devstack-tobiko-centos
nodes:
- name: controller
label: centos-8-stream
groups:
- name: tempest
nodes:
- controller
groups: *STANDALONE_GROUPS
- nodeset:
name: devstack-tobiko-fedora
nodes:
- name: controller
label: fedora-32
groups:
groups: *STANDALONE_GROUPS
# --- MULTINODE --------------------------------------------------------------
- nodeset:
name: devstack-tobiko-multinode
nodes:
- name: controller
label: ubuntu-focal
- name: compute1
label: ubuntu-focal
- name: compute2
label: ubuntu-focal
groups: &MULTINODE_GROUPS
# Node where tests are executed and test results collected
- name: tempest
nodes:
- controller
# Nodes running the compute service
- name: compute
nodes:
- compute1
- compute2
# Nodes that are not the controller
- name: subnode
nodes:
- compute1
- compute2
# Switch node for multinode networking setup
- name: switch
nodes:
- controller
# Peer nodes for multinode networking setup
- name: peers
nodes:
- compute1
- compute2
- nodeset:
name: devstack-tobiko-multinode-centos
@ -31,64 +70,15 @@
label: centos-8-stream
- name: compute2
label: centos-8-stream
groups:
# Node where tests are executed and test results collected
- name: tempest
nodes:
- controller
# Nodes running the compute service
- name: compute
nodes:
- compute1
- compute2
# Nodes that are not the controller
- name: subnode
nodes:
- compute1
- compute2
# Switch node for multinode networking setup
- name: switch
nodes:
- controller
# Peer nodes for multinode networking setup
- name: peers
nodes:
- compute1
- compute2
groups: *MULTINODE_GROUPS
- nodeset:
name: devstack-tobiko-multinode-ubuntu
name: devstack-tobiko-multinode-fedora
nodes:
- name: controller
label: ubuntu-focal
label: centos-8-stream
- name: compute1
label: ubuntu-focal
label: centos-8-stream
- name: compute2
label: ubuntu-focal
groups:
# Node where tests are executed and test results collected
- name: tempest
nodes:
- controller
# Nodes running the compute service
- name: compute
nodes:
- compute1
- compute2
# Nodes that are not the controller
- name: subnode
nodes:
- compute1
- compute2
# Switch node for multinode networking setup
- name: switch
nodes:
- controller
# Peer nodes for multinode networking setup
- name: peers
nodes:
- compute1
- compute2
label: centos-8-stream
groups: *MULTINODE_GROUPS

View File

@ -1,35 +0,0 @@
---
- project-template:
name: devstack-tobiko-gate
description: |
DevStack jobs intended to gate Tobiko project changes
check: &gate_check_pipeline
jobs:
- devstack-tobiko-gate
- devstack-tobiko-gate-ceph
- devstack-tobiko-gate-multinode
- devstack-tobiko-gate-octavia
- devstack-tobiko-gate-ovs
gate: *gate_check_pipeline
periodic: *gate_check_pipeline
- project-template:
name: devstack-tobiko-faults
description: |
DevStack jobs intended to gate OpenStack project changes
check: &faults_check_pipeline
jobs:
- devstack-tobiko-faults
- devstack-tobiko-faults-centos
gate:
jobs:
- devstack-tobiko-faults
periodic: *faults_check_pipeline

View File

@ -1,19 +1,10 @@
---
- project:
templates:
- ansible-role-jobs
- devstack-tobiko-gate
- devstack-tobiko
- devstack-tobiko-ceph
- devstack-tobiko-faults
check: &check_pipeline
jobs:
- devstack-tobiko-gate-centos
- devstack-tobiko-gate-fedora
- devstack-tobiko-gate-octavia-centos
- devstack-tobiko-gate-ceph-centos
- devstack-tobiko-gate-ovs-centos
- devstack-tobiko-faults-ovs-centos
periodic: *check_pipeline
- devstack-tobiko-octavia
- devstack-tobiko-ovs