Files
cinder/.zuul.yaml
Rajat Dhasmana 787ca3db09 Add testing for optimized volume upload
When using cinder as glance backend, we have an optimization for
upload volume to image operation.
It was recently found that the glance location API was broken for
the upload volume optimization. The current glance cinder job
doesn't run the upload volume test hence the issue was not detected.

This patch adds the volume action tests (that includes the upload
volume test) in the glance cinder job. It also requires configuring
some parameters that are set up in devstack in the depends-on patch.

Depends-On: https://review.opendev.org/c/openstack/cinder/+/909513

Signed-off-by: Rajat Dhasmana <rajatdhasmana@gmail.com>
Change-Id: I4918027ed641a90aafe44d815a4a3dbc1dc7ddfc
2025-07-23 18:35:10 +00:00

396 lines
13 KiB
YAML

- project:
templates:
- openstack-python3-jobs
- openstack-python3-jobs-arm64
- publish-openstack-docs-pti
- periodic-stable-jobs
- check-requirements
- integrated-gate-storage
- release-notes-jobs-python3
check:
jobs:
- cinder-code-coverage:
voting: false
- cinder-mypy
- cinder-tox-bandit-baseline:
voting: false
- openstack-tox-functional-py310:
irrelevant-files: &functional-irrelevant-files
- ^.*\.rst$
- ^cinder/locale/.*$
- ^cinder/tests/hacking/.*$
- ^cinder/tests/unit.*$
- ^doc/.*$
- ^releasenotes/.*$
- ^reno.yaml$
- openstack-tox-functional-py312:
irrelevant-files: *functional-irrelevant-files
- cinder-rally-task:
voting: false
irrelevant-files: *functional-irrelevant-files
- openstack-tox-pylint:
voting: false
timeout: 5400
irrelevant-files:
- ^.*\.rst$
- ^api-ref/.*$
- ^cinder/locale/.*$
- ^cinder/tests/hacking/.*$
- ^cinder/tests/unit.*$
- ^doc/.*$
- ^releasenotes/.*$
- ^reno.yaml$
- cinder-plugin-ceph-tempest:
irrelevant-files: &gate-irrelevant-files
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^api-ref/.*$
- ^cinder/cmd/status\.py$
- ^cinder/locale/.*$
- ^cinder/tests/functional.*$
- ^cinder/tests/hacking/.*$
- ^cinder/tests/unit.*$
- ^doc/.*$
- ^releasenotes/.*$
- ^reno.yaml$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- cinder-plugin-ceph-tempest-mn-aa:
voting: false
irrelevant-files: *gate-irrelevant-files
- cinder-tempest-plugin-lvm-lio-barbican:
# NOTE: we use this as a canary job to make sure at least
# one expensive tempest job is run on changes excluded by
# the gate-irrelevant-files defined above
irrelevant-files:
- ^.*\.rst$
- ^api-ref/.*$
- ^cinder/cmd/status\.py$
- ^cinder/locale/.*$
- ^cinder/tests/functional.*$
- ^cinder/tests/hacking/.*$
- ^cinder/tests/unit.*$
- ^doc/.*$
- ^releasenotes/.*$
- ^reno.yaml$
- ^tools/.*$
- cinder-tempest-plugin-lvm-lio-barbican-fips:
voting: false
irrelevant-files: *gate-irrelevant-files
- cinder-tempest-plugin-protection-functional:
irrelevant-files: *gate-irrelevant-files
- cinder-grenade-mn-sub-volbak:
irrelevant-files: *gate-irrelevant-files
- cinder-tempest-lvm-multibackend:
voting: false
irrelevant-files: *gate-irrelevant-files
- cinder-for-glance-optimized:
voting: false
irrelevant-files: *gate-irrelevant-files
- devstack-plugin-nfs-tempest-full:
irrelevant-files: *gate-irrelevant-files
- devstack-plugin-nfs-tempest-full-fips:
voting: false
irrelevant-files: *gate-irrelevant-files
- tempest-slow-py3:
irrelevant-files: *gate-irrelevant-files
- tempest-integrated-storage:
irrelevant-files: *gate-irrelevant-files
- tempest-integrated-storage-ubuntu-jammy:
irrelevant-files: *gate-irrelevant-files
- grenade:
irrelevant-files: *gate-irrelevant-files
- grenade-skip-level:
irrelevant-files: *gate-irrelevant-files
- tempest-ipv6-only:
irrelevant-files: *gate-irrelevant-files
- openstacksdk-functional-devstack:
irrelevant-files: *gate-irrelevant-files
gate:
jobs:
- cinder-grenade-mn-sub-volbak:
irrelevant-files: *gate-irrelevant-files
- cinder-plugin-ceph-tempest:
irrelevant-files: *gate-irrelevant-files
- tempest-integrated-storage:
irrelevant-files: *gate-irrelevant-files
- tempest-integrated-storage-ubuntu-jammy:
irrelevant-files: *gate-irrelevant-files
- grenade:
irrelevant-files: *gate-irrelevant-files
- tempest-ipv6-only:
irrelevant-files: *gate-irrelevant-files
- openstacksdk-functional-devstack:
irrelevant-files: *gate-irrelevant-files
experimental:
jobs:
- cinder-multibackend-matrix-migration:
irrelevant-files: *gate-irrelevant-files
- cinder-grenade-mn-sub-volschbak:
irrelevant-files: *gate-irrelevant-files
- cinder-grenade-mn-sub-bak:
irrelevant-files: *gate-irrelevant-files
- devstack-plugin-ceph-tempest-py3:
irrelevant-files: *gate-irrelevant-files
- tempest-pg-full:
irrelevant-files: *gate-irrelevant-files
# TODO(gmann): As per the 2025.1 testing runtime, we need to run at least
# one job on jammy. This job can be removed as per the future testing
# runtime (whenever we start testing Ubuntu 26.04 as default version).
- job:
name: tempest-integrated-storage-ubuntu-jammy
description: This is integrated storage job testing on Ubuntu jammy(22.04)
parent: tempest-integrated-storage
nodeset: openstack-single-node-jammy
- job:
# Security testing for known issues
name: cinder-tox-bandit-baseline
parent: openstack-tox
timeout: 2400
vars:
tox_envlist: bandit-baseline
required-projects:
- openstack/requirements
irrelevant-files: *gate-irrelevant-files
- job:
name: cinder-code-coverage
parent: openstack-tox-cover
timeout: 2400
irrelevant-files:
- ^(test-|)requirements.txt$
- ^.*\.rst$
- ^api-ref/.*$
- ^cinder/cmd/status\.py$
- ^cinder/locale/.*$
- ^doc/.*$
- ^releasenotes/.*$
- ^reno.yaml$
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
- job:
name: cinder-rally-task
parent: rally-task-cinder
timeout: 7800
vars:
devstack_localrc:
OSPROFILER_COLLECTOR: redis
devstack_plugins:
osprofiler: https://opendev.org/openstack/osprofiler
rally-openstack: https://opendev.org/openstack/rally-openstack
rally_task: rally-jobs/cinder.yaml
required-projects:
- openstack/rally-openstack
- openstack/osprofiler
- job:
name: cinder-plugin-ceph-tempest
parent: devstack-plugin-ceph-tempest-py3
roles:
- zuul: opendev.org/openstack/cinder-tempest-plugin
vars:
# FIXME: change I29b1af0a4034decad to tempest added image format tests that
# cannot pass in this job because the image data takes a optimized path that
# bypasses nova's checks. Until the nova team decides on a strategy to handle
# this issue, we skip these tests.
tempest_exclude_regex: (tempest.api.image.v2.test_images_formats.ImagesFormatTest.test_compute_rejects)
devstack_localrc:
CEPH_MIN_CLIENT_VERSION: "mimic"
# NOTE: if jobs are having memory problems, may want
# to turn this on (currently defaults to false):
# MYSQL_REDUCE_MEMORY: true
devstack_local_conf:
post-config:
$GLANCE_API_CONF:
DEFAULT:
do_secure_hash: False
test-config:
$TEMPEST_CONFIG:
volume-feature-enabled:
volume_revert: True
timeout: 10800
- job:
# this depends on some ceph admin setup which is not yet complete
# TODO(alee) enable this test when ceph admin work is complete.
name: cinder-plugin-ceph-tempest-fips
parent: cinder-plugin-ceph-tempest
nodeset: devstack-single-node-centos-9-stream
pre-run: playbooks/enable-fips.yaml
vars:
configure_swap_size: 4096
nslookup_target: 'opendev.org'
- job:
name: cinder-plugin-ceph-tempest-mn-aa
parent: devstack-plugin-ceph-multinode-tempest-py3
roles:
- zuul: opendev.org/openstack/cinder-tempest-plugin
vars:
configure_swap_size: 4096
devstack_localrc:
TEMPEST_VOLUME_REVERT_TO_SNAPSHOT: True
# NOTE: if jobs are having memory problems, may want
# to turn this on (currently defaults to false):
# MYSQL_REDUCE_MEMORY: true
devstack_local_conf:
post-config:
$CINDER_CONF:
DEFAULT:
cluster: ceph
- job:
name: cinder-grenade-mn-sub-bak
parent: grenade-multinode
description: |
Cinder grenade multinode job where cinder-backup only runs
on the subnode.
It tests the new c-api, c-sch, c-vol (on the controller node)
with the old c-bak (on the subnode).
Former names for this job were:
* cinder-grenade-dsvm-mn-sub-bak
* legacy-grenade-dsvm-cinder-mn-sub-bak
required-projects:
- opendev.org/openstack/grenade
- opendev.org/openstack/cinder
vars:
devstack_services:
c-bak: false
c-vol: true
group-vars:
subnode:
devstack_services:
c-bak: true
c-vol: false
- job:
name: cinder-grenade-mn-sub-volbak
parent: grenade-multinode
description: |
Cinder grenade multinode job where cinder-backup and cinder-volume
only run on the subnode.
It tests the new c-api, c-sch (on the controller node)
with the old c-bak, c-vol (on the subnode).
Former names for this job were:
* cinder-grenade-dsvm-mn-sub-volbak
* legacy-grenade-dsvm-cinder-mn-sub-volbak
required-projects:
- opendev.org/openstack/grenade
- opendev.org/openstack/cinder
vars:
devstack_services:
c-bak: false
c-vol: false
group-vars:
subnode:
devstack_services:
c-bak: true
c-vol: true
- job:
name: cinder-grenade-mn-sub-volschbak
parent: grenade-multinode
description: |
Cinder grenade multinode job where cinder-backup, cinder-volume
and cinder-scheduler only run on the subnode.
It tests the new c-api (on the controller node)
with the old c-bak, c-sch, c-vol (on the subnode).
Former names for this job were:
* cinder-grenade-dsvm-mn-sub-volschbak
* legacy-grenade-dsvm-cinder-mn-sub-volschbak
required-projects:
- opendev.org/openstack/grenade
- opendev.org/openstack/cinder
vars:
devstack_services:
c-bak: false
c-sch: false
c-vol: false
group-vars:
subnode:
devstack_services:
c-bak: true
c-sch: true
c-vol: true
- job:
name: cinder-tempest-lvm-multibackend
parent: devstack-tempest
description: |
Cinder tempest job based on LVM and multiple backends.
Former names for this job were:
* legacy-tempest-dsvm-lvm-multibackend
timeout: 10800
required-projects:
- opendev.org/openstack/cinder-tempest-plugin
vars:
tox_envlist: all
tempest_test_regex: '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario)|(^cinder_tempest_plugin))'
tempest_plugins:
- cinder-tempest-plugin
devstack_localrc:
CINDER_ENABLED_BACKENDS: 'lvm:lvmdriver-1,lvm:lvmdriver-2'
CINDER_VOLUME_CLEAR: none
irrelevant-files: *gate-irrelevant-files
- job:
name: cinder-mypy
parent: openstack-tox
vars:
tox_envlist: mypy
tox_inline_comments: false
- job:
name: cinder-for-glance-optimized
parent: cinder-tempest-plugin-basic
description: |
Configures glance with cinder as a backend for multiple glance cinder
stores and with cinder configured to use the optimized workflow of
moving image data directly in the backend.
vars:
devstack_localrc:
USE_CINDER_FOR_GLANCE: True
GLANCE_ENABLE_MULTIPLE_STORES: True
CINDER_ENABLED_BACKENDS: lvm:lvmdriver-1
GLANCE_CINDER_DEFAULT_BACKEND: lvmdriver-1
GLANCE_SHOW_DIRECT_URL: True
GLANCE_SHOW_MULTIPLE_LOCATIONS: True
CINDER_ALLOWED_DIRECT_URL_SCHEMES: cinder
CINDER_UPLOAD_OPTIMIZED: True
CINDER_UPLOAD_INTERNAL_TENANT: True
CINDER_USE_SERVICE_TOKEN: True
tempest_test_regex: '(cinder_tempest_plugin|tempest.api.volume.test_volumes_actions)'
- job:
name: cinder-multibackend-matrix-migration
parent: devstack-tempest
description: |
Run migration tests between several combinations of backends
(LVM, Ceph, NFS)
Former names for this job were:
* legacy-tempest-dsvm-multibackend-matrix
timeout: 10800
required-projects:
- opendev.org/openstack/devstack-plugin-ceph
- opendev.org/openstack/devstack-plugin-nfs
run: playbooks/cinder-multibackend-matrix.yaml
host-vars:
controller:
devstack_plugins:
devstack-plugin-ceph: https://opendev.org/openstack/devstack-plugin-ceph
devstack-plugin-nfs: https://opendev.org/openstack/devstack-plugin-nfs
vars:
devstack_localrc:
CINDER_ENABLED_BACKENDS: lvm:lvm,nfs:nfs,ceph:ceph
ENABLE_NFS_CINDER: true
devstack_local_conf:
test-config:
$TEMPEST_CONFIG:
volume:
build_timeout: 900