CI: Move ephemeral disk config to a role
Change-Id: Ieee71aa22f4ec45fe03f50fd697c85dda952b4d0
This commit is contained in:
parent
5e7e80fd88
commit
213e53e18a
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
2
roles/configure-ephemeral/defaults/main.yml
Normal file
2
roles/configure-ephemeral/defaults/main.yml
Normal file
@ -0,0 +1,2 @@
|
||||
---
|
||||
configure_ephemeral_mountpoint: "/var/lib/docker"
|
70
roles/configure-ephemeral/tasks/main.yml
Normal file
70
roles/configure-ephemeral/tasks/main.yml
Normal 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
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user