diff options
| author | Michal Nasiadka <mnasiadka@gmail.com> | 2023-02-20 08:43:41 +0100 |
|---|---|---|
| committer | Michal Nasiadka <mnasiadka@gmail.com> | 2023-02-20 13:24:06 +0000 |
| commit | a0d758019a753596567128a44032165dc8214f05 (patch) | |
| tree | 66d08d99c372e670a03761be47c4c3c8d3bf0e6f /tests | |
| parent | b2f747fbba7adf3059d0da9bd899788b4a45763c (diff) | |
| download | kolla-a0d758019a753596567128a44032165dc8214f05.tar.gz kolla-a0d758019a753596567128a44032165dc8214f05.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.
Change-Id: I179c41032239f5f0ce6055c79295b32c33fe67a5
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/playbooks/pre.yml | 78 | ||||
| -rw-r--r-- | tests/playbooks/run.yml | 3 |
2 files changed, 80 insertions, 1 deletions
diff --git a/tests/playbooks/pre.yml b/tests/playbooks/pre.yml index cdbbe35c7..09b60ae34 100644 --- a/tests/playbooks/pre.yml +++ b/tests/playbooks/pre.yml @@ -115,3 +115,81 @@ path: /run/docker.sock mode: 0666 become: true + + # 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 /mnt/kolla mountpoint is created + ansible.builtin.file: + path: "/mnt/kolla" + owner: root + group: root + state: directory + mode: 0755 + + - name: Mount additional filesystem + ansible.posix.mount: + path: "/mnt/kolla" + src: "LABEL=kolla" + fstype: ext4 + state: present + + - name: Ensure /mnt/kolla/work_dir directory is created + ansible.builtin.file: + path: "/mnt/kolla/work_dir" + owner: root + group: root + state: directory + mode: 0777 diff --git a/tests/playbooks/run.yml b/tests/playbooks/run.yml index 7e0b48695..7299b768a 100644 --- a/tests/playbooks/run.yml +++ b/tests/playbooks/run.yml @@ -4,6 +4,7 @@ - ../vars/zuul.yml vars: tag_suffix: "{{ '-aarch64' if ansible_architecture == 'aarch64' else '' }}" + kolla_disk: "{{ true if ephemeral_device is defined else false }}" kolla_build_config: DEFAULT: debug: true @@ -45,4 +46,4 @@ command: "{{ virtualenv_path }}/bin/kolla-build --template-only --work-dir {{ kolla_build_logs_dir }}/work_dir" - name: Run kolla-build - command: "{{ virtualenv_path }}/bin/kolla-build" + command: "{{ virtualenv_path }}/bin/kolla-build {% if kolla_disk %}--work-dir /mnt/kolla/work_dir{% endif %}" |
