# NOTE(gmann): This file includes all integrated jobs definition which
# are supposed to be run by Tempest and other projects as
# integrated testing.
- job:
    name: tempest-all
    parent: devstack-tempest
    description: |
      Integration test that runs all tests.
      Former name for this job was:
        * legacy-periodic-tempest-dsvm-all-master
    timeout: 10800
    vars:
      tox_envlist: all
      tempest_test_regex: tempest
      devstack_localrc:
        MYSQL_REDUCE_MEMORY: true
        # TODO(gmann): Enable File injection tests once nova bug is fixed
        # https://bugs.launchpad.net/nova/+bug/1882421
        #   ENABLE_FILE_INJECTION: true

- job:
    name: tempest-ipv6-only
    parent: devstack-tempest-ipv6
    description: |
      Integration test of IPv6-only deployments. This job runs
      smoke and IPv6 relates tests only. Basic idea is to test
      whether OpenStack Services listen on IPv6 addrress or not.
    timeout: 10800
    vars:
      tox_envlist: ipv6-only

- job:
    name: tempest-full
    parent: devstack-tempest
    description: |
      Base integration test with Neutron networking and py27.
      This job is supposed to run until stable/train setup only.
      If you are running it on stable/ussuri gate onwards for python2.7
      coverage then you need to do override-checkout with any stable
      branch less than or equal to stable/train.
      Former names for this job where:
        * legacy-tempest-dsvm-neutron-full
        * gate-tempest-dsvm-neutron-full-ubuntu-xenial
    vars:
      tox_envlist: full
      devstack_localrc:
        ENABLE_FILE_INJECTION: true
        ENABLE_VOLUME_MULTIATTACH: true
        USE_PYTHON3: False
      devstack_services:
        # NOTE(mriedem): Disable the cinder-backup service from tempest-full
        # since tempest-full is in the integrated-gate project template but
        # the backup tests do not really involve other services so they should
        # be run in some more cinder-specific job, especially because the
        # tests fail at a high rate (see bugs 1483434, 1813217, 1745168)
        c-bak: false

- job:
    name: tempest-extra-tests
    parent: tempest-full-py3
    description: |
      This job runs the extra tests mentioned in
      tools/tempest-extra-tests-list.txt.
    vars:
      tox_envlist: extra-tests

- job:
    name: tempest-full-py3
    parent: devstack-tempest
    # This job version is with swift enabled on py3
    # as swift is ready on py3 from stable/ussuri onwards.
    # As this use 'integrated-full' tox env which is not
    # available in old tempest used till stable/wallaby,
    # this job definition is only for stable/xena onwards
    # and separate job definition until stable/wallaby
    branches:
      regex: ^stable/(stein|train|ussuri|victoria|wallaby)$
      negate: true
    description: |
      Base integration test with Neutron networking, horizon, swift enable,
      and py3.
      Former names for this job where:
        * legacy-tempest-dsvm-py35
        * gate-tempest-dsvm-py35
    required-projects:
      - openstack/horizon
    vars:
      # NOTE(gmann): Default concurrency is higher (number of cpu -2) which
      # end up 6 in upstream CI. Higher concurrency means high parallel
      # requests to services and can cause more oom issues. To avoid the
      # oom issue, setting the concurrency to 4 in this job.
      tempest_concurrency: 4
      tox_envlist: integrated-full
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
        ENABLE_VOLUME_MULTIATTACH: true
        GLANCE_USE_IMPORT_WORKFLOW: True
      devstack_plugins:
        neutron: https://opendev.org/openstack/neutron
      devstack_services:
        # Enbale horizon so that we can run horizon test.
        horizon: true

- job:
    name: tempest-full-centos-9-stream
    parent: tempest-full-py3
    nodeset: devstack-single-node-centos-9-stream
    # centos-9-stream is supported from yoga release onwards
    branches:
      regex: ^stable/(stein|train|ussuri|victoria|wallaby|xena)$
      negate: true
    description: |
      Base integration test on CentOS 9 stream
    vars:
      # Required until bug/1949606 is resolved when using libvirt and QEMU
      # >=5.0.0 with a [libvirt]virt_type of qemu (TCG).
      configure_swap_size: 4096
      tox_envlist: full

- job:
    name: tempest-integrated-networking
    parent: devstack-tempest
    description: |
      This  job runs integration tests for networking. This is subset of
      'tempest-full-py3' job and run only Neutron and Nova related tests.
      This is meant to be run on neutron gate only.
    vars:
      tox_envlist: integrated-network
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
      devstack_services:
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        c-bak: false

- job:
    name: tempest-integrated-compute
    parent: devstack-tempest
    description: |
      This job runs integration tests for compute. This is
      subset of 'tempest-full-py3' job and run Nova, Neutron, Cinder (except backup tests)
      and Glance related tests. This is meant to be run on Nova gate only.
    vars:
      # NOTE(gmann): Default concurrency is higher (number of cpu -2) which
      # end up 6 in upstream CI. Higher concurrency means high parallel
      # requests to services and can cause more oom issues. To avoid the
      # oom issue, setting the concurrency to 4 in this job.
      tempest_concurrency: 4
      tox_envlist: integrated-compute
      tempest_exclude_regex: ""
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
        ENABLE_VOLUME_MULTIATTACH: true
      devstack_services:
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        c-bak: false

- job:
    name: tempest-integrated-compute-centos-9-stream
    parent: tempest-integrated-compute
    nodeset: devstack-single-node-centos-9-stream
    # centos-9-stream is supported from yoga release onwards
    branches:
      regex: ^stable/(stein|train|ussuri|victoria|wallaby|xena)$
      negate: true
    description: |
      This job runs integration tests for compute. This is
      subset of 'tempest-full-py3' job and run Nova, Neutron, Cinder (except backup tests)
      and Glance related tests. This is meant to be run on Nova gate only.
      This version of the job also uses CentOS 9 stream.
    vars:
      # Required until bug/1949606 is resolved when using libvirt and QEMU
      # >=5.0.0 with a [libvirt]virt_type of qemu (TCG).
      configure_swap_size: 4096

- job:
    name: tempest-integrated-placement
    parent: devstack-tempest
    description: |
      This job runs integration tests for placement. This is
      subset of 'tempest-full-py3' job and run Nova and Neutron
      related tests. This is meant to be run on Placement gate only.
    vars:
      # NOTE(gmann): Default concurrency is higher (number of cpu -2) which
      # end up 6 in upstream CI. Higher concurrency means high parallel
      # requests to services and can cause more oom issues. To avoid the
      # oom issue, setting the concurrency to 4 in this job.
      tempest_concurrency: 4
      tox_envlist: integrated-placement
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
        ENABLE_VOLUME_MULTIATTACH: true
      devstack_services:
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        c-bak: false

- job:
    name: tempest-integrated-storage
    parent: devstack-tempest
    description: |
      This job runs integration tests for image & block storage. This is
      subset of 'tempest-full-py3' job and run Cinder, Glance, Swift and Nova
      related tests. This is meant to be run on Cinder and Glance gate only.
    vars:
      tox_envlist: integrated-storage
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
        ENABLE_VOLUME_MULTIATTACH: true
        GLANCE_USE_IMPORT_WORKFLOW: True

- job:
    name: tempest-integrated-object-storage
    parent: devstack-tempest
    description: |
      This job runs integration tests for object storage. This is
      subset of 'tempest-full-py3' job and run Swift, Cinder and Glance
      related tests. This is meant to be run on Swift gate only.
    vars:
      tox_envlist: integrated-object-storage
      devstack_localrc:
        # NOTE(gmann): swift is not ready on python3 yet and devstack
        # install it on python2.7 only. But settting the USE_PYTHON3
        # for future once swift is ready on py3.
        USE_PYTHON3: true

- job:
    name: tempest-with-latest-microversion
    parent: tempest-full-py3
    description: |
      This job runs compute, placement and volume API tests with 'latest'
      API microversion (This can be extended to other services having API
      microversion concept).
    vars:
      tox_envlist: api-microversion-tests
      devstack_localrc:
        TEMPEST_COMPUTE_MIN_MICROVERSION: 'latest'
        TEMPEST_VOLUME_MIN_MICROVERSION: 'latest'
        TEMPEST_PLACEMENT_MIN_MICROVERSION: 'latest'

- job:
    name: tempest-multinode-full-py3
    parent: tempest-multinode-full-base
    nodeset: openstack-two-node-jammy
    # This job runs on ubuntu Jammy and after stable/zed.
    branches:
      regex: ^stable/(stein|train|ussuri|victoria|wallaby|xena|yoga|zed)$
      negate: true
    vars:
      # NOTE(gmann): Default concurrency is higher (number of cpu -2) which
      # end up 6 in upstream CI. Higher concurrency means high parallel
      # requests to services and can cause more oom issues. To avoid the
      # oom issue, setting the concurrency to 4 in this job.
      tempest_concurrency: 4
      devstack_localrc:
        USE_PYTHON3: true
      devstack_plugins:
        neutron: https://opendev.org/openstack/neutron
      devstack_services:
        neutron-trunk: true
        br-ex-tcpdump: true
        br-int-flows: true
    group-vars:
      subnode:
        devstack_localrc:
          USE_PYTHON3: true
        devstack_services:
          br-ex-tcpdump: true
          br-int-flows: true

- job:
    name: tempest-slow
    parent: tempest-multinode-full
    description: |
      This multinode integration job will run all the tests tagged as slow.
      It enables the lvm multibackend setup to cover few scenario tests.
      This job will run only slow tests (API or Scenario) serially.

      Former names for this job were:
        * legacy-tempest-dsvm-neutron-scenario-multinode-lvm-multibackend
        * tempest-scenario-multinode-lvm-multibackend
    timeout: 10800
    vars:
      tox_envlist: slow-serial
      devstack_localrc:
        CINDER_ENABLED_BACKENDS: lvm:lvmdriver-1,lvm:lvmdriver-2
        ENABLE_VOLUME_MULTIATTACH: true
      devstack_plugins:
        neutron: https://opendev.org/openstack/neutron
      devstack_services:
        neutron-placement: true
        neutron-qos: true
    group-vars:
      # NOTE(mriedem): The ENABLE_VOLUME_MULTIATTACH variable is used on both
      # the controller and subnode prior to Rocky so we have to make sure the
      # variable is set in both locations.
      subnode:
        devstack_localrc:
          ENABLE_VOLUME_MULTIATTACH: true

- job:
    name: tempest-slow-py3
    parent: tempest-multinode-full-py3
    # This job version is with swift enabled on py3
    # as swift is ready on py3 from stable/ussuri onwards.
    timeout: 10800
    # As the 'slow' tox env which is not available in old tempest used
    # till stable/wallaby, this job definition is only for stable/xena
    # onwards and separate job definition until stable/wallaby
    branches:
      regex: ^stable/(stein|train|ussuri|victoria|wallaby)$
      negate: true
    vars:
      tox_envlist: slow
      devstack_localrc:
        CINDER_ENABLED_BACKENDS: lvm:lvmdriver-1,lvm:lvmdriver-2
        ENABLE_VOLUME_MULTIATTACH: true
      devstack_plugins:
        neutron: https://opendev.org/openstack/neutron
      devstack_services:
        neutron-placement: true
        neutron-qos: true
    group-vars:
      # NOTE(mriedem): The ENABLE_VOLUME_MULTIATTACH variable is used on both
      # the controller and subnode prior to Rocky so we have to make sure the
      # variable is set in both locations.
      subnode:
        devstack_localrc:
          ENABLE_VOLUME_MULTIATTACH: true

- job:
    name: tempest-cinder-v2-api
    parent: devstack-tempest
    # NOTE(gmann): Cinder v2 APIs are available until
    # stable/wallaby only.
    override-checkout: stable/wallaby
    description: |
      This job runs the cinder API test against v2 endpoint.
    vars:
      tox_envlist: all
      tempest_test_regex: api.*volume
      devstack_localrc:
        TEMPEST_VOLUME_TYPE: volumev2

- job:
    name: tempest-centos8-stream-fips
    parent: devstack-tempest
    description: |
      Integration testing for a FIPS enabled Centos 8 system
    nodeset: devstack-single-node-centos-8-stream
    vars:
      tox_envlist: full
      configure_swap_size: 4096
      nslookup_target: 'opendev.org'
      enable_fips: True

- job:
    name: tempest-centos9-stream-fips
    parent: devstack-tempest
    description: |
      Integration testing for a FIPS enabled Centos 9 system
    timeout: 10800
    nodeset: devstack-single-node-centos-9-stream
    vars:
      tox_envlist: full
      configure_swap_size: 4096
      nslookup_target: 'opendev.org'
      enable_fips: True

- job:
    name: tempest-pg-full
    parent: tempest-full-py3
    description: |
      Base integration test with Neutron networking and PostgreSQL.
      Former name for this job was legacy-tempest-dsvm-neutron-pg-full.
    vars:
      devstack_localrc:
        # TODO(gmann): Enable File injection tests once nova bug is fixed
        # https://bugs.launchpad.net/nova/+bug/1882421
        # ENABLE_FILE_INJECTION: true
        DATABASE_TYPE: postgresql

- job:
    name: tempest-full-enforce-scope-new-defaults
    parent: tempest-full-py3
    description: |
      This job runs the Tempest tests with scope and new defaults enabled.
    vars:
      devstack_localrc:
        # Enabeling the scope and new defaults for services.
        # NOTE: (gmann) We need to keep keystone scope check disable as
        # services (except ironic) does not support the system scope and
        # they need keystone to continue working with project scope. Until
        # Keystone policies are changed to work for both system as well as
        # for project scoped, we need to keep scope check disable for
        # keystone.
        # Nova, Glance, and Neutron have enabled the new defaults and scope
        # by default in devstack.
        CINDER_ENFORCE_SCOPE: true
        PLACEMENT_ENFORCE_SCOPE: true

- job:
    name: tempest-all-rbac-old-defaults
    parent: tempest-all
    description: |
      Integration test that runs all tests on RBAC old defaults.
    vars:
      devstack_localrc:
        # NOTE(gmann): Nova, Glance, and Neutron have enabled the new defaults
        # and scope by default in devstack so we need some jobs keep testing
        # the old defaults until they are removed from service side.
        NOVA_ENFORCE_SCOPE: false
        GLANCE_ENFORCE_SCOPE: false
        NEUTRON_ENFORCE_SCOPE: false

- project-template:
    name: integrated-gate-networking
    description: |
      Run the python3 Tempest network integration tests (Nova and Neutron related)
      in check and gate for the neutron integrated gate. This is meant to be
      run on neutron gate only.
    check:
      jobs:
        - grenade
        # NOTE(gmann): These template are generic and used on stable branch
        # as well as master testing. So grenade-skip-level on stable/2023.1
        # which test stable/yoga to stable/2023.1 upgrade is non-voting.
        - grenade-skip-level:
            voting: false
            branches:
              - stable/2023.1
        # on master (SLURP 2024.1) grenade-skip-level which test stable/2023.1
        # to stable/2024.1 upgrade is voting.
        - grenade-skip-level:
            branches:
              - master
        - tempest-integrated-networking
        # Do not run it on ussuri until below issue is fixed
        # https://storyboard.openstack.org/#!/story/2010057
        # and job is broken up to wallaby branch due to the issue
        # described in https://review.opendev.org/872341
        - openstacksdk-functional-devstack:
            branches:
              regex: ^stable/(ussuri|victoria|wallaby)$
              negate: true
    gate:
      jobs:
        - grenade
        - tempest-integrated-networking
        # on master (SLURP 2024.1) grenade-skip-level which test stable/2023.1
        # to stable/2024.1 upgrade is voting.
        - grenade-skip-level:
            branches:
              - master
        # Do not run it on ussuri until below issue is fixed
        # https://storyboard.openstack.org/#!/story/2010057
        # and job is broken up to wallaby branch due to the issue
        # described in https://review.opendev.org/872341
        - openstacksdk-functional-devstack:
            branches:
              regex: ^stable/(ussuri|victoria|wallaby)$
              negate: true

- project-template:
    name: integrated-gate-compute
    description: |
      Run the python3 Tempest compute integration tests
      (Nova, Neutron, Cinder and Glance related) in check and gate
      for the Nova integrated gate. This is meant to be
      run on Nova gate only.
    # NOTE(gmann): This template is used for stable branches also so when we
    # add/remove jobs here we need to make sure we should not change the
    # behaviour for stable branches. For example, with branch variant we need
    # to make sure old job keep running on stable branches and the new one run
    # only from master(or the branch it was meant to run).
    check:
      jobs:
        # NOTE(gmann): These template are generic and used on stable branch
        # as well as master testing. So grenade-skip-level on stable/2023.1
        # which test stable/yoga to stable/2023.1 upgrade is non-voting.
        - grenade-skip-level:
            voting: false
            branches:
              - stable/2023.1
        # NOTE(gmann): Nova decided to run grenade skip level testing always
        # (on SLURP as well as non SLURP release) so we are adding grenade-skip-level-always
        # job in integrated gate and we do not need to update skip level job
        # here until Nova change the decision.
        # This is added from 2023.2 relese cycle onwards so we need to use branch variant
        # to make sure we do not run this job on older than 2023.2 gate.
        - grenade-skip-level-always:
            branches:
              - master
        - tempest-integrated-compute
        # centos-8-stream is tested from wallaby -> yoga branches
        - tempest-integrated-compute-centos-8-stream:
            branches: ^stable/(wallaby|xena|yoga).*$
        # Do not run it on ussuri until below issue is fixed
        # https://storyboard.openstack.org/#!/story/2010057
        # and job is broken up to wallaby branch due to the issue
        # described in https://review.opendev.org/872341
        - openstacksdk-functional-devstack:
            branches:
              regex: ^stable/(ussuri|victoria|wallaby)$
              negate: true
    gate:
      jobs:
        - grenade-skip-level-always:
            branches:
              - master
        - tempest-integrated-compute
        - openstacksdk-functional-devstack:
            branches:
              regex: ^stable/(ussuri|victoria|wallaby)$
              negate: true
    periodic-weekly:
      jobs:
        # centos-9-stream is tested from zed release onwards
        - tempest-integrated-compute-centos-9-stream:
            branches:
              regex: ^stable/(stein|train|ussuri|victoria|wallaby|xena|yoga)$
              negate: true

- project-template:
    name: integrated-gate-placement
    description: |
      Run the python3 Tempest placement integration tests
      (Nova and Neutron related) in check and gate
      for the Placement integrated gate. This is meant to be
      run on Placement gate only.
    check:
      jobs:
        - grenade
        # NOTE(gmann): These template are generic and used on stable branch
        # as well as master testing. So grenade-skip-level on stable/2023.1
        # which test stable/yoga to stable/2023.1 upgrade is non-voting.
        - grenade-skip-level:
            voting: false
            branches:
              - stable/2023.1
        # on master (SLURP 2024.1) grenade-skip-level which test stable/2023.1
        # to stable/2024.1 upgrade is voting.
        - grenade-skip-level:
            branches:
              - master
        - tempest-integrated-placement
        # Do not run it on ussuri until below issue is fixed
        # https://storyboard.openstack.org/#!/story/2010057
        # and job is broken up to wallaby branch due to the issue
        # described in https://review.opendev.org/872341
        - openstacksdk-functional-devstack:
            branches:
              regex: ^stable/(ussuri|victoria|wallaby)$
              negate: true
    gate:
      jobs:
        - grenade
        - tempest-integrated-placement
        # on master (SLURP 2024.1) grenade-skip-level which test stable/2023.1
        # to stable/2024.1 upgrade is voting.
        - grenade-skip-level:
            branches:
              - master
        # Do not run it on ussuri until below issue is fixed
        # https://storyboard.openstack.org/#!/story/2010057
        # and job is broken up to wallaby branch due to the issue
        # described in https://review.opendev.org/872341
        - openstacksdk-functional-devstack:
            branches:
              regex: ^stable/(ussuri|victoria|wallaby)$
              negate: true

- project-template:
    name: integrated-gate-storage
    description: |
      Run the python3 Tempest image & block storage integration tests
      (Cinder, Glance, Swift and Nova related) in check and gate
      for the neutron integrated gate. This is meant to be
      run on Cinder and Glance gate only.
    check:
      jobs:
        - grenade
        # NOTE(gmann): These template are generic and used on stable branch
        # as well as master testing. So grenade-skip-level on stable/2023.1
        # which test stable/yoga to stable/2023.1 upgrade is non-voting.
        - grenade-skip-level:
            voting: false
            branches:
              - stable/2023.1
        # on master (SLURP 2024.1) grenade-skip-level which test stable/2023.1
        # to stable/2024.1 upgrade is voting.
        - grenade-skip-level:
            branches:
              - master
        - tempest-integrated-storage
        # Do not run it on ussuri until below issue is fixed
        # https://storyboard.openstack.org/#!/story/2010057
        # and job is broken up to wallaby branch due to the issue
        # described in https://review.opendev.org/872341
        - openstacksdk-functional-devstack:
            branches:
              regex: ^stable/(ussuri|victoria|wallaby)$
              negate: true
    gate:
      jobs:
        - grenade
        # on master (SLURP 2024.1) grenade-skip-level which test stable/2023.1
        # to stable/2024.1 upgrade is voting.
        - grenade-skip-level:
            branches:
              - master
        - tempest-integrated-storage
        # Do not run it on ussuri until below issue is fixed
        # https://storyboard.openstack.org/#!/story/2010057
        # and job is broken up to wallaby branch due to the issue
        # described in https://review.opendev.org/872341
        - openstacksdk-functional-devstack:
            branches:
              regex: ^stable/(ussuri|victoria|wallaby)$
              negate: true

- project-template:
    name: integrated-gate-object-storage
    description: |
      Run the python3 Tempest object storage integration tests
      (Swift, Cinder and Glance related) in check and gate
      for the swift integrated gate. This is meant to be
      run on swift gate only.
    check:
      jobs:
        - grenade
        # on master (SLURP 2024.1) grenade-skip-level which test stable/2023.1
        # to stable/2024.1 upgrade is voting.
        - grenade-skip-level:
            branches:
              - master
        - tempest-integrated-object-storage
        # Do not run it on ussuri until below issue is fixed
        # https://storyboard.openstack.org/#!/story/2010057
        # and job is broken up to wallaby branch due to the issue
        # described in https://review.opendev.org/872341
        - openstacksdk-functional-devstack:
            branches:
              regex: ^stable/(ussuri|victoria|wallaby)$
              negate: true
    gate:
      jobs:
        - grenade
        # on master (SLURP 2024.1) grenade-skip-level which test stable/2023.1
        # to stable/2024.1 upgrade is voting.
        - grenade-skip-level:
            branches:
              - master
        - tempest-integrated-object-storage
        # Do not run it on ussuri until below issue is fixed
        # https://storyboard.openstack.org/#!/story/2010057
        # and job is broken up to wallaby branch due to the issue
        # described in https://review.opendev.org/872341
        - openstacksdk-functional-devstack:
            branches:
              regex: ^stable/(ussuri|victoria|wallaby)$
              negate: true
