CI: Move ephemeral disk config to a role

Change-Id: Ieee71aa22f4ec45fe03f50fd697c85dda952b4d0
This commit is contained in:
Michal Nasiadka 2023-10-27 12:28:01 +02:00
parent 5e7e80fd88
commit 213e53e18a
7 changed files with 84 additions and 76 deletions

View File

@ -146,6 +146,13 @@
kolla_build_logs_dir: "{{ kolla_logs_dir }}/build"
virtualenv_path: "/tmp/kolla-virtualenv"
- job:
name: kolla-base-podman
parent: kolla-base
vars:
container_engine: "podman"
configure_ephemeral_mountpoint: "/var/lib/containers"
- job:
name: kolla-build-no-infra-wheels-base
parent: kolla-base

View File

@ -51,12 +51,11 @@
- job:
name: kolla-build-debian-podman
parent: kolla-base
parent: kolla-base-podman
nodeset: kolla-debian-bookworm
vars:
base_distro: debian
base_distro_version: bookworm
container_engine: podman
- job:
name: kolla-build-debian-aarch64

View File

@ -58,12 +58,11 @@
- job:
name: kolla-build-rocky9-podman
parent: kolla-base
parent: kolla-base-podman
nodeset: kolla-rockylinux-9
vars:
base_distro: rocky
base_distro_version: 9
container_engine: podman
- job:
name: kolla-build-rocky9-aarch64

View File

@ -58,12 +58,11 @@
- job:
name: kolla-build-ubuntu-podman
parent: kolla-base
parent: kolla-base-podman
nodeset: kolla-ubuntu-jammy
vars:
base_distro: ubuntu
base_distro_version: jammy
container_engine: podman
- job:
name: kolla-build-ubuntu-aarch64

View File

@ -0,0 +1,2 @@
---
configure_ephemeral_mountpoint: "/var/lib/docker"

View File

@ -0,0 +1,70 @@
---
# 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 disk
community.general.filesystem:
fstype: ext4
dev: "{{ ephemeral_device }}"
opts: "-L kolla"
- name: "Ensure {{ configure_ephemeral_mountpoint }} mountpoint is created"
ansible.builtin.file:
path: "{{ configure_ephemeral_mountpoint }}"
owner: root
group: root
state: directory
mode: 0755
- name: Mount additional filesystem
ansible.posix.mount:
path: "{{ configure_ephemeral_mountpoint }}"
src: "LABEL=kolla"
fstype: ext4
state: mounted

View File

@ -2,6 +2,8 @@
- hosts: all
vars_files:
- ../vars/zuul.yml
roles:
- configure-ephemeral
tasks:
- name: Create dir for kolla logs
file:
@ -18,76 +20,6 @@
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: