- job:
    name: zun-tempest-base
    parent: devstack-tempest
    description: Zun Devstack tempest base job
    timeout: 4200
    required-projects: &base_required_projects
      - openstack/devstack
      - openstack/devstack-plugin-container
      - openstack/kuryr-libnetwork
      - openstack/zun
      - openstack/zun-tempest-plugin
      - openstack/python-zunclient
      - openstack/tempest
    irrelevant-files: &base_irrelevant_files
      - ^.*\.rst$
      - ^doc/.*$
      - ^api-ref/.*$
    vars: &base_vars
      tox_envlist: all
      tempest_test_regex: zun_tempest_plugin.tests.tempest.api
      devstack_localrc:
        ZUN_USE_UWSGI: true
        KURYR_CONFIG_DIR: /etc/kuryr-libnetwork
        ZUN_DRIVER: docker
        ZUN_DB_TYPE: sql
        USE_PYTHON3: true
        ENABLE_CONTAINERD_CRI: true
      devstack_local_conf:
        test-config:
          $TEMPEST_CONFIG:
            container_service:
              min_microversion: '1.40'
        post-config:
          $ZUN_CONF:
            docker:
              execute_timeout: 15
            volume:
              timeout_wait_volume_available: 180
              timeout_wait_volume_deleted: 180
          $CINDER_CONF:
            DEFAULT:
              rpc_response_timeout: 180
      devstack_services:
        tempest: true
      devstack_plugins:
        zun: https://opendev.org/openstack/zun
        kuryr-libnetwork: https://opendev.org/openstack/kuryr-libnetwork
        devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container
        zun-tempest-plugin: https://opendev.org/openstack/zun-tempest-plugin
      tempest_plugins:
        - zun-tempest-plugin
    post-run: playbooks/zun-tempest-base/post.yaml

- job:
    name: zun-tempest-base-multinode
    parent: zun-tempest-base
    description: Zun Devstack tempest multinode base job
    timeout: 7800
    vars:
      devstack_localrc:
        KURYR_PROCESS_EXTERNAL_CONNECTIVITY: false
        USE_PYTHON3: true
    group-vars:
      subnode:
        devstack_localrc:
          KURYR_PROCESS_EXTERNAL_CONNECTIVITY: false
          KURYR_CONFIG_DIR: /etc/kuryr-libnetwork
          USE_PYTHON3: true
          ENABLE_CONTAINERD_CRI: true

- job:
    name: zun-tempest-py3-docker-sql
    parent: zun-tempest-base
    vars:
      devstack_localrc:
        USE_PYTHON3: true
      devstack_services:
        s-account: false
        s-object: false
        s-container: false
        s-proxy: false

# TODO(gmann): As per the 2025.1 testing runtime, we need to run at least
# one job on jammy. This job can be removed in the next cycle(2025.2)
- job:
    name: zun-tempest-py3-docker-sql-ubuntu-jammy
    description: This is integrated compute job testing on Ubuntu jammy(22.04)
    parent: zun-tempest-py3-docker-sql
    nodeset: openstack-single-node-jammy

- job:
    name: zun-tempest-docker-sql-ipv6-only
    parent: devstack-tempest-ipv6
    description: |
      Zun devstack tempest tests job for IPv6-only deployment
    irrelevant-files: *base_irrelevant_files
    required-projects: *base_required_projects
    timeout: 4200
    vars:
      <<: *base_vars
      devstack_services:
        s-account: false
        s-object: false
        s-container: false
        s-proxy: false
    post-run: playbooks/zun-tempest-base/post.yaml

- job:
    name: zun-tempest-multinode-docker-sql
    parent: zun-tempest-base-multinode

- job:
    name: zun-tempest-docker-sql-standalone
    parent: zun-tempest-base
    vars:
      devstack_localrc:
        USE_PYTHON3: true
      devstack_services:
        # disable Nova services
        n-api: false
        n-api-meta: false
        n-cond: false
        n-cpu: false
        n-novnc: false
        n-sch: false
        # disable Glance services
        g-reg: false
        g-api: false

- job:
    name: zun-fullstack
    parent: devstack
    required-projects:
      - openstack/devstack
      - openstack/devstack-plugin-container
      - openstack/kuryr-libnetwork
      - openstack/zun
      - openstack/zun-tempest-plugin
      - openstack/python-zunclient
    run: playbooks/fullstack/run.yaml
    irrelevant-files:
      - ^.*\.rst$
      - ^doc/.*$
      - ^api-ref/.*$
    vars:
      tox_envlist: fullstack
      tox_install_siblings: false
      devstack_localrc:
        USE_PYTHON3: true
      devstack_local_conf:
        post-config:
          $ZUN_CONF:
            volume:
              timeout_wait_volume_available: 180
              timeout_wait_volume_deleted: 180
          $CINDER_CONF:
            DEFAULT:
              rpc_response_timeout: 180
      devstack_plugins:
        zun: https://opendev.org/openstack/zun
        kuryr-libnetwork: https://opendev.org/openstack/kuryr-libnetwork
        devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container
    post-run: playbooks/fullstack/post.yaml

- project:
    queue: zun
    templates:
      - check-requirements
      - openstack-cover-jobs
      - openstack-python3-jobs
      - publish-openstack-docs-pti
      - release-notes-jobs-python3
    check:
      jobs:
        - zun-tempest-py3-docker-sql
        - zun-tempest-py3-docker-sql-ubuntu-jammy
        - zun-tempest-docker-sql-ipv6-only:
            voting: false
        - zun-tempest-multinode-docker-sql:
            voting: false
        - zun-fullstack:
            voting: false
        - zun-tempest-docker-sql-standalone:
            voting: false
    gate:
      jobs:
        - zun-tempest-py3-docker-sql
        - zun-tempest-py3-docker-sql-ubuntu-jammy
