---
- job:
    name: kolla-ansible-base
    pre-run: tests/pre.yml
    run: tests/run.yml
    post-run: tests/post.yml
    timeout: 7200
    post-timeout: 1800
    required-projects:
      - openstack/ansible-collection-kolla
      - openstack/kolla
      - openstack/kolla-ansible
      - openstack/requirements
    irrelevant-files:
      - ^.*\.rst$
      - ^doc/.*
      - ^releasenotes/.*$
      - ^deploy-guide/.*$
      - ^test-requirements.txt$
      - ^lint-requirements.txt$
      - ^etc/kolla/globals.yml$
      - ^tox.ini$
      - ^\..+
      - ^LICENSE$
      - ^contrib/
      - ^specs/
      - ^kolla_ansible/tests/
      - ^tools/validate-.*$
      - ^zuul\.d/
    vars:
      previous_release: zed
      container_engine: "docker"
      scenario: core
      virt_type: qemu
      is_upgrade: no
      api_network_prefix: "192.0.2."
      api_network_prefix_length: "24"
      api_interface_name: vxlan0
      kolla_internal_vip_address: "192.0.2.10"
      address_family: 'ipv4'
      neutron_external_network_prefix: "198.51.100."
      neutron_external_network_prefix_length: "24"
      neutron_external_bridge_name: br0
      neutron_external_interface_name: "veth-{{ neutron_external_bridge_name }}-ext"
      neutron_external_vxlan_interface_name: vxlan1
      neutron_tenant_network_prefix: "203.0.113."
      neutron_tenant_network_prefix_length: "24"
      neutron_tenant_network_dns_server: "8.8.8.8"
      tls_enabled: false
      configure_swap_size: 0
    roles:
      - zuul: zuul/zuul-jobs
      - zuul: openstack/kolla

- job:
    name: kolla-ansible-kvm-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^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'

- job:
    name: kolla-ansible-bifrost-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/bifrost/
      - ^tests/test-bifrost.sh
    vars:
      scenario: bifrost

- job:
    name: kolla-ansible-ironic-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^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

- job:
    name: kolla-ansible-zun-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/(zun|kuryr|etcd|cinder|iscsi)/
      - ^tests/setup_disks.sh
      - ^tests/test-core-openstack.sh
      - ^tests/test-zun.sh
      - ^tests/test-dashboard.sh
      - ^tests/templates/globals-default\.j2$
    vars:
      scenario: zun

- job:
    name: kolla-ansible-swift-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^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

- job:
    name: kolla-ansible-cephadm-base
    parent: kolla-ansible-base
    voting: false
    vars:
      scenario: cephadm

- job:
    name: kolla-ansible-magnum-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/(designate|magnum|trove)/
      - ^tests/test-dashboard.sh
      - ^tests/test-magnum.sh
    vars:
      scenario: magnum

- job:
    name: kolla-ansible-octavia-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/(octavia|octavia-certificates)/
      - ^tests/test-dashboard.sh
      - ^tests/test-octavia.sh
    vars:
      scenario: octavia

- job:
    name: kolla-ansible-masakari-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/masakari/
      - ^ansible/roles/hacluster/
      - ^tests/test-masakari.sh
      - ^tests/test-dashboard.sh
    vars:
      scenario: masakari

- job:
    name: kolla-ansible-mariadb-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/mariadb/
      - ^tests/test-mariadb.sh
    vars:
      scenario: mariadb

- job:
    name: kolla-ansible-scenario-nfv-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/(aodh|barbican|heat|mistral|redis|tacker)/
      - ^tests/test-scenario-nfv.sh
      - ^tests/test-dashboard.sh
    vars:
      scenario: scenario_nfv

- job:
    name: kolla-ansible-cells-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/nova/
      - ^tests/test-core-openstack.sh
    vars:
      scenario: cells

- job:
    name: kolla-ansible-ovn-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/(neutron|octavia|openvswitch|ovn-controller|ovn-db)/
      - ^tests/test-ovn.sh
      - ^tests/test-core-openstack.sh
    vars:
      scenario: ovn

- job:
    name: kolla-ansible-prometheus-opensearch-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/(common|opensearch|grafana|prometheus)/
      - ^tests/test-prometheus-opensearch.sh
    vars:
      scenario: prometheus-opensearch

- job:
    name: kolla-ansible-venus-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/(common|opensearch|venus)/
      - ^tests/test-venus.sh
    vars:
      scenario: venus

- job:
    name: kolla-ansible-hashi-vault-base
    run: tests/run-hashi-vault.yml
    required-projects:
      - openstack/kolla-ansible
      - openstack/requirements
    voting: false
    files:
      - ^kolla_ansible/
      - ^tests/run-hashi-vault.yml
      - ^tests/test-hashicorp-vault-passwords.sh
