zuul: new LVM/nvmet job (relevant scenario)

This is a patch that adds a new LVM/nvmet job which also
exercises a few relevant code paths in os-brick
which are likely to be used in a production environment:

- Uses the new NVMe-oF connection information.

- Uses NVMe-oF native multipathing, even if it's by using the local IP
  address, which is not real multipathing.

- Shares the namespace for all connections on the same node.

Change-Id: I35beb893ad135043deb5a4ea283e0d668692a438
This commit is contained in:
Gorka Eguileor 2023-01-18 10:23:34 +01:00 committed by Luigi Toscano
parent 9f1f4b88e1
commit 87d48028b1
2 changed files with 58 additions and 0 deletions

View File

@ -15,6 +15,7 @@
voting: false
- cinder-tempest-plugin-lvm-lio-barbican-fips:
voting: false
- cinder-tempest-plugin-lvm-nvmet-barbican
- nova-ceph-multistore:
voting: false
- cinder-tempest-plugin-cbak-ceph
@ -31,6 +32,7 @@
gate:
jobs:
- cinder-tempest-plugin-lvm-lio-barbican
- cinder-tempest-plugin-lvm-nvmet-barbican
# FIXME: no sense running a non-voting gate job. See comment above.
# - cinder-tempest-plugin-lvm-tgt-barbican
- cinder-tempest-plugin-cbak-ceph
@ -293,6 +295,40 @@
nslookup_target: 'opendev.org'
tempest_exclude_regex: 'test_encrypted_cinder_volumes_cryptsetup'
- job:
name: cinder-tempest-plugin-lvm-nvmet-barbican
description: |
This jobs configures Cinder with LVM, nvmet, barbican and
runs tempest tests and cinderlib tests. nvmet is
configured to use the new connection information format,
NVMe-oF native multipathing, and sharing the NVMe-oF
namespace for all the connections to the same node.
# TODO: switch to cinder-tempest-plugin-lvm-barbican-base
# when cinderlib support for NVMe is fixed
parent: cinder-tempest-plugin-lvm-barbican-base-abstract
pre-run: playbooks/install-multipath.yaml
vars:
devstack_localrc:
CINDER_TARGET_HELPER: nvmet
CINDER_TARGET_PROTOCOL: nvmet_tcp
TEMPEST_STORAGE_PROTOCOL: nvmeof
devstack_local_conf:
test-config:
$TEMPEST_CONFIG:
volume-feature-enabled:
# NotImplementedError: Revert volume to snapshot not implemented for thin LVM.
volume_revert: False
post-config:
$NOVA_CONF:
libvirt:
volume_use_multipath: true
$CINDER_CONF:
lvmdriver-1:
nvmeof_conn_info_version: 2
lvm_share_target: true
target_secondary_ip_addresses: 127.0.0.1
use_multipath_for_image_xfer: true
- job:
name: cinder-tempest-plugin-lvm-tgt-barbican
description: |

View File

@ -0,0 +1,22 @@
- hosts: tempest
vars:
mpath_package: "{{ 'device-mapper-multipath' if ansible_os_family == 'RedHat' else 'multipath-tools' }}"
tasks:
- name: Install multipath package on RedHat systems
package:
name: "{{ mpath_package }}"
state: present
become: yes
- name: Create configuration
command: mpathconf --enable --with_multipathd y --user_friendly_names n --find_multipaths y
args:
creates: /etc/multipath.conf
become: yes
- name: Start and enable on boot the multipath daemon
service:
name: multipathd
state: started
enabled: yes
become: yes