aboutsummaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
authorMichal Nasiadka <mnasiadka@gmail.com>2025-10-14 09:19:17 +0200
committerMichal Nasiadka <mnasiadka@gmail.com>2025-10-20 07:39:19 +0000
commit2e5c62c31c89d0e992c640576f3b184903c6bf65 (patch)
tree72caee19df2b654d66c38bcfb8c156dada063cc0 /roles
parent102dc3cd0c8137df3856dd6e7885b4fa7ad5e448 (diff)
downloadkolla-ansible-2e5c62c31c89d0e992c640576f3b184903c6bf65.tar.gz
kolla-ansible-2e5c62c31c89d0e992c640576f3b184903c6bf65.zip
CI: Rework setup_disks.sh into Ansible role
Change-Id: Icd8648399a7d0a74419c80d573792397f971ff3c Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
Diffstat (limited to 'roles')
-rw-r--r--roles/kolla-ansible-setup-disks/README.rst15
-rw-r--r--roles/kolla-ansible-setup-disks/tasks/main.yml42
2 files changed, 57 insertions, 0 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