summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Nasiadka <mnasiadka@gmail.com>2023-02-20 08:43:41 +0100
committerMichal Nasiadka <mnasiadka@gmail.com>2023-02-21 12:42:32 +0000
commit278167179c39da821a1580be397eaffc0ba8471b (patch)
tree40436e352d924182c313c10bba622895277f890a
parent47431082f65d8761a74df40ed18ff3415722ad69 (diff)
downloadkolla-278167179c39da821a1580be397eaffc0ba8471b.tar.gz
kolla-278167179c39da821a1580be397eaffc0ba8471b.zip
CI: Configure additional disk when available
It seems that on some nodepool providers (rax for sure), we get 40G boot disk and 80G additional disk, while on others we get 80G boot disk only. Included fix from I06e262cd48d33ccfc0634589c82dcac80dff51af Change-Id: I179c41032239f5f0ce6055c79295b32c33fe67a5 (cherry picked from commit a0d758019a753596567128a44032165dc8214f05)
-rw-r--r--tests/playbooks/pre.yml70
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/playbooks/pre.yml b/tests/playbooks/pre.yml
index cdbbe35c7..5e4b525f2 100644
--- a/tests/playbooks/pre.yml
+++ b/tests/playbooks/pre.yml
@@ -18,6 +18,76 @@
path: "{{ kolla_build_logs_dir }}"
state: directory
+ # On RAX hosts, we have a small root partition and a large,
+ # unallocated ephemeral device attached at /dev/xvde
+ - name: Set ephemeral device if /dev/xvde exists
+ when: ansible_devices["xvde"] is defined
+ set_fact:
+ ephemeral_device: "/dev/xvde"
+
+ # On other providers, we have a device called "ephemeral0".
+ - name: Set ephemeral device by label
+ when: ephemeral_device is undefined
+ block:
+ - name: Get ephemeral0 device node
+ command: /sbin/blkid -L ephemeral0
+ register: ephemeral0
+ # rc !=0 is expected
+ failed_when: False
+ changed_when: False
+
+ - name: Set ephemeral device if LABEL exists
+ when: "ephemeral0.rc == 0"
+ set_fact:
+ ephemeral_device: "{{ ephemeral0.stdout }}"
+
+ - name: Configure additional disk (if available)
+ become: true
+ when: ephemeral_device is defined
+ block:
+ - name: Ensure ephemeral device is unmounted
+ ansible.posix.mount:
+ name: "{{ ephemeral_device }}"
+ state: "{{ item }}"
+ loop:
+ - unmounted
+ - absent
+
+ - name: Get existing partitions
+ community.general.parted:
+ device: "{{ ephemeral_device }}"
+ unit: MiB
+ state: info
+ register: ephemeral_partitions
+
+ - name: Remove any existing partitions
+ community.general.parted:
+ device: "{{ ephemeral_device }}"
+ number: "{{ item.num }}"
+ state: absent
+ loop: "{{ ephemeral_partitions.partitions }}"
+
+ - name: Create filesystem on additional partition
+ community.general.filesystem:
+ fstype: ext4
+ dev: "{{ ephemeral_device }}"
+ opts: "-L kolla"
+
+ - name: Ensure /var/lib/docker mountpoint is created
+ ansible.builtin.file:
+ path: "/var/lib/docker"
+ owner: root
+ group: root
+ state: directory
+ mode: 0755
+
+ - name: Mount additional filesystem
+ ansible.posix.mount:
+ path: "/var/lib/docker"
+ src: "LABEL=kolla"
+ fstype: ext4
+ state: mounted
+
- name: Install Python3 pip and setuptools
package:
name: