---

- job:
    name: devstack-tobiko-ovn
    parent: devstack-tobiko
    abstract: true
    description: |
      Base Tobiko devstack job to be used with OVN.
    vars: &ovn_base
      devstack_local_conf:
        post-config:
          "/$NEUTRON_CORE_PLUGIN_CONF":
            ovn:
              enable_distributed_floating_ip: true
      devstack_localrc:
        ENABLE_CHASSIS_AS_GW: true
        ENABLE_TLS: true
        ML2_L3_PLUGIN: ovn-router,trunk
        OVN_BUILD_MODULES: false
        OVN_DBS_LOG_LEVEL: dbg
        OVN_IGMP_SNOOPING_ENABLE: true
        OVN_L3_CREATE_PUBLIC_NETWORK: true
        PHYSICAL_NETWORK: public
        Q_AGENT: ovn
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger
        Q_ML2_PLUGIN_TYPE_DRIVERS: local,flat,vlan,geneve
        Q_ML2_TENANT_NETWORK_TYPE: geneve
        Q_USE_PROVIDERNET_FOR_PUBLIC: true

      devstack_services:
        br-ex-tcpdump: true
        br-int-flows: true
        c-bak: false
        dstat: false
        etcd: false
        neutron-segments: true
        ovn-controller: true
        ovn-northd: true
        ovs-vswitchd: true
        ovsdb-server: true
        placement-api: true
        q-agt: false
        q-dhcp: false
        q-dns: true
        q-l3: false
        q-meta: false
        q-metering: false
        q-ovn-metadata-agent: true
        q-port-forwarding: true
        q-qos: true
        q-svc: true
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        tls-proxy: true

      devstack_plugins:
        neutron: "https://opendev.org/openstack/neutron"

- job:
    name: devstack-tobiko-multinode-ovn
    parent: devstack-tobiko-multinode
    abstract: true
    description: Base DevStack Tobiko job with multinode.
    vars: &ovn_multinode_vars
      <<: *ovn_base
      extensions_to_txt:
        db: true
      zuul_copy_output:
        "{{ devstack_base_dir }}/data/ovn": "logs"
        "{{ devstack_base_dir }}/data/ovs": "logs"
        "{{ devstack_log_dir }}/ovsdb-server-nb.log": "logs"
        "{{ devstack_log_dir }}/ovsdb-server-sb.log": "logs"

    group-vars: &ovn_multinode_group_vars
      subnode:
        devstack_services:
          c-vol: true
          dstat: true
          heat: false
          h-api: false
          h-api-cfn: false
          h-eng: false
          n-api-meta: true
          placement-client: true
          n-cpu: true
          neutron-agent: false
          # see bug #1860753 (https://bugs.launchpad.net/devstack/+bug/1860753)
          memory_tracker: false
          ovn-controller: true
          q-agt: false
          q-l3: false
          q-meta: false
          q-ovn-metadata-agent: true
          tls-proxy: false


# --- Functional -------------------------------------------------------------

- job:
    name: devstack-tobiko-functional-ovn
    parent: devstack-tobiko-functional
    abstract: true
    description: |
      Base Tobiko devstack job to be used with OVN.
    vars:
      <<: *ovn_base

- job:
    name: devstack-tobiko-functional-ovn-centos
    parent: devstack-tobiko-functional-ovn
    nodeset: devstack-single-node-centos-8
    voting: false

- job:
    name: devstack-tobiko-functional-ovn-ubuntu
    parent: devstack-tobiko-functional-ovn
    nodeset: openstack-single-node-focal
    voting: false


# --- Scenario ---------------------------------------------------------------

- job:
    name: devstack-tobiko-scenario-ovn
    parent: devstack-tobiko-scenario
    abstract: true
    vars:
      <<: *ovn_base

- job:
    name: devstack-tobiko-scenario-ovn-centos
    parent: devstack-tobiko-scenario-ovn
    nodeset: devstack-single-node-centos-8
    voting: false

- job:
    name: devstack-tobiko-scenario-ovn-ubuntu
    parent: devstack-tobiko-scenario-ovn
    nodeset: openstack-single-node-focal
    voting: false


# --- Faults -----------------------------------------------------------------

- job:
    name: devstack-tobiko-faults-ovn
    parent: devstack-tobiko-faults
    abstract: true
    vars:
      <<: *ovn_multinode_vars
    group-vars:
      <<: *ovn_multinode_group_vars


- job:
    name: devstack-tobiko-faults-ovn-centos
    parent: devstack-tobiko-faults-ovn
    nodeset: devstack-tobiko-multinode-centos
    voting: false

- job:
    name: devstack-tobiko-faults-ovn-ubuntu
    parent: devstack-tobiko-faults-ovn
    nodeset: devstack-tobiko-multinode-ubuntu
    voting: false
    vars:
      devstack_services:
        tls-proxy: true
    group-vars:
      subnode:
        devstack_services:
          tls-proxy: true