Steve Baker aaa56fdf7c Refactor inject_images for whole disk images
When whole_disk_images is true, inject_images will contain 3 items
instead of 5. This kind of conditional value cannot be set in a
defaults yaml file. This change moves inject_images to a set_fact in
the build-images tasks.

It is possible to disable image injection by setting variable
inject_images: [].

The variable image_build_extract_list is given the same treatment,
although it looks like build_image_isolated is never true anymore.

tripleo-quickstart has an equivalent change
https://review.opendev.org/c/openstack/tripleo-quickstart/+/801408

Change-Id: I4e85b9f4074bd4c35d5b9b486089adc9a58c31d0
Blueprint: whole-disk-default
2021-09-10 14:00:27 +12:00
..
2018-11-26 12:37:21 +00:00

build-images

An Ansible role for building TripleO undercloud and overcloud images. The role can either operate directly against a host (direct) or setup a build environment inside of a libvirt guest using libguestfs-tools (isolated).

It starts by creating the overcloud images from the provided yaml files. It then uses the convert-image role from tripleo-quickstart to turn the qcow2 image into an undercloud image. Finally, it injects the previously created overcloud image and ironic-python-agent images into this new undercloud image.

Requirements

  • convert-image role from tripleo-quickstart (if building an undercloud image)
  • fetch-images role from tripleo-quickstart (if using isolated build)
  • modify-image role from tripleo-quickstart-extras
  • repo-setup role from tripleo-quickstart-extras

Role Variables

  • images_working_dir -- Directory on the host where images and logs will be placed
  • images_destroy_working_dir -- Whether to destroy the previous image directory before starting. (Default true)
  • overcloud_image_build_script -- Template used for the overcloud image build
  • overcloud_image_build_log -- Log file for output from the image build script.
  • build_image_isolated -- Whether to use libguestfs to create an isolated build environment. (Default true)
  • build_isolation_image_url -- URL for image to use as the isolated build environment. (Currently requires an .md5 file in the same location because the fetch-images role from quickstart is used to get the image)
  • build_undercloud -- Whether to build an undercloud image. (Default true)
  • package_images -- Whether to create tarballs and md5s for all of the produced images. (Default true)
  • overcloud_repo_paths -- List of repo paths that will be passed to DIB for package installs in the overcloud images. These repos will also be copied on to the undercloud image.
  • image_build_yaml_paths -- List of yaml files to be passed to the overcloud image build. (Defaults to yamls packaged in tripleo-common. In order to produce security hardened images, the alternate overcloud-hardened-images need to be used instead of the overcloud-images ones).
  • image_build_extract_list -- List of artifacts to extract from the isolated build environment after building.
  • inject_images -- List of artifacts to inject into the undercloud image. Set to [] to disable injection
  • skip_build_images -- skip building images if there present or cached (default: true), setting it to false will add '--no-skip' option to openstack image build command.
  • base_image_url -- URL of base image
  • base_image_path -- path to save base image on host

Example Usage

---
- name: Build images using an isolated build environment
  hosts: virthost
  roles:
    - build-images

- name: Build images with repos directly installed on the host
  hosts: virthost
  vars:
    build_image_isolated: false
  roles:
    - build-images

License

Apache