Virtual Machine Image Builder for EdgeStack

The Image Builder is a collection of virtual machine image building utilities. The Image Builder can be used to build golden images intended for use with EdgeStack.

Supported Host OS:

  • CentOS 7
  • Rocky 8

Supported Guest OS:

  • CentOS 7
  • Rocky 8 (x86, ARM)
  • Rocky 9 (x86, ARM)
  • AlmaLinux 8 (x86, ARM)
  • AlmaLinux 9 (x86, ARM)
  • Debian 11 (x86, ARM)
  • Debian 12 (x86, ARM)
  • OpenSUSE 15
  • Ubuntu 18.04 (x86, ARM)
  • Ubuntu 20.04 (x86, ARM)
  • Ubuntu 22.04 (x86, ARM)
  • Ubuntu 24.04 (x86, ARM)

Packer has issues working with qemu-system binary in ubuntu distribution. Make sure that you are using the image builder in CentOS distribution.

How to use

The project allows the developers to build the image using handy make CLI.

  1. Clone Image Builder project
# git clone https://github.com/sonaproject/edgestack-image-builder.git
# cd edgestack-image-builder
  1. Install packer and relevant dependencies
# make deps-qemu
  1. Place the base or preprossed golden VM image under images directory
# cp $IMAGE_NAME images/
  1. Calculate the checksum of the target VM image
# sha256sum images/$IMAGE_NAME
  1. Copy and paste the calculated checksum to the corresponding configuration file. We provide the configuration file for each linux distro. Put the checksum value into iso_checksum to replace the original value.
{
  "build_name": "ubuntu-1804",
  "distro_name": "ubuntu",
  "ssh_username": "ubuntu",
  "os_display_name": "Ubuntu 18.04",
  "guest_os_type": "ubuntu-64",
  "iso_url": "images/ubuntu-1804.qcow2",
  "iso_checksum": "50c38d3f7307fe770c15a69b316d0001ac28e484239218d23e1ca8c8e7ec9a10",
  "iso_checksum_type": "sha256",
  "shutdown_command": "shutdown -P now",
  "ansible_python_interpreter": "/usr/bin/python3"
}
  1. Build ubuntu-18.04 golden image
# make build-qemu-ubuntu-1804

The built image will be located under output directory.

  1. Clean built images
# make clean-qemu
  1. Clean packer cache
# make clean-packer-cache