You can associate metadata with an image using the --property
argument to glance image-create or glance
image-update.For
example:key
=value
$ glance image-update img-uuid
--property architecture=arm --property hypervisor_type=qemu
If the following properties are set on an image, and the ImagePropertiesFilter scheduler filter is enabled (which it is by default), then the scheduler will only consider compute hosts that satisfy these properties:
- architecture
The CPU architecture that must be supported by the hypervisor, e.g.
x86_64
,arm
,ppc64
. Run uname -m to get the architecture of a machine. We strongly recommend using the architecture data vocabulary defined by the libosinfo project for this purpose. Recognized values for this field are:alpha
armv7l
cris
i686
Intel sixth-generation x86 (P6 microarchitecture)
ia64
lm32
m68k
microblaze
microblazeel
mips
mipsel
mips64
mips64el
openrisc
parisc
parisc64
ppc
ppc64
ppcemb
s390
s390x
sh4
sh4eb
sparc
sparc64
unicore32
Microprocessor Research and Development Center RISC Unicore32
x86_64
xtensa
xtensaeb
Tensilica Xtensa configurable microprocessor core (Big Endian)
- hypervisor_type
The hypervisor type. Allowed values include:
xen
,qemu
,kvm
,lxc
,uml
,vmware
,hyperv
,powervm
.- vm_mode
The virtual machine mode. This represents the host/guest ABI (application binary interface) used for the virtual machine. Allowed values are:
hvm
Fully virtualized. This is the mode used by QEMU and KVM.
xen
Xen 3.0 paravirtualized.
uml
User Mode Linux paravirtualized.
exe
Executables in containers. This is the mode used by LXC.
The following metadata properties are specific to the XenAPI driver:
- auto_disk_config
A boolean option. If true, the root partition on the disk will be automatically resized before the instance boots. This value is only taken into account by the Compute service when using a Xen-based hypervisor with the XenAPI driver. The Compute service will only attempt to resize if there is a single partition on the image, and only if the partition is in ext3 or ext4 format.
- os_type
The operating system installed on the image, e.g.
linux
,windows
. The XenAPI driver contains logic that will take different actions depending on the value of the os_type parameter of the image. For example, for images whereos_type=windows
, it will create a FAT32-based swap partition instead of a Linux swap partition, and it will limit the injected hostname to less than 16 characters.
The following metadata properties are specific to the VMware API driver:
- vmware_adaptertype
Indicates the virtual SCSI or IDE controller used by the hypervisor. Allowed values:
lsiLogic
,busLogic
,ide
- vmware_ostype
A VMware GuestID which describes the operating system installed in the image. This will be passed to the hypervisor when creating a virtual machine. See thinkvirt.com for a list of valid values. If this is not specified, it will default to
otherGuest
.
- vmware_image_version
Currently unused, set it to
1
.
In order to assist end-users in utilizing images, you may wish to put additional common metadata on Glance images. By community agreement, the following metadata keys may be used across Glance installations for the purposes described below.
- instance_uuid
For snapshot images, this is the UUID of the server used to create this image.
- kernel_id
The ID of image stored in Glance that should be used as the kernel when booting an AMI-style image.
- ramdisk_id
The ID of image stored in Glance that should be used as the ramdisk when booting an AMI-style image.
- os_version
The operating system version as specified by the distributor.
- os_distro
The value of this property is the common name of the operating system distribution in all-lowercase. For this purpose, we use the same data vocabulary as the libosinfo project. Following are the recognized values for this property. In the interest of interoperability, please use only a recognized value for this field. The deprecated values are listed to assist you in searching for the recognized value. Allowed values are:
arch
This is: Arch Linux
Do not use:
archlinux
, ororg.archlinux
centos
This is: Community Enterprise Operating System
Do not use:
org.centos
CentOS
debian
This is: Debian
Do not use:
Debian
, ororg.debian
fedora
This is: Fedora
Do not use:
Fedora
,org.fedora
, ororg.fedoraproject
freebsd
This is: FreeBSD
Do not use:
org.freebsd
,freeBSD
, orFreeBSD
gentoo
This is: Gentoo Linux
Do not use:
Gentoo
, ororg.gentoo
mandrake
This is: Mandrakelinux (MandrakeSoft)
Do not use:
mandrakelinux
, orMandrakeLinux
mandriva
This is: Mandriva Linux
Do not use:
mandrivalinux
mes
This is: Mandriva Enterprise Server
Do not use:
mandrivaent
, ormandrivaES
msdos
This is: Microsoft Disc Operating System
Do not use:
ms-dos
netbsd
This is: NetBSD
Do not use:
NetBSD
, ororg.netbsd
netware
This is: Novell NetWare
Do not use:
novell
, orNetWare
openbsd
This is: OpenBSD
Do not use:
OpenBSD
, ororg.openbsd
opensolaris
Do not use:
OpenSolaris
,ororg.opensolaris
opensuse
This is: openSUSE
Do not use:
suse
,SuSE
, ororg.opensuse
rhel
This is: Red Hat Enterprise Linux
Do not use:
redhat
,RedHat
, orcom.redhat
sled
This is: SUSE Linux Enterprise Desktop
Do not use:
com.suse
ubuntu
This is: Ubuntu
Do not use:
Ubuntu
,com.ubuntu
,org.ubuntu
, orcanonical
windows
This is: Microsoft Windows
Do not use:
com.microsoft.server
, orwindoze