diff options
| -rw-r--r-- | roles/kolla-ansible-setup-disks/README.rst | 15 | ||||
| -rw-r--r-- | roles/kolla-ansible-setup-disks/tasks/main.yml | 42 | ||||
| -rw-r--r-- | tests/run.yml | 7 | ||||
| -rw-r--r-- | zuul.d/scenarios/cephadm.yaml | 3 | ||||
| -rw-r--r-- | zuul.d/scenarios/zun.yaml | 2 |
5 files changed, 64 insertions, 5 deletions
diff --git a/roles/kolla-ansible-setup-disks/README.rst b/roles/kolla-ansible-setup-disks/README.rst new file mode 100644 index 000000000..90bb4e92c --- /dev/null +++ b/roles/kolla-ansible-setup-disks/README.rst @@ -0,0 +1,15 @@ +Prepare disks for Kolla-Ansible CI run. + +**Role Variables** + +.. zuul:rolevar:: kolla_ansible_setup_disks_filepath + + Path to allocated file passed to loopmount + +.. zuul:rolevar:: kolla_ansible_setup_disks_lv_name + + Logical volume name to create (skipped if not set) + +.. zuul:rolevar:: kolla_ansible_setup_disks_vg_name + + Volume group name to create diff --git a/roles/kolla-ansible-setup-disks/tasks/main.yml b/roles/kolla-ansible-setup-disks/tasks/main.yml new file mode 100644 index 000000000..e4e25f736 --- /dev/null +++ b/roles/kolla-ansible-setup-disks/tasks/main.yml @@ -0,0 +1,42 @@ +--- +- name: Check if kolla_ansible_setup_disks_file_path is set + ansible.builtin.assert: + that: kolla_ansible_setup_disks_file_path is defined + +- name: Check if kolla_ansible_setup_disks_vg_name is set + ansible.builtin.assert: + that: kolla_ansible_setup_disks_vg_name is defined + +- name: Allocate file for disk backing + become: true + community.general.filesize: + path: "{{ kolla_ansible_setup_disks_file_path }}" + size: "{{ kolla_ansible_setup_disks_file_size | default('5G') }}" + +- name: Get free loop device + become: true + ansible.builtin.shell: + cmd: "losetup -f" + register: _loop_device + +- name: Mount file on loop device + become: true + ansible.builtin.shell: + cmd: > + losetup {{ _loop_device.stdout }} + {{ kolla_ansible_setup_disks_file_path }} + +- name: Create LVM extents on loop device + become: true + community.general.lvg: + vg: "{{ kolla_ansible_setup_disks_vg_name }}" + pvs: "{{ _loop_device.stdout }}" + +- name: Create LV + become: true + community.general.lvol: + vg: "{{ kolla_ansible_setup_disks_vg_name }}" + lv: "{{ kolla_ansible_setup_disks_lv_name }}" + size: "100%FREE" + when: + - kolla_ansible_setup_disks_lv_name is defined diff --git a/tests/run.yml b/tests/run.yml index e837470cf..08c7e4f40 100644 --- a/tests/run.yml +++ b/tests/run.yml @@ -35,12 +35,9 @@ name: "{{ 'bind-utils' if ansible_os_family == 'RedHat' else 'dnsutils' }}" when: scenario == 'magnum' - - name: Prepare disks for a storage service - script: "setup_disks.sh {{ disk_type }}" + - import_role: + name: kolla-ansible-setup-disks when: scenario in ['cephadm', 'zun'] - become: true - vars: - disk_type: "{{ 'ceph-lvm' if scenario in ['cephadm'] else scenario }}" - name: Update /etc/hosts with internal API FQDN blockinfile: diff --git a/zuul.d/scenarios/cephadm.yaml b/zuul.d/scenarios/cephadm.yaml index 9d3bf69f2..a9b1ac7ea 100644 --- a/zuul.d/scenarios/cephadm.yaml +++ b/zuul.d/scenarios/cephadm.yaml @@ -9,6 +9,9 @@ - ^ansible/roles/(ceph-rgw|common|fluentd|glance|haproxy-config|heat|horizon|keystone|loadbalancer|loadbalancer-config|neutron|nova|openvswitch|placement|proxysql|rabbitmq)/ - ^roles/cephadm/ vars: + kolla_ansible_setup_disks_file_path: "/var/lib/ceph-osd.img" + kolla_ansible_setup_disks_vg_name: "cephvg" + kolla_ansible_setup_disks_lv_name: "cephlv" scenario: cephadm scenario_images_extra: - ^cinder diff --git a/zuul.d/scenarios/zun.yaml b/zuul.d/scenarios/zun.yaml index 6ef8a9c60..25397725d 100644 --- a/zuul.d/scenarios/zun.yaml +++ b/zuul.d/scenarios/zun.yaml @@ -11,6 +11,8 @@ - ^tests/test-zun.sh - ^tests/test-dashboard.sh vars: + kolla_ansible_setup_disks_file_path: "/var/lib/cinder_data.img" + kolla_ansible_setup_disks_vg_name: "cinder-volumes" scenario: zun scenario_images_extra: - ^zun |
