From 5c087f54cff9a7c7fd3d5a6fd3ce622ee415f694 Mon Sep 17 00:00:00 2001 From: Michal Nasiadka Date: Mon, 15 Sep 2025 14:29:39 +0200 Subject: CI: Reorganise scenarios into project templates This patch moves into using project templates, which is easier to organise. base_distro and upgrade variables are derived from base.yaml and respective job name - so don't need to be specified in each job anymore. All jobs will now also have an OS release specified, so it's easier to add different OS release jobs (e.g. when backporting new release support to stable branch). Change-Id: I1f08f9b9064d9f7e95b07944db0e7ebac3120c57 Signed-off-by: Michal Nasiadka --- zuul.d/base.yaml | 374 ++----------------------------------------------------- 1 file changed, 9 insertions(+), 365 deletions(-) (limited to 'zuul.d/base.yaml') diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml index 8bc43be5b..4d9d263dd 100644 --- a/zuul.d/base.yaml +++ b/zuul.d/base.yaml @@ -6,7 +6,8 @@ # Test latest ansible-core version on Ubuntu, minimum supported on others. # Use SLURP version (two releases back) on SLURP upgrades. ansible_core_version_constraint: >- - {{ ansible_core_version_slurp if is_slurp else ansible_core_version_min if is_upgrade or ansible_facts.distribution != "Ubuntu" else ansible_core_version_max }} + {{ ansible_core_version_slurp if is_slurp else ansible_core_version_min if + (is_upgrade or ansible_facts.distribution != "Ubuntu") else ansible_core_version_max }} ansible_core_version_slurp: "==2.16.*" ansible_core_version_max: "==2.18.*" ansible_core_version_min: "==2.17.*" @@ -14,21 +15,23 @@ api_interface_name: "vxlan-0" api_network_prefix: "192.0.2." api_network_prefix_length: "24" + base_distro: "{{ zuul.job.split('-').2 }}" configure_swap_size: 0 container_engine: "docker" - is_upgrade: false - is_slurp: false + is_upgrade: "{{ 'upgrade' in zuul.job }}" + is_slurp: "{{ 'slurp' in zuul.job }}" kolla_internal_vip_address: "192.0.2.10" le_enabled: false neutron_external_bridge_name: br-0 - neutron_external_interface_name: "veth-{{ neutron_external_bridge_name }}-ext" + neutron_external_interface_name: >- + veth-{{ neutron_external_bridge_name }}-ext neutron_external_network_prefix: "198.51.100." neutron_external_network_prefix_length: "24" neutron_external_vxlan_interface_name: "vxlan-1" neutron_tenant_network_dns_server: "8.8.8.8" neutron_tenant_network_prefix: "203.0.113." neutron_tenant_network_prefix_length: "24" - previous_release: "2025.1" + previous_release: "{{ '2025.1' if is_slurp else '2025.1' }}" scenario: core scenario_images_core: - ^cron @@ -48,7 +51,7 @@ - ^placement - ^proxysql - ^rabbitmq - tls_enabled: false + tls_enabled: true virt_type: qemu - job: @@ -95,362 +98,3 @@ - ^tests/get_logs.sh - ^tests/(pre|run).yml - ^tests/templates/(inventory|globals-default.j2) - -- job: - name: kolla-ansible-kvm-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/(nova-cell)/ - - ^tests/templates/nova-compute-overrides.j2 - vars: - virt_type: kvm - -- job: - name: kolla-ansible-ipv6-base - parent: kolla-ansible-base - voting: false - vars: - api_network_prefix: "fd::" - api_network_prefix_length: "64" - kolla_internal_vip_address: "fd::ff:0" - neutron_external_network_prefix: "fd:1::" - neutron_external_network_prefix_length: "64" - neutron_tenant_network_prefix: "fd:f0::" - neutron_tenant_network_prefix_length: "64" - neutron_tenant_network_dns_server: 2001:4860:4860::8888 - address_family: 'ipv6' - scenario: ipv6 - -- job: - name: kolla-ansible-bifrost-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/bifrost/ - - ^tests/test-bifrost.sh - vars: - scenario: bifrost - scenario_images_core: - - ^bifrost - -- job: - name: kolla-ansible-ironic-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/(ironic|neutron|nova|nova-cell)/ - - ^tests/deploy-tenks\.sh$ - - ^tests/templates/ironic-overrides\.j2$ - - ^tests/templates/tenks-deploy-config\.yml\.j2$ - - ^tests/test-dashboard\.sh$ - - ^tests/test-ironic\.sh$ - required-projects: - - openstack/tenks - vars: - scenario: ironic - scenario_images_extra: - - ^dnsmasq - - ^ironic - - ^iscsid - - ^prometheus - -- job: - name: kolla-ansible-zun-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/(zun|kuryr|etcd|cinder|iscsi)/ - - ^tests/setup_disks.sh - - ^tests/test-core-openstack.sh - - ^tests/test-zun.sh - - ^tests/test-dashboard.sh - vars: - scenario: zun - scenario_images_extra: - - ^zun - - ^kuryr - - ^etcd - - ^cinder - - ^iscsid - - ^tgtd - -- job: - name: kolla-ansible-swift-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/(glance|swift)/ - - ^tests/setup_disks.sh - - ^tests/init-swift.sh - - ^tests/test-core-openstack.sh - - ^tests/test-dashboard.sh - - ^tests/test-swift.sh - vars: - scenario: swift - scenario_images_extra: - - ^swift - -- job: - name: kolla-ansible-cephadm-base - parent: kolla-ansible-base - voting: false - vars: - scenario: cephadm - scenario_images_extra: - - ^cinder - - ^redis - -- job: - name: kolla-ansible-magnum-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/(designate|magnum|trove)/ - - ^tests/test-dashboard.sh - - ^tests/test-magnum.sh - vars: - scenario: magnum - scenario_images_extra: - - ^designate - - ^magnum - - ^trove - -- job: - name: kolla-ansible-octavia-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/(octavia|octavia-certificates)/ - - ^tests/test-dashboard.sh - - ^tests/test-octavia.sh - vars: - scenario: octavia - scenario_images_extra: - - ^redis - - ^octavia - -- job: - name: kolla-ansible-masakari-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/masakari/ - - ^ansible/roles/hacluster/ - - ^tests/test-masakari.sh - - ^tests/test-dashboard.sh - vars: - scenario: masakari - scenario_images_extra: - - ^masakari - - ^hacluster - -- job: - name: kolla-ansible-mariadb-base - parent: kolla-ansible-scenario-base - voting: true - files: !inherit - - ^ansible/roles/(loadbalancer|mariadb|proxysql-config)/ - - ^tests/test-mariadb.sh - vars: - scenario: mariadb - scenario_images_core: - - ^cron - - ^fluentd - - ^haproxy - - ^keepalived - - ^kolla-toolbox - - ^mariadb - - ^proxysql - -- job: - name: kolla-ansible-scenario-nfv-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/(aodh|barbican|heat|mistral|redis|tacker)/ - - ^tests/test-scenario-nfv.sh - - ^tests/test-dashboard.sh - vars: - scenario: scenario_nfv - scenario_images_extra: - - ^aodh - - ^tacker - - ^mistral - - ^redis - - ^barbican - -- job: - name: kolla-ansible-cells-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/nova/ - - ^ansible/roles/nova-cell/ - - ^ansible/roles/loadbalancer/ - - ^tests/test-core-openstack.sh - - ^tests/test-proxysql.sh - vars: - scenario: cells - scenario_images_extra: - - ^proxysql - -- job: - name: kolla-ansible-ovn-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/(neutron|octavia|openvswitch|ovn-controller|ovn-db)/ - - ^tests/test-ovn.sh - - ^tests/test-core-openstack.sh - - ^tests/reconfigure.sh - vars: - scenario: ovn - scenario_images_extra: - - ^redis - - ^octavia - - ^ovn - -- job: - name: kolla-ansible-prometheus-opensearch-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/site.yml - - ^ansible/roles/(common|opensearch|grafana|prometheus)/ - - ^tests/test-prometheus-opensearch.sh - vars: - scenario: prometheus-opensearch - scenario_images_core: - - ^cron - - ^fluentd - - ^grafana - - ^haproxy - - ^keepalived - - ^kolla-toolbox - - ^mariadb - - ^memcached - - ^opensearch - - ^prometheus - - ^proxysql - - ^rabbitmq - -- job: - name: kolla-ansible-venus-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/(common|opensearch|venus)/ - - ^tests/test-venus.sh - vars: - scenario: venus - scenario_images_core: - - ^cron - - ^opensearch - - ^fluentd - - ^haproxy - - ^keepalived - - ^keystone - - ^kolla-toolbox - - ^mariadb - - ^memcached - - ^rabbitmq - - ^venus - -- job: - name: kolla-ansible-hashi-vault-base - parent: kolla-ansible-variables - run: tests/run-hashi-vault.yml - required-projects: - - openstack/kolla-ansible - - openstack/requirements - voting: false - files: - - ^requirements-core.yml - - ^tests/templates/(inventory|globals-default.j2) - - ^tests/(pre|run).yml - - ^kolla_ansible/ - - ^tests/run-hashi-vault.yml - - ^tests/test-hashicorp-vault-passwords.sh - -- job: - name: kolla-ansible-haproxy-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/haproxy/ - - ^ansible/roles/loadbalancer/ - - ^kolla_ansible/kolla_url.py - vars: - external_api_interface_name: vxlan2 - external_api_network_prefix: "192.0.3." - external_api_network_prefix_length: "24" - kolla_external_vip_address: "192.0.3.10" - scenario: haproxy - -- job: - name: kolla-ansible-lets-encrypt-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/common/templates/conf/input/11-letsencrypt.conf.j2 - - ^ansible/roles/(letsencrypt|loadbalancer)/ - - ^tests/test-core-openstack.sh - - ^tests/test-dashboard.sh - - ^tests/deploy.sh - vars: - scenario: lets-encrypt - scenario_images_extra: - - ^letsencrypt - - ^haproxy - tls_enabled: true - le_enabled: true - -- job: - name: kolla-ansible-skyline-base - parent: kolla-ansible-scenario-base - voting: false - files: !inherit - - ^ansible/roles/skyline/ - - ^tests/test-skyline.sh - vars: - scenario: skyline - scenario_images_extra: - - ^skyline - -- job: - name: kolla-ansible-skyline-sso-base - parent: kolla-ansible-scenario-base - voting: false - files: - - ^ansible/roles/skyline/ - - ^tests/test-skyline-sso.sh - vars: - scenario: skyline-sso - scenario_images_extra: - - ^skyline - -- job: - name: kolla-ansible-telemetry-base - parent: kolla-ansible-scenario-base - voting: false - files: - - ^ansible/roles/(aodh|ceilometer|gnocchi)/ - - ^tests/test-telemetry.sh - vars: - scenario: telemetry - scenario_images_extra: - - ^aodh - - ^ceilometer - - ^gnocchi - -- job: - name: kolla-ansible-container-engine-migration-base - parent: kolla-ansible-base - voting: false - files: - - ^ansible/migrate-container-engine.yml - - ^ansible/roles/container-engine-migration/ - - ^tests/test-container-engine-migration.sh - vars: - scenario: container-engine-migration -- cgit v1.2.3