Share An Image In Openstack

From CAC Documentation wiki
Jump to navigation Jump to search

Introduction

You can share an image from your project with a collaborator in a different project in Openstack cloud so you can both launch instances using the same image. You, as the owner of the image, can revoke the sharing privilege at any time.

To accomplish this,

  1. Both you and your collaborator need to use the Openstack CLI client, and
  2. You will need to know the project name or ID of your collaborator.

Share an Image

  • Find the project ID of your collaborator. Run
openstack project list | grep <collaborator's project name>
and the first field of the output is the ID of your collaborator's project ID.
  • Find the ID of the image you want to share:
openstack image show <image name>
  • Share the image with your collaborator's project:
openstack image set --shared <image ID>
openstack image add project <image ID> <collaborator's project ID>
  • Verify the image is now shared. The status field should say pending until your collaborator accepts the image.
openstack image member list <image ID>
  • Give the ID of the shared image to your collaborator.

Share an Image with All Projects

  • This generally shouldn't be done unless creating something that is a public resource that is intended to be used with any project.
  • Additionally, don't use such an image from a third party unless you trust the source.
 openstack image set --public <image ID>

Accept a Shared Image

  • Get the ID of the shared image from the owner. Make sure the owner has performed the steps in the Share an Image section above.
  • Accept the shared image:
openstack image set --accept <image ID>
  • Verify the image is now available to your project:
openstack image list
If the image is listed in the output, it should also appear in Openstack web console (Horizon).

Unshare an Image

  • An image's owner can see which projects have access to the image:
openstack image member list <image ID>
  • The owner can unshare an image like this:
openstack image remove project <image ID> <project ID>