From e21af8924f2bb985299dbb96a885d1c3f0c69e18 Mon Sep 17 00:00:00 2001 From: Gorka Eguileor Date: Wed, 18 Jan 2023 10:23:34 +0100 Subject: [PATCH] WIP: zuul: Test LVM/nvmet additional job This is a patch that adds a new LVM/nvmet job similar to the one we added before, but in this case we test a completely different configuration to exercise different code paths in os-brick: - 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. NOTE: Since it's a WIP patch all other check jobs have been removed. Change-Id: I35beb893ad135043deb5a4ea283e0d668692a438 --- .zuul.yaml | 61 +++++++++++++++++++------------- playbooks/install-multipath.yaml | 22 ++++++++++++ 2 files changed, 59 insertions(+), 24 deletions(-) create mode 100644 playbooks/install-multipath.yaml diff --git a/.zuul.yaml b/.zuul.yaml index 74d26cd..a931c61 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,31 +1,10 @@ - project: - templates: - - check-requirements - - tempest-plugin-jobs check: jobs: - - cinder-tempest-plugin-lvm-multiattach - - cinder-tempest-plugin-lvm-lio-barbican - - cinder-tempest-plugin-lvm-lio-barbican-centos-9-stream: - voting: false - cinder-tempest-plugin-lvm-nvmet-barbican: - voting: false - - cinder-tempest-plugin-lvm-tgt-barbican - - nova-ceph-multistore: - voting: false - - cinder-tempest-plugin-cbak-ceph - - cinder-tempest-plugin-cbak-s3 - # As per the Tempest "Stable Branch Support Policy", Tempest will only - # support the "Maintained" stable branches and not the "Extended Maintained" - # branches. That is what we need to do for all tempest plugins. Only jobs - # for the current releasable ("Maintained") stable branches should be listed - # here. - - cinder-tempest-plugin-basic-yoga - - cinder-tempest-plugin-basic-xena - - cinder-tempest-plugin-basic-wallaby - # Set this job to voting once we have some actual tests to run - - cinder-tempest-plugin-protection-functional: - voting: false + voting: true + - cinder-tempest-plugin-lvm-nvmet-new-conninfo-barbican: + voting: true gate: jobs: - cinder-tempest-plugin-lvm-lio-barbican @@ -291,6 +270,40 @@ # NotImplementedError: Revert volume to snapshot not implemented for thin LVM. volume_revert: False +- job: + name: cinder-tempest-plugin-lvm-nvmet-new-conninfo-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_new_conn_info: true + 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: | diff --git a/playbooks/install-multipath.yaml b/playbooks/install-multipath.yaml new file mode 100644 index 0000000..505b99a --- /dev/null +++ b/playbooks/install-multipath.yaml @@ -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