Problem: Instructions for sharing snapshots result in unlaunchable images when original instance is volume-backed
Problem/Opportunity Statement
When a community member has a volume-backed instance they want to snapshot and share, and they follow the instructions from the Jetstream2 documentation, then it results in an image they can launch in their own project, but an unlaunchable image for anybody trying to launch the community image from other projects.
This came up in a support ticket by somebody trying to access a dataset and application on Jetstream2 which accompanied a recent publication.
To reproduce:
- Create a volume-backed instance from one of our featured images, and make some customization in the instance (e.g.
sudo apt install cowsay) - Make a snapshot of this instance, and notice that it results in an empty image, pointing to a new (private) volume snapshot
- Launch a new instance from this image in the project that owns the snapshot, ant notice that it launches correctly and has the customization (
cowsay "Moo!") - Set this image to be community-visible
- In a different project, find the community-visible image, and launch a new instance from it
- Confirm that you get this cryptic error:
{"badRequest": {"code": 400, "message": "Block Device Mapping is Invalid: failed to get snapshot abcd1337-dead-beef-c001-coffeecoffee."}} - Exosphere's recovery hint is completely wrong:
It's possible your quota is not large enough to launch the requested server
One way to create a sharable image from a volume-backed instance is:
- Make a snapshot of the volume-backed instance
- Find the corresponding volume snapshot of the instance snapshot
- Create a new volume from this volume snapshot
- Perform ‘Upload to Image’ operation on this new volume to create a new image
- Set the minimum disk size of this new image to the appropriate size
- Set the visibility of this image to ‘Community’
Now anybody can launch an instance from this image.
What would success / a fix look like?
- The documentation should cover this scenario
- Exosphere's recovery hint should accurately identify the problem and how to address it: exosphere/exosphere#1044
- Ideally Exosphere should make it possible to create sharable images from volume-backed instances: exosphere/exosphere#1045
Edited by Julian Pistorius