Sharing an Image
Image producers (image owners) create and share images with image consumers, allowing the consumers to use the shared image when booting a server. Images may be shared among projects by making the consumer a member of that image. The consumer then accepts or rejects the image by changing their image member status. After it is accepted, the image appears in the consumer’s image list. As long as the consumer is a member of the image, the image is accessible. If the consumer knows the image ID, the consumer can use the image regardless of the image member status.
The image member status serves three purposes:
- Control visibility—If the image member status is
accepted
, the image appears in the consumer’s image list. Otherwise, the image does not appear in the image list. The image may still be used as long as the consumer knows the image ID. - Filter the image list
- See consumer activity—The member status lets the owner know whether the consumer has seen and acted on the shared image. If the status is
accepted
orrejected
, the consumer has definitely seen the shared image. If the status ispending
, the consumer may not be aware that an image was shared.
Image owners and members have different abilities and responsibilities regarding image sharing.
Image Owner
- Add members to images
- Remove members from images
- View the status of all image members
- Cannot modify the member status
Image Member
- View their member status
- Change their member status
- Boot from any image shared as long as they know the image ID, regardless of member status
- Cannot add themselves as an image member
- Cannot remove themselves as an image member
Sharing an image
Communications between the image owner and the consumer must be arranged independently of the OpenStack Image API. The consumer and owner can send notification by using email, phone, or other social channels.
The following procedure is a workflow for image sharing after image creation.
- The owner posts the availability of specific images for consumers to review.
- The consumer provides the owner with the consumer’s project ID. Optionally, the owner might request the consumer’s email address for notification purposes, but this is outside the scope of the API.
- The owner shares the image with the consumer, by using the
Create image member
API operation. - [Optional] The owner notifies the consumer that the image has been shared and provides the image’s ID (UUID).
- If the consumer wants the image to appear in the image list, the consumer uses the Metacloud Image API to change the image member status to accepted, by using the
Update image member
API operation. - If the consumer subsequently wants to hide the image, the consumer uses the Metacloud Image API to change the image member status to rejected. If the consumer wants to hide the image, but is open to the possibility of being reminded by the owner that the image is available, the consumer uses the Metacloud Image API to change the image member status back to pending, by using the
Update image member
API operation.