Description

The Glance project provides an image registration and discovery service
(Parallax) and an image delivery service (Teller). These services are used
in conjunction by Nova to deliver images from object stores, such as
OpenStack's Swift service, to Nova's compute nodes.

Overview

This charm provides the Glance image service for OpenStack. It is intended to
be used alongside the other OpenStack components, starting with the Essex
release in Ubuntu 12.04.

Usage

Glance may be deployed in a number of ways. This charm focuses on 3 main
configurations. All require the existence of the other core OpenStack
services deployed via Juju charms, specifically: mysql, keystone and
nova-cloud-controller. The following assumes these services have already
been deployed.

Local Storage

In this configuration, Glance uses the local storage available on the server
to store image data:

juju deploy glance
juju add-relation glance keystone
juju add-relation glance mysql
juju add-relation glance nova-cloud-controller

Swift backed storage

Glance can also use Swift Object storage for image storage. Swift is often
deployed as part of an OpenStack cloud and provides increased resilience and
scale when compared to using local disk storage. This configuration assumes
that you have already deployed Swift using the swift-proxy and swift-storage
charms:

juju deploy glance
juju add-relation glance keystone
juju add-relation glance mysql
juju add-relation glance nova-cloud-controller
juju add-relation glance swift-proxy

This configuration can be used to support Glance in HA/Scale-out deployments.

Ceph backed storage

In this configuration, Glance uses Ceph based object storage to provide
scalable, resilient storage of images. This configuration assumes that you
have already deployed Ceph using the ceph charm:

juju deploy glance
juju add-relation glance keystone
juju add-relation glance mysql
juju add-relation glance nova-cloud-controller
juju add-relation glance ceph

This configuration can also be used to support Glance in HA/Scale-out
deployments.

Glance HA/Scale-out

The Glance charm can also be used in a HA/scale-out configuration using
the hacluster charm:

juju deploy -n 3 glance
juju deploy hacluster haglance
juju set glance vip=<virtual IP address to access glance over>
juju add-relation glance haglance
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation glance nova-cloud-controller
juju add-relation glance ceph|swift-proxy

In this configuration, 3 service units host the Glance image service;
API requests are load balanced across all 3 service units via the
configured virtual IP address (which is also registered into Keystone
as the endpoint for Glance).

Note that Glance in this configuration must be used with either Ceph or
Swift providing backing image storage.

Deploying from source

The minimum openstack-origin-git config required to deploy from source is:

openstack-origin-git: include-file://glance-juno.yaml

glance-juno.yaml
    repositories:
    - {name: requirements,
       repository: 'git://github.com/openstack/requirements',
       branch: stable/juno}
    - {name: glance,
       repository: 'git://github.com/openstack/glance',
       branch: stable/juno}

Note that there are only two 'name' values the charm knows about: 'requirements'
and 'glance'. These repositories must correspond to these 'name' values.
Additionally, the requirements repository must be specified first and the
glance repository must be specified last. All other repostories are installed
in the order in which they are specified.

The following is a full list of current tip repos (may not be up-to-date):

openstack-origin-git: include-file://glance-master.yaml

glance-master.yaml
    repositories:
    - {name: requirements,
       repository: 'git://github.com/openstack/requirements',
       branch: master}
    - {name: oslo-concurrency,
       repository: 'git://github.com/openstack/oslo.concurrency',
       branch: master}
    - {name: oslo-config,
       repository: 'git://github.com/openstack/oslo.config',
       branch: master}
    - {name: oslo-db,
       repository: 'git://github.com/openstack/oslo.db',
       branch: master}
    - {name: oslo-i18n,
       repository: 'git://github.com/openstack/oslo.i18n',
       branch: master}
    - {name: oslo-messaging,
       repository: 'git://github.com/openstack/oslo.messaging',
       branch: master}
    - {name: oslo-serialization,
       repository: 'git://github.com/openstack/oslo.serialization',
       branch: master}
    - {name: oslo-utils,
       repository: 'git://github.com/openstack/oslo.utils',
       branch: master}
    - {name: oslo-vmware,
       repository: 'git://github.com/openstack/oslo.vmware',
       branch: master}
    - {name: osprofiler,
       repository: 'git://github.com/stackforge/osprofiler',
       branch: master}
    - {name: pbr,
       repository: 'git://github.com/openstack-dev/pbr',
       branch: master}
    - {name: python-keystoneclient,
       repository: 'git://github.com/openstack/python-keystoneclient',
       branch: master}
    - {name: python-swiftclient,
       repository: 'git://github.com/openstack/python-swiftclient',
       branch: master}
    - {name: sqlalchemy-migrate,
       repository: 'git://github.com/stackforge/sqlalchemy-migrate',
       branch: master}
    - {name: stevedore,
       repository: 'git://github.com/openstack/stevedore',
       branch: master}
    - {name: wsme,
       repository: 'git://github.com/stackforge/wsme',
       branch: master}
    - {name: keystonemiddleware,
       repository: 'git://github.com/openstack/keystonemiddleware',
       branch: master}
    - {name: glance-store,
       repository: 'git://github.com/openstack/glance_store',
       branch: master}
    - {name: glance,
       repository: 'git://github.com/openstack/glance',
       branch: master}

Contact Information

Author: Adam Gandelman adamg@canonical.com
Report bugs at: http://bugs.launchpad.net/charms
Location: http://jujucharms.com

Configuration

ssl_key
(string) SSL key to use with certificate specified as ssl_cert.
vip_iface
(string) Default network interface to use for HA vip when it cannot be automatically determined.
eth0
verbose
(boolean) Enable verbose logging.
os-admin-network
(string) The IP address and netmask of the OpenStack Admin network (e.g., 192.168.0.0/24) . This network will be used for admin endpoints.
haproxy-server-timeout
(int) Server timeout configuration in ms for haproxy, used in HA configurations. If not provided, default value of 30000ms is used.
vip
(string) Virtual IP(s) to use to front API services in HA configuration. . If multiple networks are being used, a VIP should be provided for each network, separated by spaces.
worker-multiplier
(int) The CPU core multiplier to use when configuring worker processes for Glance. By default, the number of workers for each daemon is set to twice the number of CPU cores a service unit has.
2
use-syslog
(boolean) Setting this to True will allow supporting services to log to syslog.
os-public-network
(string) The IP address and netmask of the OpenStack Public network (e.g., 192.168.0.0/24) . This network will be used for public endpoints.
rabbit-user
(string) Username to request access on rabbitmq-server.
glance
prefer-ipv6
(boolean) If True enables IPv6 support. The charm will expect network interfaces to be configured with an IPv6 address. If set to False (default) IPv4 is expected. . NOTE: these charms do not currently support IPv6 privacy extension. In order for this charm to function correctly, the privacy extension must be disabled and a non-temporary address must be configured/available on your network interface.
nagios_servicegroups
(string) A comma-separated list of nagios servicegroups. If left empty, the nagios_context will be used as the servicegroup
haproxy-client-timeout
(int) Client timeout configuration in ms for haproxy, used in HA configurations. If not provided, default value of 30000ms is used.
ha-mcastport
(int) Default multicast port number that will be used to communicate between HA Cluster nodes.
5444
os-public-hostname
(string) The hostname or address of the public endpoints created for glance in the keystone identity provider. . This value will be used for public endpoints. For example, an os-public-hostname set to 'glance.example.com' with ssl enabled will create a public endpoint for glance of: . https://glance.example.com:9292/
ssl_cert
(string) SSL certificate to install and use for API ports. Setting this value and ssl_key will enable reverse proxying, point Glance's entry in the Keystone catalog to use https, and override any certficiate and key issued by Keystone (if it is configured to do so).
registry-config-flags
(string) Comma-separated list of key=value pairs to be added to glance-registry.conf where 'value' may itself be a comma-separated list of values to be assigned to the 'key'.
api-config-flags
(string) Comma-separated list of key=value pairs to be added to glance-api.conf where 'value' may itself be a comma-separated list of values to be assigned to the 'key'.
openstack-origin
(string) Repository from which to install. May be one of the following: distro (default), ppa:somecustom/ppa, a deb url sources entry, or a supported Cloud Archive release pocket. Supported Cloud Archive sources include: cloud:<series>-<openstack-release> cloud:<series>-<openstack-release>/updates cloud:<series>-<openstack-release>/staging cloud:<series>-<openstack-release>/proposed For series=Precise we support cloud archives for openstack-release: * icehouse For series=Trusty we support cloud archives for openstack-release: * juno * kilo * ... NOTE: updating this setting to a source that is known to provide a later version of OpenStack will trigger a software upgrade. NOTE: when openstack-origin-git is specified, openstack specific packages will be installed from source rather than from the openstack-origin repository.
distro
ceph-osd-replication-count
(int) This value dictates the number of replicas ceph must make of any object it stores within the images rbd pool. Of course, this only applies if using Ceph as a backend store. Note that once the images rbd pool has been created, changing this value will not have any effect (although it can be changed in ceph by manually configuring your ceph cluster).
3
os-internal-network
(string) The IP address and netmask of the OpenStack Internal network (e.g., 192.168.0.0/24) . This network will be used for internal endpoints.
database
(string) Glance database name.
glance
openstack-origin-git
(string) Specifies a YAML-formatted dictionary listing the git repositories and branches from which to install OpenStack and its dependencies. Note that the installed config files will be determined based on the OpenStack release of the openstack-origin option. For more details see README.md.
region
(string) OpenStack Region
RegionOne
nagios_context
(string) Used by the nrpe-external-master subordinate charm. A string that will be prepended to instance name to set the host name in nagios. So for instance the hostname would be something like: juju-myservice-0 If you're running multiple environments with the same services in them this allows you to differentiate between them.
juju
ssl_ca
(string) SSL CA to use with the certificate and key provided - this is only required if you are providing a privately signed ssl_cert and ssl_key.
rabbit-vhost
(string) RabbitMQ virtual host to request access on rabbitmq-server.
openstack
debug
(boolean) Enable debug logging.
ha-bindiface
(string) Default network interface on which HA cluster will bind to communication with the other members of the HA Cluster.
eth0
database-user
(string) Database username
glance
vip_cidr
(int) Default CIDR netmask to use for HA vip when it cannot be automatically determined.
24