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
This commit is contained in:
parent
b2f747fbba
commit
a0d758019a
|
@ -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
|
||||
|
|
|
@ -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 %}"
|
||||
|
|
Loading…
Reference in New Issue