aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--roles/kolla-ansible-setup-disks/README.rst15
-rw-r--r--roles/kolla-ansible-setup-disks/tasks/main.yml42
-rw-r--r--tests/run.yml7
-rw-r--r--zuul.d/scenarios/cephadm.yaml3
-rw-r--r--zuul.d/scenarios/zun.yaml2
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