fix: generate release artifacts
This MR is intended to automatically generate official release images when a new release is cut.
The CI/CD pipeline will:
- Build the infrastructure
- Shut down the running infrastructure and take a snapshot of the instance.
- Save the snapshot locally and use
qemu-img
to shrink the image. - Re-upload the image and build a new infrastructure based on this disk image and use it as a release artifact.
- Upload the image to swift where it can be downloaded.
Upon merge into master, some additional steps happen:
- The image is renamed to match the newly updated semantic version.
- A gitlab release is issued including a publicly downloadable link to the new image.
TODO:
- Currently the automation is not executing cloud-init properly to mount the external volumes.
- Tests happen against the infrastructure as built from source, and not against the infrastructure as built from the release artifact.