Monday, March 3, 2014

Importing Glance images as oVirt templates


In oVirt 3.4 we extended the integration with Glance, allowing to import Glance images of type QCOW2 or RAW as oVirt templates.
When importing an image you can do one of the following:
  • Import the image as a disk - useful when you want to take an image and attach it to a VM
  • Import the image as a template - useful when you would like to take existing image from Glance and use that in order to create several VMs

We also added a public Glance repository to be used by oVirt deployments. A reference to this repository is automatically added in 3.4, so you'll see it in the UI by default, under the name "ovirt-image-repository". You can either use it, or add your own Glance provider, using the steps outlined below.
The public repository currently contains a small amount of images, but we hope to add more images in the near future.

Setting it up

In this section I assume you already have an active Data-Center and Cluster. The DC level should be 3.4 and above for the import and VM creation to work.
Using Glance from within oVirt is pretty easy. If you plan to use the public repository, then all you have to do is:
  1. Go to the Storage main tab
  2. Storage Main Tab
  3. Select the "ovirt-image-repository" domain
  4. In the images sub-tab you'll see a list of available images
  5. Select an image
  6. Selecting an Image
  7. Press Import
  8. Select Data-Center, Storage domain and Quota (I'm not using Quota so it is disabled)
  9. Check the "import as template" checkbox
  10. Select a Cluster
  11. Press OK
  12. Import Image Dialog

Then you'll see that there is a new task running:
Task Progress

Once finished, a new template was created, with default configuration, name that starts with "GlanceTemplate", and description that contains the original image name:
Template Main Tab

You can rename it, and change different properties in it, and then use it as any other template, in order to create new VMs. Before use you should also change the OS type of the template, according to the selected image. The OS type determines whether you can use cloud-init on the VM or not. The current images are cloud-images, so you'll need to use the integration with cloud-init in order to be able to login/connect to the VM. In order to do that you need to change the OS type of the template, and in case of linux based OS you'll have the option to use cloud-init when adding VMs.

Adding your own Glance provider

In the steps above I used the public Glance repository, which exists by default in 3.4 deployments. You can also add a reference to your own Glance instance. If your instance doesn't allow anonymous read-only access, then you also have to configure the Keystone details in the oVirt engine, so let's do that first:
  1. Open a shell in the server where the engine is installed
  2. Enter the command:
  3. Restart the oVirt engine
  1. In the Tree on the list, select the External Providers branch
  2. Provider Main Tab
  3. Press Add
  4. Fill in the details
  5. If your provider requires authentication then select "requires authentication", and fill in the relevant credentials
  6. Press Test-Connection to check that the provided details are correct
  7. Press OK
  8. Provider Details
Now go the the storage main tab, there you'll see your new domain, and follow the steps from the same steps outlined above in order to import glance images.

Important notes:
  • As I wrote earlier, we only supports RAW and QCOW2 images
  • We currently don't support SSL communication with Glance
  • The import of these templates and the usage of them is only supported on DC Level 3.4 and above
  • The Fedora and CentOS images that exist in the public repo are cloud-images, and designed to be initialized using cloud-init. For more information about cloud-init integration in oVirt have a look at Cloud-Init integration and Persistent VM init data
  • As stated above, import as a template work only on Data-Centers with compatibility level that's 3.4 and above. Currently we also allow that on 3.3, but that's a bug, as the template will be created, but you won't be able to create VMs from it. This will be addressed in 3.4.1.


  1. what will be the password for VMs created based on public glance image

  2. Like the other commenter, I found issues with how to get a usable login. The links provided to info about how to use Cloud-Init both are broken (I suspect the oVirt website has been reorganized.

  3. password you need to set once the template is created. Edit the template --> advanced options --> Initial RUn --> check use cloud-init --> Authentication --> provide username and password here. This password and username will be injected into the VM's.