---
- job:
    name: kolla-ansible-base
    pre-run: tests/pre.yml
    run: tests/run.yml
    post-run: tests/post.yml
    attempts: 5
    timeout: 7200
    post-timeout: 1800
    required-projects:
      - openstack/kolla
      - openstack/kolla-ansible
      - openstack/requirements
    irrelevant-files:
      - ^.*\.rst$
      - ^doc/.*
      - ^releasenotes/.*$
      - ^deploy-guide/.*$
      - ^test-requirements.txt$
      - ^etc/kolla/globals.yml$
      - ^tox.ini$
      - ^\..+
      - ^LICENSE$
      - ^contrib/
      - ^specs/
      - ^kolla_ansible/tests/
      - ^zuul\.d/
    vars:
      previous_release: victoria
      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_interface_name: vxlan1
      tls_enabled: false
      # NOTE(yoctozepto): Ansible on Debian defaults to /usr/bin/python which is
      # python2. Let's use python3 instead as expected in 2020 and beyond.
      ansible_python_interpreter: python3
      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)/
    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"
      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
      install_type: source

- job:
    name: kolla-ansible-ironic-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/(ironic|nova|nova-cell)/
      - ^tests/test-ironic.sh
      - ^tests/test-dashboard.sh
    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
    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-monasca-base
    parent: kolla-ansible-base
    voting: false
    files:
      - ^ansible/roles/(elasticsearch|influxdb|kafka|kibana|monasca|storm|zookeeper)/
      - ^tests/test-monasca.sh
      - ^tests/test-dashboard.sh
    vars:
      scenario: monasca

- 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/(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
    vars:
      scenario: cells

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

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

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