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:

  1. 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.
  2. Filter the image list
  3. 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 or rejected, the consumer has definitely seen the shared image. If the status is pending, 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.

  1. The owner posts the availability of specific images for consumers to review.
  2. 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.
  3. The owner shares the image with the consumer, by using the Create image member API operation.
  4. [Optional] The owner notifies the consumer that the image has been shared and provides the image’s ID (UUID).
  5. 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.
  6. 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.