OpenStack Guest Images

This documentation covers the steps needed to build OpenStack guests using a tool called packer. In addition, we include documentation which covers how to build the images manually in case you run into issues with packer.

Current Images

We are currently maintaining these images:

Image

x86_64

AARCH64

POWER8

POWER9

CentOS 6

x

CentOS 7

x

x

x

x

CentOS 8

x

x

Debian 8

x

x

Debian 9

x

x

x

Debian 10

x

x

x

x

Fedora 29

x

x

x

Fedora 30

x

x

x

Fedora 31

x

Fedora 32

x

x

OpenSUSE 13

x

OpenSUSE Leap 15

x

x

OpenSUSE Leap 42

x

Ubuntu 14.04

x

x

Ubuntu 16.04

x

x

Ubuntu 18.04

x

x

x

x

Ubuntu 20.04 1

We are currently maintaining ppc64le Little endian (LE) images for POWER8/9 and some ppc64 Big Endian (BE) images for POWER8. See the below table:

Note

IBM is focusing their efforts primarily on LE, so BE support is mostly limited to older distributions.

Image

POWER8 LE

POWER8 BE

POWER9 LE

CentOS 7

x

x

x

Debian 8

x

x

Debian 9

x

x

Debian 10

x

x

Fedora 29

x

x

Fedora 30

x

x

OpenSUSE 13

x

x

OpenSUSE Leap 15

x

x

OpenSUSE Leap 42

x

Ubuntu 14.04

x

x

Ubuntu 16.04

x

Ubuntu 18.04

x

x

Ubuntu 20.04 1

If there are any other images you would like us to create, please let us know.

Building images with packer

We build all of our images using packer via our packer-templates github repo. Builds are triggered via opening a pull request with the changes that are needed. Once an image has been built, openstack_taster will test to ensure the images will work properly on our openstack cluster.

Manual Guest Installation

Note

This is only useful for manually testing some images and is no longer used for building images.

Note

For AARCH64, Please run the following commands on one of the machines directly. Also, make sure you have the AAVMF package installed which contains the UEFI firmware to boot the VMs properly.

  1. Download the DVD or net install ISO for desired distribution. For this example we are using Debian 10:

export DISTRO="debian-10"
export DISTRO_ISO="debian.iso"
  1. Create a 3G qcow2 disk image:

qemu-img create -f qcow2 $DISTRO.qcow2 3G
  1. Boot up the image using kvm manually:

x86 / POWER:

$ /usr/libexec/qemu-kvm -m 2048M -boot strict=on -name $DISTRO -machine type=pseries,accel=kvm \
  -cdrom $DISTRO_ISO -netdev user,id=user.0,hostfwd=tcp::2222-:22 \
  -device virtio-net,netdev=user.0 \
  -drive file=$DISTRO.qcow2,if=virtio,cache=writeback,discard=ignore,format=qcow2 \
  -vnc 0.0.0.0:99

AARCH64:

$ /usr/libexec/qemu-kvm -m 2048M -boot strict=on -name $DISTRO -machine gic-version=3,accel=kvm \
  -cdrom $DISTRO_ISO -netdev user,id=user.0,hostfwd=tcp::2222-:22 \
  -cpu host -monitor none \
  -drive file=$DISTRO.qcow2,if=virtio,cache=writeback,discard=ignore,format=qcow2 \
  -bios /usr/share/AAVMF/AAVMF_CODE.fd
  -vnc 0.0.0.0:99
  1. Connect via VNC to the VM and complete the installation:

$ vncviewer $host:99
  1. Wait for the VM to complete the install.

  2. Compress and import image into OpenStack:

$ qemu-img convert -O qcow2 -c $DISTRO.qcow2 $DISTRO-compressed.qcow2
$ source openrc
$ glance image-create --name $DISTRO --disk-format=qcow2 \
  --container-format=bare < $DISTRO-compressed.qcow2

Footnotes

1(1,2)

We are currently fixing some issues with our Ubuntu 20.04 images. See this issue for updates.