kayobe/ansible/seed-ipa-build.yml
Pierre Riteau c35f112a14 Build overcloud host image directly with DIB
As a first step towards supporting multiple overcloud disk images, this
change introduces a new command to build a disk image directly with DIB:
`kayobe overcloud host image build`.

It also disables building a root disk image during Bifrost bootstrap if
overcloud_dib_build_host_images is set to true.

Change-Id: I93d242889e225b4e60254f6b9cc5eeb457294ac8
Story: 2002098
Task: 41693
2021-11-26 09:28:00 +01:00

63 lines
2.3 KiB
YAML

---
# Build and install an Ironic Python Agent (IPA) image for the seed host's
# ironic and ironic-inspector services.
- name: Ensure Ironic Python Agent images are built and installed
hosts: seed
tags:
- ipa-build
vars:
ipa_image_name: "ipa"
ipa_images:
- "{{ ipa_image_name }}.kernel"
- "{{ ipa_image_name }}.initramfs"
ipa_image_force_rebuild: false
tasks:
- block:
# TODO(priteau): Move this to stackhpc.os-images
- name: Ensure libgcrypt is updated
package:
name: libgcrypt
state: latest
become: True
when: ansible_facts.os_family == 'RedHat'
- name: Ensure Ironic Python Agent images are built
include_role:
name: stackhpc.os-images
vars:
os_images_venv: "{{ virtualenv_path }}/ipa-build-dib"
os_images_package_state: latest
os_images_upper_constraints_file: "{{ ipa_build_upper_constraints_file }}"
os_images_cache: "{{ image_cache_path }}"
os_images_common: ""
os_images_list:
- name: "{{ ipa_image_name }}"
elements: "{{ ipa_build_dib_elements }}"
env: "{{ ipa_build_dib_env }}"
packages: "{{ ipa_build_dib_packages }}"
# Avoid needing to install qemu-img for qcow2 image.
type: raw
os_images_git_elements: "{{ ipa_build_dib_git_elements }}"
os_images_upload: False
os_images_force_rebuild: "{{ ipa_image_force_rebuild }}"
- name: Ensure Ironic Python Agent images are copied onto seed
copy:
src: "{{ image_cache_path }}/{{ ipa_image_name }}/{{ item }}"
dest: "/etc/kolla/bifrost/{{ item }}"
remote_src: True
with_items: "{{ ipa_images }}"
become: True
- name: Copy Ironic Python Agent images into /httpboot
command: >
docker exec bifrost_deploy
bash -c 'ansible -vvvv target
-i /bifrost/playbooks/inventory/target
-m copy
-a "src=/etc/bifrost/{{ item }} dest=/httpboot/{{ item }}"
-e "ansible_python_interpreter=/var/lib/kolla/venv/bin/python"'
with_items: "{{ ipa_images }}"
when: ipa_build_images | bool