diff --git a/etc/glance-api.conf b/etc/glance-api.conf
index 6c6e2d435f..04cc54699a 100644
--- a/etc/glance-api.conf
+++ b/etc/glance-api.conf
@@ -7,21 +7,13 @@
 #
 # Set the image owner to tenant or the authenticated user.
 #
-# Assign a boolean value to determine the owner of an image. When set
-# to
+# Assign a boolean value to determine the owner of an image. When set to
 # True, the owner of the image is the tenant. When set to False, the
-# owner of the image will be the authenticated user issuing the
-# request.
-# Setting it to False makes the image private to the associated user
-# and
+# owner of the image will be the authenticated user issuing the request.
+# Setting it to False makes the image private to the associated user and
 # sharing with other users within the same tenant (or "project")
 # requires explicit image sharing via image membership.
 #
-# Services which consume this:
-#     * glance-api
-#     * glare-api
-#     * glance-registry
-#
 # Possible values:
 #     * True
 #     * False
@@ -40,12 +32,6 @@
 # administrative privileges. The default value for this option is
 # 'admin'.
 #
-# Services which consume this:
-#     * glance-api
-#     * glare-api
-#     * glance-registry
-#     * glance-scrubber
-#
 # Possible values:
 #     * A string value which is a valid Keystone role
 #
@@ -64,11 +50,6 @@
 # access the API with read-only privileges. This however only applies
 # when using ContextMiddleware.
 #
-# Services which consumes this:
-#     * glance-api
-#     * glare-api
-#     * glance-registry
-#
 # Possible values:
 #     * True
 #     * False
@@ -84,15 +65,9 @@
 #
 # Provide  an integer value to limit the length of the request ID to
 # the specified length. The default value is 64. Users can change this
-# to any ineteger value between 0 and 16384 however keeping in mind
-# that
+# to any ineteger value between 0 and 16384 however keeping in mind that
 # a larger value may flood the logs.
 #
-# Services which consumes this:
-#     * glance-api
-#     * glare-api
-#     * glance-registry
-#
 # Possible values:
 #     * Integer value between 0 and 16384
 #
@@ -113,9 +88,6 @@
 # API service is running behind a proxy. If the service is running
 # behind a load balancer, add the load balancer's URL for this value.
 #
-# Services which consume this:
-#     * glance-api/glare-api
-#
 # Possible values:
 #     * None
 #     * Proxy URL
@@ -127,203 +99,826 @@
 #  (string value)
 #public_endpoint = <None>
 
-# Whether to allow users to specify image properties beyond what the
-# image schema provides (boolean value)
+#
+# Allow users to add additional/custom properties to images.
+#
+# Glance defines a standard set of properties (in its schema) that
+# appear on every image. These properties are also known as
+# ``base properties``. In addition to these properties, Glance
+# allows users to add custom properties to images. These are known
+# as ``additional properties``.
+#
+# By default, this configuration option is set to ``True`` and users
+# are allowed to add additional properties. The number of additional
+# properties that can be added to an image can be controlled via
+# ``image_property_quota`` configuration option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * image_property_quota
+#
+#  (boolean value)
 #allow_additional_image_properties = true
 
-# Maximum number of image members per image. Negative values evaluate
-# to unlimited. (integer value)
+#
+# Maximum number of image members per image.
+#
+# This limits the maximum of users an image can be shared with. Any negative
+# value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_member_quota = 128
 
-# Maximum number of properties allowed on an image. Negative values
-# evaluate to unlimited. (integer value)
+#
+# Maximum number of properties allowed on an image.
+#
+# This enforces an upper limit on the number of additional properties an image
+# can have. Any negative value is interpreted as unlimited.
+#
+# NOTE: This won't have any impact if additional properties are disabled. Please
+# refer to ``allow_additional_image_properties``.
+#
+# Related options:
+#     * ``allow_additional_image_properties``
+#
+#  (integer value)
 #image_property_quota = 128
 
-# Maximum number of tags allowed on an image. Negative values evaluate
-# to unlimited. (integer value)
+#
+# Maximum number of tags allowed on an image.
+#
+# Any negative value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_tag_quota = 128
 
-# Maximum number of locations allowed on an image. Negative values
-# evaluate to unlimited. (integer value)
+#
+# Maximum number of locations allowed on an image.
+#
+# Any negative value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_location_quota = 10
 
-# Python module path of data access API (string value)
+#
+# Python module path of data access API.
+#
+# Specifies the path to the API to use for accessing the data model.
+# This option determines how the image catalog data will be accessed.
+#
+# Possible values:
+#     * glance.db.sqlalchemy.api
+#     * glance.db.registry.api
+#     * glance.db.simple.api
+#
+# If this option is set to ``glance.db.sqlalchemy.api`` then the image
+# catalog data is stored in and read from the database via the
+# SQLAlchemy Core and ORM APIs.
+#
+# Setting this option to ``glance.db.registry.api`` will force all
+# database access requests to be routed through the Registry service.
+# This avoids data access from the Glance API nodes for an added layer
+# of security, scalability and manageability.
+#
+# NOTE: In v2 OpenStack Images API, the registry service is optional.
+# In order to use the Registry API in v2, the option
+# ``enable_v2_registry`` must be set to ``True``.
+#
+# Finally, when this configuration option is set to
+# ``glance.db.simple.api``, image catalog data is stored in and read
+# from an in-memory data structure. This is primarily used for testing.
+#
+# Related options:
+#     * enable_v2_api
+#     * enable_v2_registry
+#
+#  (string value)
 #data_api = glance.db.sqlalchemy.api
 
-# Default value for the number of items returned by a request if not
-# specified explicitly in the request (integer value)
+#
+# The default number of results to return for a request.
+#
+# Responses to certain API requests, like list images, may return
+# multiple items. The number of results returned can be explicitly
+# controlled by specifying the ``limit`` parameter in the API request.
+# However, if a ``limit`` parameter is not specified, this
+# configuration value will be used as the default number of results to
+# be returned for any API request.
+#
+# NOTES:
+#     * The value of this configuration option may not be greater than
+#       the value specified by ``api_limit_max``.
+#     * Setting this to a very large value may slow down database
+#       queries and increase response times. Setting this to a
+#       very low value may result in poor user experience.
+#
+# Possible values:
+#     * Any positive integer
+#
+# Related options:
+#     * api_limit_max
+#
+#  (integer value)
+# Minimum value: 1
 #limit_param_default = 25
 
-# Maximum permissible number of items that could be returned by a
-# request (integer value)
+#
+# Maximum number of results that could be returned by a request.
+#
+# As described in the help text of ``limit_param_default``, some
+# requests may return multiple results. The number of results to be
+# returned are governed either by the ``limit`` parameter in the
+# request or the ``limit_param_default`` configuration option.
+# The value in either case, can't be greater than the absolute maximum
+# defined by this configuration option. Anything greater than this
+# value is trimmed down to the maximum value defined here.
+#
+# NOTE: Setting this to a very large value may slow down database
+#       queries and increase response times. Setting this to a
+#       very low value may result in poor user experience.
+#
+# Possible values:
+#     * Any positive integer
+#
+# Related options:
+#     * limit_param_default
+#
+#  (integer value)
+# Minimum value: 1
 #api_limit_max = 1000
 
-# Whether to include the backend image storage location in image
-# properties. Revealing storage location can be a security risk, so
-# use this setting with caution! (boolean value)
+#
+# Show direct image location when returning an image.
+#
+# This configuration option indicates whether to show the direct image
+# location when returning image details to the user. The direct image
+# location is where the image data is stored in backend storage. This
+# image location is shown under the image property ``direct_url``.
+#
+# When multiple image locations exist for an image, the best location
+# is displayed based on the location strategy indicated by the
+# configuration option ``location_strategy``.
+#
+# NOTES:
+#     * Revealing image locations can present a GRAVE SECURITY RISK as
+#       image locations can sometimes include credentials. Hence, this
+#       is set to ``False`` by default. Set this to ``True`` with
+#       EXTREME CAUTION and ONLY IF you know what you are doing!
+#     * If an operator wishes to avoid showing any image location(s)
+#       to the user, then both this option and
+#       ``show_multiple_locations`` MUST be set to ``False``.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * show_multiple_locations
+#     * location_strategy
+#
+#  (boolean value)
 #show_image_direct_url = false
 
-# Whether to include the backend image locations in image properties.
-# For example, if using the file system store a URL of
-# "file:///path/to/image" will be returned to the user in the
-# 'direct_url' meta-data field. Revealing storage location can be a
-# security risk, so use this setting with caution! Setting this to
-# true overrides the show_image_direct_url option. (boolean value)
+# DEPRECATED:
+# Show all image locations when returning an image.
+#
+# This configuration option indicates whether to show all the image
+# locations when returning image details to the user. When multiple
+# image locations exist for an image, the locations are ordered based
+# on the location strategy indicated by the configuration opt
+# ``location_strategy``. The image locations are shown under the
+# image property ``locations``.
+#
+# NOTES:
+#     * Revealing image locations can present a GRAVE SECURITY RISK as
+#       image locations can sometimes include credentials. Hence, this
+#       is set to ``False`` by default. Set this to ``True`` with
+#       EXTREME CAUTION and ONLY IF you know what you are doing!
+#     * If an operator wishes to avoid showing any image location(s)
+#       to the user, then both this option and
+#       ``show_image_direct_url`` MUST be set to ``False``.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * show_image_direct_url
+#     * location_strategy
+#
+#  (boolean value)
+# This option is deprecated for removal since Newton.
+# Its value may be silently ignored in the future.
+# Reason: This option will be removed in the Ocata release because the same
+# functionality can be achieved with greater granularity by using policies.
+# Please see the Newton release notes for more information.
 #show_multiple_locations = false
 
-# Maximum size of image a user can upload in bytes. Defaults to
-# 1099511627776 bytes (1 TB).WARNING: this value should only be
-# increased after careful consideration and must be set to a value
-# under 8 EB (9223372036854775808). (integer value)
+#
+# Maximum size of image a user can upload in bytes.
+#
+# An image upload greater than the size mentioned here would result
+# in an image creation failure. This configuration option defaults to
+# 1099511627776 bytes (1 TiB).
+#
+# NOTES:
+#     * This value should only be increased after careful
+#       consideration and must be set less than or equal to
+#       8 EiB (9223372036854775808).
+#     * This value must be set with careful consideration of the
+#       backend storage capacity. Setting this to a very low value
+#       may result in a large number of image failures. And, setting
+#       this to a very large value may result in faster consumption
+#       of storage. Hence, this must be set according to the nature of
+#       images created and storage capacity available.
+#
+# Possible values:
+#     * Any positive number less than or equal to 9223372036854775808
+#
+#  (integer value)
+# Minimum value: 1
 # Maximum value: 9223372036854775808
 #image_size_cap = 1099511627776
 
-# Set a system wide quota for every user. This value is the total
-# capacity that a user can use across all storage systems. A value of
-# 0 means unlimited.Optional unit can be specified for the value.
-# Accepted units are B, KB, MB, GB and TB representing Bytes,
-# KiloBytes, MegaBytes, GigaBytes and TeraBytes respectively. If no
-# unit is specified then Bytes is assumed. Note that there should not
-# be any space between value and unit and units are case sensitive.
-# (string value)
+#
+# Maximum amount of image storage per tenant.
+#
+# This enforces an upper limit on the cumulative storage consumed by all images
+# of a tenant across all stores. This is a per-tenant limit.
+#
+# The default unit for this configuration option is Bytes. However, storage
+# units can be specified using case-sensitive literals ``B``, ``KB``, ``MB``,
+# ``GB`` and ``TB`` representing Bytes, KiloBytes, MegaBytes, GigaBytes and
+# TeraBytes respectively. Note that there should not be any space between the
+# value and unit. Value ``0`` signifies no quota enforcement. Negative values
+# are invalid and result in errors.
+#
+# Possible values:
+#     * A string that is a valid concatenation of a non-negative integer
+#       representing the storage value and an optional string literal
+#       representing storage units as mentioned above.
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #user_storage_quota = 0
 
-# Deploy the v1 OpenStack Images API. (boolean value)
+#
+# Deploy the v1 OpenStack Images API.
+#
+# When this option is set to ``True``, Glance service will respond to
+# requests on registered endpoints conforming to the v1 OpenStack
+# Images API.
+#
+# NOTES:
+#     * If this option is enabled, then ``enable_v1_registry`` must
+#       also be set to ``True`` to enable mandatory usage of Registry
+#       service with v1 API.
+#
+#     * If this option is disabled, then the ``enable_v1_registry``
+#       option, which is enabled by default, is also recommended
+#       to be disabled.
+#
+#     * This option is separate from ``enable_v2_api``, both v1 and v2
+#       OpenStack Images API can be deployed independent of each
+#       other.
+#
+#     * If deploying only the v2 Images API, this option, which is
+#       enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v1_registry
+#     * enable_v2_api
+#
+#  (boolean value)
 #enable_v1_api = true
 
-# Deploy the v2 OpenStack Images API. (boolean value)
+#
+# Deploy the v2 OpenStack Images API.
+#
+# When this option is set to ``True``, Glance service will respond
+# to requests on registered endpoints conforming to the v2 OpenStack
+# Images API.
+#
+# NOTES:
+#     * If this option is disabled, then the ``enable_v2_registry``
+#       option, which is enabled by default, is also recommended
+#       to be disabled.
+#
+#     * This option is separate from ``enable_v1_api``, both v1 and v2
+#       OpenStack Images API can be deployed independent of each
+#       other.
+#
+#     * If deploying only the v1 Images API, this option, which is
+#       enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v2_registry
+#     * enable_v1_api
+#
+#  (boolean value)
 #enable_v2_api = true
 
-# Deploy the v1 OpenStack Registry API. (boolean value)
+#
+# Deploy the v1 API Registry service.
+#
+# When this option is set to ``True``, the Registry service
+# will be enabled in Glance for v1 API requests.
+#
+# NOTES:
+#     * Use of Registry is mandatory in v1 API, so this option must
+#       be set to ``True`` if the ``enable_v1_api`` option is enabled.
+#
+#     * If deploying only the v2 OpenStack Images API, this option,
+#       which is enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v1_api
+#
+#  (boolean value)
 #enable_v1_registry = true
 
-# Deploy the v2 OpenStack Registry API. (boolean value)
+#
+# Deploy the v2 API Registry service.
+#
+# When this option is set to ``True``, the Registry service
+# will be enabled in Glance for v2 API requests.
+#
+# NOTES:
+#     * Use of Registry is optional in v2 API, so this option
+#       must only be enabled if both ``enable_v2_api`` is set to
+#       ``True`` and the ``data_api`` option is set to
+#       ``glance.db.registry.api``.
+#
+#     * If deploying only the v1 OpenStack Images API, this option,
+#       which is enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v2_api
+#     * data_api
+#
+#  (boolean value)
 #enable_v2_registry = true
 
-# The hostname/IP of the pydev process listening for debug connections
-# (string value)
-#pydev_worker_debug_host = <None>
+#
+# Host address of the pydev server.
+#
+# Provide a string value representing the hostname or IP of the
+# pydev server to use for debugging. The pydev server listens for
+# debug connections on this address, facilitating remote debugging
+# in Glance.
+#
+# Possible values:
+#     * Valid hostname
+#     * Valid IP address
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#pydev_worker_debug_host = localhost
 
-# The port on which a pydev process is listening for connections.
-# (port value)
+#
+# Port number that the pydev server will listen on.
+#
+# Provide a port number to bind the pydev server to. The pydev
+# process accepts debug connections on this port and facilitates
+# remote debugging in Glance.
+#
+# Possible values:
+#     * A valid port number
+#
+# Related options:
+#     * None
+#
+#  (port value)
 # Minimum value: 0
 # Maximum value: 65535
 #pydev_worker_debug_port = 5678
 
-# AES key for encrypting store 'location' metadata. This includes, if
-# used, Swift or S3 credentials. Should be set to a random string of
-# length 16, 24 or 32 bytes (string value)
+#
+# AES key for encrypting store location metadata.
+#
+# Provide a string value representing the AES cipher to use for
+# encrypting Glance store metadata.
+#
+# NOTE: The AES key to use must be set to a random string of length
+# 16, 24 or 32 bytes.
+#
+# Possible values:
+#     * String value representing a valid AES key
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #metadata_encryption_key = <None>
 
-# Digest algorithm which will be used for digital signature. Use the
-# command "openssl list-message-digest-algorithms" to get the
-# available algorithms supported by the version of OpenSSL on the
-# platform. Examples are "sha1", "sha256", "sha512", etc. (string
-# value)
+#
+# Digest algorithm to use for digital signature.
+#
+# Provide a string value representing the digest algorithm to
+# use for generating digital signatures. By default, ``sha256``
+# is used.
+#
+# To get a list of the available algorithms supported by the version
+# of OpenSSL on your platform, run the command:
+# ``openssl list-message-digest-algorithms``.
+# Examples are 'sha1', 'sha256', and 'sha512'.
+#
+# NOTE: ``digest_algorithm`` is not related to Glance's image signing
+# and verification. It is only used to sign the universally unique
+# identifier (UUID) as a part of the certificate file and key file
+# validation.
+#
+# Possible values:
+#     * An OpenSSL message digest algorithm identifier
+#
+# Relation options:
+#     * None
+#
+#  (string value)
 #digest_algorithm = sha256
 
-# This value sets what strategy will be used to determine the image
-# location order. Currently two strategies are packaged with Glance
-# 'location_order' and 'store_type'. (string value)
+#
+# Strategy to determine the preference order of image locations.
+#
+# This configuration option indicates the strategy to determine
+# the order in which an image's locations must be accessed to
+# serve the image's data. Glance then retrieves the image data
+# from the first responsive active location it finds in this list.
+#
+# This option takes one of two possible values ``location_order``
+# and ``store_type``. The default value is ``location_order``,
+# which suggests that image data be served by using locations in
+# the order they are stored in Glance. The ``store_type`` value
+# sets the image location preference based on the order in which
+# the storage backends are listed as a comma separated list for
+# the configuration option ``store_type_preference``.
+#
+# Possible values:
+#     * location_order
+#     * store_type
+#
+# Related options:
+#     * store_type_preference
+#
+#  (string value)
 # Allowed values: location_order, store_type
 #location_strategy = location_order
 
-# The location of the property protection file.This file contains the
-# rules for property protections and the roles/policies associated
-# with it. If this config value is not specified, by default, property
+#
+# The location of the property protection file.
+#
+# Provide a valid path to the property protection file which contains
+# the rules for property protections and the roles/policies associated
+# with them.
+#
+# A property protection file, when set, restricts the Glance image
+# properties to be created, read, updated and/or deleted by a specific
+# set of users that are identified by either roles or policies.
+# If this configuration option is not set, by default, property
 # protections won't be enforced. If a value is specified and the file
-# is not found, then the glance-api service will not start. (string
-# value)
+# is not found, the glance-api service will fail to start.
+# More information on property protections can be found at:
+# http://docs.openstack.org/developer/glance/property-protections.html
+#
+# Possible values:
+#     * Empty string
+#     * Valid path to the property protection configuration file
+#
+# Related options:
+#     * property_protection_rule_format
+#
+#  (string value)
 #property_protection_file = <None>
 
-# This config value indicates whether "roles" or "policies" are used
-# in the property protection file. (string value)
+#
+# Rule format for property protection.
+#
+# Provide the desired way to set property protection on Glance
+# image properties. The two permissible values are ``roles``
+# and ``policies``. The default value is ``roles``.
+#
+# If the value is ``roles``, the property protection file must
+# contain a comma separated list of user roles indicating
+# permissions for each of the CRUD operations on each property
+# being protected. If set to ``policies``, a policy defined in
+# policy.json is used to express property protections for each
+# of the CRUD operations. Examples of how property protections
+# are enforced based on ``roles`` or ``policies`` can be found at:
+# http://docs.openstack.org/developer/glance/property-protections.html#examples
+#
+# Possible values:
+#     * roles
+#     * policies
+#
+# Related options:
+#     * property_protection_file
+#
+#  (string value)
 # Allowed values: roles, policies
 #property_protection_rule_format = roles
 
-# Modules of exceptions that are permitted to be recreated upon
-# receiving exception data from an rpc call. (list value)
+#
+# List of allowed exception modules to handle RPC exceptions.
+#
+# Provide a comma separated list of modules whose exceptions are
+# permitted to be recreated upon receiving exception data via an RPC
+# call made to Glance. The default list includes
+# ``glance.common.exception``, ``builtins``, and ``exceptions``.
+#
+# The RPC protocol permits interaction with Glance via calls across a
+# network or within the same system. Including a list of exception
+# namespaces with this option enables RPC to propagate the exceptions
+# back to the users.
+#
+# Possible values:
+#     * A comma separated list of valid exception modules
+#
+# Related options:
+#     * None
+#  (list value)
 #allowed_rpc_exception_modules = glance.common.exception,builtins,exceptions
 
-# Address to bind the server.  Useful when selecting a particular
-# network interface. (string value)
+#
+# IP address to bind the glance servers to.
+#
+# Provide an IP address to bind the glance server to. The default
+# value is ``0.0.0.0``.
+#
+# Edit this option to enable the server to listen on one particular
+# IP address on the network card. This facilitates selection of a
+# particular network interface for the server.
+#
+# Possible values:
+#     * A valid IPv4 address
+#     * A valid IPv6 address
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #bind_host = 0.0.0.0
 
-# The port on which the server will listen. (port value)
+#
+# Port number on which the server will listen.
+#
+# Provide a valid port number to bind the server's socket to. This
+# port is then set to identify processes and forward network messages
+# that arrive at the server. The default bind_port value for the API
+# server is 9292 and for the registry server is 9191.
+#
+# Possible values:
+#     * A valid port number (0 to 65535)
+#
+# Related options:
+#     * None
+#
+#  (port value)
 # Minimum value: 0
 # Maximum value: 65535
 #bind_port = <None>
 
-# The number of child process workers that will be created to service
-# requests. The default will be equal to the number of CPUs available.
-# (integer value)
+#
+# Number of Glance worker processes to start.
+#
+# Provide a non-negative integer value to set the number of child
+# process workers to service requests. By default, the number of CPUs
+# available is set as the value for ``workers``.
+#
+# Each worker process is made to listen on the port set in the
+# configuration file and contains a greenthread pool of size 1000.
+#
+# NOTE: Setting the number of workers to zero, triggers the creation
+# of a single API process with a greenthread pool of size 1000.
+#
+# Possible values:
+#     * 0
+#     * Positive integer value (typically equal to the number of CPUs)
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #workers = <None>
 
-# Maximum line size of message headers to be accepted. max_header_line
-# may need to be increased when using large tokens (typically those
-# generated by the Keystone v3 API with big service catalogs (integer
-# value)
+#
+# Maximum line size of message headers.
+#
+# Provide an integer value representing a length to limit the size of
+# message headers. The default value is 16384.
+#
+# NOTE: ``max_header_line`` may need to be increased when using large
+# tokens (typically those generated by the Keystone v3 API with big
+# service catalogs). However, it is to be kept in mind that larger
+# values for ``max_header_line`` would flood the logs.
+#
+# Setting ``max_header_line`` to 0 sets no limit for the line size of
+# message headers.
+#
+# Possible values:
+#     * 0
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #max_header_line = 16384
 
-# If False, server will return the header "Connection: close", If
-# True, server will return "Connection: Keep-Alive" in its responses.
-# In order to close the client socket connection explicitly after the
-# response is sent and read successfully by the client, you simply
-# have to set this option to False when you create a wsgi server.
-# (boolean value)
+#
+# Set keep alive option for HTTP over TCP.
+#
+# Provide a boolean value to determine sending of keep alive packets.
+# If set to ``False``, the server returns the header
+# "Connection: close". If set to ``True``, the server returns a
+# "Connection: Keep-Alive" in its responses. This enables retention of
+# the same TCP connection for HTTP conversations instead of opening a
+# new one with each new request.
+#
+# This option must be set to ``False`` if the client socket connection
+# needs to be closed explicitly after the response is received and
+# read successfully by the client.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
 #http_keepalive = true
 
-# Timeout for client connections' socket operations. If an incoming
-# connection is idle for this number of seconds it will be closed. A
-# value of '0' means wait forever. (integer value)
+#
+# Timeout for client connections' socket operations.
+#
+# Provide a valid integer value representing time in seconds to set
+# the period of wait before an incoming connection can be closed. The
+# default value is 900 seconds.
+#
+# The value zero implies wait forever.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #client_socket_timeout = 900
 
-# The backlog value that will be used when creating the TCP listener
-# socket. (integer value)
+#
+# Set the number of incoming connection requests.
+#
+# Provide a positive integer value to limit the number of requests in
+# the backlog queue. The default queue size is 4096.
+#
+# An incoming connection to a TCP listener socket is queued before a
+# connection can be established with the server. Setting the backlog
+# for a TCP socket ensures a limited queue size for incoming traffic.
+#
+# Possible values:
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #backlog = 4096
 
-# The value for the socket option TCP_KEEPIDLE.  This is the time in
-# seconds that the connection must be idle before TCP starts sending
-# keepalive probes. (integer value)
+#
+# Set the wait time before a connection recheck.
+#
+# Provide a positive integer value representing time in seconds which
+# is set as the idle wait time before a TCP keep alive packet can be
+# sent to the host. The default value is 600 seconds.
+#
+# Setting ``tcp_keepidle`` helps verify at regular intervals that a
+# connection is intact and prevents frequent TCP connection
+# reestablishment.
+#
+# Possible values:
+#     * Positive integer value representing time in seconds
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #tcp_keepidle = 600
 
-# CA certificate file to use to verify connecting clients. (string
-# value)
-#ca_file = <None>
+#
+# Absolute path to the CA file.
+#
+# Provide a string value representing a valid absolute path to
+# the Certificate Authority file to use for client authentication.
+#
+# A CA file typically contains necessary trusted certificates to
+# use for the client authentication. This is essential to ensure
+# that a secure connection is established to the server via the
+# internet.
+#
+# Possible values:
+#     * Valid absolute path to the CA file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#ca_file = /etc/ssl/cafile
 
-# Certificate file to use when starting API server securely. (string
-# value)
-#cert_file = <None>
+#
+# Absolute path to the certificate file.
+#
+# Provide a string value representing a valid absolute path to the
+# certificate file which is required to start the API service
+# securely.
+#
+# A certificate file typically is a public key container and includes
+# the server's public key, server name, server information and the
+# signature which was a result of the verification process using the
+# CA certificate. This is required for a secure connection
+# establishment.
+#
+# Possible values:
+#     * Valid absolute path to the certificate file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#cert_file = /etc/ssl/certs
 
-# Private key file to use when starting API server securely. (string
-# value)
-#key_file = <None>
+#
+# Absolute path to a private key file.
+#
+# Provide a string value representing a valid absolute path to a
+# private key file which is required to establish the client-server
+# connection.
+#
+# Possible values:
+#     * Absolute path to the private key file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#key_file = /etc/ssl/key/key-file.pem
 
-# DEPRECATED: The HTTP header used to determine the scheme for the
-# original request, even if it was removed by an SSL terminating
-# proxy. Typical value is "HTTP_X_FORWARDED_PROTO". (string value)
+# DEPRECATED: The HTTP header used to determine the scheme for the original
+# request, even if it was removed by an SSL terminating proxy. Typical value is
+# "HTTP_X_FORWARDED_PROTO". (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 # Reason: Use the http_proxy_to_wsgi middleware instead.
 #secure_proxy_ssl_header = <None>
 
 #
-# The relative path to sqlite file database that will be used for
-# image cache
+# The relative path to sqlite file database that will be used for image cache
 # management.
 #
-# This is a relative path to the sqlite file database that tracks the
-# age and
-# usage statistics of image cache. The path is relative to image cache
-# base
-# directory, specified by the configuration option
-# ``image_cache_dir``.
+# This is a relative path to the sqlite file database that tracks the age and
+# usage statistics of image cache. The path is relative to image cache base
+# directory, specified by the configuration option ``image_cache_dir``.
 #
 # This is a lightweight database with just one table.
 #
-# Services which consume this:
-#     * glance-api
-#
 # Possible values:
 #     * A valid relative path to sqlite file database
 #
@@ -336,38 +931,25 @@
 #
 # The driver to use for image cache management.
 #
-# This configuration option provides the flexibility to choose between
-# the
-# different image-cache drivers available. An image-cache driver is
-# responsible
-# for providing the essential functions of image-cache like write
-# images to/read
-# images from cache, track age and usage of cached images, provide a
-# list of
-# cached images, fetch size of the cache, queue images for caching and
-# clean up
+# This configuration option provides the flexibility to choose between the
+# different image-cache drivers available. An image-cache driver is responsible
+# for providing the essential functions of image-cache like write images to/read
+# images from cache, track age and usage of cached images, provide a list of
+# cached images, fetch size of the cache, queue images for caching and clean up
 # the cache, etc.
 #
 # The essential functions of a driver are defined in the base class
-# ``glance.image_cache.drivers.base.Driver``. All image-cache drivers
-# (existing
-# and prospective) must implement this interface. Currently available
-# drivers
-# are ``sqlite`` and ``xattr``. These drivers primarily differ in the
-# way they
+# ``glance.image_cache.drivers.base.Driver``. All image-cache drivers (existing
+# and prospective) must implement this interface. Currently available drivers
+# are ``sqlite`` and ``xattr``. These drivers primarily differ in the way they
 # store the information about cached images:
-#     * The ``sqlite`` driver uses a sqlite database (which sits on
-# every glance
+#     * The ``sqlite`` driver uses a sqlite database (which sits on every glance
 #     node locally) to track the usage of cached images.
-#     * The ``xattr`` driver uses the extended attributes of files to
-# store this
-#     information. It also requires a filesystem that sets ``atime``
-# on the files
+#     * The ``xattr`` driver uses the extended attributes of files to store this
+#     information. It also requires a filesystem that sets ``atime`` on the
+# files
 #     when accessed.
 #
-# Services which consume this:
-#     * glance-api
-#
 # Possible values:
 #     * sqlite
 #     * xattr
@@ -380,37 +962,23 @@
 #image_cache_driver = sqlite
 
 #
-# The upper limit on cache size, in bytes, after which the cache-
-# pruner cleans
+# The upper limit on cache size, in bytes, after which the cache-pruner cleans
 # up the image cache.
 #
-# NOTE: This is just a threshold for cache-pruner to act upon. It is
-# NOT a
-# hard limit beyond which the image cache would never grow. In fact,
-# depending
-# on how often the cache-pruner runs and how quickly the cache fills,
-# the image
-# cache can far exceed the size specified here very easily. Hence,
-# care must be
-# taken to appropriately schedule the cache-pruner and in setting this
-# limit.
+# NOTE: This is just a threshold for cache-pruner to act upon. It is NOT a
+# hard limit beyond which the image cache would never grow. In fact, depending
+# on how often the cache-pruner runs and how quickly the cache fills, the image
+# cache can far exceed the size specified here very easily. Hence, care must be
+# taken to appropriately schedule the cache-pruner and in setting this limit.
 #
-# Glance caches an image when it is downloaded. Consequently, the size
-# of the
-# image cache grows over time as the number of downloads increases. To
-# keep the
+# Glance caches an image when it is downloaded. Consequently, the size of the
+# image cache grows over time as the number of downloads increases. To keep the
 # cache size from becoming unmanageable, it is recommended to run the
-# cache-pruner as a periodic task. When the cache pruner is kicked
-# off, it
-# compares the current size of image cache and triggers a cleanup if
-# the image
-# cache grew beyond the size specified here. After the cleanup, the
-# size of
+# cache-pruner as a periodic task. When the cache pruner is kicked off, it
+# compares the current size of image cache and triggers a cleanup if the image
+# cache grew beyond the size specified here. After the cleanup, the size of
 # cache is less than or equal to size specified here.
 #
-# Services which consume this:
-#     * None (consumed by cache-pruner, an independent periodic task)
-#
 # Possible values:
 #     * Any non-negative integer
 #
@@ -422,32 +990,20 @@
 #image_cache_max_size = 10737418240
 
 #
-# The amount of time, in seconds, an incomplete image remains in the
-# cache.
+# The amount of time, in seconds, an incomplete image remains in the cache.
 #
-# Incomplete images are images for which download is in progress.
-# Please see the
-# description of configuration option ``image_cache_dir`` for more
-# detail.
-# Sometimes, due to various reasons, it is possible the download may
-# hang and
-# the incompletely downloaded image remains in the ``incomplete``
-# directory.
-# This configuration option sets a time limit on how long the
-# incomplete images
-# should remain in the ``incomplete`` directory before they are
-# cleaned up.
-# Once an incomplete image spends more time than is specified here,
-# it'll be
+# Incomplete images are images for which download is in progress. Please see the
+# description of configuration option ``image_cache_dir`` for more detail.
+# Sometimes, due to various reasons, it is possible the download may hang and
+# the incompletely downloaded image remains in the ``incomplete`` directory.
+# This configuration option sets a time limit on how long the incomplete images
+# should remain in the ``incomplete`` directory before they are cleaned up.
+# Once an incomplete image spends more time than is specified here, it'll be
 # removed by cache-cleaner on its next run.
 #
-# It is recommended to run cache-cleaner as a periodic task on the
-# Glance API
+# It is recommended to run cache-cleaner as a periodic task on the Glance API
 # nodes to keep the incomplete images from occupying disk space.
 #
-# Services which consume this:
-#     * None (consumed by cache-cleaner, an independent periodic task)
-#
 # Possible values:
 #     * Any non-negative integer
 #
@@ -461,44 +1017,27 @@
 #
 # Base directory for image cache.
 #
-# This is the location where image data is cached and served out of.
-# All cached
-# images are stored directly under this directory. This directory also
-# contains
-# three subdirectories, namely, ``incomplete``, ``invalid`` and
-# ``queue``.
+# This is the location where image data is cached and served out of. All cached
+# images are stored directly under this directory. This directory also contains
+# three subdirectories, namely, ``incomplete``, ``invalid`` and ``queue``.
 #
-# The ``incomplete`` subdirectory is the staging area for downloading
-# images. An
-# image is first downloaded to this directory. When the image download
-# is
-# successful it is moved to the base directory. However, if the
-# download fails,
-# the partially downloaded image file is moved to the ``invalid``
-# subdirectory.
+# The ``incomplete`` subdirectory is the staging area for downloading images. An
+# image is first downloaded to this directory. When the image download is
+# successful it is moved to the base directory. However, if the download fails,
+# the partially downloaded image file is moved to the ``invalid`` subdirectory.
 #
-# The ``queue``subdirectory is used for queuing images for download.
-# This is
-# used primarily by the cache-prefetcher, which can be scheduled as a
-# periodic
-# task like cache-pruner and cache-cleaner, to cache images ahead of
-# their usage.
-# Upon receiving the request to cache an image, Glance touches a file
-# in the
-# ``queue`` directory with the image id as the file name. The cache-
-# prefetcher,
+# The ``queue``subdirectory is used for queuing images for download. This is
+# used primarily by the cache-prefetcher, which can be scheduled as a periodic
+# task like cache-pruner and cache-cleaner, to cache images ahead of their
+# usage.
+# Upon receiving the request to cache an image, Glance touches a file in the
+# ``queue`` directory with the image id as the file name. The cache-prefetcher,
 # when running, polls for the files in ``queue`` directory and starts
-# downloading them in the order they were created. When the download
-# is
-# successful, the zero-sized file is deleted from the ``queue``
-# directory.
-# If the download fails, the zero-sized file remains and it'll be
-# retried the
+# downloading them in the order they were created. When the download is
+# successful, the zero-sized file is deleted from the ``queue`` directory.
+# If the download fails, the zero-sized file remains and it'll be retried the
 # next time cache-prefetcher runs.
 #
-# Services which consume this:
-#     * glance-api
-#
 # Possible values:
 #     * A valid path
 #
@@ -508,251 +1047,489 @@
 #  (string value)
 #image_cache_dir = <None>
 
-# Default publisher_id for outgoing notifications. (string value)
+#
+# Default publisher_id for outgoing Glance notifications.
+#
+# This is the value that the notification driver will use to identify
+# messages for events originating from the Glance service. Typically,
+# this is the hostname of the instance that generated the message.
+#
+# Possible values:
+#     * Any reasonable instance identifier, for example: image.host1
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #default_publisher_id = image.localhost
 
-# List of disabled notifications. A notification can be given either
-# as a notification type to disable a single event, or as a
-# notification group prefix to disable all events within a group.
-# Example: if this config option is set to ["image.create",
-# "metadef_namespace"], then "image.create" notification will not be
-# sent after image is created and none of the notifications for
-# metadefinition namespaces will be sent. (list value)
+#
+# List of notifications to be disabled.
+#
+# Specify a list of notifications that should not be emitted.
+# A notification can be given either as a notification type to
+# disable a single event notification, or as a notification group
+# prefix to disable all event notifications within a group.
+#
+# Possible values:
+#     A comma-separated list of individual notification types or
+#     notification groups to be disabled. Currently supported groups:
+#         * image
+#         * image.member
+#         * task
+#         * metadef_namespace
+#         * metadef_object
+#         * metadef_property
+#         * metadef_resource_type
+#         * metadef_tag
+#     For a complete listing and description of each event refer to:
+#     http://docs.openstack.org/developer/glance/notifications.html
+#
+#     The values must be specified as: <group_name>.<event_name>
+#     For example: image.create,task.success,metadef_tag
+#
+# Related options:
+#     * None
+#
+#  (list value)
 #disabled_notifications =
 
-# Address to find the registry server. (string value)
+#
+# Address the registry server is hosted on.
+#
+# Possible values:
+#     * A valid IP or hostname
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #registry_host = 0.0.0.0
 
-# Port the registry server is listening on. (port value)
+#
+# Port the registry server is listening on.
+#
+# Possible values:
+#     * A valid port number
+#
+# Related options:
+#     * None
+#
+#  (port value)
 # Minimum value: 0
 # Maximum value: 65535
 #registry_port = 9191
 
-# DEPRECATED: Whether to pass through the user token when making
-# requests to the registry. To prevent failures with token expiration
-# during big files upload, it is recommended to set this parameter to
-# False.If "use_user_token" is not in effect, then admin credentials
-# can be specified. (boolean value)
+# DEPRECATED: Whether to pass through the user token when making requests to the
+# registry. To prevent failures with token expiration during big files upload,
+# it is recommended to set this parameter to False.If "use_user_token" is not in
+# effect, then admin credentials can be specified. (boolean value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #use_user_token = true
 
-# DEPRECATED: The administrators user name. If "use_user_token" is not
-# in effect, then admin credentials can be specified. (string value)
+# DEPRECATED: The administrators user name. If "use_user_token" is not in
+# effect, then admin credentials can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #admin_user = <None>
 
-# DEPRECATED: The administrators password. If "use_user_token" is not
-# in effect, then admin credentials can be specified. (string value)
+# DEPRECATED: The administrators password. If "use_user_token" is not in effect,
+# then admin credentials can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #admin_password = <None>
 
-# DEPRECATED: The tenant name of the administrative user. If
-# "use_user_token" is not in effect, then admin tenant name can be
-# specified. (string value)
+# DEPRECATED: The tenant name of the administrative user. If "use_user_token" is
+# not in effect, then admin tenant name can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #admin_tenant_name = <None>
 
-# DEPRECATED: The URL to the keystone service. If "use_user_token" is
-# not in effect and using keystone auth, then URL of keystone can be
-# specified. (string value)
+# DEPRECATED: The URL to the keystone service. If "use_user_token" is not in
+# effect and using keystone auth, then URL of keystone can be specified. (string
+# value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #auth_url = <None>
 
-# DEPRECATED: The strategy to use for authentication. If
-# "use_user_token" is not in effect, then auth strategy can be
-# specified. (string value)
+# DEPRECATED: The strategy to use for authentication. If "use_user_token" is not
+# in effect, then auth strategy can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #auth_strategy = noauth
 
-# DEPRECATED: The region for the authentication service. If
-# "use_user_token" is not in effect and using keystone auth, then
-# region name can be specified. (string value)
+# DEPRECATED: The region for the authentication service. If "use_user_token" is
+# not in effect and using keystone auth, then region name can be specified.
+# (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #auth_region = <None>
 
-# The protocol to use for communication with the registry server.
-# Either http or https. (string value)
+#
+# Protocol to use for communication with the registry server.
+#
+# Provide a string value representing the protocol to use for
+# communication with the registry server. By default, this option is
+# set to ``http` and the connection is not secure.
+#
+# This option can be set to ``https`` to establish a secure connection
+# to the registry server. In this case, provide a key to use for the
+# SSL connection using the ``registry_client_key_file`` option. Also
+# include the CA file and cert file using the options
+# ``registry_client_ca_file`` and ``registry_client_cert_file``
+# respectively.
+#
+# Possible values:
+#     * http
+#     * https
+#
+# Related options:
+#     * registry_client_key_file
+#     * registry_client_cert_file
+#     * registry_client_ca_file
+#
+#  (string value)
+# Allowed values: http, https
 #registry_client_protocol = http
 
-# The path to the key file to use in SSL connections to the registry
-# server, if any. Alternately, you may set the GLANCE_CLIENT_KEY_FILE
-# environment variable to a filepath of the key file (string value)
-#registry_client_key_file = <None>
+#
+# Absolute path to the private key file.
+#
+# Provide a string value representing a valid absolute path to the
+# private key file to use for establishing a secure connection to
+# the registry server.
+#
+# NOTE: This option must be set if ``registry_client_protocol`` is
+# set to ``https``. Alternatively, the GLANCE_CLIENT_KEY_FILE
+# environment variable may be set to a filepath of the key file.
+#
+# Possible values:
+#     * String value representing a valid absolute path to the key
+#       file.
+#
+# Related options:
+#     * registry_client_protocol
+#
+#  (string value)
+#registry_client_key_file = /etc/ssl/key/key-file.pem
 
-# The path to the cert file to use in SSL connections to the registry
-# server, if any. Alternately, you may set the GLANCE_CLIENT_CERT_FILE
-# environment variable to a filepath of the CA cert file (string
-# value)
-#registry_client_cert_file = <None>
+#
+# Absolute path to the certificate file.
+#
+# Provide a string value representing a valid absolute path to the
+# certificate file to use for establishing a secure connection to
+# the registry server.
+#
+# NOTE: This option must be set if ``registry_client_protocol`` is
+# set to ``https``. Alternatively, the GLANCE_CLIENT_CERT_FILE
+# environment variable may be set to a filepath of the certificate
+# file.
+#
+# Possible values:
+#     * String value representing a valid absolute path to the
+#       certificate file.
+#
+# Related options:
+#     * registry_client_protocol
+#
+#  (string value)
+#registry_client_cert_file = /etc/ssl/certs/file.crt
 
-# The path to the certifying authority cert file to use in SSL
-# connections to the registry server, if any. Alternately, you may set
-# the GLANCE_CLIENT_CA_FILE environment variable to a filepath of the
-# CA cert file. (string value)
-#registry_client_ca_file = <None>
+#
+# Absolute path to the Certificate Authority file.
+#
+# Provide a string value representing a valid absolute path to the
+# certificate authority file to use for establishing a secure
+# connection to the registry server.
+#
+# NOTE: This option must be set if ``registry_client_protocol`` is
+# set to ``https``. Alternatively, the GLANCE_CLIENT_CA_FILE
+# environment variable may be set to a filepath of the CA file.
+# This option is ignored if the ``registry_client_insecure`` option
+# is set to ``True``.
+#
+# Possible values:
+#     * String value representing a valid absolute path to the CA
+#       file.
+#
+# Related options:
+#     * registry_client_protocol
+#     * registry_client_insecure
+#
+#  (string value)
+#registry_client_ca_file = /etc/ssl/cafile/file.ca
 
-# When using SSL in connections to the registry server, do not require
-# validation via a certifying authority. This is the registry's
-# equivalent of specifying --insecure on the command line using
-# glanceclient for the API. (boolean value)
+#
+# Set verification of the registry server certificate.
+#
+# Provide a boolean value to determine whether or not to validate
+# SSL connections to the registry server. By default, this option
+# is set to ``False`` and the SSL connections are validated.
+#
+# If set to ``True``, the connection to the registry server is not
+# validated via a certifying authority and the
+# ``registry_client_ca_file`` option is ignored. This is the
+# registry's equivalent of specifying --insecure on the command line
+# using glanceclient for the API.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * registry_client_protocol
+#     * registry_client_ca_file
+#
+#  (boolean value)
 #registry_client_insecure = false
 
-# The period of time, in seconds, that the API server will wait for a
-# registry request to complete. A value of 0 implies no timeout.
-# (integer value)
+#
+# Timeout value for registry requests.
+#
+# Provide an integer value representing the period of time in seconds
+# that the API server will wait for a registry request to complete.
+# The default value is 600 seconds.
+#
+# A value of 0 implies that a request will never timeout.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #registry_client_timeout = 600
 
-# Whether to pass through headers containing user and tenant
-# information when making requests to the registry. This allows the
-# registry to use the context middleware without keystonemiddleware's
-# auth_token middleware, removing calls to the keystone auth service.
-# It is recommended that when using this option, secure communication
-# between glance api and glance registry is ensured by means other
-# than auth_token middleware. (boolean value)
+#
+# Send headers received from identity when making requests to
+# registry.
+#
+# Typically, Glance registry can be deployed in multiple flavors,
+# which may or may not include authentication. For example,
+# ``trusted-auth`` is a flavor that does not require the registry
+# service to authenticate the requests it receives. However, the
+# registry service may still need a user context to be populated to
+# serve the requests. This can be achieved by the caller
+# (the Glance API usually) passing through the headers it received
+# from authenticating with identity for the same request. The typical
+# headers sent are ``X-User-Id``, ``X-Tenant-Id``, ``X-Roles``,
+# ``X-Identity-Status`` and ``X-Service-Catalog``.
+#
+# Provide a boolean value to determine whether to send the identity
+# headers to provide tenant and user information along with the
+# requests to registry service. By default, this option is set to
+# ``False``, which means that user and tenant information is not
+# available readily. It must be obtained by authenticating. Hence, if
+# this is set to ``False``, ``flavor`` must be set to value that
+# either includes authentication or authenticated user context.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * flavor
+#
+#  (boolean value)
 #send_identity_headers = false
 
-# The amount of time in seconds to delay before performing a delete.
-# (integer value)
+#
+# The amount of time, in seconds, to delay image scrubbing.
+#
+# When delayed delete is turned on, an image is put into ``pending_delete``
+# state upon deletion until the scrubber deletes its image data. Typically, soon
+# after the image is put into ``pending_delete`` state, it is available for
+# scrubbing. However, scrubbing can be delayed until a later point using this
+# configuration option. This option denotes the time period an image spends in
+# ``pending_delete`` state before it is available for scrubbing.
+#
+# It is important to realize that this has storage implications. The larger the
+# ``scrub_time``, the longer the time to reclaim backend storage from deleted
+# images.
+#
+# Possible values:
+#     * Any non-negative integer
+#
+# Related options:
+#     * ``delayed_delete``
+#
+#  (integer value)
+# Minimum value: 0
 #scrub_time = 0
 
-# The size of thread pool to be used for scrubbing images. The default
-# is one, which signifies serial scrubbing. Any value above one
-# indicates the max number of images that may be scrubbed in parallel.
-# (integer value)
+#
+# The size of thread pool to be used for scrubbing images.
+#
+# When there are a large number of images to scrub, it is beneficial to scrub
+# images in parallel so that the scrub queue stays in control and the backend
+# storage is reclaimed in a timely fashion. This configuration option denotes
+# the maximum number of images to be scrubbed in parallel. The default value is
+# one, which signifies serial scrubbing. Any value above one indicates parallel
+# scrubbing.
+#
+# Possible values:
+#     * Any non-zero positive integer
+#
+# Related options:
+#     * ``delayed_delete``
+#
+#  (integer value)
+# Minimum value: 1
 #scrub_pool_size = 1
 
-# Turn on/off delayed delete. (boolean value)
+#
+# Turn on/off delayed delete.
+#
+# Typically when an image is deleted, the ``glance-api`` service puts the image
+# into ``deleted`` state and deletes its data at the same time. Delayed delete
+# is a feature in Glance that delays the actual deletion of image data until a
+# later point in time (as determined by the configuration option
+# ``scrub_time``).
+# When delayed delete is turned on, the ``glance-api`` service puts the image
+# into ``pending_delete`` state upon deletion and leaves the image data in the
+# storage backend for the image scrubber to delete at a later time. The image
+# scrubber will move the image into ``deleted`` state upon successful deletion
+# of image data.
+#
+# NOTE: When delayed delete is turned on, image scrubber MUST be running as a
+# periodic task to prevent the backend storage from filling up with undesired
+# usage.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * ``scrub_time``
+#     * ``wakeup_time``
+#     * ``scrub_pool_size``
+#
+#  (boolean value)
 #delayed_delete = false
 
 #
 # From oslo.log
 #
 
-# If set to true, the logging level will be set to DEBUG instead of
-# the default INFO level. (boolean value)
+# If set to true, the logging level will be set to DEBUG instead of the default
+# INFO level. (boolean value)
 # Note: This option can be changed without restarting.
 #debug = false
 
-# DEPRECATED: If set to false, the logging level will be set to
-# WARNING instead of the default INFO level. (boolean value)
+# DEPRECATED: If set to false, the logging level will be set to WARNING instead
+# of the default INFO level. (boolean value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 #verbose = true
 
-# The name of a logging configuration file. This file is appended to
-# any existing logging configuration files. For details about logging
-# configuration files, see the Python logging module documentation.
-# Note that when logging configuration files are used then all logging
-# configuration is set in the configuration file and other logging
-# configuration options are ignored (for example,
-# logging_context_format_string). (string value)
+# The name of a logging configuration file. This file is appended to any
+# existing logging configuration files. For details about logging configuration
+# files, see the Python logging module documentation. Note that when logging
+# configuration files are used then all logging configuration is set in the
+# configuration file and other logging configuration options are ignored (for
+# example, logging_context_format_string). (string value)
 # Note: This option can be changed without restarting.
 # Deprecated group/name - [DEFAULT]/log_config
 #log_config_append = <None>
 
 # Defines the format string for %%(asctime)s in log records. Default:
-# %(default)s . This option is ignored if log_config_append is set.
-# (string value)
+# %(default)s . This option is ignored if log_config_append is set. (string
+# value)
 #log_date_format = %Y-%m-%d %H:%M:%S
 
-# (Optional) Name of log file to send logging output to. If no default
-# is set, logging will go to stderr as defined by use_stderr. This
-# option is ignored if log_config_append is set. (string value)
+# (Optional) Name of log file to send logging output to. If no default is set,
+# logging will go to stderr as defined by use_stderr. This option is ignored if
+# log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logfile
 #log_file = <None>
 
-# (Optional) The base directory used for relative log_file  paths.
-# This option is ignored if log_config_append is set. (string value)
+# (Optional) The base directory used for relative log_file  paths. This option
+# is ignored if log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logdir
 #log_dir = <None>
 
-# Uses logging handler designed to watch file system. When log file is
-# moved or removed this handler will open a new log file with
-# specified path instantaneously. It makes sense only if log_file
-# option is specified and Linux platform is used. This option is
-# ignored if log_config_append is set. (boolean value)
+# Uses logging handler designed to watch file system. When log file is moved or
+# removed this handler will open a new log file with specified path
+# instantaneously. It makes sense only if log_file option is specified and Linux
+# platform is used. This option is ignored if log_config_append is set. (boolean
+# value)
 #watch_log_file = false
 
-# Use syslog for logging. Existing syslog format is DEPRECATED and
-# will be changed later to honor RFC5424. This option is ignored if
-# log_config_append is set. (boolean value)
+# Use syslog for logging. Existing syslog format is DEPRECATED and will be
+# changed later to honor RFC5424. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_syslog = false
 
 # Syslog facility to receive log lines. This option is ignored if
 # log_config_append is set. (string value)
 #syslog_log_facility = LOG_USER
 
-# Log output to standard error. This option is ignored if
-# log_config_append is set. (boolean value)
+# Log output to standard error. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_stderr = true
 
 # Format string to use for log messages with context. (string value)
 #logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
 
-# Format string to use for log messages when context is undefined.
-# (string value)
+# Format string to use for log messages when context is undefined. (string
+# value)
 #logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
 
-# Additional data to append to log message when logging level for the
-# message is DEBUG. (string value)
+# Additional data to append to log message when logging level for the message is
+# DEBUG. (string value)
 #logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
 
-# Prefix each line of exception output with this format. (string
-# value)
+# Prefix each line of exception output with this format. (string value)
 #logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
 
 # Defines the format string for %(user_identity)s that is used in
 # logging_context_format_string. (string value)
 #logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
 
-# List of package logging levels in logger=LEVEL pairs. This option is
-# ignored if log_config_append is set. (list value)
+# List of package logging levels in logger=LEVEL pairs. This option is ignored
+# if log_config_append is set. (list value)
 #default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
 
 # Enables or disables publication of error events. (boolean value)
 #publish_errors = false
 
-# The format for an instance that is passed with the log message.
-# (string value)
+# The format for an instance that is passed with the log message. (string value)
 #instance_format = "[instance: %(uuid)s] "
 
-# The format for an instance UUID that is passed with the log message.
-# (string value)
+# The format for an instance UUID that is passed with the log message. (string
+# value)
 #instance_uuid_format = "[instance: %(uuid)s] "
 
 # Enables or disables fatal status of deprecations. (boolean value)
@@ -766,68 +1543,100 @@
 # Deprecated group/name - [DEFAULT]/rpc_conn_pool_size
 #rpc_conn_pool_size = 30
 
-# ZeroMQ bind address. Should be a wildcard (*), an ethernet
-# interface, or IP. The "host" option should point or resolve to this
-# address. (string value)
+# The pool size limit for connections expiration policy (integer value)
+#conn_pool_min_size = 2
+
+# The time-to-live in sec of idle connections in the pool (integer value)
+#conn_pool_ttl = 1200
+
+# ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP.
+# The "host" option should point or resolve to this address. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_address
 #rpc_zmq_bind_address = *
 
 # MatchMaker driver. (string value)
 # Allowed values: redis, dummy
+# Deprecated group/name - [DEFAULT]/rpc_zmq_matchmaker
 #rpc_zmq_matchmaker = redis
 
 # Number of ZeroMQ contexts, defaults to 1. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_contexts
 #rpc_zmq_contexts = 1
 
-# Maximum number of ingress messages to locally buffer per topic.
-# Default is unlimited. (integer value)
+# Maximum number of ingress messages to locally buffer per topic. Default is
+# unlimited. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_topic_backlog
 #rpc_zmq_topic_backlog = <None>
 
 # Directory for holding IPC sockets. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_ipc_dir
 #rpc_zmq_ipc_dir = /var/run/openstack
 
-# Name of this node. Must be a valid hostname, FQDN, or IP address.
-# Must match "host" option, if running Nova. (string value)
+# Name of this node. Must be a valid hostname, FQDN, or IP address. Must match
+# "host" option, if running Nova. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_host
 #rpc_zmq_host = localhost
 
-# Seconds to wait before a cast expires (TTL). The default value of -1
-# specifies an infinite linger period. The value of 0 specifies no
-# linger period. Pending messages shall be discarded immediately when
-# the socket is closed. Only supported by impl_zmq. (integer value)
+# Seconds to wait before a cast expires (TTL). The default value of -1 specifies
+# an infinite linger period. The value of 0 specifies no linger period. Pending
+# messages shall be discarded immediately when the socket is closed. Only
+# supported by impl_zmq. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_cast_timeout
 #rpc_cast_timeout = -1
 
-# The default number of seconds that poll should wait. Poll raises
-# timeout exception when timeout expired. (integer value)
+# The default number of seconds that poll should wait. Poll raises timeout
+# exception when timeout expired. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_poll_timeout
 #rpc_poll_timeout = 1
 
-# Expiration timeout in seconds of a name service record about
-# existing target ( < 0 means no timeout). (integer value)
+# Expiration timeout in seconds of a name service record about existing target (
+# < 0 means no timeout). (integer value)
+# Deprecated group/name - [DEFAULT]/zmq_target_expire
 #zmq_target_expire = 300
 
-# Update period in seconds of a name service record about existing
-# target. (integer value)
+# Update period in seconds of a name service record about existing target.
+# (integer value)
+# Deprecated group/name - [DEFAULT]/zmq_target_update
 #zmq_target_update = 180
 
-# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy.
-# (boolean value)
+# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. (boolean
+# value)
+# Deprecated group/name - [DEFAULT]/use_pub_sub
 #use_pub_sub = true
 
 # Use ROUTER remote proxy. (boolean value)
+# Deprecated group/name - [DEFAULT]/use_router_proxy
 #use_router_proxy = true
 
 # Minimal port number for random ports range. (port value)
 # Minimum value: 0
 # Maximum value: 65535
+# Deprecated group/name - [DEFAULT]/rpc_zmq_min_port
 #rpc_zmq_min_port = 49153
 
 # Maximal port number for random ports range. (integer value)
 # Minimum value: 1
 # Maximum value: 65536
+# Deprecated group/name - [DEFAULT]/rpc_zmq_max_port
 #rpc_zmq_max_port = 65536
 
-# Number of retries to find free port number before fail with
-# ZMQBindError. (integer value)
+# Number of retries to find free port number before fail with ZMQBindError.
+# (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_port_retries
 #rpc_zmq_bind_port_retries = 100
 
+# Default serialization mechanism for serializing/deserializing
+# outgoing/incoming messages (string value)
+# Allowed values: json, msgpack
+# Deprecated group/name - [DEFAULT]/rpc_zmq_serialization
+#rpc_zmq_serialization = json
+
+# This option configures round-robin mode in zmq socket. True means not keeping
+# a queue when server side disconnects. False means to keep queue and messages
+# even if server is disconnected, when the server appears we send all
+# accumulated messages to it. (boolean value)
+#zmq_immediate = false
+
 # Size of executor thread pool. (integer value)
 # Deprecated group/name - [DEFAULT]/rpc_thread_pool_size
 #executor_thread_pool_size = 64
@@ -835,20 +1644,19 @@
 # Seconds to wait for a response from a call. (integer value)
 #rpc_response_timeout = 60
 
-# A URL representing the messaging driver to use and its full
-# configuration. (string value)
+# A URL representing the messaging driver to use and its full configuration.
+# (string value)
 #transport_url = <None>
 
-# DEPRECATED: The messaging driver to use, defaults to rabbit. Other
-# drivers include amqp and zmq. (string value)
+# DEPRECATED: The messaging driver to use, defaults to rabbit. Other drivers
+# include amqp and zmq. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 # Reason: Replaced by [DEFAULT]/transport_url
 #rpc_backend = rabbit
 
-# The default exchange under which topics are scoped. May be
-# overridden by an exchange name specified in the transport_url
-# option. (string value)
+# The default exchange under which topics are scoped. May be overridden by an
+# exchange name specified in the transport_url option. (string value)
 #control_exchange = openstack
 
 
@@ -858,29 +1666,26 @@
 # From oslo.middleware.cors
 #
 
-# Indicate whether this resource may be shared with the domain
-# received in the requests "origin" header. Format:
-# "<protocol>://<host>[:<port>]", no trailing slash. Example:
-# https://horizon.example.com (list value)
+# Indicate whether this resource may be shared with the domain received in the
+# requests "origin" header. Format: "<protocol>://<host>[:<port>]", no trailing
+# slash. Example: https://horizon.example.com (list value)
 #allowed_origin = <None>
 
-# Indicate that the actual request can include user credentials
-# (boolean value)
+# Indicate that the actual request can include user credentials (boolean value)
 #allow_credentials = true
 
-# Indicate which headers are safe to expose to the API. Defaults to
-# HTTP Simple Headers. (list value)
+# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
+# Headers. (list value)
 #expose_headers = X-Image-Meta-Checksum,X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID
 
 # Maximum cache age of CORS preflight requests. (integer value)
 #max_age = 3600
 
-# Indicate which methods can be used during the actual request. (list
-# value)
+# Indicate which methods can be used during the actual request. (list value)
 #allow_methods = GET,PUT,POST,DELETE,PATCH
 
-# Indicate which header field names may be used during the actual
-# request. (list value)
+# Indicate which header field names may be used during the actual request. (list
+# value)
 #allow_headers = Content-MD5,X-Image-Meta-Checksum,X-Storage-Token,Accept-Encoding,X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID
 
 
@@ -890,29 +1695,26 @@
 # From oslo.middleware.cors
 #
 
-# Indicate whether this resource may be shared with the domain
-# received in the requests "origin" header. Format:
-# "<protocol>://<host>[:<port>]", no trailing slash. Example:
-# https://horizon.example.com (list value)
+# Indicate whether this resource may be shared with the domain received in the
+# requests "origin" header. Format: "<protocol>://<host>[:<port>]", no trailing
+# slash. Example: https://horizon.example.com (list value)
 #allowed_origin = <None>
 
-# Indicate that the actual request can include user credentials
-# (boolean value)
+# Indicate that the actual request can include user credentials (boolean value)
 #allow_credentials = true
 
-# Indicate which headers are safe to expose to the API. Defaults to
-# HTTP Simple Headers. (list value)
+# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
+# Headers. (list value)
 #expose_headers = X-Image-Meta-Checksum,X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID
 
 # Maximum cache age of CORS preflight requests. (integer value)
 #max_age = 3600
 
-# Indicate which methods can be used during the actual request. (list
-# value)
+# Indicate which methods can be used during the actual request. (list value)
 #allow_methods = GET,PUT,POST,DELETE,PATCH
 
-# Indicate which header field names may be used during the actual
-# request. (list value)
+# Indicate which header field names may be used during the actual request. (list
+# value)
 #allow_headers = Content-MD5,X-Image-Meta-Checksum,X-Storage-Token,Accept-Encoding,X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID
 
 
@@ -926,8 +1728,8 @@
 # Deprecated group/name - [DEFAULT]/sqlite_db
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: Should use config option connection or slave_connection to
-# connect the database.
+# Reason: Should use config option connection or slave_connection to connect the
+# database.
 #sqlite_db = oslo.sqlite
 
 # If True, SQLite uses synchronous mode. (boolean value)
@@ -938,21 +1740,21 @@
 # Deprecated group/name - [DEFAULT]/db_backend
 #backend = sqlalchemy
 
-# The SQLAlchemy connection string to use to connect to the database.
-# (string value)
+# The SQLAlchemy connection string to use to connect to the database. (string
+# value)
 # Deprecated group/name - [DEFAULT]/sql_connection
 # Deprecated group/name - [DATABASE]/sql_connection
 # Deprecated group/name - [sql]/connection
 #connection = <None>
 
-# The SQLAlchemy connection string to use to connect to the slave
-# database. (string value)
+# The SQLAlchemy connection string to use to connect to the slave database.
+# (string value)
 #slave_connection = <None>
 
-# The SQL mode to be used for MySQL sessions. This option, including
-# the default, overrides any server-set SQL mode. To use whatever SQL
-# mode is set by the server configuration, set this to no value.
-# Example: mysql_sql_mode= (string value)
+# The SQL mode to be used for MySQL sessions. This option, including the
+# default, overrides any server-set SQL mode. To use whatever SQL mode is set by
+# the server configuration, set this to no value. Example: mysql_sql_mode=
+# (string value)
 #mysql_sql_mode = TRADITIONAL
 
 # Timeout before idle SQL connections are reaped. (integer value)
@@ -961,38 +1763,37 @@
 # Deprecated group/name - [sql]/idle_timeout
 #idle_timeout = 3600
 
-# Minimum number of SQL connections to keep open in a pool. (integer
-# value)
+# Minimum number of SQL connections to keep open in a pool. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_min_pool_size
 # Deprecated group/name - [DATABASE]/sql_min_pool_size
 #min_pool_size = 1
 
-# Maximum number of SQL connections to keep open in a pool. (integer
-# value)
+# Maximum number of SQL connections to keep open in a pool. Setting a value of 0
+# indicates no limit. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_pool_size
 # Deprecated group/name - [DATABASE]/sql_max_pool_size
-#max_pool_size = <None>
+#max_pool_size = 5
 
-# Maximum number of database connection retries during startup. Set to
-# -1 to specify an infinite retry count. (integer value)
+# Maximum number of database connection retries during startup. Set to -1 to
+# specify an infinite retry count. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_retries
 # Deprecated group/name - [DATABASE]/sql_max_retries
 #max_retries = 10
 
-# Interval between retries of opening a SQL connection. (integer
-# value)
+# Interval between retries of opening a SQL connection. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_retry_interval
 # Deprecated group/name - [DATABASE]/reconnect_interval
 #retry_interval = 10
 
-# If set, use this value for max_overflow with SQLAlchemy. (integer
-# value)
+# If set, use this value for max_overflow with SQLAlchemy. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_overflow
 # Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
 #max_overflow = 50
 
-# Verbosity of SQL debugging information: 0=None, 100=Everything.
-# (integer value)
+# Verbosity of SQL debugging information: 0=None, 100=Everything. (integer
+# value)
+# Minimum value: 0
+# Maximum value: 100
 # Deprecated group/name - [DEFAULT]/sql_connection_debug
 #connection_debug = 0
 
@@ -1000,37 +1801,35 @@
 # Deprecated group/name - [DEFAULT]/sql_connection_trace
 #connection_trace = false
 
-# If set, use this value for pool_timeout with SQLAlchemy. (integer
-# value)
+# If set, use this value for pool_timeout with SQLAlchemy. (integer value)
 # Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
 #pool_timeout = <None>
 
-# Enable the experimental use of database reconnect on connection
-# lost. (boolean value)
+# Enable the experimental use of database reconnect on connection lost. (boolean
+# value)
 #use_db_reconnect = false
 
 # Seconds between retries of a database transaction. (integer value)
 #db_retry_interval = 1
 
-# If True, increases the interval between retries of a database
-# operation up to db_max_retry_interval. (boolean value)
+# If True, increases the interval between retries of a database operation up to
+# db_max_retry_interval. (boolean value)
 #db_inc_retry_interval = true
 
-# If db_inc_retry_interval is set, the maximum seconds between retries
-# of a database operation. (integer value)
+# If db_inc_retry_interval is set, the maximum seconds between retries of a
+# database operation. (integer value)
 #db_max_retry_interval = 10
 
-# Maximum retries in case of connection error or deadlock error before
-# error is raised. Set to -1 to specify an infinite retry count.
-# (integer value)
+# Maximum retries in case of connection error or deadlock error before error is
+# raised. Set to -1 to specify an infinite retry count. (integer value)
 #db_max_retries = 20
 
 #
 # From oslo.db.concurrency
 #
 
-# Enable the experimental use of thread pooling for all DB API calls
-# (boolean value)
+# Enable the experimental use of thread pooling for all DB API calls (boolean
+# value)
 # Deprecated group/name - [DEFAULT]/dbapi_use_tpool
 #use_tpool = false
 
@@ -1041,361 +1840,1325 @@
 # From glance.store
 #
 
-# List of stores enabled. Valid stores are: cinder, file, http, rbd,
-# sheepdog, swift, s3, vsphere (list value)
+#
+# List of enabled Glance stores.
+#
+# Register the storage backends to use for storing disk images
+# as a comma separated list. The default stores enabled for
+# storing disk images with Glance are ``file`` and ``http``.
+#
+# Possible values:
+#     * A comma separated list that could include:
+#         * file
+#         * http
+#         * swift
+#         * rbd
+#         * sheepdog
+#         * cinder
+#         * vmware
+#
+# Related Options:
+#     * default_store
+#
+#  (list value)
 #stores = file,http
 
-# Default scheme to use to store image data. The scheme must be
-# registered by one of the stores defined by the 'stores' config
-# option. (string value)
+#
+# The default scheme to use for storing images.
+#
+# Provide a string value representing the default scheme to use for
+# storing images. If not set, Glance uses ``file`` as the default
+# scheme to store images with the ``file`` store.
+#
+# NOTE: The value given for this configuration option must be a valid
+# scheme for a store registered with the ``stores`` configuration
+# option.
+#
+# Possible values:
+#     * file
+#     * filesystem
+#     * http
+#     * https
+#     * swift
+#     * swift+http
+#     * swift+https
+#     * swift+config
+#     * rbd
+#     * sheepdog
+#     * cinder
+#     * vsphere
+#
+# Related Options:
+#     * stores
+#
+#  (string value)
+# Allowed values: file, filesystem, http, https, swift, swift+http, swift+https, swift+config, rbd, sheepdog, cinder, vsphere
 #default_store = file
 
-# Minimum interval seconds to execute updating dynamic storage
-# capabilities based on backend status then. It's not a periodic
-# routine, the update logic will be executed only when interval
-# seconds elapsed and an operation of store has triggered. The feature
-# will be enabled only when the option value greater then zero.
-# (integer value)
+#
+# Minimum interval in seconds to execute updating dynamic storage
+# capabilities based on current backend status.
+#
+# Provide an integer value representing time in seconds to set the
+# minimum interval before an update of dynamic storage capabilities
+# for a storage backend can be attempted. Setting
+# ``store_capabilities_update_min_interval`` does not mean updates
+# occur periodically based on the set interval. Rather, the update
+# is performed at the elapse of this interval set, if an operation
+# of the store is triggered.
+#
+# By default, this option is set to zero and is disabled. Provide an
+# integer value greater than zero to enable this option.
+#
+# NOTE: For more information on store capabilities and their updates,
+# please visit: https://specs.openstack.org/openstack/glance-specs/specs/kilo
+# /store-capabilities.html
+#
+# For more information on setting up a particular store in your
+# deplyment and help with the usage of this feature, please contact
+# the storage driver maintainers listed here:
+# http://docs.openstack.org/developer/glance_store/drivers/index.html
+#
+# Possible values:
+#     * Zero
+#     * Positive integer
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #store_capabilities_update_min_interval = 0
 
-# Specify the path to the CA bundle file to use in verifying the
-# remote server certificate. (string value)
-#https_ca_certificates_file = <None>
-
-# If true, the remote server certificate is not verified. If false,
-# then the default CA truststore is used for verification. This option
-# is ignored if "https_ca_certificates_file" is set. (boolean value)
-#https_insecure = true
-
-# Specify the http/https proxy information that should be used to
-# connect to the remote server. The proxy information should be a key
-# value pair of the scheme and proxy. e.g. http:10.0.0.1:3128. You can
-# specify proxies for multiple schemes by seperating the key value
-# pairs with a comma.e.g. http:10.0.0.1:3128, https:10.0.0.1:1080.
-# (dict value)
-#http_proxy_information =
-
-# If True, swiftclient won't check for a valid SSL certificate when
-# authenticating. (boolean value)
-#swift_store_auth_insecure = false
-
-# A string giving the CA certificate file to use in SSL connections
-# for verifying certs. (string value)
-#swift_store_cacert = <None>
-
-# The region of the swift endpoint to be used for single tenant. This
-# setting is only necessary if the tenant has multiple swift
-# endpoints. (string value)
-#swift_store_region = <None>
-
-# If set, the configured endpoint will be used. If None, the storage
-# url from the auth response will be used. (string value)
-#swift_store_endpoint = <None>
-
-# A string giving the endpoint type of the swift service to use
-# (publicURL, adminURL or internalURL). This setting is only used if
-# swift_store_auth_version is 2. (string value)
-#swift_store_endpoint_type = publicURL
-
-# A string giving the service type of the swift service to use. This
-# setting is only used if swift_store_auth_version is 2. (string
-# value)
-#swift_store_service_type = object-store
-
-# Container within the account that the account should use for storing
-# images in Swift when using single container mode. In multiple
-# container mode, this will be the prefix for all containers. (string
-# value)
-#swift_store_container = glance
-
-# The size, in MB, that Glance will start chunking image files and do
-# a large object manifest in Swift. (integer value)
-#swift_store_large_object_size = 5120
-
-# The amount of data written to a temporary disk buffer during the
-# process of chunking the image file. (integer value)
-#swift_store_large_object_chunk_size = 200
-
-# A boolean value that determines if we create the container if it
-# does not exist. (boolean value)
-#swift_store_create_container_on_put = false
-
-# If set to True, enables multi-tenant storage mode which causes
-# Glance images to be stored in tenant specific Swift accounts.
-# (boolean value)
-#swift_store_multi_tenant = false
-
-# When set to 0, a single-tenant store will only use one container to
-# store all images. When set to an integer value between 1 and 32, a
-# single-tenant store will use multiple containers to store images,
-# and this value will determine how many containers are created.Used
-# only when swift_store_multi_tenant is disabled. The total number of
-# containers that will be used is equal to 16^N, so if this config
-# option is set to 2, then 16^2=256 containers will be used to store
-# images. (integer value)
-#swift_store_multiple_containers_seed = 0
-
-# A list of tenants that will be granted read/write access on all
-# Swift containers created by Glance in multi-tenant mode. (list
-# value)
-#swift_store_admin_tenants =
-
-# If set to False, disables SSL layer compression of https swift
-# requests. Setting to False may improve performance for images which
-# are already in a compressed format, eg qcow2. (boolean value)
-#swift_store_ssl_compression = true
-
-# The number of times a Swift download will be retried before the
-# request fails. (integer value)
-#swift_store_retry_get_count = 0
-
-# The period of time (in seconds) before token expirationwhen
-# glance_store will try to reques new user token. Default value 60 sec
-# means that if token is going to expire in 1 min then glance_store
-# request new user token. (integer value)
-#swift_store_expire_soon_interval = 60
-
-# If set to True create a trust for each add/get request to Multi-
-# tenant store in order to prevent authentication token to be expired
-# during uploading/downloading data. If set to False then user token
-# is used for Swift connection (so no overhead on trust creation).
-# Please note that this option is considered only and only if
-# swift_store_multi_tenant=True (boolean value)
-#swift_store_use_trusts = true
-
-# The reference to the default swift account/backing store parameters
-# to use for adding new images. (string value)
-#default_swift_reference = ref1
-
-# Version of the authentication service to use. Valid versions are 2
-# and 3 for keystone and 1 (deprecated) for swauth and rackspace.
-# (deprecated - use "auth_version" in swift_store_config_file) (string
-# value)
-#swift_store_auth_version = 2
-
-# The address where the Swift authentication service is listening.
-# (deprecated - use "auth_address" in swift_store_config_file) (string
-# value)
-#swift_store_auth_address = <None>
-
-# The user to authenticate against the Swift authentication service
-# (deprecated - use "user" in swift_store_config_file) (string value)
-#swift_store_user = <None>
-
-# Auth key for the user authenticating against the Swift
-# authentication service. (deprecated - use "key" in
-# swift_store_config_file) (string value)
-#swift_store_key = <None>
-
-# The config file that has the swift account(s)configs. (string value)
-#swift_store_config_file = <None>
-
-# Directory to which the Filesystem backend store writes images.
-# (string value)
+#
+# Directory to which the filesystem backend store writes images.
+#
+# Upon start up, Glance creates the directory if it doesn't already
+# exist and verifies write access to the user under which
+# ``glance-api`` runs. If the write access isn't available, a
+# ``BadStoreConfiguration`` exception is raised and the filesystem
+# store may not be available for adding new images.
+#
+# NOTE: This directory is used only when filesystem store is used as a
+# storage backend. Either ``filesystem_store_datadir`` or
+# ``filesystem_store_datadirs`` option must be specified in
+# ``glance-api.conf``. If both options are specified, a
+# ``BadStoreConfiguration`` will be raised and the filesystem store
+# may not be available for adding new images.
+#
+# Possible values:
+#     * A valid path to a directory
+#
+# Related options:
+#     * ``filesystem_store_datadirs``
+#     * ``filesystem_store_file_perm``
+#
+#  (string value)
 #filesystem_store_datadir = /var/lib/glance/images
 
-# List of directories and its priorities to which the Filesystem
-# backend store writes images. (multi valued)
+#
+# List of directories and their priorities to which the filesystem
+# backend store writes images.
+#
+# The filesystem store can be configured to store images in multiple
+# directories as opposed to using a single directory specified by the
+# ``filesystem_store_datadir`` configuration option. When using
+# multiple directories, each directory can be given an optional
+# priority to specify the preference order in which they should
+# be used. Priority is an integer that is concatenated to the
+# directory path with a colon where a higher value indicates higher
+# priority. When two directories have the same priority, the directory
+# with most free space is used. When no priority is specified, it
+# defaults to zero.
+#
+# More information on configuring filesystem store with multiple store
+# directories can be found at
+# http://docs.openstack.org/developer/glance/configuring.html
+#
+# NOTE: This directory is used only when filesystem store is used as a
+# storage backend. Either ``filesystem_store_datadir`` or
+# ``filesystem_store_datadirs`` option must be specified in
+# ``glance-api.conf``. If both options are specified, a
+# ``BadStoreConfiguration`` will be raised and the filesystem store
+# may not be available for adding new images.
+#
+# Possible values:
+#     * List of strings of the following form:
+#         * ``<a valid directory path>:<optional integer priority>``
+#
+# Related options:
+#     * ``filesystem_store_datadir``
+#     * ``filesystem_store_file_perm``
+#
+#  (multi valued)
 #filesystem_store_datadirs =
 
+#
+# Filesystem store metadata file.
+#
 # The path to a file which contains the metadata to be returned with
-# any location associated with this store.  The file must contain a
-# valid JSON object. The object should contain the keys 'id' and
-# 'mountpoint'. The value for both keys should be 'string'. (string
-# value)
+# any location associated with the filesystem store. The file must
+# contain a valid JSON object. The object should contain the keys
+# ``id`` and ``mountpoint``. The value for both keys should be a
+# string.
+#
+# Possible values:
+#     * A valid path to the store metadata file
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #filesystem_store_metadata_file = <None>
 
-# The required permission for created image file. In this way the user
-# other service used, e.g. Nova, who consumes the image could be the
-# exclusive member of the group that owns the files created. Assigning
-# it less then or equal to zero means don't change the default
-# permission of the file. This value will be decoded as an octal
-# digit. (integer value)
+#
+# File access permissions for the image files.
+#
+# Set the intended file access permissions for image data. This provides
+# a way to enable other services, e.g. Nova, to consume images directly
+# from the filesystem store. The users running the services that are
+# intended to be given access to could be made a member of the group
+# that owns the files created. Assigning a value less then or equal to
+# zero for this configuration option signifies that no changes be made
+# to the  default permissions. This value will be decoded as an octal
+# digit.
+#
+# For more information, please refer the documentation at
+# http://docs.openstack.org/developer/glance/configuring.html
+#
+# Possible values:
+#     * A valid file access permission
+#     * Zero
+#     * Any negative integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #filesystem_store_file_perm = 0
 
-# The host where the S3 server is listening. (string value)
-#s3_store_host = <None>
+#
+# Path to the CA bundle file.
+#
+# This configuration option enables the operator to use a custom
+# Certificate Authority file to verify the remote server certificate. If
+# this option is set, the ``https_insecure`` option will be ignored and
+# the CA file specified will be used to authenticate the server
+# certificate and establish a secure connection to the server.
+#
+# Possible values:
+#     * A valid path to a CA file
+#
+# Related options:
+#     * https_insecure
+#
+#  (string value)
+#https_ca_certificates_file = <None>
 
-# The S3 query token access key. (string value)
-#s3_store_access_key = <None>
+#
+# Set verification of the remote server certificate.
+#
+# This configuration option takes in a boolean value to determine
+# whether or not to verify the remote server certificate. If set to
+# True, the remote server certificate is not verified. If the option is
+# set to False, then the default CA truststore is used for verification.
+#
+# This option is ignored if ``https_ca_certificates_file`` is set.
+# The remote server certificate will then be verified using the file
+# specified using the ``https_ca_certificates_file`` option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * https_ca_certificates_file
+#
+#  (boolean value)
+#https_insecure = true
 
-# The S3 query token secret key. (string value)
-#s3_store_secret_key = <None>
+#
+# The http/https proxy information to be used to connect to the remote
+# server.
+#
+# This configuration option specifies the http/https proxy information
+# that should be used to connect to the remote server. The proxy
+# information should be a key value pair of the scheme and proxy, for
+# example, http:10.0.0.1:3128. You can also specify proxies for multiple
+# schemes by separating the key value pairs with a comma, for example,
+# http:10.0.0.1:3128, https:10.0.0.1:1080.
+#
+# Possible values:
+#     * A comma separated list of scheme:proxy pairs as described above
+#
+# Related options:
+#     * None
+#
+#  (dict value)
+#http_proxy_information =
 
-# The S3 bucket to be used to store the Glance data. (string value)
-#s3_store_bucket = <None>
+#
+# Address of the ESX/ESXi or vCenter Server target system.
+#
+# This configuration option sets the address of the ESX/ESXi or vCenter
+# Server target system. This option is required when using the VMware
+# storage backend. The address can contain an IP address (127.0.0.1) or
+# a DNS name (www.my-domain.com).
+#
+# Possible Values:
+#     * A valid IPv4 or IPv6 address
+#     * A valid DNS name
+#
+# Related options:
+#     * vmware_server_username
+#     * vmware_server_password
+#
+#  (string value)
+#vmware_server_host = 127.0.0.1
 
-# The local directory where uploads will be staged before they are
-# transferred into S3. (string value)
-#s3_store_object_buffer_dir = <None>
+#
+# Server username.
+#
+# This configuration option takes the username for authenticating with
+# the VMware ESX/ESXi or vCenter Server. This option is required when
+# using the VMware storage backend.
+#
+# Possible Values:
+#     * Any string that is the username for a user with appropriate
+#       privileges
+#
+# Related options:
+#     * vmware_server_host
+#     * vmware_server_password
+#
+#  (string value)
+#vmware_server_username = root
 
-# A boolean to determine if the S3 bucket should be created on upload
-# if it does not exist or if an error should be returned to the user.
-# (boolean value)
-#s3_store_create_bucket_on_put = false
+#
+# Server password.
+#
+# This configuration option takes the password for authenticating with
+# the VMware ESX/ESXi or vCenter Server. This option is required when
+# using the VMware storage backend.
+#
+# Possible Values:
+#     * Any string that is a password corresponding to the username
+#       specified using the "vmware_server_username" option
+#
+# Related options:
+#     * vmware_server_host
+#     * vmware_server_username
+#
+#  (string value)
+#vmware_server_password = vmware
 
-# The S3 calling format used to determine the bucket. Either subdomain
-# or path can be used. (string value)
-#s3_store_bucket_url_format = subdomain
-
-# What size, in MB, should S3 start chunking image files and do a
-# multipart upload in S3. (integer value)
-#s3_store_large_object_size = 100
-
-# What multipart upload part size, in MB, should S3 use when uploading
-# parts. The size must be greater than or equal to 5M. (integer value)
-#s3_store_large_object_chunk_size = 10
-
-# The number of thread pools to perform a multipart upload in S3.
-# (integer value)
-#s3_store_thread_pools = 10
-
-# Enable the use of a proxy. (boolean value)
-#s3_store_enable_proxy = false
-
-# Address or hostname for the proxy server. (string value)
-#s3_store_proxy_host = <None>
-
-# The port to use when connecting over a proxy. (integer value)
-#s3_store_proxy_port = 8080
-
-# The username to connect to the proxy. (string value)
-#s3_store_proxy_user = <None>
-
-# The password to use when connecting over a proxy. (string value)
-#s3_store_proxy_password = <None>
-
-# Info to match when looking for cinder in the service catalog. Format
-# is : separated values of the form:
-# <service_type>:<service_name>:<endpoint_type> (string value)
-#cinder_catalog_info = volumev2::publicURL
-
-# Override service catalog lookup with template for cinder endpoint
-# e.g. http://localhost:8776/v2/%(tenant)s (string value)
-#cinder_endpoint_template = <None>
-
-# Region name of this node. If specified, it will be used to locate
-# OpenStack services for stores. (string value)
-# Deprecated group/name - [glance_store]/os_region_name
-#cinder_os_region_name = <None>
-
-# Location of ca certicates file to use for cinder client requests.
-# (string value)
-#cinder_ca_certificates_file = <None>
-
-# Number of cinderclient retries on failed http calls (integer value)
-#cinder_http_retries = 3
-
-# Time period of time in seconds to wait for a cinder volume
-# transition to complete. (integer value)
-#cinder_state_transition_timeout = 300
-
-# Allow to perform insecure SSL requests to cinder (boolean value)
-#cinder_api_insecure = false
-
-# The address where the Cinder authentication service is listening. If
-# <None>, the cinder endpoint in the service catalog is used. (string
-# value)
-#cinder_store_auth_address = <None>
-
-# User name to authenticate against Cinder. If <None>, the user of
-# current context is used. (string value)
-#cinder_store_user_name = <None>
-
-# Password for the user authenticating against Cinder. If <None>, the
-# current context auth token is used. (string value)
-#cinder_store_password = <None>
-
-# Project name where the image is stored in Cinder. If <None>, the
-# project in current context is used. (string value)
-#cinder_store_project_name = <None>
-
-# Path to the rootwrap configuration file to use for running commands
-# as root. (string value)
-#rootwrap_config = /etc/glance/rootwrap.conf
-
-# ESX/ESXi or vCenter Server target system. The server value can be an
-# IP address or a DNS name. (string value)
-#vmware_server_host = <None>
-
-# Username for authenticating with VMware ESX/VC server. (string
-# value)
-#vmware_server_username = <None>
-
-# Password for authenticating with VMware ESX/VC server. (string
-# value)
-#vmware_server_password = <None>
-
-# Number of times VMware ESX/VC server API must be retried upon
-# connection related issues. (integer value)
+#
+# The number of VMware API retries.
+#
+# This configuration option specifies the number of times the VMware
+# ESX/VC server API must be retried upon connection related issues or
+# server API call overload. It is not possible to specify 'retry
+# forever'.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #vmware_api_retry_count = 10
 
-# The interval used for polling remote tasks invoked on VMware ESX/VC
-# server. (integer value)
+#
+# Interval in seconds used for polling remote tasks invoked on VMware
+# ESX/VC server.
+#
+# This configuration option takes in the sleep time in seconds for polling an
+# on-going async task as part of the VMWare ESX/VC server API call.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #vmware_task_poll_interval = 5
 
-# The name of the directory where the glance images will be stored in
-# the VMware datastore. (string value)
+#
+# The directory where the glance images will be stored in the datastore.
+#
+# This configuration option specifies the path to the directory where the
+# glance images will be stored in the VMware datastore. If this option
+# is not set,  the default directory where the glance images are stored
+# is openstack_glance.
+#
+# Possible Values:
+#     * Any string that is a valid path to a directory
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #vmware_store_image_dir = /openstack_glance
 
-# If true, the ESX/vCenter server certificate is not verified. If
-# false, then the default CA truststore is used for verification. This
-# option is ignored if "vmware_ca_file" is set. (boolean value)
+#
+# Set verification of the ESX/vCenter server certificate.
+#
+# This configuration option takes a boolean value to determine
+# whether or not to verify the ESX/vCenter server certificate. If this
+# option is set to True, the ESX/vCenter server certificate is not
+# verified. If this option is set to False, then the default CA
+# truststore is used for verification.
+#
+# This option is ignored if the "vmware_ca_file" option is set. In that
+# case, the ESX/vCenter server certificate will then be verified using
+# the file specified using the "vmware_ca_file" option .
+#
+# Possible Values:
+#     * True
+#     * False
+#
+# Related options:
+#     * vmware_ca_file
+#
+#  (boolean value)
 # Deprecated group/name - [glance_store]/vmware_api_insecure
 #vmware_insecure = false
 
-# Specify a CA bundle file to use in verifying the ESX/vCenter server
-# certificate. (string value)
-#vmware_ca_file = <None>
+#
+# Absolute path to the CA bundle file.
+#
+# This configuration option enables the operator to use a custom
+# Cerificate Authority File to verify the ESX/vCenter certificate.
+#
+# If this option is set, the "vmware_insecure" option will be ignored
+# and the CA file specified will be used to authenticate the ESX/vCenter
+# server certificate and establish a secure connection to the server.
+#
+# Possible Values:
+#     * Any string that is a valid absolute path to a CA file
+#
+# Related options:
+#     * vmware_insecure
+#
+#  (string value)
+#vmware_ca_file = /etc/ssl/certs/ca-certificates.crt
 
-# A list of datastores where the image can be stored. This option may
-# be specified multiple times for specifying multiple datastores. The
-# datastore name should be specified after its datacenter path,
-# seperated by ":". An optional weight may be given after the
-# datastore name, seperated again by ":". Thus, the required format
-# becomes <datacenter_path>:<datastore_name>:<optional_weight>. When
-# adding an image, the datastore with highest weight will be selected,
-# unless there is not enough free space available in cases where the
-# image size is already known. If no weight is given, it is assumed to
-# be zero and the directory will be considered for selection last. If
-# multiple datastores have the same weight, then the one with the most
-# free space available is selected. (multi valued)
+#
+# The datastores where the image can be stored.
+#
+# This configuration option specifies the datastores where the image can
+# be stored in the VMWare store backend. This option may be specified
+# multiple times for specifying multiple datastores. The datastore name
+# should be specified after its datacenter path, separated by ":". An
+# optional weight may be given after the datastore name, separated again
+# by ":" to specify the priority. Thus, the required format becomes
+# <datacenter_path>:<datastore_name>:<optional_weight>.
+#
+# When adding an image, the datastore with highest weight will be
+# selected, unless there is not enough free space available in cases
+# where the image size is already known. If no weight is given, it is
+# assumed to be zero and the directory will be considered for selection
+# last. If multiple datastores have the same weight, then the one with
+# the most free space available is selected.
+#
+# Possible Values:
+#     * Any string of the format:
+#       <datacenter_path>:<datastore_name>:<optional_weight>
+#
+# Related options:
+#    * None
+#
+#  (multi valued)
 #vmware_datastores =
 
-# Images will be chunked into objects of this size (in megabytes). For
-# best performance, this should be a power of two. (integer value)
+#
+# Chunk size for images to be stored in Sheepdog data store.
+#
+# Provide an integer value representing the size in mebibyte
+# (1048576 bytes) to chunk Glance images into. The default
+# chunk size is 64 mebibytes.
+#
+# When using Sheepdog distributed storage system, the images are
+# chunked into objects of this size and then stored across the
+# distributed data store to use for Glance.
+#
+# Chunk sizes, if a power of two, help avoid fragmentation and
+# enable improved performance.
+#
+# Possible values:
+#     * Positive integer value representing size in mebibytes.
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #sheepdog_store_chunk_size = 64
 
-# Port of sheep daemon. (integer value)
+#
+# Port number on which the sheep daemon will listen.
+#
+# Provide an integer value representing a valid port number on
+# which you want the Sheepdog daemon to listen on. The default
+# port is 7000.
+#
+# The Sheepdog daemon, also called 'sheep', manages the storage
+# in the distributed cluster by writing objects across the storage
+# network. It identifies and acts on the messages it receives on
+# the port number set using ``sheepdog_store_port`` option to store
+# chunks of Glance images.
+#
+# Possible values:
+#     * A valid port number (0 to 65535)
+#
+# Related Options:
+#     * sheepdog_store_address
+#
+#  (port value)
+# Minimum value: 0
+# Maximum value: 65535
 #sheepdog_store_port = 7000
 
-# IP address of sheep daemon. (string value)
-#sheepdog_store_address = localhost
+#
+# Address to bind the Sheepdog daemon to.
+#
+# Provide a string value representing the address to bind the
+# Sheepdog daemon to. The default address set for the 'sheep'
+# is 127.0.0.1.
+#
+# The Sheepdog daemon, also called 'sheep', manages the storage
+# in the distributed cluster by writing objects across the storage
+# network. It identifies and acts on the messages directed to the
+# address set using ``sheepdog_store_address`` option to store
+# chunks of Glance images.
+#
+# Possible values:
+#     * A valid IPv4 address
+#     * A valid IPv6 address
+#     * A valid hostname
+#
+# Related Options:
+#     * sheepdog_store_port
+#
+#  (string value)
+#sheepdog_store_address = 127.0.0.1
 
-# RADOS images will be chunked into objects of this size (in
-# megabytes). For best performance, this should be a power of two.
-# (integer value)
+#
+# Size, in megabytes, to chunk RADOS images into.
+#
+# Provide an integer value representing the size in megabytes to chunk
+# Glance images into. The default chunk size is 8 megabytes. For optimal
+# performance, the value should be a power of two.
+#
+# When Ceph's RBD object storage system is used as the storage backend
+# for storing Glance images, the images are chunked into objects of the
+# size set using this option. These chunked objects are then stored
+# across the distributed block data store to use for Glance.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #rbd_store_chunk_size = 8
 
-# RADOS pool in which images are stored. (string value)
+#
+# RADOS pool in which images are stored.
+#
+# When RBD is used as the storage backend for storing Glance images, the
+# images are stored by means of logical grouping of the objects (chunks
+# of images) into a ``pool``. Each pool is defined with the number of
+# placement groups it can contain. The default pool that is used is
+# 'images'.
+#
+# More information on the RBD storage backend can be found here:
+# http://ceph.com/planet/how-data-is-stored-in-ceph-cluster/
+#
+# Possible Values:
+#     * A valid pool name
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #rbd_store_pool = images
 
-# RADOS user to authenticate as (only applicable if using Cephx. If
-# <None>, a default will be chosen based on the client. section in
-# rbd_store_ceph_conf) (string value)
+#
+# RADOS user to authenticate as.
+#
+# This configuration option takes in the RADOS user to authenticate as.
+# This is only needed when RADOS authentication is enabled and is
+# applicable only if the user is using Cephx authentication. If the
+# value for this option is not set by the user or is set to None, a
+# default value will be chosen, which will be based on the client.
+# section in rbd_store_ceph_conf.
+#
+# Possible Values:
+#     * A valid RADOS user
+#
+# Related options:
+#     * rbd_store_ceph_conf
+#
+#  (string value)
 #rbd_store_user = <None>
 
-# Ceph configuration file path. If <None>, librados will locate the
-# default config. If using cephx authentication, this file should
-# include a reference to the right keyring in a client.<USER> section
-# (string value)
+#
+# Ceph configuration file path.
+#
+# This configuration option takes in the path to the Ceph configuration
+# file to be used. If the value for this option is not set by the user
+# or is set to None, librados will locate the default configuration file
+# which is located at /etc/ceph/ceph.conf. If using Cephx
+# authentication, this file should include a reference to the right
+# keyring in a client.<USER> section
+#
+# Possible Values:
+#     * A valid path to a configuration file
+#
+# Related options:
+#     * rbd_store_user
+#
+#  (string value)
 #rbd_store_ceph_conf = /etc/ceph/ceph.conf
 
-# Timeout value (in seconds) used when connecting to ceph cluster. If
-# value <= 0, no timeout is set and default librados value is used.
-# (integer value)
+#
+# Timeout value for connecting to Ceph cluster.
+#
+# This configuration option takes in the timeout value in seconds used
+# when connecting to the Ceph cluster i.e. it sets the time to wait for
+# glance-api before closing the connection. This prevents glance-api
+# hangups during the connection to RBD. If the value for this option
+# is set to less than or equal to 0, no timeout is set and the default
+# librados value is used.
+#
+# Possible Values:
+#     * Any integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #rados_connect_timeout = 0
 
+#
+# Information to match when looking for cinder in the service catalog.
+#
+# When the ``cinder_endpoint_template`` is not set and any of
+# ``cinder_store_auth_address``, ``cinder_store_user_name``,
+# ``cinder_store_project_name``, ``cinder_store_password`` is not set,
+# cinder store uses this information to lookup cinder endpoint from the service
+# catalog in the current context. ``cinder_os_region_name``, if set, is taken
+# into consideration to fetch the appropriate endpoint.
+#
+# The service catalog can be listed by the ``openstack catalog list`` command.
+#
+# Possible values:
+#     * A string of of the following form:
+#       ``<service_type>:<service_name>:<endpoint_type>``
+#       At least ``service_type`` and ``endpoint_type`` should be specified.
+#       ``service_name`` can be omitted.
+#
+# Related options:
+#     * cinder_os_region_name
+#     * cinder_endpoint_template
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#     * cinder_store_password
+#
+#  (string value)
+#cinder_catalog_info = volumev2::publicURL
+
+#
+# Override service catalog lookup with template for cinder endpoint.
+#
+# When this option is set, this value is used to generate cinder endpoint,
+# instead of looking up from the service catalog.
+# This value is ignored if ``cinder_store_auth_address``,
+# ``cinder_store_user_name``, ``cinder_store_project_name``, and
+# ``cinder_store_password`` are specified.
+#
+# If this configuration option is set, ``cinder_catalog_info`` will be ignored.
+#
+# Possible values:
+#     * URL template string for cinder endpoint, where ``%%(tenant)s`` is
+#       replaced with the current tenant (project) name.
+#       For example: ``http://cinder.openstack.example.org/v2/%%(tenant)s``
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#     * cinder_store_password
+#     * cinder_catalog_info
+#
+#  (string value)
+#cinder_endpoint_template = <None>
+
+#
+# Region name to lookup cinder service from the service catalog.
+#
+# This is used only when ``cinder_catalog_info`` is used for determining the
+# endpoint. If set, the lookup for cinder endpoint by this node is filtered to
+# the specified region. It is useful when multiple regions are listed in the
+# catalog. If this is not set, the endpoint is looked up from every region.
+#
+# Possible values:
+#     * A string that is a valid region name.
+#
+# Related options:
+#     * cinder_catalog_info
+#
+#  (string value)
+# Deprecated group/name - [glance_store]/os_region_name
+#cinder_os_region_name = <None>
+
+#
+# Location of a CA certificates file used for cinder client requests.
+#
+# The specified CA certificates file, if set, is used to verify cinder
+# connections via HTTPS endpoint. If the endpoint is HTTP, this value is
+# ignored.
+# ``cinder_api_insecure`` must be set to ``True`` to enable the verification.
+#
+# Possible values:
+#     * Path to a ca certificates file
+#
+# Related options:
+#     * cinder_api_insecure
+#
+#  (string value)
+#cinder_ca_certificates_file = <None>
+
+#
+# Number of cinderclient retries on failed http calls.
+#
+# When a call failed by any errors, cinderclient will retry the call up to the
+# specified times after sleeping a few seconds.
+#
+# Possible values:
+#     * A positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#cinder_http_retries = 3
+
+#
+# Time period, in seconds, to wait for a cinder volume transition to
+# complete.
+#
+# When the cinder volume is created, deleted, or attached to the glance node to
+# read/write the volume data, the volume's state is changed. For example, the
+# newly created volume status changes from ``creating`` to ``available`` after
+# the creation process is completed. This specifies the maximum time to wait for
+# the status change. If a timeout occurs while waiting, or the status is changed
+# to an unexpected value (e.g. `error``), the image creation fails.
+#
+# Possible values:
+#     * A positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#cinder_state_transition_timeout = 300
+
+#
+# Allow to perform insecure SSL requests to cinder.
+#
+# If this option is set to True, HTTPS endpoint connection is verified using the
+# CA certificates file specified by ``cinder_ca_certificates_file`` option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * cinder_ca_certificates_file
+#
+#  (boolean value)
+#cinder_api_insecure = false
+
+#
+# The address where the cinder authentication service is listening.
+#
+# When all of ``cinder_store_auth_address``, ``cinder_store_user_name``,
+# ``cinder_store_project_name``, and ``cinder_store_password`` options are
+# specified, the specified values are always used for the authentication.
+# This is useful to hide the image volumes from users by storing them in a
+# project/tenant specific to the image service. It also enables users to share
+# the image volume among other projects under the control of glance's ACL.
+#
+# If either of these options are not set, the cinder endpoint is looked up
+# from the service catalog, and current context's user and project are used.
+#
+# Possible values:
+#     * A valid authentication service address, for example:
+#       ``http://openstack.example.org/identity/v2.0``
+#
+# Related options:
+#     * cinder_store_user_name
+#     * cinder_store_password
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_auth_address = <None>
+
+#
+# User name to authenticate against cinder.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the user of the current context is used.
+#
+# Possible values:
+#     * A valid user name
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_password
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_user_name = <None>
+
+#
+# Password for the user authenticating against cinder.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the user of the current context is used.
+#
+# Possible values:
+#     * A valid password for the user specified by ``cinder_store_user_name``
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_password = <None>
+
+#
+# Project name where the image volume is stored in cinder.
+#
+# If this configuration option is not set, the project in current context is
+# used.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the project of the current context is used.
+#
+# Possible values:
+#     * A valid project name
+#
+# Related options:
+#     * ``cinder_store_auth_address``
+#     * ``cinder_store_user_name``
+#     * ``cinder_store_password``
+#
+#  (string value)
+#cinder_store_project_name = <None>
+
+#
+# Path to the rootwrap configuration file to use for running commands as root.
+#
+# The cinder store requires root privileges to operate the image volumes (for
+# connecting to iSCSI/FC volumes and reading/writing the volume data, etc.).
+# The configuration file should allow the required commands by cinder store and
+# os-brick library.
+#
+# Possible values:
+#     * Path to the rootwrap config file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#rootwrap_config = /etc/glance/rootwrap.conf
+
+#
+# Set verification of the server certificate.
+#
+# This boolean determines whether or not to verify the server
+# certificate. If this option is set to True, swiftclient won't check
+# for a valid SSL certificate when authenticating. If the option is set
+# to False, then the default CA truststore is used for verification.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * swift_store_cacert
+#
+#  (boolean value)
+#swift_store_auth_insecure = false
+
+#
+# Path to the CA bundle file.
+#
+# This configuration option enables the operator to specify the path to
+# a custom Certificate Authority file for SSL verification when
+# connecting to Swift.
+#
+# Possible values:
+#     * A valid path to a CA file
+#
+# Related options:
+#     * swift_store_auth_insecure
+#
+#  (string value)
+#swift_store_cacert = /etc/ssl/certs/ca-certificates.crt
+
+#
+# The region of Swift endpoint to use by Glance.
+#
+# Provide a string value representing a Swift region where Glance
+# can connect to for image storage. By default, there is no region
+# set.
+#
+# When Glance uses Swift as the storage backend to store images
+# for a specific tenant that has multiple endpoints, setting of a
+# Swift region with ``swift_store_region`` allows Glance to connect
+# to Swift in the specified region as opposed to a single region
+# connectivity.
+#
+# This option can be configured for both single-tenant and
+# multi-tenant storage.
+#
+# NOTE: Setting the region with ``swift_store_region`` is
+# tenant-specific and is necessary ``only if`` the tenant has
+# multiple endpoints across different regions.
+#
+# Possible values:
+#     * A string value representing a valid Swift region.
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_region = RegionTwo
+
+#
+# The URL endpoint to use for Swift backend storage.
+#
+# Provide a string value representing the URL endpoint to use for
+# storing Glance images in Swift store. By default, an endpoint
+# is not set and the storage URL returned by ``auth`` is used.
+# Setting an endpoint with ``swift_store_endpoint`` overrides the
+# storage URL and is used for Glance image storage.
+#
+# NOTE: The URL should include the path up to, but excluding the
+# container. The location of an object is obtained by appending
+# the container and object to the configured URL.
+#
+# Possible values:
+#     * String value representing a valid URL path up to a Swift container
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_endpoint = https://swift.openstack.example.org/v1/path_not_including_container_name
+
+#
+# Endpoint Type of Swift service.
+#
+# This string value indicates the endpoint type to use to fetch the
+# Swift endpoint. The endpoint type determines the actions the user will
+# be allowed to perform, for instance, reading and writing to the Store.
+# This setting is only used if swift_store_auth_version is greater than
+# 1.
+#
+# Possible values:
+#     * publicURL
+#     * adminURL
+#     * internalURL
+#
+# Related options:
+#     * swift_store_endpoint
+#
+#  (string value)
+# Allowed values: publicURL, adminURL, internalURL
+#swift_store_endpoint_type = publicURL
+
+#
+# Type of Swift service to use.
+#
+# Provide a string value representing the service type to use for
+# storing images while using Swift backend storage. The default
+# service type is set to ``object-store``.
+#
+# NOTE: If ``swift_store_auth_version`` is set to 2, the value for
+# this configuration option needs to be ``object-store``. If using
+# a higher version of Keystone or a different auth scheme, this
+# option may be modified.
+#
+# Possible values:
+#     * A string representing a valid service type for Swift storage.
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_service_type = object-store
+
+#
+# Name of single container to store images/name prefix for multiple containers
+#
+# When a single container is being used to store images, this configuration
+# option indicates the container within the Glance account to be used for
+# storing all images. When multiple containers are used to store images, this
+# will be the name prefix for all containers. Usage of single/multiple
+# containers can be controlled using the configuration option
+# ``swift_store_multiple_containers_seed``.
+#
+# When using multiple containers, the containers will be named after the value
+# set for this configuration option with the first N chars of the image UUID
+# as the suffix delimited by an underscore (where N is specified by
+# ``swift_store_multiple_containers_seed``).
+#
+# Example: if the seed is set to 3 and swift_store_container = ``glance``, then
+# an image with UUID ``fdae39a1-bac5-4238-aba4-69bcc726e848`` would be placed in
+# the container ``glance_fda``. All dashes in the UUID are included when
+# creating the container name but do not count toward the character limit, so
+# when N=10 the container name would be ``glance_fdae39a1-ba.``
+#
+# Possible values:
+#     * If using single container, this configuration option can be any string
+#       that is a valid swift container name in Glance's Swift account
+#     * If using multiple containers, this configuration option can be any
+#       string as long as it satisfies the container naming rules enforced by
+#       Swift. The value of ``swift_store_multiple_containers_seed`` should be
+#       taken into account as well.
+#
+# Related options:
+#     * ``swift_store_multiple_containers_seed``
+#     * ``swift_store_multi_tenant``
+#     * ``swift_store_create_container_on_put``
+#
+#  (string value)
+#swift_store_container = glance
+
+#
+# The size threshold, in MB, after which Glance will start segmenting image
+# data.
+#
+# Swift has an upper limit on the size of a single uploaded object. By default,
+# this is 5GB. To upload objects bigger than this limit, objects are segmented
+# into multiple smaller objects that are tied together with a manifest file.
+# For more detail, refer to
+# http://docs.openstack.org/developer/swift/overview_large_objects.html
+#
+# This configuration option specifies the size threshold over which the Swift
+# driver will start segmenting image data into multiple smaller files.
+# Currently, the Swift driver only supports creating Dynamic Large Objects.
+#
+# NOTE: This should be set by taking into account the large object limit
+# enforced by the Swift cluster in consideration.
+#
+# Possible values:
+#     * A positive integer that is less than or equal to the large object limit
+#       enforced by the Swift cluster in consideration.
+#
+# Related options:
+#     * ``swift_store_large_object_chunk_size``
+#
+#  (integer value)
+# Minimum value: 1
+#swift_store_large_object_size = 5120
+
+#
+# The maximum size, in MB, of the segments when image data is segmented.
+#
+# When image data is segmented to upload images that are larger than the limit
+# enforced by the Swift cluster, image data is broken into segments that are no
+# bigger than the size specified by this configuration option.
+# Refer to ``swift_store_large_object_size`` for more detail.
+#
+# For example: if ``swift_store_large_object_size`` is 5GB and
+# ``swift_store_large_object_chunk_size`` is 1GB, an image of size 6.2GB will be
+# segmented into 7 segments where the first six segments will be 1GB in size and
+# the seventh segment will be 0.2GB.
+#
+# Possible values:
+#     * A positive integer that is less than or equal to the large object limit
+#       enforced by Swift cluster in consideration.
+#
+# Related options:
+#     * ``swift_store_large_object_size``
+#
+#  (integer value)
+# Minimum value: 1
+#swift_store_large_object_chunk_size = 200
+
+#
+# Create container, if it doesn't already exist, when uploading image.
+#
+# At the time of uploading an image, if the corresponding container doesn't
+# exist, it will be created provided this configuration option is set to True.
+# By default, it won't be created. This behavior is applicable for both single
+# and multiple containers mode.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
+#swift_store_create_container_on_put = false
+
+#
+# Store images in tenant's Swift account.
+#
+# This enables multi-tenant storage mode which causes Glance images to be stored
+# in tenant specific Swift accounts. If this is disabled, Glance stores all
+# images in its own account. More details multi-tenant store can be found at
+# https://wiki.openstack.org/wiki/GlanceSwiftTenantSpecificStorage
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
+#swift_store_multi_tenant = false
+
+#
+# Seed indicating the number of containers to use for storing images.
+#
+# When using a single-tenant store, images can be stored in one or more than one
+# containers. When set to 0, all images will be stored in one single container.
+# When set to an integer value between 1 and 32, multiple containers will be
+# used to store images. This configuration option will determine how many
+# containers are created. The total number of containers that will be used is
+# equal to 16^N, so if this config option is set to 2, then 16^2=256 containers
+# will be used to store images.
+#
+# Please refer to ``swift_store_container`` for more detail on the naming
+# convention. More detail about using multiple containers can be found at
+# https://specs.openstack.org/openstack/glance-specs/specs/kilo/swift-store-
+# multiple-containers.html
+#
+# NOTE: This is used only when swift_store_multi_tenant is disabled.
+#
+# Possible values:
+#     * A non-negative integer less than or equal to 32
+#
+# Related options:
+#     * ``swift_store_container``
+#     * ``swift_store_multi_tenant``
+#     * ``swift_store_create_container_on_put``
+#
+#  (integer value)
+# Minimum value: 0
+# Maximum value: 32
+#swift_store_multiple_containers_seed = 0
+
+#
+# List of tenants that will be granted admin access.
+#
+# This is a list of tenants that will be granted read/write access on
+# all Swift containers created by Glance in multi-tenant mode. The
+# default value is an empty list.
+#
+# Possible values:
+#     * A comma separated list of strings representing UUIDs of Keystone
+#       projects/tenants
+#
+# Related options:
+#     * None
+#
+#  (list value)
+#swift_store_admin_tenants =
+
+#
+# SSL layer compression for HTTPS Swift requests.
+#
+# Provide a boolean value to determine whether or not to compress
+# HTTPS Swift requests for images at the SSL layer. By default,
+# compression is enabled.
+#
+# When using Swift as the backend store for Glance image storage,
+# SSL layer compression of HTTPS Swift requests can be set using
+# this option. If set to False, SSL layer compression of HTTPS
+# Swift requests is disabled. Disabling this option may improve
+# performance for images which are already in a compressed format,
+# for example, qcow2.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related Options:
+#     * None
+#
+#  (boolean value)
+#swift_store_ssl_compression = true
+
+#
+# The number of times a Swift download will be retried before the
+# request fails.
+#
+# Provide an integer value representing the number of times an image
+# download must be retried before erroring out. The default value is
+# zero (no retry on a failed image download). When set to a positive
+# integer value, ``swift_store_retry_get_count`` ensures that the
+# download is attempted this many more times upon a download failure
+# before sending an error message.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer value
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#swift_store_retry_get_count = 0
+
+#
+# Time in seconds defining the size of the window in which a new
+# token may be requested before the current token is due to expire.
+#
+# Typically, the Swift storage driver fetches a new token upon the
+# expiration of the current token to ensure continued access to
+# Swift. However, some Swift transactions (like uploading image
+# segments) may not recover well if the token expires on the fly.
+#
+# Hence, by fetching a new token before the current token expiration,
+# we make sure that the token does not expire or is close to expiry
+# before a transaction is attempted. By default, the Swift storage
+# driver requests for a new token 60 seconds or less before the
+# current token expiration.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer value
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#swift_store_expire_soon_interval = 60
+
+#
+# Use trusts for multi-tenant Swift store.
+#
+# This option instructs the Swift store to create a trust for each
+# add/get request when the multi-tenant store is in use. Using trusts
+# allows the Swift store to avoid problems that can be caused by an
+# authentication token expiring during the upload or download of data.
+#
+# By default, ``swift_store_use_trusts`` is set to ``True``(use of
+# trusts is enabled). If set to ``False``, a user token is used for
+# the Swift connection instead, eliminating the overhead of trust
+# creation.
+#
+# NOTE: This option is considered only when
+# ``swift_store_multi_tenant`` is set to ``True``
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * swift_store_multi_tenant
+#
+#  (boolean value)
+#swift_store_use_trusts = true
+
+#
+# Reference to default Swift account/backing store parameters.
+#
+# Provide a string value representing a reference to the default set
+# of parameters required for using swift account/backing store for
+# image storage. The default reference value for this configuration
+# option is 'ref1'. This configuration option dereferences the
+# parameters and facilitates image storage in Swift storage backend
+# every time a new image is added.
+#
+# Possible values:
+#     * A valid string value
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#default_swift_reference = ref1
+
+# DEPRECATED: Version of the authentication service to use. Valid versions are 2
+# and 3 for keystone and 1 (deprecated) for swauth and rackspace. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'auth_version' in the Swift back-end configuration file is
+# used instead.
+#swift_store_auth_version = 2
+
+# DEPRECATED: The address where the Swift authentication service is listening.
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'auth_address' in the Swift back-end configuration file is
+# used instead.
+#swift_store_auth_address = <None>
+
+# DEPRECATED: The user to authenticate against the Swift authentication service.
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'user' in the Swift back-end configuration file is set instead.
+#swift_store_user = <None>
+
+# DEPRECATED: Auth key for the user authenticating against the Swift
+# authentication service. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'key' in the Swift back-end configuration file is used
+# to set the authentication key instead.
+#swift_store_key = <None>
+
+#
+# Absolute path to the file containing the swift account(s)
+# configurations.
+#
+# Include a string value representing the path to a configuration
+# file that has references for each of the configured Swift
+# account(s)/backing stores. By default, no file path is specified
+# and customized Swift referencing is disabled. Configuring this
+# option is highly recommended while using Swift storage backend for
+# image storage as it avoids storage of credentials in the database.
+#
+# Possible values:
+#     * String value representing an absolute path on the glance-api
+#       node
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#swift_store_config_file = <None>
+
 
 [image_format]
 
@@ -1403,8 +3166,7 @@
 # From glance.api
 #
 
-# Supported values for the 'container_format' image attribute (list
-# value)
+# Supported values for the 'container_format' image attribute (list value)
 # Deprecated group/name - [DEFAULT]/container_formats
 #container_formats = ami,ari,aki,bare,ovf,ova,docker
 
@@ -1419,45 +3181,44 @@
 # From keystonemiddleware.auth_token
 #
 
-# Complete "public" Identity API endpoint. This endpoint should not be
-# an "admin" endpoint, as it should be accessible by all end users.
-# Unauthenticated clients are redirected to this endpoint to
-# authenticate. Although this endpoint should  ideally be unversioned,
-# client support in the wild varies.  If you're using a versioned v2
-# endpoint here, then this  should *not* be the same endpoint the
-# service user utilizes  for validating tokens, because normal end
-# users may not be  able to reach that endpoint. (string value)
+# Complete "public" Identity API endpoint. This endpoint should not be an
+# "admin" endpoint, as it should be accessible by all end users. Unauthenticated
+# clients are redirected to this endpoint to authenticate. Although this
+# endpoint should  ideally be unversioned, client support in the wild varies.
+# If you're using a versioned v2 endpoint here, then this  should *not* be the
+# same endpoint the service user utilizes  for validating tokens, because normal
+# end users may not be  able to reach that endpoint. (string value)
 #auth_uri = <None>
 
 # API version of the admin Identity API endpoint. (string value)
 #auth_version = <None>
 
-# Do not handle authorization requests within the middleware, but
-# delegate the authorization decision to downstream WSGI components.
-# (boolean value)
+# Do not handle authorization requests within the middleware, but delegate the
+# authorization decision to downstream WSGI components. (boolean value)
 #delay_auth_decision = false
 
-# Request timeout value for communicating with Identity API server.
-# (integer value)
+# Request timeout value for communicating with Identity API server. (integer
+# value)
 #http_connect_timeout = <None>
 
-# How many times are we trying to reconnect when communicating with
-# Identity API Server. (integer value)
+# How many times are we trying to reconnect when communicating with Identity API
+# Server. (integer value)
 #http_request_max_retries = 3
 
-# Env key for the swift cache. (string value)
+# Request environment key where the Swift cache object is stored. When
+# auth_token middleware is deployed with a Swift cache, use this option to have
+# the middleware share a caching backend with swift. Otherwise, use the
+# ``memcached_servers`` option instead. (string value)
 #cache = <None>
 
-# Required if identity server requires client certificate (string
-# value)
+# Required if identity server requires client certificate (string value)
 #certfile = <None>
 
-# Required if identity server requires client certificate (string
-# value)
+# Required if identity server requires client certificate (string value)
 #keyfile = <None>
 
-# A PEM encoded Certificate Authority to use when verifying HTTPs
-# connections. Defaults to system CAs. (string value)
+# A PEM encoded Certificate Authority to use when verifying HTTPs connections.
+# Defaults to system CAs. (string value)
 #cafile = <None>
 
 # Verify HTTPS connections. (boolean value)
@@ -1469,99 +3230,91 @@
 # Directory used to cache files related to PKI tokens. (string value)
 #signing_dir = <None>
 
-# Optionally specify a list of memcached server(s) to use for caching.
-# If left undefined, tokens will instead be cached in-process. (list
-# value)
+# Optionally specify a list of memcached server(s) to use for caching. If left
+# undefined, tokens will instead be cached in-process. (list value)
 # Deprecated group/name - [keystone_authtoken]/memcache_servers
 #memcached_servers = <None>
 
-# In order to prevent excessive effort spent validating tokens, the
-# middleware caches previously-seen tokens for a configurable duration
-# (in seconds). Set to -1 to disable caching completely. (integer
-# value)
+# In order to prevent excessive effort spent validating tokens, the middleware
+# caches previously-seen tokens for a configurable duration (in seconds). Set to
+# -1 to disable caching completely. (integer value)
 #token_cache_time = 300
 
-# Determines the frequency at which the list of revoked tokens is
-# retrieved from the Identity service (in seconds). A high number of
-# revocation events combined with a low cache duration may
-# significantly reduce performance. Only valid for PKI tokens.
-# (integer value)
+# Determines the frequency at which the list of revoked tokens is retrieved from
+# the Identity service (in seconds). A high number of revocation events combined
+# with a low cache duration may significantly reduce performance. Only valid for
+# PKI tokens. (integer value)
 #revocation_cache_time = 10
 
-# (Optional) If defined, indicate whether token data should be
-# authenticated or authenticated and encrypted. If MAC, token data is
-# authenticated (with HMAC) in the cache. If ENCRYPT, token data is
-# encrypted and authenticated in the cache. If the value is not one of
-# these options or empty, auth_token will raise an exception on
-# initialization. (string value)
+# (Optional) If defined, indicate whether token data should be authenticated or
+# authenticated and encrypted. If MAC, token data is authenticated (with HMAC)
+# in the cache. If ENCRYPT, token data is encrypted and authenticated in the
+# cache. If the value is not one of these options or empty, auth_token will
+# raise an exception on initialization. (string value)
 # Allowed values: None, MAC, ENCRYPT
 #memcache_security_strategy = None
 
-# (Optional, mandatory if memcache_security_strategy is defined) This
-# string is used for key derivation. (string value)
+# (Optional, mandatory if memcache_security_strategy is defined) This string is
+# used for key derivation. (string value)
 #memcache_secret_key = <None>
 
-# (Optional) Number of seconds memcached server is considered dead
-# before it is tried again. (integer value)
+# (Optional) Number of seconds memcached server is considered dead before it is
+# tried again. (integer value)
 #memcache_pool_dead_retry = 300
 
-# (Optional) Maximum total number of open connections to every
-# memcached server. (integer value)
+# (Optional) Maximum total number of open connections to every memcached server.
+# (integer value)
 #memcache_pool_maxsize = 10
 
-# (Optional) Socket timeout in seconds for communicating with a
-# memcached server. (integer value)
+# (Optional) Socket timeout in seconds for communicating with a memcached
+# server. (integer value)
 #memcache_pool_socket_timeout = 3
 
-# (Optional) Number of seconds a connection to memcached is held
-# unused in the pool before it is closed. (integer value)
+# (Optional) Number of seconds a connection to memcached is held unused in the
+# pool before it is closed. (integer value)
 #memcache_pool_unused_timeout = 60
 
-# (Optional) Number of seconds that an operation will wait to get a
-# memcached client connection from the pool. (integer value)
+# (Optional) Number of seconds that an operation will wait to get a memcached
+# client connection from the pool. (integer value)
 #memcache_pool_conn_get_timeout = 10
 
-# (Optional) Use the advanced (eventlet safe) memcached client pool.
-# The advanced pool will only work under python 2.x. (boolean value)
+# (Optional) Use the advanced (eventlet safe) memcached client pool. The
+# advanced pool will only work under python 2.x. (boolean value)
 #memcache_use_advanced_pool = false
 
-# (Optional) Indicate whether to set the X-Service-Catalog header. If
-# False, middleware will not ask for service catalog on token
-# validation and will not set the X-Service-Catalog header. (boolean
-# value)
+# (Optional) Indicate whether to set the X-Service-Catalog header. If False,
+# middleware will not ask for service catalog on token validation and will not
+# set the X-Service-Catalog header. (boolean value)
 #include_service_catalog = true
 
-# Used to control the use and type of token binding. Can be set to:
-# "disabled" to not check token binding. "permissive" (default) to
-# validate binding information if the bind type is of a form known to
-# the server and ignore it if not. "strict" like "permissive" but if
-# the bind type is unknown the token will be rejected. "required" any
-# form of token binding is needed to be allowed. Finally the name of a
-# binding method that must be present in tokens. (string value)
+# Used to control the use and type of token binding. Can be set to: "disabled"
+# to not check token binding. "permissive" (default) to validate binding
+# information if the bind type is of a form known to the server and ignore it if
+# not. "strict" like "permissive" but if the bind type is unknown the token will
+# be rejected. "required" any form of token binding is needed to be allowed.
+# Finally the name of a binding method that must be present in tokens. (string
+# value)
 #enforce_token_bind = permissive
 
-# If true, the revocation list will be checked for cached tokens. This
-# requires that PKI tokens are configured on the identity server.
-# (boolean value)
+# If true, the revocation list will be checked for cached tokens. This requires
+# that PKI tokens are configured on the identity server. (boolean value)
 #check_revocations_for_cached = false
 
-# Hash algorithms to use for hashing PKI tokens. This may be a single
-# algorithm or multiple. The algorithms are those supported by Python
-# standard hashlib.new(). The hashes will be tried in the order given,
-# so put the preferred one first for performance. The result of the
-# first hash will be stored in the cache. This will typically be set
-# to multiple values only while migrating from a less secure algorithm
-# to a more secure one. Once all the old tokens are expired this
-# option should be set to a single value for better performance. (list
-# value)
+# Hash algorithms to use for hashing PKI tokens. This may be a single algorithm
+# or multiple. The algorithms are those supported by Python standard
+# hashlib.new(). The hashes will be tried in the order given, so put the
+# preferred one first for performance. The result of the first hash will be
+# stored in the cache. This will typically be set to multiple values only while
+# migrating from a less secure algorithm to a more secure one. Once all the old
+# tokens are expired this option should be set to a single value for better
+# performance. (list value)
 #hash_algorithms = md5
 
 # Authentication type to load (string value)
 # Deprecated group/name - [keystone_authtoken]/auth_plugin
 #auth_type = <None>
 
-# Config Section from which to load plugin specific options (string
-# value)
+# Config Section from which to load plugin specific options (string value)
 #auth_section = <None>
 
 
@@ -1602,10 +3355,10 @@
 #sentinel_group_name = oslo-messaging-zeromq
 
 # Time in ms to wait between connection attempts. (integer value)
-#wait_timeout = 5000
+#wait_timeout = 2000
 
 # Time in ms to wait before the transaction is killed. (integer value)
-#check_timeout = 60000
+#check_timeout = 20000
 
 # Timeout in ms on blocking socket operations (integer value)
 #socket_timeout = 10000
@@ -1621,10 +3374,10 @@
 # Deprecated group/name - [DEFAULT]/disable_process_locking
 #disable_process_locking = false
 
-# Directory to use for lock files.  For security, the specified
-# directory should only be writable by the user running the processes
-# that need locking. Defaults to environment variable OSLO_LOCK_PATH.
-# If external locks are used, a lock path must be set. (string value)
+# Directory to use for lock files.  For security, the specified directory should
+# only be writable by the user running the processes that need locking. Defaults
+# to environment variable OSLO_LOCK_PATH. If external locks are used, a lock
+# path must be set. (string value)
 # Deprecated group/name - [DEFAULT]/lock_path
 #lock_path = <None>
 
@@ -1635,19 +3388,8 @@
 # From oslo.messaging
 #
 
-# address prefix used when sending to a specific server (string value)
-# Deprecated group/name - [amqp1]/server_request_prefix
-#server_request_prefix = exclusive
-
-# address prefix used when broadcasting to all servers (string value)
-# Deprecated group/name - [amqp1]/broadcast_prefix
-#broadcast_prefix = broadcast
-
-# address prefix when sending to any server in group (string value)
-# Deprecated group/name - [amqp1]/group_request_prefix
-#group_request_prefix = unicast
-
-# Name for the AMQP container (string value)
+# Name for the AMQP container. must be globally unique. Defaults to a generated
+# UUID (string value)
 # Deprecated group/name - [amqp1]/container_name
 #container_name = <None>
 
@@ -1663,13 +3405,11 @@
 # Deprecated group/name - [amqp1]/ssl_ca_file
 #ssl_ca_file =
 
-# Identifying certificate PEM file to present to clients (string
-# value)
+# Identifying certificate PEM file to present to clients (string value)
 # Deprecated group/name - [amqp1]/ssl_cert_file
 #ssl_cert_file =
 
-# Private key PEM file used to sign cert_file certificate (string
-# value)
+# Private key PEM file used to sign cert_file certificate (string value)
 # Deprecated group/name - [amqp1]/ssl_key_file
 #ssl_key_file =
 
@@ -1685,8 +3425,7 @@
 # Deprecated group/name - [amqp1]/sasl_mechanisms
 #sasl_mechanisms =
 
-# Path to directory that contains the SASL configuration (string
-# value)
+# Path to directory that contains the SASL configuration (string value)
 # Deprecated group/name - [amqp1]/sasl_config_dir
 #sasl_config_dir =
 
@@ -1702,6 +3441,108 @@
 # Deprecated group/name - [amqp1]/password
 #password =
 
+# Seconds to pause before attempting to re-connect. (integer value)
+# Minimum value: 1
+#connection_retry_interval = 1
+
+# Increase the connection_retry_interval by this many seconds after each
+# unsuccessful failover attempt. (integer value)
+# Minimum value: 0
+#connection_retry_backoff = 2
+
+# Maximum limit for connection_retry_interval + connection_retry_backoff
+# (integer value)
+# Minimum value: 1
+#connection_retry_interval_max = 30
+
+# Time to pause between re-connecting an AMQP 1.0 link that failed due to a
+# recoverable error. (integer value)
+# Minimum value: 1
+#link_retry_delay = 10
+
+# The deadline for an rpc reply message delivery. Only used when caller does not
+# provide a timeout expiry. (integer value)
+# Minimum value: 5
+#default_reply_timeout = 30
+
+# The deadline for an rpc cast or call message delivery. Only used when caller
+# does not provide a timeout expiry. (integer value)
+# Minimum value: 5
+#default_send_timeout = 30
+
+# The deadline for a sent notification message delivery. Only used when caller
+# does not provide a timeout expiry. (integer value)
+# Minimum value: 5
+#default_notify_timeout = 30
+
+# Indicates the addressing mode used by the driver.
+# Permitted values:
+# 'legacy'   - use legacy non-routable addressing
+# 'routable' - use routable addresses
+# 'dynamic'  - use legacy addresses if the message bus does not support routing
+# otherwise use routable addressing (string value)
+#addressing_mode = dynamic
+
+# address prefix used when sending to a specific server (string value)
+# Deprecated group/name - [amqp1]/server_request_prefix
+#server_request_prefix = exclusive
+
+# address prefix used when broadcasting to all servers (string value)
+# Deprecated group/name - [amqp1]/broadcast_prefix
+#broadcast_prefix = broadcast
+
+# address prefix when sending to any server in group (string value)
+# Deprecated group/name - [amqp1]/group_request_prefix
+#group_request_prefix = unicast
+
+# Address prefix for all generated RPC addresses (string value)
+#rpc_address_prefix = openstack.org/om/rpc
+
+# Address prefix for all generated Notification addresses (string value)
+#notify_address_prefix = openstack.org/om/notify
+
+# Appended to the address prefix when sending a fanout message. Used by the
+# message bus to identify fanout messages. (string value)
+#multicast_address = multicast
+
+# Appended to the address prefix when sending to a particular RPC/Notification
+# server. Used by the message bus to identify messages sent to a single
+# destination. (string value)
+#unicast_address = unicast
+
+# Appended to the address prefix when sending to a group of consumers. Used by
+# the message bus to identify messages that should be delivered in a round-robin
+# fashion across consumers. (string value)
+#anycast_address = anycast
+
+# Exchange name used in notification addresses.
+# Exchange name resolution precedence:
+# Target.exchange if set
+# else default_notification_exchange if set
+# else control_exchange if set
+# else 'notify' (string value)
+#default_notification_exchange = <None>
+
+# Exchange name used in RPC addresses.
+# Exchange name resolution precedence:
+# Target.exchange if set
+# else default_rpc_exchange if set
+# else control_exchange if set
+# else 'rpc' (string value)
+#default_rpc_exchange = <None>
+
+# Window size for incoming RPC Reply messages. (integer value)
+# Minimum value: 1
+#reply_link_credit = 200
+
+# Window size for incoming RPC Request messages (integer value)
+# Minimum value: 1
+#rpc_server_credit = 100
+
+# Window size for incoming Notification messages (integer value)
+# Minimum value: 1
+#notify_server_credit = 100
+
 
 [oslo_messaging_notifications]
 
@@ -1709,14 +3550,13 @@
 # From oslo.messaging
 #
 
-# The Drivers(s) to handle sending notifications. Possible values are
-# messaging, messagingv2, routing, log, test, noop (multi valued)
+# The Drivers(s) to handle sending notifications. Possible values are messaging,
+# messagingv2, routing, log, test, noop (multi valued)
 # Deprecated group/name - [DEFAULT]/notification_driver
 #driver =
 
-# A URL representing the messaging driver to use for notifications. If
-# not set, we fall back to the same configuration used for RPC.
-# (string value)
+# A URL representing the messaging driver to use for notifications. If not set,
+# we fall back to the same configuration used for RPC. (string value)
 # Deprecated group/name - [DEFAULT]/notification_transport_url
 #transport_url = <None>
 
@@ -1741,9 +3581,9 @@
 # Deprecated group/name - [DEFAULT]/amqp_auto_delete
 #amqp_auto_delete = false
 
-# SSL version to use (valid only if SSL enabled). Valid values are
-# TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be
-# available on some distributions. (string value)
+# SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and
+# SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some
+# distributions. (string value)
 # Deprecated group/name - [DEFAULT]/kombu_ssl_version
 #kombu_ssl_version =
 
@@ -1755,43 +3595,39 @@
 # Deprecated group/name - [DEFAULT]/kombu_ssl_certfile
 #kombu_ssl_certfile =
 
-# SSL certification authority file (valid only if SSL enabled).
-# (string value)
+# SSL certification authority file (valid only if SSL enabled). (string value)
 # Deprecated group/name - [DEFAULT]/kombu_ssl_ca_certs
 #kombu_ssl_ca_certs =
 
-# How long to wait before reconnecting in response to an AMQP consumer
-# cancel notification. (floating point value)
+# How long to wait before reconnecting in response to an AMQP consumer cancel
+# notification. (floating point value)
 # Deprecated group/name - [DEFAULT]/kombu_reconnect_delay
 #kombu_reconnect_delay = 1.0
 
-# EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression
-# will not be used. This option may notbe available in future
-# versions. (string value)
+# EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not
+# be used. This option may not be available in future versions. (string value)
 #kombu_compression = <None>
 
-# How long to wait a missing client beforce abandoning to send it its
-# replies. This value should not be longer than rpc_response_timeout.
-# (integer value)
+# How long to wait a missing client before abandoning to send it its replies.
+# This value should not be longer than rpc_response_timeout. (integer value)
 # Deprecated group/name - [oslo_messaging_rabbit]/kombu_reconnect_timeout
 #kombu_missing_consumer_retry_timeout = 60
 
-# Determines how the next RabbitMQ node is chosen in case the one we
-# are currently connected to becomes unavailable. Takes effect only if
-# more than one RabbitMQ node is provided in config. (string value)
+# Determines how the next RabbitMQ node is chosen in case the one we are
+# currently connected to becomes unavailable. Takes effect only if more than one
+# RabbitMQ node is provided in config. (string value)
 # Allowed values: round-robin, shuffle
 #kombu_failover_strategy = round-robin
 
-# DEPRECATED: The RabbitMQ broker address where a single node is used.
-# (string value)
+# DEPRECATED: The RabbitMQ broker address where a single node is used. (string
+# value)
 # Deprecated group/name - [DEFAULT]/rabbit_host
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 # Reason: Replaced by [DEFAULT]/transport_url
 #rabbit_host = localhost
 
-# DEPRECATED: The RabbitMQ broker port where a single node is used.
-# (port value)
+# DEPRECATED: The RabbitMQ broker port where a single node is used. (port value)
 # Minimum value: 0
 # Maximum value: 65535
 # Deprecated group/name - [DEFAULT]/rabbit_port
@@ -1839,52 +3675,51 @@
 # How frequently to retry connecting with RabbitMQ. (integer value)
 #rabbit_retry_interval = 1
 
-# How long to backoff for between retries when connecting to RabbitMQ.
-# (integer value)
+# How long to backoff for between retries when connecting to RabbitMQ. (integer
+# value)
 # Deprecated group/name - [DEFAULT]/rabbit_retry_backoff
 #rabbit_retry_backoff = 2
 
-# Maximum interval of RabbitMQ connection retries. Default is 30
-# seconds. (integer value)
+# Maximum interval of RabbitMQ connection retries. Default is 30 seconds.
+# (integer value)
 #rabbit_interval_max = 30
 
-# Maximum number of RabbitMQ connection retries. Default is 0
+# DEPRECATED: Maximum number of RabbitMQ connection retries. Default is 0
 # (infinite retry count). (integer value)
 # Deprecated group/name - [DEFAULT]/rabbit_max_retries
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
 #rabbit_max_retries = 0
 
-# Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change
-# this option, you must wipe the RabbitMQ database. In RabbitMQ 3.0,
-# queue mirroring is no longer controlled by the x-ha-policy argument
-# when declaring a queue. If you just want to make sure that all
-# queues (except  those with auto-generated names) are mirrored across
-# all nodes, run: "rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-
-# mode": "all"}' " (boolean value)
+# Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change this
+# option, you must wipe the RabbitMQ database. In RabbitMQ 3.0, queue mirroring
+# is no longer controlled by the x-ha-policy argument when declaring a queue. If
+# you just want to make sure that all queues (except  those with auto-generated
+# names) are mirrored across all nodes, run: "rabbitmqctl set_policy HA
+# '^(?!amq\.).*' '{"ha-mode": "all"}' " (boolean value)
 # Deprecated group/name - [DEFAULT]/rabbit_ha_queues
 #rabbit_ha_queues = false
 
-# Positive integer representing duration in seconds for queue TTL
-# (x-expires). Queues which are unused for the duration of the TTL are
-# automatically deleted. The parameter affects only reply and fanout
-# queues. (integer value)
+# Positive integer representing duration in seconds for queue TTL (x-expires).
+# Queues which are unused for the duration of the TTL are automatically deleted.
+# The parameter affects only reply and fanout queues. (integer value)
 # Minimum value: 1
 #rabbit_transient_queues_ttl = 1800
 
-# Specifies the number of messages to prefetch. Setting to zero allows
-# unlimited messages. (integer value)
+# Specifies the number of messages to prefetch. Setting to zero allows unlimited
+# messages. (integer value)
 #rabbit_qos_prefetch_count = 0
 
-# Number of seconds after which the Rabbit broker is considered down
-# if heartbeat's keep-alive fails (0 disable the heartbeat).
-# EXPERIMENTAL (integer value)
+# Number of seconds after which the Rabbit broker is considered down if
+# heartbeat's keep-alive fails (0 disable the heartbeat). EXPERIMENTAL (integer
+# value)
 #heartbeat_timeout_threshold = 60
 
-# How often times during the heartbeat_timeout_threshold we check the
-# heartbeat. (integer value)
+# How often times during the heartbeat_timeout_threshold we check the heartbeat.
+# (integer value)
 #heartbeat_rate = 2
 
-# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake
-# (boolean value)
+# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake (boolean value)
 # Deprecated group/name - [DEFAULT]/fake_rabbit
 #fake_rabbit = false
 
@@ -1894,8 +3729,7 @@
 # The maximum byte size for an AMQP frame (integer value)
 #frame_max = <None>
 
-# How often to send heartbeats for consumer's connections (integer
-# value)
+# How often to send heartbeats for consumer's connections (integer value)
 #heartbeat_interval = 3
 
 # Enable SSL (boolean value)
@@ -1904,16 +3738,14 @@
 # Arguments passed to ssl.wrap_socket (dict value)
 #ssl_options = <None>
 
-# Set socket timeout in seconds for connection's socket (floating
-# point value)
+# Set socket timeout in seconds for connection's socket (floating point value)
 #socket_timeout = 0.25
 
-# Set TCP_USER_TIMEOUT in seconds for connection's socket (floating
-# point value)
+# Set TCP_USER_TIMEOUT in seconds for connection's socket (floating point value)
 #tcp_user_timeout = 0.25
 
-# Set delay for reconnection to some host which has connection error
-# (floating point value)
+# Set delay for reconnection to some host which has connection error (floating
+# point value)
 #host_connection_reconnect_delay = 0.25
 
 # Connection factory implementation (string value)
@@ -1923,22 +3755,20 @@
 # Maximum number of connections to keep queued. (integer value)
 #pool_max_size = 30
 
-# Maximum number of connections to create above `pool_max_size`.
-# (integer value)
+# Maximum number of connections to create above `pool_max_size`. (integer value)
 #pool_max_overflow = 0
 
-# Default number of seconds to wait for a connections to available
-# (integer value)
+# Default number of seconds to wait for a connections to available (integer
+# value)
 #pool_timeout = 30
 
-# Lifetime of a connection (since creation) in seconds or None for no
-# recycling. Expired connections are closed on acquire. (integer
-# value)
+# Lifetime of a connection (since creation) in seconds or None for no recycling.
+# Expired connections are closed on acquire. (integer value)
 #pool_recycle = 600
 
-# Threshold at which inactive (since release) connections are
-# considered stale in seconds or None for no staleness. Stale
-# connections are closed on acquire. (integer value)
+# Threshold at which inactive (since release) connections are considered stale
+# in seconds or None for no staleness. Stale connections are closed on acquire.
+# (integer value)
 #pool_stale = 60
 
 # Persist notification messages. (boolean value)
@@ -1947,20 +3777,19 @@
 # Exchange name for sending notifications (string value)
 #default_notification_exchange = ${control_exchange}_notification
 
-# Max number of not acknowledged message which RabbitMQ can send to
-# notification listener. (integer value)
+# Max number of not acknowledged message which RabbitMQ can send to notification
+# listener. (integer value)
 #notification_listener_prefetch_count = 100
 
-# Reconnecting retry count in case of connectivity problem during
-# sending notification, -1 means infinite retry. (integer value)
+# Reconnecting retry count in case of connectivity problem during sending
+# notification, -1 means infinite retry. (integer value)
 #default_notification_retry_attempts = -1
 
-# Reconnecting retry delay in case of connectivity problem during
-# sending notification message (floating point value)
+# Reconnecting retry delay in case of connectivity problem during sending
+# notification message (floating point value)
 #notification_retry_delay = 0.25
 
-# Time to live for rpc queues without consumers in seconds. (integer
-# value)
+# Time to live for rpc queues without consumers in seconds. (integer value)
 #rpc_queue_expiration = 60
 
 # Exchange name for sending RPC messages (string value)
@@ -1969,42 +3798,135 @@
 # Exchange name for receiving RPC replies (string value)
 #rpc_reply_exchange = ${control_exchange}_rpc_reply
 
-# Max number of not acknowledged message which RabbitMQ can send to
-# rpc listener. (integer value)
+# Max number of not acknowledged message which RabbitMQ can send to rpc
+# listener. (integer value)
 #rpc_listener_prefetch_count = 100
 
-# Max number of not acknowledged message which RabbitMQ can send to
-# rpc reply listener. (integer value)
+# Max number of not acknowledged message which RabbitMQ can send to rpc reply
+# listener. (integer value)
 #rpc_reply_listener_prefetch_count = 100
 
-# Reconnecting retry count in case of connectivity problem during
-# sending reply. -1 means infinite retry during rpc_timeout (integer
-# value)
+# Reconnecting retry count in case of connectivity problem during sending reply.
+# -1 means infinite retry during rpc_timeout (integer value)
 #rpc_reply_retry_attempts = -1
 
-# Reconnecting retry delay in case of connectivity problem during
-# sending reply. (floating point value)
+# Reconnecting retry delay in case of connectivity problem during sending reply.
+# (floating point value)
 #rpc_reply_retry_delay = 0.25
 
-# Reconnecting retry count in case of connectivity problem during
-# sending RPC message, -1 means infinite retry. If actual retry
-# attempts in not 0 the rpc request could be processed more then one
-# time (integer value)
+# Reconnecting retry count in case of connectivity problem during sending RPC
+# message, -1 means infinite retry. If actual retry attempts in not 0 the rpc
+# request could be processed more then one time (integer value)
 #default_rpc_retry_attempts = -1
 
-# Reconnecting retry delay in case of connectivity problem during
-# sending RPC message (floating point value)
+# Reconnecting retry delay in case of connectivity problem during sending RPC
+# message (floating point value)
 #rpc_retry_delay = 0.25
 
 
+[oslo_messaging_zmq]
+
+#
+# From oslo.messaging
+#
+
+# ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP.
+# The "host" option should point or resolve to this address. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_address
+#rpc_zmq_bind_address = *
+
+# MatchMaker driver. (string value)
+# Allowed values: redis, dummy
+# Deprecated group/name - [DEFAULT]/rpc_zmq_matchmaker
+#rpc_zmq_matchmaker = redis
+
+# Number of ZeroMQ contexts, defaults to 1. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_contexts
+#rpc_zmq_contexts = 1
+
+# Maximum number of ingress messages to locally buffer per topic. Default is
+# unlimited. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_topic_backlog
+#rpc_zmq_topic_backlog = <None>
+
+# Directory for holding IPC sockets. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_ipc_dir
+#rpc_zmq_ipc_dir = /var/run/openstack
+
+# Name of this node. Must be a valid hostname, FQDN, or IP address. Must match
+# "host" option, if running Nova. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_host
+#rpc_zmq_host = localhost
+
+# Seconds to wait before a cast expires (TTL). The default value of -1 specifies
+# an infinite linger period. The value of 0 specifies no linger period. Pending
+# messages shall be discarded immediately when the socket is closed. Only
+# supported by impl_zmq. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_cast_timeout
+#rpc_cast_timeout = -1
+
+# The default number of seconds that poll should wait. Poll raises timeout
+# exception when timeout expired. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_poll_timeout
+#rpc_poll_timeout = 1
+
+# Expiration timeout in seconds of a name service record about existing target (
+# < 0 means no timeout). (integer value)
+# Deprecated group/name - [DEFAULT]/zmq_target_expire
+#zmq_target_expire = 300
+
+# Update period in seconds of a name service record about existing target.
+# (integer value)
+# Deprecated group/name - [DEFAULT]/zmq_target_update
+#zmq_target_update = 180
+
+# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. (boolean
+# value)
+# Deprecated group/name - [DEFAULT]/use_pub_sub
+#use_pub_sub = true
+
+# Use ROUTER remote proxy. (boolean value)
+# Deprecated group/name - [DEFAULT]/use_router_proxy
+#use_router_proxy = true
+
+# Minimal port number for random ports range. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+# Deprecated group/name - [DEFAULT]/rpc_zmq_min_port
+#rpc_zmq_min_port = 49153
+
+# Maximal port number for random ports range. (integer value)
+# Minimum value: 1
+# Maximum value: 65536
+# Deprecated group/name - [DEFAULT]/rpc_zmq_max_port
+#rpc_zmq_max_port = 65536
+
+# Number of retries to find free port number before fail with ZMQBindError.
+# (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_port_retries
+#rpc_zmq_bind_port_retries = 100
+
+# Default serialization mechanism for serializing/deserializing
+# outgoing/incoming messages (string value)
+# Allowed values: json, msgpack
+# Deprecated group/name - [DEFAULT]/rpc_zmq_serialization
+#rpc_zmq_serialization = json
+
+# This option configures round-robin mode in zmq socket. True means not keeping
+# a queue when server side disconnects. False means to keep queue and messages
+# even if server is disconnected, when the server appears we send all
+# accumulated messages to it. (boolean value)
+#zmq_immediate = false
+
+
 [oslo_middleware]
 
 #
 # From oslo.middleware.http_proxy_to_wsgi
 #
 
-# Whether the application is behind a proxy or not. This determines if
-# the middleware should parse the headers or not. (boolean value)
+# Whether the application is behind a proxy or not. This determines if the
+# middleware should parse the headers or not. (boolean value)
 #enable_proxy_headers_parsing = false
 
 
@@ -2018,16 +3940,15 @@
 # Deprecated group/name - [DEFAULT]/policy_file
 #policy_file = policy.json
 
-# Default rule. Enforced when a requested rule is not found. (string
-# value)
+# Default rule. Enforced when a requested rule is not found. (string value)
 # Deprecated group/name - [DEFAULT]/policy_default_rule
 #policy_default_rule = default
 
-# Directories where policy configuration files are stored. They can be
-# relative to any directory in the search path defined by the
-# config_dir option, or absolute paths. The file defined by
-# policy_file must exist for these directories to be searched.
-# Missing or empty directories are ignored. (multi valued)
+# Directories where policy configuration files are stored. They can be relative
+# to any directory in the search path defined by the config_dir option, or
+# absolute paths. The file defined by policy_file must exist for these
+# directories to be searched.  Missing or empty directories are ignored. (multi
+# valued)
 # Deprecated group/name - [DEFAULT]/policy_dirs
 #policy_dirs = policy.d
 
@@ -2038,14 +3959,58 @@
 # From glance.api
 #
 
-# Partial name of a pipeline in your paste configuration file with the
-# service name removed. For example, if your paste section name is
-# [pipeline:glance-api-keystone] use the value "keystone" (string
-# value)
-#flavor = <None>
+#
+# Deployment flavor to use in the server application pipeline.
+#
+# Provide a string value representing the appropriate deployment
+# flavor used in the server application pipleline. This is typically
+# the partial name of a pipeline in the paste configuration file with
+# the service name removed.
+#
+# For example, if your paste section name in the paste configuration
+# file is [pipeline:glance-api-keystone], set ``flavor`` to
+# ``keystone``.
+#
+# Possible values:
+#     * String value representing a partial pipeline name.
+#
+# Related Options:
+#     * config_file
+#
+#  (string value)
+#flavor = keystone
 
-# Name of the paste configuration file. (string value)
-#config_file = <None>
+#
+# Name of the paste configuration file.
+#
+# Provide a string value representing the name of the paste
+# configuration file to use for configuring piplelines for
+# server application deployments.
+#
+# NOTES:
+#     * Provide the name or the path relative to the glance directory
+#       for the paste configuration file and not the absolute path.
+#     * The sample paste configuration file shipped with Glance need
+#       not be edited in most cases as it comes with ready-made
+#       pipelines for all common deployment flavors.
+#
+# If no value is specified for this option, the ``paste.ini`` file
+# with the prefix of the corresponding Glance service's configuration
+# file name will be searched for in the known configuration
+# directories. (For example, if this option is missing from or has no
+# value set in ``glance-api.conf``, the service will look for a file
+# named ``glance-api-paste.ini``.) If the paste configuration file is
+# not found, the service will not start.
+#
+# Possible values:
+#     * A string value representing the name of the paste configuration
+#       file.
+#
+# Related Options:
+#     * flavor
+#
+#  (string value)
+#config_file = glance-api-paste.ini
 
 
 [profiler]
@@ -2055,63 +4020,59 @@
 #
 
 #
-# Enables the profiling for all services on this node. Default value
-# is False
+# Enables the profiling for all services on this node. Default value is False
 # (fully disable the profiling feature).
 #
 # Possible values:
 #
 # * True: Enables the feature
-# * False: Disables the feature. The profiling cannot be started via
-# this project
-# operations. If the profiling is triggered by another project, this
-# project part
+# * False: Disables the feature. The profiling cannot be started via this
+# project
+# operations. If the profiling is triggered by another project, this project
+# part
 # will be empty.
 #  (boolean value)
 # Deprecated group/name - [profiler]/profiler_enabled
 #enabled = false
 
 #
-# Enables SQL requests profiling in services. Default value is False
-# (SQL
+# Enables SQL requests profiling in services. Default value is False (SQL
 # requests won't be traced).
 #
 # Possible values:
 #
-# * True: Enables SQL requests profiling. Each SQL query will be part
-# of the
+# * True: Enables SQL requests profiling. Each SQL query will be part of the
 # trace and can the be analyzed by how much time was spent for that.
-# * False: Disables SQL requests profiling. The spent time is only
-# shown on a
-# higher level of operations. Single SQL queries cannot be analyzed
-# this
+# * False: Disables SQL requests profiling. The spent time is only shown on a
+# higher level of operations. Single SQL queries cannot be analyzed this
 # way.
 #  (boolean value)
 #trace_sqlalchemy = false
 
 #
-# Secret key(s) to use for encrypting context data for performance
-# profiling.
-# This string value should have the following format:
-# <key1>[,<key2>,...<keyn>],
-# where each key is some random string. A user who triggers the
-# profiling via
-# the REST API has to set one of these keys in the headers of the REST
-# API call
-# to include profiling results of this node for this particular
-# project.
+# Secret key(s) to use for encrypting context data for performance profiling.
+# This string value should have the following format: <key1>[,<key2>,...<keyn>],
+# where each key is some random string. A user who triggers the profiling via
+# the REST API has to set one of these keys in the headers of the REST API call
+# to include profiling results of this node for this particular project.
 #
-# Both "enabled" flag and "hmac_keys" config options should be set to
-# enable
-# profiling. Also, to generate correct profiling information across
-# all services
-# at least one key needs to be consistent between OpenStack projects.
-# This
-# ensures it can be used from client side to generate the trace,
-# containing
+# Both "enabled" flag and "hmac_keys" config options should be set to enable
+# profiling. Also, to generate correct profiling information across all services
+# at least one key needs to be consistent between OpenStack projects. This
+# ensures it can be used from client side to generate the trace, containing
 # information from all possible resources. (string value)
 #hmac_keys = SECRET_KEY
 
+#
+# Connection string for a notifier backend. Default value is messaging:// which
+# sets the notifier to oslo_messaging.
+#
+# Examples of possible values:
+#
+# * messaging://: use oslo_messaging driver for sending notifications.
+#  (string value)
+#connection_string = messaging://
+
 
 [store_type_location_strategy]
 
@@ -2119,11 +4080,40 @@
 # From glance.api
 #
 
-# The store names to use to get store preference order. The name must
-# be registered by one of the stores defined by the 'stores' config
-# option. This option will be applied when you using 'store_type'
-# option as image location strategy defined by the 'location_strategy'
-# config option. (list value)
+#
+# Preference order of storage backends.
+#
+# Provide a comma separated list of store names in the order in
+# which images should be retrieved from storage backends.
+# These store names must be registered with the ``stores``
+# configuration option.
+#
+# NOTE: The ``store_type_preference`` configuration option is applied
+# only if ``store_type`` is chosen as a value for the
+# ``location_strategy`` configuration option. An empty list will not
+# change the location order.
+#
+# Possible values:
+#     * Empty list
+#     * Comma separated list of registered store names. Legal values are:
+#       (NOTE: Use only the following choices, which, unfortunately,
+#       are not entirely consistent with the store names used in other
+#       similar configuration options. Please take extra care while
+#       setting this option, and read the help text carefully when
+#       setting other similar options.)
+#         * filesystem
+#         * http
+#         * rbd
+#         * swift
+#         * sheepdog
+#         * cinder
+#         * vmware_datastore
+#
+# Related options:
+#     * location_strategy
+#     * stores
+#
+#  (list value)
 #store_type_preference =
 
 
@@ -2133,30 +4123,61 @@
 # From glance.api
 #
 
-# Time in hours for which a task lives after, either succeeding or
-# failing (integer value)
+# Time in hours for which a task lives after, either succeeding or failing
+# (integer value)
 # Deprecated group/name - [DEFAULT]/task_time_to_live
 #task_time_to_live = 48
 
-# Specifies which task executor to be used to run the task scripts.
-# (string value)
+#
+# Task executor to be used to run task scripts.
+#
+# Provide a string value representing the executor to use for task
+# executions. By default, ``TaskFlow`` executor is used.
+#
+# ``TaskFlow`` helps make task executions easy, consistent, scalable
+# and reliable. It also enables creation of lightweight task objects
+# and/or functions that are combined together into flows in a
+# declarative manner.
+#
+# Possible values:
+#     * taskflow
+#
+# Related Options:
+#     * None
+#
+#  (string value)
 #task_executor = taskflow
 
-# Work dir for asynchronous task operations. The directory set here
-# will be used to operate over images - normally before they are
-# imported in the destination store. When providing work dir, make
-# sure enough space is provided for concurrent tasks to run
-# efficiently without running out of space. A rough estimation can be
-# done by multiplying the number of `max_workers` - or the N of
-# workers running - by an average image size (e.g 500MB). The image
+#
+# Absolute path to the work directory to use for asynchronous
+# task operations.
+#
+# The directory set here will be used to operate over images -
+# normally before they are imported in the destination store.
+#
+# NOTE: When providing a value for ``work_dir``, please make sure
+# that enough space is provided for concurrent tasks to run
+# efficiently without running out of space.
+#
+# A rough estimation can be done by multiplying the number of
+# ``max_workers`` with an average image size (e.g 500MB). The image
 # size estimation should be done based on the average size in your
-# deployment. Note that depending on the tasks running you may need to
-# multiply this number by some factor depending on what the task does.
-# For example, you may want to double the available size if image
-# conversion is enabled. All this being said, remember these are just
-# estimations and you should do them based on the worst case scenario
-# and be prepared to act in case they were wrong. (string value)
-#work_dir = <None>
+# deployment. Note that depending on the tasks running you may need
+# to multiply this number by some factor depending on what the task
+# does. For example, you may want to double the available size if
+# image conversion is enabled. All this being said, remember these
+# are just estimations and you should do them based on the worst
+# case scenario and be prepared to act in case they were wrong.
+#
+# Possible values:
+#     * String value representing the absolute path to the working
+#       directory
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#work_dir = /work_dir
 
 
 [taskflow_executor]
@@ -2208,7 +4229,34 @@
 # Deprecated group/name - [task]/eventlet_executor_pool_size
 #max_workers = 10
 
-# The format to which images will be automatically converted. When
-# using the RBD backend, this should be set to 'raw' (string value)
+#
+# Set the desired image conversion format.
+#
+# Provide a valid image format to which you want images to be
+# converted before they are stored for consumption by Glance.
+# Appropriate image format conversions are desirable for specific
+# storage backends in order to facilitate efficient handling of
+# bandwidth and usage of the storage infrastructure.
+#
+# By default, ``conversion_format`` is not set and must be set
+# explicitly in the configuration file.
+#
+# The allowed values for this option are ``raw``, ``qcow2`` and
+# ``vmdk``. The  ``raw`` format is the unstructured disk format and
+# should be chosen when RBD or Ceph storage backends are used for
+# image storage. ``qcow2`` is supported by the QEMU emulator that
+# expands dynamically and supports Copy on Write. The ``vmdk`` is
+# another common disk format supported by many common virtual machine
+# monitors like VMWare Workstation.
+#
+# Possible values:
+#     * qcow2
+#     * raw
+#     * vmdk
+#
+# Related options:
+#     * disk_formats
+#
+#  (string value)
 # Allowed values: qcow2, raw, vmdk
-#conversion_format = <None>
+#conversion_format = raw
diff --git a/etc/glance-cache.conf b/etc/glance-cache.conf
index 8a61f91ea1..035c238e5c 100644
--- a/etc/glance-cache.conf
+++ b/etc/glance-cache.conf
@@ -4,118 +4,486 @@
 # From glance.cache
 #
 
-# Whether to allow users to specify image properties beyond what the
-# image schema provides (boolean value)
+#
+# Allow users to add additional/custom properties to images.
+#
+# Glance defines a standard set of properties (in its schema) that
+# appear on every image. These properties are also known as
+# ``base properties``. In addition to these properties, Glance
+# allows users to add custom properties to images. These are known
+# as ``additional properties``.
+#
+# By default, this configuration option is set to ``True`` and users
+# are allowed to add additional properties. The number of additional
+# properties that can be added to an image can be controlled via
+# ``image_property_quota`` configuration option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * image_property_quota
+#
+#  (boolean value)
 #allow_additional_image_properties = true
 
-# Maximum number of image members per image. Negative values evaluate
-# to unlimited. (integer value)
+#
+# Maximum number of image members per image.
+#
+# This limits the maximum of users an image can be shared with. Any negative
+# value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_member_quota = 128
 
-# Maximum number of properties allowed on an image. Negative values
-# evaluate to unlimited. (integer value)
+#
+# Maximum number of properties allowed on an image.
+#
+# This enforces an upper limit on the number of additional properties an image
+# can have. Any negative value is interpreted as unlimited.
+#
+# NOTE: This won't have any impact if additional properties are disabled. Please
+# refer to ``allow_additional_image_properties``.
+#
+# Related options:
+#     * ``allow_additional_image_properties``
+#
+#  (integer value)
 #image_property_quota = 128
 
-# Maximum number of tags allowed on an image. Negative values evaluate
-# to unlimited. (integer value)
+#
+# Maximum number of tags allowed on an image.
+#
+# Any negative value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_tag_quota = 128
 
-# Maximum number of locations allowed on an image. Negative values
-# evaluate to unlimited. (integer value)
+#
+# Maximum number of locations allowed on an image.
+#
+# Any negative value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_location_quota = 10
 
-# Python module path of data access API (string value)
+#
+# Python module path of data access API.
+#
+# Specifies the path to the API to use for accessing the data model.
+# This option determines how the image catalog data will be accessed.
+#
+# Possible values:
+#     * glance.db.sqlalchemy.api
+#     * glance.db.registry.api
+#     * glance.db.simple.api
+#
+# If this option is set to ``glance.db.sqlalchemy.api`` then the image
+# catalog data is stored in and read from the database via the
+# SQLAlchemy Core and ORM APIs.
+#
+# Setting this option to ``glance.db.registry.api`` will force all
+# database access requests to be routed through the Registry service.
+# This avoids data access from the Glance API nodes for an added layer
+# of security, scalability and manageability.
+#
+# NOTE: In v2 OpenStack Images API, the registry service is optional.
+# In order to use the Registry API in v2, the option
+# ``enable_v2_registry`` must be set to ``True``.
+#
+# Finally, when this configuration option is set to
+# ``glance.db.simple.api``, image catalog data is stored in and read
+# from an in-memory data structure. This is primarily used for testing.
+#
+# Related options:
+#     * enable_v2_api
+#     * enable_v2_registry
+#
+#  (string value)
 #data_api = glance.db.sqlalchemy.api
 
-# Default value for the number of items returned by a request if not
-# specified explicitly in the request (integer value)
+#
+# The default number of results to return for a request.
+#
+# Responses to certain API requests, like list images, may return
+# multiple items. The number of results returned can be explicitly
+# controlled by specifying the ``limit`` parameter in the API request.
+# However, if a ``limit`` parameter is not specified, this
+# configuration value will be used as the default number of results to
+# be returned for any API request.
+#
+# NOTES:
+#     * The value of this configuration option may not be greater than
+#       the value specified by ``api_limit_max``.
+#     * Setting this to a very large value may slow down database
+#       queries and increase response times. Setting this to a
+#       very low value may result in poor user experience.
+#
+# Possible values:
+#     * Any positive integer
+#
+# Related options:
+#     * api_limit_max
+#
+#  (integer value)
+# Minimum value: 1
 #limit_param_default = 25
 
-# Maximum permissible number of items that could be returned by a
-# request (integer value)
+#
+# Maximum number of results that could be returned by a request.
+#
+# As described in the help text of ``limit_param_default``, some
+# requests may return multiple results. The number of results to be
+# returned are governed either by the ``limit`` parameter in the
+# request or the ``limit_param_default`` configuration option.
+# The value in either case, can't be greater than the absolute maximum
+# defined by this configuration option. Anything greater than this
+# value is trimmed down to the maximum value defined here.
+#
+# NOTE: Setting this to a very large value may slow down database
+#       queries and increase response times. Setting this to a
+#       very low value may result in poor user experience.
+#
+# Possible values:
+#     * Any positive integer
+#
+# Related options:
+#     * limit_param_default
+#
+#  (integer value)
+# Minimum value: 1
 #api_limit_max = 1000
 
-# Whether to include the backend image storage location in image
-# properties. Revealing storage location can be a security risk, so
-# use this setting with caution! (boolean value)
+#
+# Show direct image location when returning an image.
+#
+# This configuration option indicates whether to show the direct image
+# location when returning image details to the user. The direct image
+# location is where the image data is stored in backend storage. This
+# image location is shown under the image property ``direct_url``.
+#
+# When multiple image locations exist for an image, the best location
+# is displayed based on the location strategy indicated by the
+# configuration option ``location_strategy``.
+#
+# NOTES:
+#     * Revealing image locations can present a GRAVE SECURITY RISK as
+#       image locations can sometimes include credentials. Hence, this
+#       is set to ``False`` by default. Set this to ``True`` with
+#       EXTREME CAUTION and ONLY IF you know what you are doing!
+#     * If an operator wishes to avoid showing any image location(s)
+#       to the user, then both this option and
+#       ``show_multiple_locations`` MUST be set to ``False``.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * show_multiple_locations
+#     * location_strategy
+#
+#  (boolean value)
 #show_image_direct_url = false
 
-# Whether to include the backend image locations in image properties.
-# For example, if using the file system store a URL of
-# "file:///path/to/image" will be returned to the user in the
-# 'direct_url' meta-data field. Revealing storage location can be a
-# security risk, so use this setting with caution! Setting this to
-# true overrides the show_image_direct_url option. (boolean value)
+# DEPRECATED:
+# Show all image locations when returning an image.
+#
+# This configuration option indicates whether to show all the image
+# locations when returning image details to the user. When multiple
+# image locations exist for an image, the locations are ordered based
+# on the location strategy indicated by the configuration opt
+# ``location_strategy``. The image locations are shown under the
+# image property ``locations``.
+#
+# NOTES:
+#     * Revealing image locations can present a GRAVE SECURITY RISK as
+#       image locations can sometimes include credentials. Hence, this
+#       is set to ``False`` by default. Set this to ``True`` with
+#       EXTREME CAUTION and ONLY IF you know what you are doing!
+#     * If an operator wishes to avoid showing any image location(s)
+#       to the user, then both this option and
+#       ``show_image_direct_url`` MUST be set to ``False``.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * show_image_direct_url
+#     * location_strategy
+#
+#  (boolean value)
+# This option is deprecated for removal since Newton.
+# Its value may be silently ignored in the future.
+# Reason: This option will be removed in the Ocata release because the same
+# functionality can be achieved with greater granularity by using policies.
+# Please see the Newton release notes for more information.
 #show_multiple_locations = false
 
-# Maximum size of image a user can upload in bytes. Defaults to
-# 1099511627776 bytes (1 TB).WARNING: this value should only be
-# increased after careful consideration and must be set to a value
-# under 8 EB (9223372036854775808). (integer value)
+#
+# Maximum size of image a user can upload in bytes.
+#
+# An image upload greater than the size mentioned here would result
+# in an image creation failure. This configuration option defaults to
+# 1099511627776 bytes (1 TiB).
+#
+# NOTES:
+#     * This value should only be increased after careful
+#       consideration and must be set less than or equal to
+#       8 EiB (9223372036854775808).
+#     * This value must be set with careful consideration of the
+#       backend storage capacity. Setting this to a very low value
+#       may result in a large number of image failures. And, setting
+#       this to a very large value may result in faster consumption
+#       of storage. Hence, this must be set according to the nature of
+#       images created and storage capacity available.
+#
+# Possible values:
+#     * Any positive number less than or equal to 9223372036854775808
+#
+#  (integer value)
+# Minimum value: 1
 # Maximum value: 9223372036854775808
 #image_size_cap = 1099511627776
 
-# Set a system wide quota for every user. This value is the total
-# capacity that a user can use across all storage systems. A value of
-# 0 means unlimited.Optional unit can be specified for the value.
-# Accepted units are B, KB, MB, GB and TB representing Bytes,
-# KiloBytes, MegaBytes, GigaBytes and TeraBytes respectively. If no
-# unit is specified then Bytes is assumed. Note that there should not
-# be any space between value and unit and units are case sensitive.
-# (string value)
+#
+# Maximum amount of image storage per tenant.
+#
+# This enforces an upper limit on the cumulative storage consumed by all images
+# of a tenant across all stores. This is a per-tenant limit.
+#
+# The default unit for this configuration option is Bytes. However, storage
+# units can be specified using case-sensitive literals ``B``, ``KB``, ``MB``,
+# ``GB`` and ``TB`` representing Bytes, KiloBytes, MegaBytes, GigaBytes and
+# TeraBytes respectively. Note that there should not be any space between the
+# value and unit. Value ``0`` signifies no quota enforcement. Negative values
+# are invalid and result in errors.
+#
+# Possible values:
+#     * A string that is a valid concatenation of a non-negative integer
+#       representing the storage value and an optional string literal
+#       representing storage units as mentioned above.
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #user_storage_quota = 0
 
-# Deploy the v1 OpenStack Images API. (boolean value)
+#
+# Deploy the v1 OpenStack Images API.
+#
+# When this option is set to ``True``, Glance service will respond to
+# requests on registered endpoints conforming to the v1 OpenStack
+# Images API.
+#
+# NOTES:
+#     * If this option is enabled, then ``enable_v1_registry`` must
+#       also be set to ``True`` to enable mandatory usage of Registry
+#       service with v1 API.
+#
+#     * If this option is disabled, then the ``enable_v1_registry``
+#       option, which is enabled by default, is also recommended
+#       to be disabled.
+#
+#     * This option is separate from ``enable_v2_api``, both v1 and v2
+#       OpenStack Images API can be deployed independent of each
+#       other.
+#
+#     * If deploying only the v2 Images API, this option, which is
+#       enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v1_registry
+#     * enable_v2_api
+#
+#  (boolean value)
 #enable_v1_api = true
 
-# Deploy the v2 OpenStack Images API. (boolean value)
+#
+# Deploy the v2 OpenStack Images API.
+#
+# When this option is set to ``True``, Glance service will respond
+# to requests on registered endpoints conforming to the v2 OpenStack
+# Images API.
+#
+# NOTES:
+#     * If this option is disabled, then the ``enable_v2_registry``
+#       option, which is enabled by default, is also recommended
+#       to be disabled.
+#
+#     * This option is separate from ``enable_v1_api``, both v1 and v2
+#       OpenStack Images API can be deployed independent of each
+#       other.
+#
+#     * If deploying only the v1 Images API, this option, which is
+#       enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v2_registry
+#     * enable_v1_api
+#
+#  (boolean value)
 #enable_v2_api = true
 
-# Deploy the v1 OpenStack Registry API. (boolean value)
+#
+# Deploy the v1 API Registry service.
+#
+# When this option is set to ``True``, the Registry service
+# will be enabled in Glance for v1 API requests.
+#
+# NOTES:
+#     * Use of Registry is mandatory in v1 API, so this option must
+#       be set to ``True`` if the ``enable_v1_api`` option is enabled.
+#
+#     * If deploying only the v2 OpenStack Images API, this option,
+#       which is enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v1_api
+#
+#  (boolean value)
 #enable_v1_registry = true
 
-# Deploy the v2 OpenStack Registry API. (boolean value)
+#
+# Deploy the v2 API Registry service.
+#
+# When this option is set to ``True``, the Registry service
+# will be enabled in Glance for v2 API requests.
+#
+# NOTES:
+#     * Use of Registry is optional in v2 API, so this option
+#       must only be enabled if both ``enable_v2_api`` is set to
+#       ``True`` and the ``data_api`` option is set to
+#       ``glance.db.registry.api``.
+#
+#     * If deploying only the v1 OpenStack Images API, this option,
+#       which is enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v2_api
+#     * data_api
+#
+#  (boolean value)
 #enable_v2_registry = true
 
-# The hostname/IP of the pydev process listening for debug connections
-# (string value)
-#pydev_worker_debug_host = <None>
+#
+# Host address of the pydev server.
+#
+# Provide a string value representing the hostname or IP of the
+# pydev server to use for debugging. The pydev server listens for
+# debug connections on this address, facilitating remote debugging
+# in Glance.
+#
+# Possible values:
+#     * Valid hostname
+#     * Valid IP address
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#pydev_worker_debug_host = localhost
 
-# The port on which a pydev process is listening for connections.
-# (port value)
+#
+# Port number that the pydev server will listen on.
+#
+# Provide a port number to bind the pydev server to. The pydev
+# process accepts debug connections on this port and facilitates
+# remote debugging in Glance.
+#
+# Possible values:
+#     * A valid port number
+#
+# Related options:
+#     * None
+#
+#  (port value)
 # Minimum value: 0
 # Maximum value: 65535
 #pydev_worker_debug_port = 5678
 
-# AES key for encrypting store 'location' metadata. This includes, if
-# used, Swift or S3 credentials. Should be set to a random string of
-# length 16, 24 or 32 bytes (string value)
+#
+# AES key for encrypting store location metadata.
+#
+# Provide a string value representing the AES cipher to use for
+# encrypting Glance store metadata.
+#
+# NOTE: The AES key to use must be set to a random string of length
+# 16, 24 or 32 bytes.
+#
+# Possible values:
+#     * String value representing a valid AES key
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #metadata_encryption_key = <None>
 
-# Digest algorithm which will be used for digital signature. Use the
-# command "openssl list-message-digest-algorithms" to get the
-# available algorithms supported by the version of OpenSSL on the
-# platform. Examples are "sha1", "sha256", "sha512", etc. (string
-# value)
+#
+# Digest algorithm to use for digital signature.
+#
+# Provide a string value representing the digest algorithm to
+# use for generating digital signatures. By default, ``sha256``
+# is used.
+#
+# To get a list of the available algorithms supported by the version
+# of OpenSSL on your platform, run the command:
+# ``openssl list-message-digest-algorithms``.
+# Examples are 'sha1', 'sha256', and 'sha512'.
+#
+# NOTE: ``digest_algorithm`` is not related to Glance's image signing
+# and verification. It is only used to sign the universally unique
+# identifier (UUID) as a part of the certificate file and key file
+# validation.
+#
+# Possible values:
+#     * An OpenSSL message digest algorithm identifier
+#
+# Relation options:
+#     * None
+#
+#  (string value)
 #digest_algorithm = sha256
 
 #
-# The relative path to sqlite file database that will be used for
-# image cache
+# The relative path to sqlite file database that will be used for image cache
 # management.
 #
-# This is a relative path to the sqlite file database that tracks the
-# age and
-# usage statistics of image cache. The path is relative to image cache
-# base
-# directory, specified by the configuration option
-# ``image_cache_dir``.
+# This is a relative path to the sqlite file database that tracks the age and
+# usage statistics of image cache. The path is relative to image cache base
+# directory, specified by the configuration option ``image_cache_dir``.
 #
 # This is a lightweight database with just one table.
 #
-# Services which consume this:
-#     * glance-api
-#
 # Possible values:
 #     * A valid relative path to sqlite file database
 #
@@ -128,38 +496,25 @@
 #
 # The driver to use for image cache management.
 #
-# This configuration option provides the flexibility to choose between
-# the
-# different image-cache drivers available. An image-cache driver is
-# responsible
-# for providing the essential functions of image-cache like write
-# images to/read
-# images from cache, track age and usage of cached images, provide a
-# list of
-# cached images, fetch size of the cache, queue images for caching and
-# clean up
+# This configuration option provides the flexibility to choose between the
+# different image-cache drivers available. An image-cache driver is responsible
+# for providing the essential functions of image-cache like write images to/read
+# images from cache, track age and usage of cached images, provide a list of
+# cached images, fetch size of the cache, queue images for caching and clean up
 # the cache, etc.
 #
 # The essential functions of a driver are defined in the base class
-# ``glance.image_cache.drivers.base.Driver``. All image-cache drivers
-# (existing
-# and prospective) must implement this interface. Currently available
-# drivers
-# are ``sqlite`` and ``xattr``. These drivers primarily differ in the
-# way they
+# ``glance.image_cache.drivers.base.Driver``. All image-cache drivers (existing
+# and prospective) must implement this interface. Currently available drivers
+# are ``sqlite`` and ``xattr``. These drivers primarily differ in the way they
 # store the information about cached images:
-#     * The ``sqlite`` driver uses a sqlite database (which sits on
-# every glance
+#     * The ``sqlite`` driver uses a sqlite database (which sits on every glance
 #     node locally) to track the usage of cached images.
-#     * The ``xattr`` driver uses the extended attributes of files to
-# store this
-#     information. It also requires a filesystem that sets ``atime``
-# on the files
+#     * The ``xattr`` driver uses the extended attributes of files to store this
+#     information. It also requires a filesystem that sets ``atime`` on the
+# files
 #     when accessed.
 #
-# Services which consume this:
-#     * glance-api
-#
 # Possible values:
 #     * sqlite
 #     * xattr
@@ -172,37 +527,23 @@
 #image_cache_driver = sqlite
 
 #
-# The upper limit on cache size, in bytes, after which the cache-
-# pruner cleans
+# The upper limit on cache size, in bytes, after which the cache-pruner cleans
 # up the image cache.
 #
-# NOTE: This is just a threshold for cache-pruner to act upon. It is
-# NOT a
-# hard limit beyond which the image cache would never grow. In fact,
-# depending
-# on how often the cache-pruner runs and how quickly the cache fills,
-# the image
-# cache can far exceed the size specified here very easily. Hence,
-# care must be
-# taken to appropriately schedule the cache-pruner and in setting this
-# limit.
+# NOTE: This is just a threshold for cache-pruner to act upon. It is NOT a
+# hard limit beyond which the image cache would never grow. In fact, depending
+# on how often the cache-pruner runs and how quickly the cache fills, the image
+# cache can far exceed the size specified here very easily. Hence, care must be
+# taken to appropriately schedule the cache-pruner and in setting this limit.
 #
-# Glance caches an image when it is downloaded. Consequently, the size
-# of the
-# image cache grows over time as the number of downloads increases. To
-# keep the
+# Glance caches an image when it is downloaded. Consequently, the size of the
+# image cache grows over time as the number of downloads increases. To keep the
 # cache size from becoming unmanageable, it is recommended to run the
-# cache-pruner as a periodic task. When the cache pruner is kicked
-# off, it
-# compares the current size of image cache and triggers a cleanup if
-# the image
-# cache grew beyond the size specified here. After the cleanup, the
-# size of
+# cache-pruner as a periodic task. When the cache pruner is kicked off, it
+# compares the current size of image cache and triggers a cleanup if the image
+# cache grew beyond the size specified here. After the cleanup, the size of
 # cache is less than or equal to size specified here.
 #
-# Services which consume this:
-#     * None (consumed by cache-pruner, an independent periodic task)
-#
 # Possible values:
 #     * Any non-negative integer
 #
@@ -214,32 +555,20 @@
 #image_cache_max_size = 10737418240
 
 #
-# The amount of time, in seconds, an incomplete image remains in the
-# cache.
+# The amount of time, in seconds, an incomplete image remains in the cache.
 #
-# Incomplete images are images for which download is in progress.
-# Please see the
-# description of configuration option ``image_cache_dir`` for more
-# detail.
-# Sometimes, due to various reasons, it is possible the download may
-# hang and
-# the incompletely downloaded image remains in the ``incomplete``
-# directory.
-# This configuration option sets a time limit on how long the
-# incomplete images
-# should remain in the ``incomplete`` directory before they are
-# cleaned up.
-# Once an incomplete image spends more time than is specified here,
-# it'll be
+# Incomplete images are images for which download is in progress. Please see the
+# description of configuration option ``image_cache_dir`` for more detail.
+# Sometimes, due to various reasons, it is possible the download may hang and
+# the incompletely downloaded image remains in the ``incomplete`` directory.
+# This configuration option sets a time limit on how long the incomplete images
+# should remain in the ``incomplete`` directory before they are cleaned up.
+# Once an incomplete image spends more time than is specified here, it'll be
 # removed by cache-cleaner on its next run.
 #
-# It is recommended to run cache-cleaner as a periodic task on the
-# Glance API
+# It is recommended to run cache-cleaner as a periodic task on the Glance API
 # nodes to keep the incomplete images from occupying disk space.
 #
-# Services which consume this:
-#     * None (consumed by cache-cleaner, an independent periodic task)
-#
 # Possible values:
 #     * Any non-negative integer
 #
@@ -253,44 +582,27 @@
 #
 # Base directory for image cache.
 #
-# This is the location where image data is cached and served out of.
-# All cached
-# images are stored directly under this directory. This directory also
-# contains
-# three subdirectories, namely, ``incomplete``, ``invalid`` and
-# ``queue``.
+# This is the location where image data is cached and served out of. All cached
+# images are stored directly under this directory. This directory also contains
+# three subdirectories, namely, ``incomplete``, ``invalid`` and ``queue``.
 #
-# The ``incomplete`` subdirectory is the staging area for downloading
-# images. An
-# image is first downloaded to this directory. When the image download
-# is
-# successful it is moved to the base directory. However, if the
-# download fails,
-# the partially downloaded image file is moved to the ``invalid``
-# subdirectory.
+# The ``incomplete`` subdirectory is the staging area for downloading images. An
+# image is first downloaded to this directory. When the image download is
+# successful it is moved to the base directory. However, if the download fails,
+# the partially downloaded image file is moved to the ``invalid`` subdirectory.
 #
-# The ``queue``subdirectory is used for queuing images for download.
-# This is
-# used primarily by the cache-prefetcher, which can be scheduled as a
-# periodic
-# task like cache-pruner and cache-cleaner, to cache images ahead of
-# their usage.
-# Upon receiving the request to cache an image, Glance touches a file
-# in the
-# ``queue`` directory with the image id as the file name. The cache-
-# prefetcher,
+# The ``queue``subdirectory is used for queuing images for download. This is
+# used primarily by the cache-prefetcher, which can be scheduled as a periodic
+# task like cache-pruner and cache-cleaner, to cache images ahead of their
+# usage.
+# Upon receiving the request to cache an image, Glance touches a file in the
+# ``queue`` directory with the image id as the file name. The cache-prefetcher,
 # when running, polls for the files in ``queue`` directory and starts
-# downloading them in the order they were created. When the download
-# is
-# successful, the zero-sized file is deleted from the ``queue``
-# directory.
-# If the download fails, the zero-sized file remains and it'll be
-# retried the
+# downloading them in the order they were created. When the download is
+# successful, the zero-sized file is deleted from the ``queue`` directory.
+# If the download fails, the zero-sized file remains and it'll be retried the
 # next time cache-prefetcher runs.
 #
-# Services which consume this:
-#     * glance-api
-#
 # Possible values:
 #     * A valid path
 #
@@ -300,185 +612,335 @@
 #  (string value)
 #image_cache_dir = <None>
 
-# Address to find the registry server. (string value)
+#
+# Address the registry server is hosted on.
+#
+# Possible values:
+#     * A valid IP or hostname
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #registry_host = 0.0.0.0
 
-# Port the registry server is listening on. (port value)
+#
+# Port the registry server is listening on.
+#
+# Possible values:
+#     * A valid port number
+#
+# Related options:
+#     * None
+#
+#  (port value)
 # Minimum value: 0
 # Maximum value: 65535
 #registry_port = 9191
 
-# DEPRECATED: Whether to pass through the user token when making
-# requests to the registry. To prevent failures with token expiration
-# during big files upload, it is recommended to set this parameter to
-# False.If "use_user_token" is not in effect, then admin credentials
-# can be specified. (boolean value)
+#
+# Protocol to use for communication with the registry server.
+#
+# Provide a string value representing the protocol to use for
+# communication with the registry server. By default, this option is
+# set to ``http` and the connection is not secure.
+#
+# This option can be set to ``https`` to establish a secure connection
+# to the registry server. In this case, provide a key to use for the
+# SSL connection using the ``registry_client_key_file`` option. Also
+# include the CA file and cert file using the options
+# ``registry_client_ca_file`` and ``registry_client_cert_file``
+# respectively.
+#
+# Possible values:
+#     * http
+#     * https
+#
+# Related options:
+#     * registry_client_key_file
+#     * registry_client_cert_file
+#     * registry_client_ca_file
+#
+#  (string value)
+# Allowed values: http, https
+#registry_client_protocol = http
+
+#
+# Absolute path to the private key file.
+#
+# Provide a string value representing a valid absolute path to the
+# private key file to use for establishing a secure connection to
+# the registry server.
+#
+# NOTE: This option must be set if ``registry_client_protocol`` is
+# set to ``https``. Alternatively, the GLANCE_CLIENT_KEY_FILE
+# environment variable may be set to a filepath of the key file.
+#
+# Possible values:
+#     * String value representing a valid absolute path to the key
+#       file.
+#
+# Related options:
+#     * registry_client_protocol
+#
+#  (string value)
+#registry_client_key_file = /etc/ssl/key/key-file.pem
+
+#
+# Absolute path to the certificate file.
+#
+# Provide a string value representing a valid absolute path to the
+# certificate file to use for establishing a secure connection to
+# the registry server.
+#
+# NOTE: This option must be set if ``registry_client_protocol`` is
+# set to ``https``. Alternatively, the GLANCE_CLIENT_CERT_FILE
+# environment variable may be set to a filepath of the certificate
+# file.
+#
+# Possible values:
+#     * String value representing a valid absolute path to the
+#       certificate file.
+#
+# Related options:
+#     * registry_client_protocol
+#
+#  (string value)
+#registry_client_cert_file = /etc/ssl/certs/file.crt
+
+#
+# Absolute path to the Certificate Authority file.
+#
+# Provide a string value representing a valid absolute path to the
+# certificate authority file to use for establishing a secure
+# connection to the registry server.
+#
+# NOTE: This option must be set if ``registry_client_protocol`` is
+# set to ``https``. Alternatively, the GLANCE_CLIENT_CA_FILE
+# environment variable may be set to a filepath of the CA file.
+# This option is ignored if the ``registry_client_insecure`` option
+# is set to ``True``.
+#
+# Possible values:
+#     * String value representing a valid absolute path to the CA
+#       file.
+#
+# Related options:
+#     * registry_client_protocol
+#     * registry_client_insecure
+#
+#  (string value)
+#registry_client_ca_file = /etc/ssl/cafile/file.ca
+
+#
+# Set verification of the registry server certificate.
+#
+# Provide a boolean value to determine whether or not to validate
+# SSL connections to the registry server. By default, this option
+# is set to ``False`` and the SSL connections are validated.
+#
+# If set to ``True``, the connection to the registry server is not
+# validated via a certifying authority and the
+# ``registry_client_ca_file`` option is ignored. This is the
+# registry's equivalent of specifying --insecure on the command line
+# using glanceclient for the API.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * registry_client_protocol
+#     * registry_client_ca_file
+#
+#  (boolean value)
+#registry_client_insecure = false
+
+#
+# Timeout value for registry requests.
+#
+# Provide an integer value representing the period of time in seconds
+# that the API server will wait for a registry request to complete.
+# The default value is 600 seconds.
+#
+# A value of 0 implies that a request will never timeout.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#registry_client_timeout = 600
+
+# DEPRECATED: Whether to pass through the user token when making requests to the
+# registry. To prevent failures with token expiration during big files upload,
+# it is recommended to set this parameter to False.If "use_user_token" is not in
+# effect, then admin credentials can be specified. (boolean value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #use_user_token = true
 
-# DEPRECATED: The administrators user name. If "use_user_token" is not
-# in effect, then admin credentials can be specified. (string value)
+# DEPRECATED: The administrators user name. If "use_user_token" is not in
+# effect, then admin credentials can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #admin_user = <None>
 
-# DEPRECATED: The administrators password. If "use_user_token" is not
-# in effect, then admin credentials can be specified. (string value)
+# DEPRECATED: The administrators password. If "use_user_token" is not in effect,
+# then admin credentials can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #admin_password = <None>
 
-# DEPRECATED: The tenant name of the administrative user. If
-# "use_user_token" is not in effect, then admin tenant name can be
-# specified. (string value)
+# DEPRECATED: The tenant name of the administrative user. If "use_user_token" is
+# not in effect, then admin tenant name can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #admin_tenant_name = <None>
 
-# DEPRECATED: The URL to the keystone service. If "use_user_token" is
-# not in effect and using keystone auth, then URL of keystone can be
-# specified. (string value)
+# DEPRECATED: The URL to the keystone service. If "use_user_token" is not in
+# effect and using keystone auth, then URL of keystone can be specified. (string
+# value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #auth_url = <None>
 
-# DEPRECATED: The strategy to use for authentication. If
-# "use_user_token" is not in effect, then auth strategy can be
-# specified. (string value)
+# DEPRECATED: The strategy to use for authentication. If "use_user_token" is not
+# in effect, then auth strategy can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #auth_strategy = noauth
 
-# DEPRECATED: The region for the authentication service. If
-# "use_user_token" is not in effect and using keystone auth, then
-# region name can be specified. (string value)
+# DEPRECATED: The region for the authentication service. If "use_user_token" is
+# not in effect and using keystone auth, then region name can be specified.
+# (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #auth_region = <None>
 
 #
 # From oslo.log
 #
 
-# If set to true, the logging level will be set to DEBUG instead of
-# the default INFO level. (boolean value)
+# If set to true, the logging level will be set to DEBUG instead of the default
+# INFO level. (boolean value)
 # Note: This option can be changed without restarting.
 #debug = false
 
-# DEPRECATED: If set to false, the logging level will be set to
-# WARNING instead of the default INFO level. (boolean value)
+# DEPRECATED: If set to false, the logging level will be set to WARNING instead
+# of the default INFO level. (boolean value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 #verbose = true
 
-# The name of a logging configuration file. This file is appended to
-# any existing logging configuration files. For details about logging
-# configuration files, see the Python logging module documentation.
-# Note that when logging configuration files are used then all logging
-# configuration is set in the configuration file and other logging
-# configuration options are ignored (for example,
-# logging_context_format_string). (string value)
+# The name of a logging configuration file. This file is appended to any
+# existing logging configuration files. For details about logging configuration
+# files, see the Python logging module documentation. Note that when logging
+# configuration files are used then all logging configuration is set in the
+# configuration file and other logging configuration options are ignored (for
+# example, logging_context_format_string). (string value)
 # Note: This option can be changed without restarting.
 # Deprecated group/name - [DEFAULT]/log_config
 #log_config_append = <None>
 
 # Defines the format string for %%(asctime)s in log records. Default:
-# %(default)s . This option is ignored if log_config_append is set.
-# (string value)
+# %(default)s . This option is ignored if log_config_append is set. (string
+# value)
 #log_date_format = %Y-%m-%d %H:%M:%S
 
-# (Optional) Name of log file to send logging output to. If no default
-# is set, logging will go to stderr as defined by use_stderr. This
-# option is ignored if log_config_append is set. (string value)
+# (Optional) Name of log file to send logging output to. If no default is set,
+# logging will go to stderr as defined by use_stderr. This option is ignored if
+# log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logfile
 #log_file = <None>
 
-# (Optional) The base directory used for relative log_file  paths.
-# This option is ignored if log_config_append is set. (string value)
+# (Optional) The base directory used for relative log_file  paths. This option
+# is ignored if log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logdir
 #log_dir = <None>
 
-# Uses logging handler designed to watch file system. When log file is
-# moved or removed this handler will open a new log file with
-# specified path instantaneously. It makes sense only if log_file
-# option is specified and Linux platform is used. This option is
-# ignored if log_config_append is set. (boolean value)
+# Uses logging handler designed to watch file system. When log file is moved or
+# removed this handler will open a new log file with specified path
+# instantaneously. It makes sense only if log_file option is specified and Linux
+# platform is used. This option is ignored if log_config_append is set. (boolean
+# value)
 #watch_log_file = false
 
-# Use syslog for logging. Existing syslog format is DEPRECATED and
-# will be changed later to honor RFC5424. This option is ignored if
-# log_config_append is set. (boolean value)
+# Use syslog for logging. Existing syslog format is DEPRECATED and will be
+# changed later to honor RFC5424. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_syslog = false
 
 # Syslog facility to receive log lines. This option is ignored if
 # log_config_append is set. (string value)
 #syslog_log_facility = LOG_USER
 
-# Log output to standard error. This option is ignored if
-# log_config_append is set. (boolean value)
+# Log output to standard error. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_stderr = true
 
 # Format string to use for log messages with context. (string value)
 #logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
 
-# Format string to use for log messages when context is undefined.
-# (string value)
+# Format string to use for log messages when context is undefined. (string
+# value)
 #logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
 
-# Additional data to append to log message when logging level for the
-# message is DEBUG. (string value)
+# Additional data to append to log message when logging level for the message is
+# DEBUG. (string value)
 #logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
 
-# Prefix each line of exception output with this format. (string
-# value)
+# Prefix each line of exception output with this format. (string value)
 #logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
 
 # Defines the format string for %(user_identity)s that is used in
 # logging_context_format_string. (string value)
 #logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
 
-# List of package logging levels in logger=LEVEL pairs. This option is
-# ignored if log_config_append is set. (list value)
+# List of package logging levels in logger=LEVEL pairs. This option is ignored
+# if log_config_append is set. (list value)
 #default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
 
 # Enables or disables publication of error events. (boolean value)
 #publish_errors = false
 
-# The format for an instance that is passed with the log message.
-# (string value)
+# The format for an instance that is passed with the log message. (string value)
 #instance_format = "[instance: %(uuid)s] "
 
-# The format for an instance UUID that is passed with the log message.
-# (string value)
+# The format for an instance UUID that is passed with the log message. (string
+# value)
 #instance_uuid_format = "[instance: %(uuid)s] "
 
 # Enables or disables fatal status of deprecations. (boolean value)
@@ -491,361 +953,1325 @@
 # From glance.store
 #
 
-# List of stores enabled. Valid stores are: cinder, file, http, rbd,
-# sheepdog, swift, s3, vsphere (list value)
+#
+# List of enabled Glance stores.
+#
+# Register the storage backends to use for storing disk images
+# as a comma separated list. The default stores enabled for
+# storing disk images with Glance are ``file`` and ``http``.
+#
+# Possible values:
+#     * A comma separated list that could include:
+#         * file
+#         * http
+#         * swift
+#         * rbd
+#         * sheepdog
+#         * cinder
+#         * vmware
+#
+# Related Options:
+#     * default_store
+#
+#  (list value)
 #stores = file,http
 
-# Default scheme to use to store image data. The scheme must be
-# registered by one of the stores defined by the 'stores' config
-# option. (string value)
+#
+# The default scheme to use for storing images.
+#
+# Provide a string value representing the default scheme to use for
+# storing images. If not set, Glance uses ``file`` as the default
+# scheme to store images with the ``file`` store.
+#
+# NOTE: The value given for this configuration option must be a valid
+# scheme for a store registered with the ``stores`` configuration
+# option.
+#
+# Possible values:
+#     * file
+#     * filesystem
+#     * http
+#     * https
+#     * swift
+#     * swift+http
+#     * swift+https
+#     * swift+config
+#     * rbd
+#     * sheepdog
+#     * cinder
+#     * vsphere
+#
+# Related Options:
+#     * stores
+#
+#  (string value)
+# Allowed values: file, filesystem, http, https, swift, swift+http, swift+https, swift+config, rbd, sheepdog, cinder, vsphere
 #default_store = file
 
-# Minimum interval seconds to execute updating dynamic storage
-# capabilities based on backend status then. It's not a periodic
-# routine, the update logic will be executed only when interval
-# seconds elapsed and an operation of store has triggered. The feature
-# will be enabled only when the option value greater then zero.
-# (integer value)
+#
+# Minimum interval in seconds to execute updating dynamic storage
+# capabilities based on current backend status.
+#
+# Provide an integer value representing time in seconds to set the
+# minimum interval before an update of dynamic storage capabilities
+# for a storage backend can be attempted. Setting
+# ``store_capabilities_update_min_interval`` does not mean updates
+# occur periodically based on the set interval. Rather, the update
+# is performed at the elapse of this interval set, if an operation
+# of the store is triggered.
+#
+# By default, this option is set to zero and is disabled. Provide an
+# integer value greater than zero to enable this option.
+#
+# NOTE: For more information on store capabilities and their updates,
+# please visit: https://specs.openstack.org/openstack/glance-specs/specs/kilo
+# /store-capabilities.html
+#
+# For more information on setting up a particular store in your
+# deplyment and help with the usage of this feature, please contact
+# the storage driver maintainers listed here:
+# http://docs.openstack.org/developer/glance_store/drivers/index.html
+#
+# Possible values:
+#     * Zero
+#     * Positive integer
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #store_capabilities_update_min_interval = 0
 
-# Specify the path to the CA bundle file to use in verifying the
-# remote server certificate. (string value)
-#https_ca_certificates_file = <None>
-
-# If true, the remote server certificate is not verified. If false,
-# then the default CA truststore is used for verification. This option
-# is ignored if "https_ca_certificates_file" is set. (boolean value)
-#https_insecure = true
-
-# Specify the http/https proxy information that should be used to
-# connect to the remote server. The proxy information should be a key
-# value pair of the scheme and proxy. e.g. http:10.0.0.1:3128. You can
-# specify proxies for multiple schemes by seperating the key value
-# pairs with a comma.e.g. http:10.0.0.1:3128, https:10.0.0.1:1080.
-# (dict value)
-#http_proxy_information =
-
-# If True, swiftclient won't check for a valid SSL certificate when
-# authenticating. (boolean value)
-#swift_store_auth_insecure = false
-
-# A string giving the CA certificate file to use in SSL connections
-# for verifying certs. (string value)
-#swift_store_cacert = <None>
-
-# The region of the swift endpoint to be used for single tenant. This
-# setting is only necessary if the tenant has multiple swift
-# endpoints. (string value)
-#swift_store_region = <None>
-
-# If set, the configured endpoint will be used. If None, the storage
-# url from the auth response will be used. (string value)
-#swift_store_endpoint = <None>
-
-# A string giving the endpoint type of the swift service to use
-# (publicURL, adminURL or internalURL). This setting is only used if
-# swift_store_auth_version is 2. (string value)
-#swift_store_endpoint_type = publicURL
-
-# A string giving the service type of the swift service to use. This
-# setting is only used if swift_store_auth_version is 2. (string
-# value)
-#swift_store_service_type = object-store
-
-# Container within the account that the account should use for storing
-# images in Swift when using single container mode. In multiple
-# container mode, this will be the prefix for all containers. (string
-# value)
-#swift_store_container = glance
-
-# The size, in MB, that Glance will start chunking image files and do
-# a large object manifest in Swift. (integer value)
-#swift_store_large_object_size = 5120
-
-# The amount of data written to a temporary disk buffer during the
-# process of chunking the image file. (integer value)
-#swift_store_large_object_chunk_size = 200
-
-# A boolean value that determines if we create the container if it
-# does not exist. (boolean value)
-#swift_store_create_container_on_put = false
-
-# If set to True, enables multi-tenant storage mode which causes
-# Glance images to be stored in tenant specific Swift accounts.
-# (boolean value)
-#swift_store_multi_tenant = false
-
-# When set to 0, a single-tenant store will only use one container to
-# store all images. When set to an integer value between 1 and 32, a
-# single-tenant store will use multiple containers to store images,
-# and this value will determine how many containers are created.Used
-# only when swift_store_multi_tenant is disabled. The total number of
-# containers that will be used is equal to 16^N, so if this config
-# option is set to 2, then 16^2=256 containers will be used to store
-# images. (integer value)
-#swift_store_multiple_containers_seed = 0
-
-# A list of tenants that will be granted read/write access on all
-# Swift containers created by Glance in multi-tenant mode. (list
-# value)
-#swift_store_admin_tenants =
-
-# If set to False, disables SSL layer compression of https swift
-# requests. Setting to False may improve performance for images which
-# are already in a compressed format, eg qcow2. (boolean value)
-#swift_store_ssl_compression = true
-
-# The number of times a Swift download will be retried before the
-# request fails. (integer value)
-#swift_store_retry_get_count = 0
-
-# The period of time (in seconds) before token expirationwhen
-# glance_store will try to reques new user token. Default value 60 sec
-# means that if token is going to expire in 1 min then glance_store
-# request new user token. (integer value)
-#swift_store_expire_soon_interval = 60
-
-# If set to True create a trust for each add/get request to Multi-
-# tenant store in order to prevent authentication token to be expired
-# during uploading/downloading data. If set to False then user token
-# is used for Swift connection (so no overhead on trust creation).
-# Please note that this option is considered only and only if
-# swift_store_multi_tenant=True (boolean value)
-#swift_store_use_trusts = true
-
-# The reference to the default swift account/backing store parameters
-# to use for adding new images. (string value)
-#default_swift_reference = ref1
-
-# Version of the authentication service to use. Valid versions are 2
-# and 3 for keystone and 1 (deprecated) for swauth and rackspace.
-# (deprecated - use "auth_version" in swift_store_config_file) (string
-# value)
-#swift_store_auth_version = 2
-
-# The address where the Swift authentication service is listening.
-# (deprecated - use "auth_address" in swift_store_config_file) (string
-# value)
-#swift_store_auth_address = <None>
-
-# The user to authenticate against the Swift authentication service
-# (deprecated - use "user" in swift_store_config_file) (string value)
-#swift_store_user = <None>
-
-# Auth key for the user authenticating against the Swift
-# authentication service. (deprecated - use "key" in
-# swift_store_config_file) (string value)
-#swift_store_key = <None>
-
-# The config file that has the swift account(s)configs. (string value)
-#swift_store_config_file = <None>
-
-# Directory to which the Filesystem backend store writes images.
-# (string value)
+#
+# Directory to which the filesystem backend store writes images.
+#
+# Upon start up, Glance creates the directory if it doesn't already
+# exist and verifies write access to the user under which
+# ``glance-api`` runs. If the write access isn't available, a
+# ``BadStoreConfiguration`` exception is raised and the filesystem
+# store may not be available for adding new images.
+#
+# NOTE: This directory is used only when filesystem store is used as a
+# storage backend. Either ``filesystem_store_datadir`` or
+# ``filesystem_store_datadirs`` option must be specified in
+# ``glance-api.conf``. If both options are specified, a
+# ``BadStoreConfiguration`` will be raised and the filesystem store
+# may not be available for adding new images.
+#
+# Possible values:
+#     * A valid path to a directory
+#
+# Related options:
+#     * ``filesystem_store_datadirs``
+#     * ``filesystem_store_file_perm``
+#
+#  (string value)
 #filesystem_store_datadir = /var/lib/glance/images
 
-# List of directories and its priorities to which the Filesystem
-# backend store writes images. (multi valued)
+#
+# List of directories and their priorities to which the filesystem
+# backend store writes images.
+#
+# The filesystem store can be configured to store images in multiple
+# directories as opposed to using a single directory specified by the
+# ``filesystem_store_datadir`` configuration option. When using
+# multiple directories, each directory can be given an optional
+# priority to specify the preference order in which they should
+# be used. Priority is an integer that is concatenated to the
+# directory path with a colon where a higher value indicates higher
+# priority. When two directories have the same priority, the directory
+# with most free space is used. When no priority is specified, it
+# defaults to zero.
+#
+# More information on configuring filesystem store with multiple store
+# directories can be found at
+# http://docs.openstack.org/developer/glance/configuring.html
+#
+# NOTE: This directory is used only when filesystem store is used as a
+# storage backend. Either ``filesystem_store_datadir`` or
+# ``filesystem_store_datadirs`` option must be specified in
+# ``glance-api.conf``. If both options are specified, a
+# ``BadStoreConfiguration`` will be raised and the filesystem store
+# may not be available for adding new images.
+#
+# Possible values:
+#     * List of strings of the following form:
+#         * ``<a valid directory path>:<optional integer priority>``
+#
+# Related options:
+#     * ``filesystem_store_datadir``
+#     * ``filesystem_store_file_perm``
+#
+#  (multi valued)
 #filesystem_store_datadirs =
 
+#
+# Filesystem store metadata file.
+#
 # The path to a file which contains the metadata to be returned with
-# any location associated with this store.  The file must contain a
-# valid JSON object. The object should contain the keys 'id' and
-# 'mountpoint'. The value for both keys should be 'string'. (string
-# value)
+# any location associated with the filesystem store. The file must
+# contain a valid JSON object. The object should contain the keys
+# ``id`` and ``mountpoint``. The value for both keys should be a
+# string.
+#
+# Possible values:
+#     * A valid path to the store metadata file
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #filesystem_store_metadata_file = <None>
 
-# The required permission for created image file. In this way the user
-# other service used, e.g. Nova, who consumes the image could be the
-# exclusive member of the group that owns the files created. Assigning
-# it less then or equal to zero means don't change the default
-# permission of the file. This value will be decoded as an octal
-# digit. (integer value)
+#
+# File access permissions for the image files.
+#
+# Set the intended file access permissions for image data. This provides
+# a way to enable other services, e.g. Nova, to consume images directly
+# from the filesystem store. The users running the services that are
+# intended to be given access to could be made a member of the group
+# that owns the files created. Assigning a value less then or equal to
+# zero for this configuration option signifies that no changes be made
+# to the  default permissions. This value will be decoded as an octal
+# digit.
+#
+# For more information, please refer the documentation at
+# http://docs.openstack.org/developer/glance/configuring.html
+#
+# Possible values:
+#     * A valid file access permission
+#     * Zero
+#     * Any negative integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #filesystem_store_file_perm = 0
 
-# The host where the S3 server is listening. (string value)
-#s3_store_host = <None>
+#
+# Path to the CA bundle file.
+#
+# This configuration option enables the operator to use a custom
+# Certificate Authority file to verify the remote server certificate. If
+# this option is set, the ``https_insecure`` option will be ignored and
+# the CA file specified will be used to authenticate the server
+# certificate and establish a secure connection to the server.
+#
+# Possible values:
+#     * A valid path to a CA file
+#
+# Related options:
+#     * https_insecure
+#
+#  (string value)
+#https_ca_certificates_file = <None>
 
-# The S3 query token access key. (string value)
-#s3_store_access_key = <None>
+#
+# Set verification of the remote server certificate.
+#
+# This configuration option takes in a boolean value to determine
+# whether or not to verify the remote server certificate. If set to
+# True, the remote server certificate is not verified. If the option is
+# set to False, then the default CA truststore is used for verification.
+#
+# This option is ignored if ``https_ca_certificates_file`` is set.
+# The remote server certificate will then be verified using the file
+# specified using the ``https_ca_certificates_file`` option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * https_ca_certificates_file
+#
+#  (boolean value)
+#https_insecure = true
 
-# The S3 query token secret key. (string value)
-#s3_store_secret_key = <None>
+#
+# The http/https proxy information to be used to connect to the remote
+# server.
+#
+# This configuration option specifies the http/https proxy information
+# that should be used to connect to the remote server. The proxy
+# information should be a key value pair of the scheme and proxy, for
+# example, http:10.0.0.1:3128. You can also specify proxies for multiple
+# schemes by separating the key value pairs with a comma, for example,
+# http:10.0.0.1:3128, https:10.0.0.1:1080.
+#
+# Possible values:
+#     * A comma separated list of scheme:proxy pairs as described above
+#
+# Related options:
+#     * None
+#
+#  (dict value)
+#http_proxy_information =
 
-# The S3 bucket to be used to store the Glance data. (string value)
-#s3_store_bucket = <None>
+#
+# Address of the ESX/ESXi or vCenter Server target system.
+#
+# This configuration option sets the address of the ESX/ESXi or vCenter
+# Server target system. This option is required when using the VMware
+# storage backend. The address can contain an IP address (127.0.0.1) or
+# a DNS name (www.my-domain.com).
+#
+# Possible Values:
+#     * A valid IPv4 or IPv6 address
+#     * A valid DNS name
+#
+# Related options:
+#     * vmware_server_username
+#     * vmware_server_password
+#
+#  (string value)
+#vmware_server_host = 127.0.0.1
 
-# The local directory where uploads will be staged before they are
-# transferred into S3. (string value)
-#s3_store_object_buffer_dir = <None>
+#
+# Server username.
+#
+# This configuration option takes the username for authenticating with
+# the VMware ESX/ESXi or vCenter Server. This option is required when
+# using the VMware storage backend.
+#
+# Possible Values:
+#     * Any string that is the username for a user with appropriate
+#       privileges
+#
+# Related options:
+#     * vmware_server_host
+#     * vmware_server_password
+#
+#  (string value)
+#vmware_server_username = root
 
-# A boolean to determine if the S3 bucket should be created on upload
-# if it does not exist or if an error should be returned to the user.
-# (boolean value)
-#s3_store_create_bucket_on_put = false
+#
+# Server password.
+#
+# This configuration option takes the password for authenticating with
+# the VMware ESX/ESXi or vCenter Server. This option is required when
+# using the VMware storage backend.
+#
+# Possible Values:
+#     * Any string that is a password corresponding to the username
+#       specified using the "vmware_server_username" option
+#
+# Related options:
+#     * vmware_server_host
+#     * vmware_server_username
+#
+#  (string value)
+#vmware_server_password = vmware
 
-# The S3 calling format used to determine the bucket. Either subdomain
-# or path can be used. (string value)
-#s3_store_bucket_url_format = subdomain
-
-# What size, in MB, should S3 start chunking image files and do a
-# multipart upload in S3. (integer value)
-#s3_store_large_object_size = 100
-
-# What multipart upload part size, in MB, should S3 use when uploading
-# parts. The size must be greater than or equal to 5M. (integer value)
-#s3_store_large_object_chunk_size = 10
-
-# The number of thread pools to perform a multipart upload in S3.
-# (integer value)
-#s3_store_thread_pools = 10
-
-# Enable the use of a proxy. (boolean value)
-#s3_store_enable_proxy = false
-
-# Address or hostname for the proxy server. (string value)
-#s3_store_proxy_host = <None>
-
-# The port to use when connecting over a proxy. (integer value)
-#s3_store_proxy_port = 8080
-
-# The username to connect to the proxy. (string value)
-#s3_store_proxy_user = <None>
-
-# The password to use when connecting over a proxy. (string value)
-#s3_store_proxy_password = <None>
-
-# Info to match when looking for cinder in the service catalog. Format
-# is : separated values of the form:
-# <service_type>:<service_name>:<endpoint_type> (string value)
-#cinder_catalog_info = volumev2::publicURL
-
-# Override service catalog lookup with template for cinder endpoint
-# e.g. http://localhost:8776/v2/%(tenant)s (string value)
-#cinder_endpoint_template = <None>
-
-# Region name of this node. If specified, it will be used to locate
-# OpenStack services for stores. (string value)
-# Deprecated group/name - [glance_store]/os_region_name
-#cinder_os_region_name = <None>
-
-# Location of ca certicates file to use for cinder client requests.
-# (string value)
-#cinder_ca_certificates_file = <None>
-
-# Number of cinderclient retries on failed http calls (integer value)
-#cinder_http_retries = 3
-
-# Time period of time in seconds to wait for a cinder volume
-# transition to complete. (integer value)
-#cinder_state_transition_timeout = 300
-
-# Allow to perform insecure SSL requests to cinder (boolean value)
-#cinder_api_insecure = false
-
-# The address where the Cinder authentication service is listening. If
-# <None>, the cinder endpoint in the service catalog is used. (string
-# value)
-#cinder_store_auth_address = <None>
-
-# User name to authenticate against Cinder. If <None>, the user of
-# current context is used. (string value)
-#cinder_store_user_name = <None>
-
-# Password for the user authenticating against Cinder. If <None>, the
-# current context auth token is used. (string value)
-#cinder_store_password = <None>
-
-# Project name where the image is stored in Cinder. If <None>, the
-# project in current context is used. (string value)
-#cinder_store_project_name = <None>
-
-# Path to the rootwrap configuration file to use for running commands
-# as root. (string value)
-#rootwrap_config = /etc/glance/rootwrap.conf
-
-# ESX/ESXi or vCenter Server target system. The server value can be an
-# IP address or a DNS name. (string value)
-#vmware_server_host = <None>
-
-# Username for authenticating with VMware ESX/VC server. (string
-# value)
-#vmware_server_username = <None>
-
-# Password for authenticating with VMware ESX/VC server. (string
-# value)
-#vmware_server_password = <None>
-
-# Number of times VMware ESX/VC server API must be retried upon
-# connection related issues. (integer value)
+#
+# The number of VMware API retries.
+#
+# This configuration option specifies the number of times the VMware
+# ESX/VC server API must be retried upon connection related issues or
+# server API call overload. It is not possible to specify 'retry
+# forever'.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #vmware_api_retry_count = 10
 
-# The interval used for polling remote tasks invoked on VMware ESX/VC
-# server. (integer value)
+#
+# Interval in seconds used for polling remote tasks invoked on VMware
+# ESX/VC server.
+#
+# This configuration option takes in the sleep time in seconds for polling an
+# on-going async task as part of the VMWare ESX/VC server API call.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #vmware_task_poll_interval = 5
 
-# The name of the directory where the glance images will be stored in
-# the VMware datastore. (string value)
+#
+# The directory where the glance images will be stored in the datastore.
+#
+# This configuration option specifies the path to the directory where the
+# glance images will be stored in the VMware datastore. If this option
+# is not set,  the default directory where the glance images are stored
+# is openstack_glance.
+#
+# Possible Values:
+#     * Any string that is a valid path to a directory
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #vmware_store_image_dir = /openstack_glance
 
-# If true, the ESX/vCenter server certificate is not verified. If
-# false, then the default CA truststore is used for verification. This
-# option is ignored if "vmware_ca_file" is set. (boolean value)
+#
+# Set verification of the ESX/vCenter server certificate.
+#
+# This configuration option takes a boolean value to determine
+# whether or not to verify the ESX/vCenter server certificate. If this
+# option is set to True, the ESX/vCenter server certificate is not
+# verified. If this option is set to False, then the default CA
+# truststore is used for verification.
+#
+# This option is ignored if the "vmware_ca_file" option is set. In that
+# case, the ESX/vCenter server certificate will then be verified using
+# the file specified using the "vmware_ca_file" option .
+#
+# Possible Values:
+#     * True
+#     * False
+#
+# Related options:
+#     * vmware_ca_file
+#
+#  (boolean value)
 # Deprecated group/name - [glance_store]/vmware_api_insecure
 #vmware_insecure = false
 
-# Specify a CA bundle file to use in verifying the ESX/vCenter server
-# certificate. (string value)
-#vmware_ca_file = <None>
+#
+# Absolute path to the CA bundle file.
+#
+# This configuration option enables the operator to use a custom
+# Cerificate Authority File to verify the ESX/vCenter certificate.
+#
+# If this option is set, the "vmware_insecure" option will be ignored
+# and the CA file specified will be used to authenticate the ESX/vCenter
+# server certificate and establish a secure connection to the server.
+#
+# Possible Values:
+#     * Any string that is a valid absolute path to a CA file
+#
+# Related options:
+#     * vmware_insecure
+#
+#  (string value)
+#vmware_ca_file = /etc/ssl/certs/ca-certificates.crt
 
-# A list of datastores where the image can be stored. This option may
-# be specified multiple times for specifying multiple datastores. The
-# datastore name should be specified after its datacenter path,
-# seperated by ":". An optional weight may be given after the
-# datastore name, seperated again by ":". Thus, the required format
-# becomes <datacenter_path>:<datastore_name>:<optional_weight>. When
-# adding an image, the datastore with highest weight will be selected,
-# unless there is not enough free space available in cases where the
-# image size is already known. If no weight is given, it is assumed to
-# be zero and the directory will be considered for selection last. If
-# multiple datastores have the same weight, then the one with the most
-# free space available is selected. (multi valued)
+#
+# The datastores where the image can be stored.
+#
+# This configuration option specifies the datastores where the image can
+# be stored in the VMWare store backend. This option may be specified
+# multiple times for specifying multiple datastores. The datastore name
+# should be specified after its datacenter path, separated by ":". An
+# optional weight may be given after the datastore name, separated again
+# by ":" to specify the priority. Thus, the required format becomes
+# <datacenter_path>:<datastore_name>:<optional_weight>.
+#
+# When adding an image, the datastore with highest weight will be
+# selected, unless there is not enough free space available in cases
+# where the image size is already known. If no weight is given, it is
+# assumed to be zero and the directory will be considered for selection
+# last. If multiple datastores have the same weight, then the one with
+# the most free space available is selected.
+#
+# Possible Values:
+#     * Any string of the format:
+#       <datacenter_path>:<datastore_name>:<optional_weight>
+#
+# Related options:
+#    * None
+#
+#  (multi valued)
 #vmware_datastores =
 
-# Images will be chunked into objects of this size (in megabytes). For
-# best performance, this should be a power of two. (integer value)
+#
+# Chunk size for images to be stored in Sheepdog data store.
+#
+# Provide an integer value representing the size in mebibyte
+# (1048576 bytes) to chunk Glance images into. The default
+# chunk size is 64 mebibytes.
+#
+# When using Sheepdog distributed storage system, the images are
+# chunked into objects of this size and then stored across the
+# distributed data store to use for Glance.
+#
+# Chunk sizes, if a power of two, help avoid fragmentation and
+# enable improved performance.
+#
+# Possible values:
+#     * Positive integer value representing size in mebibytes.
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #sheepdog_store_chunk_size = 64
 
-# Port of sheep daemon. (integer value)
+#
+# Port number on which the sheep daemon will listen.
+#
+# Provide an integer value representing a valid port number on
+# which you want the Sheepdog daemon to listen on. The default
+# port is 7000.
+#
+# The Sheepdog daemon, also called 'sheep', manages the storage
+# in the distributed cluster by writing objects across the storage
+# network. It identifies and acts on the messages it receives on
+# the port number set using ``sheepdog_store_port`` option to store
+# chunks of Glance images.
+#
+# Possible values:
+#     * A valid port number (0 to 65535)
+#
+# Related Options:
+#     * sheepdog_store_address
+#
+#  (port value)
+# Minimum value: 0
+# Maximum value: 65535
 #sheepdog_store_port = 7000
 
-# IP address of sheep daemon. (string value)
-#sheepdog_store_address = localhost
+#
+# Address to bind the Sheepdog daemon to.
+#
+# Provide a string value representing the address to bind the
+# Sheepdog daemon to. The default address set for the 'sheep'
+# is 127.0.0.1.
+#
+# The Sheepdog daemon, also called 'sheep', manages the storage
+# in the distributed cluster by writing objects across the storage
+# network. It identifies and acts on the messages directed to the
+# address set using ``sheepdog_store_address`` option to store
+# chunks of Glance images.
+#
+# Possible values:
+#     * A valid IPv4 address
+#     * A valid IPv6 address
+#     * A valid hostname
+#
+# Related Options:
+#     * sheepdog_store_port
+#
+#  (string value)
+#sheepdog_store_address = 127.0.0.1
 
-# RADOS images will be chunked into objects of this size (in
-# megabytes). For best performance, this should be a power of two.
-# (integer value)
+#
+# Size, in megabytes, to chunk RADOS images into.
+#
+# Provide an integer value representing the size in megabytes to chunk
+# Glance images into. The default chunk size is 8 megabytes. For optimal
+# performance, the value should be a power of two.
+#
+# When Ceph's RBD object storage system is used as the storage backend
+# for storing Glance images, the images are chunked into objects of the
+# size set using this option. These chunked objects are then stored
+# across the distributed block data store to use for Glance.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #rbd_store_chunk_size = 8
 
-# RADOS pool in which images are stored. (string value)
+#
+# RADOS pool in which images are stored.
+#
+# When RBD is used as the storage backend for storing Glance images, the
+# images are stored by means of logical grouping of the objects (chunks
+# of images) into a ``pool``. Each pool is defined with the number of
+# placement groups it can contain. The default pool that is used is
+# 'images'.
+#
+# More information on the RBD storage backend can be found here:
+# http://ceph.com/planet/how-data-is-stored-in-ceph-cluster/
+#
+# Possible Values:
+#     * A valid pool name
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #rbd_store_pool = images
 
-# RADOS user to authenticate as (only applicable if using Cephx. If
-# <None>, a default will be chosen based on the client. section in
-# rbd_store_ceph_conf) (string value)
+#
+# RADOS user to authenticate as.
+#
+# This configuration option takes in the RADOS user to authenticate as.
+# This is only needed when RADOS authentication is enabled and is
+# applicable only if the user is using Cephx authentication. If the
+# value for this option is not set by the user or is set to None, a
+# default value will be chosen, which will be based on the client.
+# section in rbd_store_ceph_conf.
+#
+# Possible Values:
+#     * A valid RADOS user
+#
+# Related options:
+#     * rbd_store_ceph_conf
+#
+#  (string value)
 #rbd_store_user = <None>
 
-# Ceph configuration file path. If <None>, librados will locate the
-# default config. If using cephx authentication, this file should
-# include a reference to the right keyring in a client.<USER> section
-# (string value)
+#
+# Ceph configuration file path.
+#
+# This configuration option takes in the path to the Ceph configuration
+# file to be used. If the value for this option is not set by the user
+# or is set to None, librados will locate the default configuration file
+# which is located at /etc/ceph/ceph.conf. If using Cephx
+# authentication, this file should include a reference to the right
+# keyring in a client.<USER> section
+#
+# Possible Values:
+#     * A valid path to a configuration file
+#
+# Related options:
+#     * rbd_store_user
+#
+#  (string value)
 #rbd_store_ceph_conf = /etc/ceph/ceph.conf
 
-# Timeout value (in seconds) used when connecting to ceph cluster. If
-# value <= 0, no timeout is set and default librados value is used.
-# (integer value)
+#
+# Timeout value for connecting to Ceph cluster.
+#
+# This configuration option takes in the timeout value in seconds used
+# when connecting to the Ceph cluster i.e. it sets the time to wait for
+# glance-api before closing the connection. This prevents glance-api
+# hangups during the connection to RBD. If the value for this option
+# is set to less than or equal to 0, no timeout is set and the default
+# librados value is used.
+#
+# Possible Values:
+#     * Any integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #rados_connect_timeout = 0
 
+#
+# Information to match when looking for cinder in the service catalog.
+#
+# When the ``cinder_endpoint_template`` is not set and any of
+# ``cinder_store_auth_address``, ``cinder_store_user_name``,
+# ``cinder_store_project_name``, ``cinder_store_password`` is not set,
+# cinder store uses this information to lookup cinder endpoint from the service
+# catalog in the current context. ``cinder_os_region_name``, if set, is taken
+# into consideration to fetch the appropriate endpoint.
+#
+# The service catalog can be listed by the ``openstack catalog list`` command.
+#
+# Possible values:
+#     * A string of of the following form:
+#       ``<service_type>:<service_name>:<endpoint_type>``
+#       At least ``service_type`` and ``endpoint_type`` should be specified.
+#       ``service_name`` can be omitted.
+#
+# Related options:
+#     * cinder_os_region_name
+#     * cinder_endpoint_template
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#     * cinder_store_password
+#
+#  (string value)
+#cinder_catalog_info = volumev2::publicURL
+
+#
+# Override service catalog lookup with template for cinder endpoint.
+#
+# When this option is set, this value is used to generate cinder endpoint,
+# instead of looking up from the service catalog.
+# This value is ignored if ``cinder_store_auth_address``,
+# ``cinder_store_user_name``, ``cinder_store_project_name``, and
+# ``cinder_store_password`` are specified.
+#
+# If this configuration option is set, ``cinder_catalog_info`` will be ignored.
+#
+# Possible values:
+#     * URL template string for cinder endpoint, where ``%%(tenant)s`` is
+#       replaced with the current tenant (project) name.
+#       For example: ``http://cinder.openstack.example.org/v2/%%(tenant)s``
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#     * cinder_store_password
+#     * cinder_catalog_info
+#
+#  (string value)
+#cinder_endpoint_template = <None>
+
+#
+# Region name to lookup cinder service from the service catalog.
+#
+# This is used only when ``cinder_catalog_info`` is used for determining the
+# endpoint. If set, the lookup for cinder endpoint by this node is filtered to
+# the specified region. It is useful when multiple regions are listed in the
+# catalog. If this is not set, the endpoint is looked up from every region.
+#
+# Possible values:
+#     * A string that is a valid region name.
+#
+# Related options:
+#     * cinder_catalog_info
+#
+#  (string value)
+# Deprecated group/name - [glance_store]/os_region_name
+#cinder_os_region_name = <None>
+
+#
+# Location of a CA certificates file used for cinder client requests.
+#
+# The specified CA certificates file, if set, is used to verify cinder
+# connections via HTTPS endpoint. If the endpoint is HTTP, this value is
+# ignored.
+# ``cinder_api_insecure`` must be set to ``True`` to enable the verification.
+#
+# Possible values:
+#     * Path to a ca certificates file
+#
+# Related options:
+#     * cinder_api_insecure
+#
+#  (string value)
+#cinder_ca_certificates_file = <None>
+
+#
+# Number of cinderclient retries on failed http calls.
+#
+# When a call failed by any errors, cinderclient will retry the call up to the
+# specified times after sleeping a few seconds.
+#
+# Possible values:
+#     * A positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#cinder_http_retries = 3
+
+#
+# Time period, in seconds, to wait for a cinder volume transition to
+# complete.
+#
+# When the cinder volume is created, deleted, or attached to the glance node to
+# read/write the volume data, the volume's state is changed. For example, the
+# newly created volume status changes from ``creating`` to ``available`` after
+# the creation process is completed. This specifies the maximum time to wait for
+# the status change. If a timeout occurs while waiting, or the status is changed
+# to an unexpected value (e.g. `error``), the image creation fails.
+#
+# Possible values:
+#     * A positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#cinder_state_transition_timeout = 300
+
+#
+# Allow to perform insecure SSL requests to cinder.
+#
+# If this option is set to True, HTTPS endpoint connection is verified using the
+# CA certificates file specified by ``cinder_ca_certificates_file`` option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * cinder_ca_certificates_file
+#
+#  (boolean value)
+#cinder_api_insecure = false
+
+#
+# The address where the cinder authentication service is listening.
+#
+# When all of ``cinder_store_auth_address``, ``cinder_store_user_name``,
+# ``cinder_store_project_name``, and ``cinder_store_password`` options are
+# specified, the specified values are always used for the authentication.
+# This is useful to hide the image volumes from users by storing them in a
+# project/tenant specific to the image service. It also enables users to share
+# the image volume among other projects under the control of glance's ACL.
+#
+# If either of these options are not set, the cinder endpoint is looked up
+# from the service catalog, and current context's user and project are used.
+#
+# Possible values:
+#     * A valid authentication service address, for example:
+#       ``http://openstack.example.org/identity/v2.0``
+#
+# Related options:
+#     * cinder_store_user_name
+#     * cinder_store_password
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_auth_address = <None>
+
+#
+# User name to authenticate against cinder.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the user of the current context is used.
+#
+# Possible values:
+#     * A valid user name
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_password
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_user_name = <None>
+
+#
+# Password for the user authenticating against cinder.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the user of the current context is used.
+#
+# Possible values:
+#     * A valid password for the user specified by ``cinder_store_user_name``
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_password = <None>
+
+#
+# Project name where the image volume is stored in cinder.
+#
+# If this configuration option is not set, the project in current context is
+# used.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the project of the current context is used.
+#
+# Possible values:
+#     * A valid project name
+#
+# Related options:
+#     * ``cinder_store_auth_address``
+#     * ``cinder_store_user_name``
+#     * ``cinder_store_password``
+#
+#  (string value)
+#cinder_store_project_name = <None>
+
+#
+# Path to the rootwrap configuration file to use for running commands as root.
+#
+# The cinder store requires root privileges to operate the image volumes (for
+# connecting to iSCSI/FC volumes and reading/writing the volume data, etc.).
+# The configuration file should allow the required commands by cinder store and
+# os-brick library.
+#
+# Possible values:
+#     * Path to the rootwrap config file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#rootwrap_config = /etc/glance/rootwrap.conf
+
+#
+# Set verification of the server certificate.
+#
+# This boolean determines whether or not to verify the server
+# certificate. If this option is set to True, swiftclient won't check
+# for a valid SSL certificate when authenticating. If the option is set
+# to False, then the default CA truststore is used for verification.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * swift_store_cacert
+#
+#  (boolean value)
+#swift_store_auth_insecure = false
+
+#
+# Path to the CA bundle file.
+#
+# This configuration option enables the operator to specify the path to
+# a custom Certificate Authority file for SSL verification when
+# connecting to Swift.
+#
+# Possible values:
+#     * A valid path to a CA file
+#
+# Related options:
+#     * swift_store_auth_insecure
+#
+#  (string value)
+#swift_store_cacert = /etc/ssl/certs/ca-certificates.crt
+
+#
+# The region of Swift endpoint to use by Glance.
+#
+# Provide a string value representing a Swift region where Glance
+# can connect to for image storage. By default, there is no region
+# set.
+#
+# When Glance uses Swift as the storage backend to store images
+# for a specific tenant that has multiple endpoints, setting of a
+# Swift region with ``swift_store_region`` allows Glance to connect
+# to Swift in the specified region as opposed to a single region
+# connectivity.
+#
+# This option can be configured for both single-tenant and
+# multi-tenant storage.
+#
+# NOTE: Setting the region with ``swift_store_region`` is
+# tenant-specific and is necessary ``only if`` the tenant has
+# multiple endpoints across different regions.
+#
+# Possible values:
+#     * A string value representing a valid Swift region.
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_region = RegionTwo
+
+#
+# The URL endpoint to use for Swift backend storage.
+#
+# Provide a string value representing the URL endpoint to use for
+# storing Glance images in Swift store. By default, an endpoint
+# is not set and the storage URL returned by ``auth`` is used.
+# Setting an endpoint with ``swift_store_endpoint`` overrides the
+# storage URL and is used for Glance image storage.
+#
+# NOTE: The URL should include the path up to, but excluding the
+# container. The location of an object is obtained by appending
+# the container and object to the configured URL.
+#
+# Possible values:
+#     * String value representing a valid URL path up to a Swift container
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_endpoint = https://swift.openstack.example.org/v1/path_not_including_container_name
+
+#
+# Endpoint Type of Swift service.
+#
+# This string value indicates the endpoint type to use to fetch the
+# Swift endpoint. The endpoint type determines the actions the user will
+# be allowed to perform, for instance, reading and writing to the Store.
+# This setting is only used if swift_store_auth_version is greater than
+# 1.
+#
+# Possible values:
+#     * publicURL
+#     * adminURL
+#     * internalURL
+#
+# Related options:
+#     * swift_store_endpoint
+#
+#  (string value)
+# Allowed values: publicURL, adminURL, internalURL
+#swift_store_endpoint_type = publicURL
+
+#
+# Type of Swift service to use.
+#
+# Provide a string value representing the service type to use for
+# storing images while using Swift backend storage. The default
+# service type is set to ``object-store``.
+#
+# NOTE: If ``swift_store_auth_version`` is set to 2, the value for
+# this configuration option needs to be ``object-store``. If using
+# a higher version of Keystone or a different auth scheme, this
+# option may be modified.
+#
+# Possible values:
+#     * A string representing a valid service type for Swift storage.
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_service_type = object-store
+
+#
+# Name of single container to store images/name prefix for multiple containers
+#
+# When a single container is being used to store images, this configuration
+# option indicates the container within the Glance account to be used for
+# storing all images. When multiple containers are used to store images, this
+# will be the name prefix for all containers. Usage of single/multiple
+# containers can be controlled using the configuration option
+# ``swift_store_multiple_containers_seed``.
+#
+# When using multiple containers, the containers will be named after the value
+# set for this configuration option with the first N chars of the image UUID
+# as the suffix delimited by an underscore (where N is specified by
+# ``swift_store_multiple_containers_seed``).
+#
+# Example: if the seed is set to 3 and swift_store_container = ``glance``, then
+# an image with UUID ``fdae39a1-bac5-4238-aba4-69bcc726e848`` would be placed in
+# the container ``glance_fda``. All dashes in the UUID are included when
+# creating the container name but do not count toward the character limit, so
+# when N=10 the container name would be ``glance_fdae39a1-ba.``
+#
+# Possible values:
+#     * If using single container, this configuration option can be any string
+#       that is a valid swift container name in Glance's Swift account
+#     * If using multiple containers, this configuration option can be any
+#       string as long as it satisfies the container naming rules enforced by
+#       Swift. The value of ``swift_store_multiple_containers_seed`` should be
+#       taken into account as well.
+#
+# Related options:
+#     * ``swift_store_multiple_containers_seed``
+#     * ``swift_store_multi_tenant``
+#     * ``swift_store_create_container_on_put``
+#
+#  (string value)
+#swift_store_container = glance
+
+#
+# The size threshold, in MB, after which Glance will start segmenting image
+# data.
+#
+# Swift has an upper limit on the size of a single uploaded object. By default,
+# this is 5GB. To upload objects bigger than this limit, objects are segmented
+# into multiple smaller objects that are tied together with a manifest file.
+# For more detail, refer to
+# http://docs.openstack.org/developer/swift/overview_large_objects.html
+#
+# This configuration option specifies the size threshold over which the Swift
+# driver will start segmenting image data into multiple smaller files.
+# Currently, the Swift driver only supports creating Dynamic Large Objects.
+#
+# NOTE: This should be set by taking into account the large object limit
+# enforced by the Swift cluster in consideration.
+#
+# Possible values:
+#     * A positive integer that is less than or equal to the large object limit
+#       enforced by the Swift cluster in consideration.
+#
+# Related options:
+#     * ``swift_store_large_object_chunk_size``
+#
+#  (integer value)
+# Minimum value: 1
+#swift_store_large_object_size = 5120
+
+#
+# The maximum size, in MB, of the segments when image data is segmented.
+#
+# When image data is segmented to upload images that are larger than the limit
+# enforced by the Swift cluster, image data is broken into segments that are no
+# bigger than the size specified by this configuration option.
+# Refer to ``swift_store_large_object_size`` for more detail.
+#
+# For example: if ``swift_store_large_object_size`` is 5GB and
+# ``swift_store_large_object_chunk_size`` is 1GB, an image of size 6.2GB will be
+# segmented into 7 segments where the first six segments will be 1GB in size and
+# the seventh segment will be 0.2GB.
+#
+# Possible values:
+#     * A positive integer that is less than or equal to the large object limit
+#       enforced by Swift cluster in consideration.
+#
+# Related options:
+#     * ``swift_store_large_object_size``
+#
+#  (integer value)
+# Minimum value: 1
+#swift_store_large_object_chunk_size = 200
+
+#
+# Create container, if it doesn't already exist, when uploading image.
+#
+# At the time of uploading an image, if the corresponding container doesn't
+# exist, it will be created provided this configuration option is set to True.
+# By default, it won't be created. This behavior is applicable for both single
+# and multiple containers mode.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
+#swift_store_create_container_on_put = false
+
+#
+# Store images in tenant's Swift account.
+#
+# This enables multi-tenant storage mode which causes Glance images to be stored
+# in tenant specific Swift accounts. If this is disabled, Glance stores all
+# images in its own account. More details multi-tenant store can be found at
+# https://wiki.openstack.org/wiki/GlanceSwiftTenantSpecificStorage
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
+#swift_store_multi_tenant = false
+
+#
+# Seed indicating the number of containers to use for storing images.
+#
+# When using a single-tenant store, images can be stored in one or more than one
+# containers. When set to 0, all images will be stored in one single container.
+# When set to an integer value between 1 and 32, multiple containers will be
+# used to store images. This configuration option will determine how many
+# containers are created. The total number of containers that will be used is
+# equal to 16^N, so if this config option is set to 2, then 16^2=256 containers
+# will be used to store images.
+#
+# Please refer to ``swift_store_container`` for more detail on the naming
+# convention. More detail about using multiple containers can be found at
+# https://specs.openstack.org/openstack/glance-specs/specs/kilo/swift-store-
+# multiple-containers.html
+#
+# NOTE: This is used only when swift_store_multi_tenant is disabled.
+#
+# Possible values:
+#     * A non-negative integer less than or equal to 32
+#
+# Related options:
+#     * ``swift_store_container``
+#     * ``swift_store_multi_tenant``
+#     * ``swift_store_create_container_on_put``
+#
+#  (integer value)
+# Minimum value: 0
+# Maximum value: 32
+#swift_store_multiple_containers_seed = 0
+
+#
+# List of tenants that will be granted admin access.
+#
+# This is a list of tenants that will be granted read/write access on
+# all Swift containers created by Glance in multi-tenant mode. The
+# default value is an empty list.
+#
+# Possible values:
+#     * A comma separated list of strings representing UUIDs of Keystone
+#       projects/tenants
+#
+# Related options:
+#     * None
+#
+#  (list value)
+#swift_store_admin_tenants =
+
+#
+# SSL layer compression for HTTPS Swift requests.
+#
+# Provide a boolean value to determine whether or not to compress
+# HTTPS Swift requests for images at the SSL layer. By default,
+# compression is enabled.
+#
+# When using Swift as the backend store for Glance image storage,
+# SSL layer compression of HTTPS Swift requests can be set using
+# this option. If set to False, SSL layer compression of HTTPS
+# Swift requests is disabled. Disabling this option may improve
+# performance for images which are already in a compressed format,
+# for example, qcow2.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related Options:
+#     * None
+#
+#  (boolean value)
+#swift_store_ssl_compression = true
+
+#
+# The number of times a Swift download will be retried before the
+# request fails.
+#
+# Provide an integer value representing the number of times an image
+# download must be retried before erroring out. The default value is
+# zero (no retry on a failed image download). When set to a positive
+# integer value, ``swift_store_retry_get_count`` ensures that the
+# download is attempted this many more times upon a download failure
+# before sending an error message.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer value
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#swift_store_retry_get_count = 0
+
+#
+# Time in seconds defining the size of the window in which a new
+# token may be requested before the current token is due to expire.
+#
+# Typically, the Swift storage driver fetches a new token upon the
+# expiration of the current token to ensure continued access to
+# Swift. However, some Swift transactions (like uploading image
+# segments) may not recover well if the token expires on the fly.
+#
+# Hence, by fetching a new token before the current token expiration,
+# we make sure that the token does not expire or is close to expiry
+# before a transaction is attempted. By default, the Swift storage
+# driver requests for a new token 60 seconds or less before the
+# current token expiration.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer value
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#swift_store_expire_soon_interval = 60
+
+#
+# Use trusts for multi-tenant Swift store.
+#
+# This option instructs the Swift store to create a trust for each
+# add/get request when the multi-tenant store is in use. Using trusts
+# allows the Swift store to avoid problems that can be caused by an
+# authentication token expiring during the upload or download of data.
+#
+# By default, ``swift_store_use_trusts`` is set to ``True``(use of
+# trusts is enabled). If set to ``False``, a user token is used for
+# the Swift connection instead, eliminating the overhead of trust
+# creation.
+#
+# NOTE: This option is considered only when
+# ``swift_store_multi_tenant`` is set to ``True``
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * swift_store_multi_tenant
+#
+#  (boolean value)
+#swift_store_use_trusts = true
+
+#
+# Reference to default Swift account/backing store parameters.
+#
+# Provide a string value representing a reference to the default set
+# of parameters required for using swift account/backing store for
+# image storage. The default reference value for this configuration
+# option is 'ref1'. This configuration option dereferences the
+# parameters and facilitates image storage in Swift storage backend
+# every time a new image is added.
+#
+# Possible values:
+#     * A valid string value
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#default_swift_reference = ref1
+
+# DEPRECATED: Version of the authentication service to use. Valid versions are 2
+# and 3 for keystone and 1 (deprecated) for swauth and rackspace. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'auth_version' in the Swift back-end configuration file is
+# used instead.
+#swift_store_auth_version = 2
+
+# DEPRECATED: The address where the Swift authentication service is listening.
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'auth_address' in the Swift back-end configuration file is
+# used instead.
+#swift_store_auth_address = <None>
+
+# DEPRECATED: The user to authenticate against the Swift authentication service.
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'user' in the Swift back-end configuration file is set instead.
+#swift_store_user = <None>
+
+# DEPRECATED: Auth key for the user authenticating against the Swift
+# authentication service. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'key' in the Swift back-end configuration file is used
+# to set the authentication key instead.
+#swift_store_key = <None>
+
+#
+# Absolute path to the file containing the swift account(s)
+# configurations.
+#
+# Include a string value representing the path to a configuration
+# file that has references for each of the configured Swift
+# account(s)/backing stores. By default, no file path is specified
+# and customized Swift referencing is disabled. Configuring this
+# option is highly recommended while using Swift storage backend for
+# image storage as it avoids storage of credentials in the database.
+#
+# Possible values:
+#     * String value representing an absolute path on the glance-api
+#       node
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#swift_store_config_file = <None>
+
 
 [oslo_policy]
 
@@ -857,15 +2283,14 @@
 # Deprecated group/name - [DEFAULT]/policy_file
 #policy_file = policy.json
 
-# Default rule. Enforced when a requested rule is not found. (string
-# value)
+# Default rule. Enforced when a requested rule is not found. (string value)
 # Deprecated group/name - [DEFAULT]/policy_default_rule
 #policy_default_rule = default
 
-# Directories where policy configuration files are stored. They can be
-# relative to any directory in the search path defined by the
-# config_dir option, or absolute paths. The file defined by
-# policy_file must exist for these directories to be searched.
-# Missing or empty directories are ignored. (multi valued)
+# Directories where policy configuration files are stored. They can be relative
+# to any directory in the search path defined by the config_dir option, or
+# absolute paths. The file defined by policy_file must exist for these
+# directories to be searched.  Missing or empty directories are ignored. (multi
+# valued)
 # Deprecated group/name - [DEFAULT]/policy_dirs
 #policy_dirs = policy.d
diff --git a/etc/glance-glare.conf b/etc/glance-glare.conf
index 4b2497a048..0e91ce933c 100644
--- a/etc/glance-glare.conf
+++ b/etc/glance-glare.conf
@@ -4,197 +4,470 @@
 # From glance.glare
 #
 
-# When true, this option sets the owner of an image to be the tenant.
-# Otherwise, the owner of the  image will be the authenticated user
-# issuing the request. (boolean value)
+#
+# Set the image owner to tenant or the authenticated user.
+#
+# Assign a boolean value to determine the owner of an image. When set to
+# True, the owner of the image is the tenant. When set to False, the
+# owner of the image will be the authenticated user issuing the request.
+# Setting it to False makes the image private to the associated user and
+# sharing with other users within the same tenant (or "project")
+# requires explicit image sharing via image membership.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
 #owner_is_tenant = true
 
+#
 # Role used to identify an authenticated user as administrator.
-# (string value)
+#
+# Provide a string value representing a Keystone role to identify an
+# administrative user. Users with this role will be granted
+# administrative privileges. The default value for this option is
+# 'admin'.
+#
+# Possible values:
+#     * A string value which is a valid Keystone role
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #admin_role = admin
 
-# Allow unauthenticated users to access the API with read-only
-# privileges. This only applies when using ContextMiddleware. (boolean
-# value)
+#
+# Allow limited access to unauthenticated users.
+#
+# Assign a boolean to determine API access for unathenticated
+# users. When set to False, the API cannot be accessed by
+# unauthenticated users. When set to True, unauthenticated users can
+# access the API with read-only privileges. This however only applies
+# when using ContextMiddleware.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
 #allow_anonymous_access = false
 
-# Limits request ID length. (integer value)
+#
+# Limit the request ID length.
+#
+# Provide  an integer value to limit the length of the request ID to
+# the specified length. The default value is 64. Users can change this
+# to any ineteger value between 0 and 16384 however keeping in mind that
+# a larger value may flood the logs.
+#
+# Possible values:
+#     * Integer value between 0 and 16384
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #max_request_id_length = 64
 
-# Public url to use for versions endpoint. The default is None, which
-# will use the request's host_url attribute to populate the URL base.
-# If Glance is operating behind a proxy, you will want to change this
-# to represent the proxy's URL. (string value)
+#
+# Public url endpoint to use for Glance/Glare versions response.
+#
+# This is the public url endpoint that will appear in the Glance/Glare
+# "versions" response. If no value is specified, the endpoint that is
+# displayed in the version's response is that of the host running the
+# API service. Change the endpoint to represent the proxy URL if the
+# API service is running behind a proxy. If the service is running
+# behind a load balancer, add the load balancer's URL for this value.
+#
+# Possible values:
+#     * None
+#     * Proxy URL
+#     * Load balancer URL
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #public_endpoint = <None>
 
-# Address to bind the server.  Useful when selecting a particular
-# network interface. (string value)
+#
+# IP address to bind the glance servers to.
+#
+# Provide an IP address to bind the glance server to. The default
+# value is ``0.0.0.0``.
+#
+# Edit this option to enable the server to listen on one particular
+# IP address on the network card. This facilitates selection of a
+# particular network interface for the server.
+#
+# Possible values:
+#     * A valid IPv4 address
+#     * A valid IPv6 address
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #bind_host = 0.0.0.0
 
-# The port on which the server will listen. (port value)
+#
+# Port number on which the server will listen.
+#
+# Provide a valid port number to bind the server's socket to. This
+# port is then set to identify processes and forward network messages
+# that arrive at the server. The default bind_port value for the API
+# server is 9292 and for the registry server is 9191.
+#
+# Possible values:
+#     * A valid port number (0 to 65535)
+#
+# Related options:
+#     * None
+#
+#  (port value)
 # Minimum value: 0
 # Maximum value: 65535
 #bind_port = <None>
 
-# The number of child process workers that will be created to service
-# requests. The default will be equal to the number of CPUs available.
-# (integer value)
+#
+# Number of Glance worker processes to start.
+#
+# Provide a non-negative integer value to set the number of child
+# process workers to service requests. By default, the number of CPUs
+# available is set as the value for ``workers``.
+#
+# Each worker process is made to listen on the port set in the
+# configuration file and contains a greenthread pool of size 1000.
+#
+# NOTE: Setting the number of workers to zero, triggers the creation
+# of a single API process with a greenthread pool of size 1000.
+#
+# Possible values:
+#     * 0
+#     * Positive integer value (typically equal to the number of CPUs)
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #workers = <None>
 
-# Maximum line size of message headers to be accepted. max_header_line
-# may need to be increased when using large tokens (typically those
-# generated by the Keystone v3 API with big service catalogs (integer
-# value)
+#
+# Maximum line size of message headers.
+#
+# Provide an integer value representing a length to limit the size of
+# message headers. The default value is 16384.
+#
+# NOTE: ``max_header_line`` may need to be increased when using large
+# tokens (typically those generated by the Keystone v3 API with big
+# service catalogs). However, it is to be kept in mind that larger
+# values for ``max_header_line`` would flood the logs.
+#
+# Setting ``max_header_line`` to 0 sets no limit for the line size of
+# message headers.
+#
+# Possible values:
+#     * 0
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #max_header_line = 16384
 
-# If False, server will return the header "Connection: close", If
-# True, server will return "Connection: Keep-Alive" in its responses.
-# In order to close the client socket connection explicitly after the
-# response is sent and read successfully by the client, you simply
-# have to set this option to False when you create a wsgi server.
-# (boolean value)
+#
+# Set keep alive option for HTTP over TCP.
+#
+# Provide a boolean value to determine sending of keep alive packets.
+# If set to ``False``, the server returns the header
+# "Connection: close". If set to ``True``, the server returns a
+# "Connection: Keep-Alive" in its responses. This enables retention of
+# the same TCP connection for HTTP conversations instead of opening a
+# new one with each new request.
+#
+# This option must be set to ``False`` if the client socket connection
+# needs to be closed explicitly after the response is received and
+# read successfully by the client.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
 #http_keepalive = true
 
-# Timeout for client connections' socket operations. If an incoming
-# connection is idle for this number of seconds it will be closed. A
-# value of '0' means wait forever. (integer value)
+#
+# Timeout for client connections' socket operations.
+#
+# Provide a valid integer value representing time in seconds to set
+# the period of wait before an incoming connection can be closed. The
+# default value is 900 seconds.
+#
+# The value zero implies wait forever.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #client_socket_timeout = 900
 
-# The backlog value that will be used when creating the TCP listener
-# socket. (integer value)
+#
+# Set the number of incoming connection requests.
+#
+# Provide a positive integer value to limit the number of requests in
+# the backlog queue. The default queue size is 4096.
+#
+# An incoming connection to a TCP listener socket is queued before a
+# connection can be established with the server. Setting the backlog
+# for a TCP socket ensures a limited queue size for incoming traffic.
+#
+# Possible values:
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #backlog = 4096
 
-# The value for the socket option TCP_KEEPIDLE.  This is the time in
-# seconds that the connection must be idle before TCP starts sending
-# keepalive probes. (integer value)
+#
+# Set the wait time before a connection recheck.
+#
+# Provide a positive integer value representing time in seconds which
+# is set as the idle wait time before a TCP keep alive packet can be
+# sent to the host. The default value is 600 seconds.
+#
+# Setting ``tcp_keepidle`` helps verify at regular intervals that a
+# connection is intact and prevents frequent TCP connection
+# reestablishment.
+#
+# Possible values:
+#     * Positive integer value representing time in seconds
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #tcp_keepidle = 600
 
-# CA certificate file to use to verify connecting clients. (string
-# value)
-#ca_file = <None>
+#
+# Absolute path to the CA file.
+#
+# Provide a string value representing a valid absolute path to
+# the Certificate Authority file to use for client authentication.
+#
+# A CA file typically contains necessary trusted certificates to
+# use for the client authentication. This is essential to ensure
+# that a secure connection is established to the server via the
+# internet.
+#
+# Possible values:
+#     * Valid absolute path to the CA file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#ca_file = /etc/ssl/cafile
 
-# Certificate file to use when starting API server securely. (string
-# value)
-#cert_file = <None>
+#
+# Absolute path to the certificate file.
+#
+# Provide a string value representing a valid absolute path to the
+# certificate file which is required to start the API service
+# securely.
+#
+# A certificate file typically is a public key container and includes
+# the server's public key, server name, server information and the
+# signature which was a result of the verification process using the
+# CA certificate. This is required for a secure connection
+# establishment.
+#
+# Possible values:
+#     * Valid absolute path to the certificate file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#cert_file = /etc/ssl/certs
 
-# Private key file to use when starting API server securely. (string
-# value)
-#key_file = <None>
+#
+# Absolute path to a private key file.
+#
+# Provide a string value representing a valid absolute path to a
+# private key file which is required to establish the client-server
+# connection.
+#
+# Possible values:
+#     * Absolute path to the private key file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#key_file = /etc/ssl/key/key-file.pem
 
-# If False fully disable profiling feature. (boolean value)
-#enabled = false
-
-# If False doesn't trace SQL requests. (boolean value)
-#trace_sqlalchemy = false
-
-# Secret key to use to sign Glance API and Glance Registry services
-# tracing messages. (string value)
-#hmac_keys = SECRET_KEY
-
-# Default publisher_id for outgoing notifications. (string value)
+#
+# Default publisher_id for outgoing Glance notifications.
+#
+# This is the value that the notification driver will use to identify
+# messages for events originating from the Glance service. Typically,
+# this is the hostname of the instance that generated the message.
+#
+# Possible values:
+#     * Any reasonable instance identifier, for example: image.host1
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #default_publisher_id = image.localhost
 
-# List of disabled notifications. A notification can be given either
-# as a notification type to disable a single event, or as a
-# notification group prefix to disable all events within a group.
-# Example: if this config option is set to ["image.create",
-# "metadef_namespace"], then "image.create" notification will not be
-# sent after image is created and none of the notifications for
-# metadefinition namespaces will be sent. (list value)
+#
+# List of notifications to be disabled.
+#
+# Specify a list of notifications that should not be emitted.
+# A notification can be given either as a notification type to
+# disable a single event notification, or as a notification group
+# prefix to disable all event notifications within a group.
+#
+# Possible values:
+#     A comma-separated list of individual notification types or
+#     notification groups to be disabled. Currently supported groups:
+#         * image
+#         * image.member
+#         * task
+#         * metadef_namespace
+#         * metadef_object
+#         * metadef_property
+#         * metadef_resource_type
+#         * metadef_tag
+#     For a complete listing and description of each event refer to:
+#     http://docs.openstack.org/developer/glance/notifications.html
+#
+#     The values must be specified as: <group_name>.<event_name>
+#     For example: image.create,task.success,metadef_tag
+#
+# Related options:
+#     * None
+#
+#  (list value)
 #disabled_notifications =
 
 #
 # From oslo.log
 #
 
-# If set to true, the logging level will be set to DEBUG instead of
-# the default INFO level. (boolean value)
+# If set to true, the logging level will be set to DEBUG instead of the default
+# INFO level. (boolean value)
+# Note: This option can be changed without restarting.
 #debug = false
 
-# If set to false, the logging level will be set to WARNING instead of
-# the default INFO level. (boolean value)
+# DEPRECATED: If set to false, the logging level will be set to WARNING instead
+# of the default INFO level. (boolean value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 #verbose = true
 
-# The name of a logging configuration file. This file is appended to
-# any existing logging configuration files. For details about logging
-# configuration files, see the Python logging module documentation.
-# Note that when logging configuration files are used then all logging
-# configuration is set in the configuration file and other logging
-# configuration options are ignored (for example,
-# logging_context_format_string). (string value)
+# The name of a logging configuration file. This file is appended to any
+# existing logging configuration files. For details about logging configuration
+# files, see the Python logging module documentation. Note that when logging
+# configuration files are used then all logging configuration is set in the
+# configuration file and other logging configuration options are ignored (for
+# example, logging_context_format_string). (string value)
+# Note: This option can be changed without restarting.
 # Deprecated group/name - [DEFAULT]/log_config
 #log_config_append = <None>
 
 # Defines the format string for %%(asctime)s in log records. Default:
-# %(default)s . This option is ignored if log_config_append is set.
-# (string value)
+# %(default)s . This option is ignored if log_config_append is set. (string
+# value)
 #log_date_format = %Y-%m-%d %H:%M:%S
 
-# (Optional) Name of log file to send logging output to. If no default
-# is set, logging will go to stderr as defined by use_stderr. This
-# option is ignored if log_config_append is set. (string value)
+# (Optional) Name of log file to send logging output to. If no default is set,
+# logging will go to stderr as defined by use_stderr. This option is ignored if
+# log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logfile
 #log_file = <None>
 
-# (Optional) The base directory used for relative log_file  paths.
-# This option is ignored if log_config_append is set. (string value)
+# (Optional) The base directory used for relative log_file  paths. This option
+# is ignored if log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logdir
 #log_dir = <None>
 
-# Uses logging handler designed to watch file system. When log file is
-# moved or removed this handler will open a new log file with
-# specified path instantaneously. It makes sense only if log_file
-# option is specified and Linux platform is used. This option is
-# ignored if log_config_append is set. (boolean value)
+# Uses logging handler designed to watch file system. When log file is moved or
+# removed this handler will open a new log file with specified path
+# instantaneously. It makes sense only if log_file option is specified and Linux
+# platform is used. This option is ignored if log_config_append is set. (boolean
+# value)
 #watch_log_file = false
 
-# Use syslog for logging. Existing syslog format is DEPRECATED and
-# will be changed later to honor RFC5424. This option is ignored if
-# log_config_append is set. (boolean value)
+# Use syslog for logging. Existing syslog format is DEPRECATED and will be
+# changed later to honor RFC5424. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_syslog = false
 
 # Syslog facility to receive log lines. This option is ignored if
 # log_config_append is set. (string value)
 #syslog_log_facility = LOG_USER
 
-# Log output to standard error. This option is ignored if
-# log_config_append is set. (boolean value)
+# Log output to standard error. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_stderr = true
 
 # Format string to use for log messages with context. (string value)
 #logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
 
-# Format string to use for log messages when context is undefined.
-# (string value)
+# Format string to use for log messages when context is undefined. (string
+# value)
 #logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
 
-# Additional data to append to log message when logging level for the
-# message is DEBUG. (string value)
+# Additional data to append to log message when logging level for the message is
+# DEBUG. (string value)
 #logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
 
-# Prefix each line of exception output with this format. (string
-# value)
+# Prefix each line of exception output with this format. (string value)
 #logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
 
 # Defines the format string for %(user_identity)s that is used in
 # logging_context_format_string. (string value)
 #logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
 
-# List of package logging levels in logger=LEVEL pairs. This option is
-# ignored if log_config_append is set. (list value)
+# List of package logging levels in logger=LEVEL pairs. This option is ignored
+# if log_config_append is set. (list value)
 #default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
 
 # Enables or disables publication of error events. (boolean value)
 #publish_errors = false
 
-# The format for an instance that is passed with the log message.
-# (string value)
+# The format for an instance that is passed with the log message. (string value)
 #instance_format = "[instance: %(uuid)s] "
 
-# The format for an instance UUID that is passed with the log message.
-# (string value)
+# The format for an instance UUID that is passed with the log message. (string
+# value)
 #instance_uuid_format = "[instance: %(uuid)s] "
 
 # Enables or disables fatal status of deprecations. (boolean value)
@@ -207,28 +480,27 @@
 # From oslo.middleware.cors
 #
 
-# Indicate whether this resource may be shared with the domain
-# received in the requests "origin" header. (list value)
+# Indicate whether this resource may be shared with the domain received in the
+# requests "origin" header. Format: "<protocol>://<host>[:<port>]", no trailing
+# slash. Example: https://horizon.example.com (list value)
 #allowed_origin = <None>
 
-# Indicate that the actual request can include user credentials
-# (boolean value)
+# Indicate that the actual request can include user credentials (boolean value)
 #allow_credentials = true
 
-# Indicate which headers are safe to expose to the API. Defaults to
-# HTTP Simple Headers. (list value)
-#expose_headers = X-Image-Meta-Checksum,X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID
+# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
+# Headers. (list value)
+#expose_headers =
 
 # Maximum cache age of CORS preflight requests. (integer value)
 #max_age = 3600
 
-# Indicate which methods can be used during the actual request. (list
-# value)
-#allow_methods = GET,PUT,POST,DELETE,PATCH
+# Indicate which methods can be used during the actual request. (list value)
+#allow_methods = OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,PATCH
 
-# Indicate which header field names may be used during the actual
-# request. (list value)
-#allow_headers = Content-MD5,X-Image-Meta-Checksum,X-Storage-Token,Accept-Encoding,X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID
+# Indicate which header field names may be used during the actual request. (list
+# value)
+#allow_headers =
 
 
 [cors.subdomain]
@@ -237,28 +509,27 @@
 # From oslo.middleware.cors
 #
 
-# Indicate whether this resource may be shared with the domain
-# received in the requests "origin" header. (list value)
+# Indicate whether this resource may be shared with the domain received in the
+# requests "origin" header. Format: "<protocol>://<host>[:<port>]", no trailing
+# slash. Example: https://horizon.example.com (list value)
 #allowed_origin = <None>
 
-# Indicate that the actual request can include user credentials
-# (boolean value)
+# Indicate that the actual request can include user credentials (boolean value)
 #allow_credentials = true
 
-# Indicate which headers are safe to expose to the API. Defaults to
-# HTTP Simple Headers. (list value)
-#expose_headers = X-Image-Meta-Checksum,X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID
+# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
+# Headers. (list value)
+#expose_headers =
 
 # Maximum cache age of CORS preflight requests. (integer value)
 #max_age = 3600
 
-# Indicate which methods can be used during the actual request. (list
-# value)
-#allow_methods = GET,PUT,POST,DELETE,PATCH
+# Indicate which methods can be used during the actual request. (list value)
+#allow_methods = OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,PATCH
 
-# Indicate which header field names may be used during the actual
-# request. (list value)
-#allow_headers = Content-MD5,X-Image-Meta-Checksum,X-Storage-Token,Accept-Encoding,X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID
+# Indicate which header field names may be used during the actual request. (list
+# value)
+#allow_headers =
 
 
 [database]
@@ -267,8 +538,12 @@
 # From oslo.db
 #
 
-# The file name to use with SQLite. (string value)
+# DEPRECATED: The file name to use with SQLite. (string value)
 # Deprecated group/name - [DEFAULT]/sqlite_db
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason: Should use config option connection or slave_connection to connect the
+# database.
 #sqlite_db = oslo.sqlite
 
 # If True, SQLite uses synchronous mode. (boolean value)
@@ -279,21 +554,21 @@
 # Deprecated group/name - [DEFAULT]/db_backend
 #backend = sqlalchemy
 
-# The SQLAlchemy connection string to use to connect to the database.
-# (string value)
+# The SQLAlchemy connection string to use to connect to the database. (string
+# value)
 # Deprecated group/name - [DEFAULT]/sql_connection
 # Deprecated group/name - [DATABASE]/sql_connection
 # Deprecated group/name - [sql]/connection
 #connection = <None>
 
-# The SQLAlchemy connection string to use to connect to the slave
-# database. (string value)
+# The SQLAlchemy connection string to use to connect to the slave database.
+# (string value)
 #slave_connection = <None>
 
-# The SQL mode to be used for MySQL sessions. This option, including
-# the default, overrides any server-set SQL mode. To use whatever SQL
-# mode is set by the server configuration, set this to no value.
-# Example: mysql_sql_mode= (string value)
+# The SQL mode to be used for MySQL sessions. This option, including the
+# default, overrides any server-set SQL mode. To use whatever SQL mode is set by
+# the server configuration, set this to no value. Example: mysql_sql_mode=
+# (string value)
 #mysql_sql_mode = TRADITIONAL
 
 # Timeout before idle SQL connections are reaped. (integer value)
@@ -302,38 +577,37 @@
 # Deprecated group/name - [sql]/idle_timeout
 #idle_timeout = 3600
 
-# Minimum number of SQL connections to keep open in a pool. (integer
-# value)
+# Minimum number of SQL connections to keep open in a pool. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_min_pool_size
 # Deprecated group/name - [DATABASE]/sql_min_pool_size
 #min_pool_size = 1
 
-# Maximum number of SQL connections to keep open in a pool. (integer
-# value)
+# Maximum number of SQL connections to keep open in a pool. Setting a value of 0
+# indicates no limit. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_pool_size
 # Deprecated group/name - [DATABASE]/sql_max_pool_size
-#max_pool_size = <None>
+#max_pool_size = 5
 
-# Maximum number of database connection retries during startup. Set to
-# -1 to specify an infinite retry count. (integer value)
+# Maximum number of database connection retries during startup. Set to -1 to
+# specify an infinite retry count. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_retries
 # Deprecated group/name - [DATABASE]/sql_max_retries
 #max_retries = 10
 
-# Interval between retries of opening a SQL connection. (integer
-# value)
+# Interval between retries of opening a SQL connection. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_retry_interval
 # Deprecated group/name - [DATABASE]/reconnect_interval
 #retry_interval = 10
 
-# If set, use this value for max_overflow with SQLAlchemy. (integer
-# value)
+# If set, use this value for max_overflow with SQLAlchemy. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_overflow
 # Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
 #max_overflow = 50
 
-# Verbosity of SQL debugging information: 0=None, 100=Everything.
-# (integer value)
+# Verbosity of SQL debugging information: 0=None, 100=Everything. (integer
+# value)
+# Minimum value: 0
+# Maximum value: 100
 # Deprecated group/name - [DEFAULT]/sql_connection_debug
 #connection_debug = 0
 
@@ -341,37 +615,35 @@
 # Deprecated group/name - [DEFAULT]/sql_connection_trace
 #connection_trace = false
 
-# If set, use this value for pool_timeout with SQLAlchemy. (integer
-# value)
+# If set, use this value for pool_timeout with SQLAlchemy. (integer value)
 # Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
 #pool_timeout = <None>
 
-# Enable the experimental use of database reconnect on connection
-# lost. (boolean value)
+# Enable the experimental use of database reconnect on connection lost. (boolean
+# value)
 #use_db_reconnect = false
 
 # Seconds between retries of a database transaction. (integer value)
 #db_retry_interval = 1
 
-# If True, increases the interval between retries of a database
-# operation up to db_max_retry_interval. (boolean value)
+# If True, increases the interval between retries of a database operation up to
+# db_max_retry_interval. (boolean value)
 #db_inc_retry_interval = true
 
-# If db_inc_retry_interval is set, the maximum seconds between retries
-# of a database operation. (integer value)
+# If db_inc_retry_interval is set, the maximum seconds between retries of a
+# database operation. (integer value)
 #db_max_retry_interval = 10
 
-# Maximum retries in case of connection error or deadlock error before
-# error is raised. Set to -1 to specify an infinite retry count.
-# (integer value)
+# Maximum retries in case of connection error or deadlock error before error is
+# raised. Set to -1 to specify an infinite retry count. (integer value)
 #db_max_retries = 20
 
 #
 # From oslo.db.concurrency
 #
 
-# Enable the experimental use of thread pooling for all DB API calls
-# (boolean value)
+# Enable the experimental use of thread pooling for all DB API calls (boolean
+# value)
 # Deprecated group/name - [DEFAULT]/dbapi_use_tpool
 #use_tpool = false
 
@@ -382,361 +654,1325 @@
 # From glance.store
 #
 
-# List of stores enabled. Valid stores are: cinder, file, http, rbd,
-# sheepdog, swift, s3, vsphere (list value)
+#
+# List of enabled Glance stores.
+#
+# Register the storage backends to use for storing disk images
+# as a comma separated list. The default stores enabled for
+# storing disk images with Glance are ``file`` and ``http``.
+#
+# Possible values:
+#     * A comma separated list that could include:
+#         * file
+#         * http
+#         * swift
+#         * rbd
+#         * sheepdog
+#         * cinder
+#         * vmware
+#
+# Related Options:
+#     * default_store
+#
+#  (list value)
 #stores = file,http
 
-# Default scheme to use to store image data. The scheme must be
-# registered by one of the stores defined by the 'stores' config
-# option. (string value)
+#
+# The default scheme to use for storing images.
+#
+# Provide a string value representing the default scheme to use for
+# storing images. If not set, Glance uses ``file`` as the default
+# scheme to store images with the ``file`` store.
+#
+# NOTE: The value given for this configuration option must be a valid
+# scheme for a store registered with the ``stores`` configuration
+# option.
+#
+# Possible values:
+#     * file
+#     * filesystem
+#     * http
+#     * https
+#     * swift
+#     * swift+http
+#     * swift+https
+#     * swift+config
+#     * rbd
+#     * sheepdog
+#     * cinder
+#     * vsphere
+#
+# Related Options:
+#     * stores
+#
+#  (string value)
+# Allowed values: file, filesystem, http, https, swift, swift+http, swift+https, swift+config, rbd, sheepdog, cinder, vsphere
 #default_store = file
 
-# Minimum interval seconds to execute updating dynamic storage
-# capabilities based on backend status then. It's not a periodic
-# routine, the update logic will be executed only when interval
-# seconds elapsed and an operation of store has triggered. The feature
-# will be enabled only when the option value greater then zero.
-# (integer value)
+#
+# Minimum interval in seconds to execute updating dynamic storage
+# capabilities based on current backend status.
+#
+# Provide an integer value representing time in seconds to set the
+# minimum interval before an update of dynamic storage capabilities
+# for a storage backend can be attempted. Setting
+# ``store_capabilities_update_min_interval`` does not mean updates
+# occur periodically based on the set interval. Rather, the update
+# is performed at the elapse of this interval set, if an operation
+# of the store is triggered.
+#
+# By default, this option is set to zero and is disabled. Provide an
+# integer value greater than zero to enable this option.
+#
+# NOTE: For more information on store capabilities and their updates,
+# please visit: https://specs.openstack.org/openstack/glance-specs/specs/kilo
+# /store-capabilities.html
+#
+# For more information on setting up a particular store in your
+# deplyment and help with the usage of this feature, please contact
+# the storage driver maintainers listed here:
+# http://docs.openstack.org/developer/glance_store/drivers/index.html
+#
+# Possible values:
+#     * Zero
+#     * Positive integer
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #store_capabilities_update_min_interval = 0
 
-# Specify the path to the CA bundle file to use in verifying the
-# remote server certificate. (string value)
-#https_ca_certificates_file = <None>
-
-# If true, the remote server certificate is not verified. If false,
-# then the default CA truststore is used for verification. This option
-# is ignored if "https_ca_certificates_file" is set. (boolean value)
-#https_insecure = true
-
-# Specify the http/https proxy information that should be used to
-# connect to the remote server. The proxy information should be a key
-# value pair of the scheme and proxy. e.g. http:10.0.0.1:3128. You can
-# specify proxies for multiple schemes by seperating the key value
-# pairs with a comma.e.g. http:10.0.0.1:3128, https:10.0.0.1:1080.
-# (dict value)
-#http_proxy_information =
-
-# If True, swiftclient won't check for a valid SSL certificate when
-# authenticating. (boolean value)
-#swift_store_auth_insecure = false
-
-# A string giving the CA certificate file to use in SSL connections
-# for verifying certs. (string value)
-#swift_store_cacert = <None>
-
-# The region of the swift endpoint to be used for single tenant. This
-# setting is only necessary if the tenant has multiple swift
-# endpoints. (string value)
-#swift_store_region = <None>
-
-# If set, the configured endpoint will be used. If None, the storage
-# url from the auth response will be used. (string value)
-#swift_store_endpoint = <None>
-
-# A string giving the endpoint type of the swift service to use
-# (publicURL, adminURL or internalURL). This setting is only used if
-# swift_store_auth_version is 2. (string value)
-#swift_store_endpoint_type = publicURL
-
-# A string giving the service type of the swift service to use. This
-# setting is only used if swift_store_auth_version is 2. (string
-# value)
-#swift_store_service_type = object-store
-
-# Container within the account that the account should use for storing
-# images in Swift when using single container mode. In multiple
-# container mode, this will be the prefix for all containers. (string
-# value)
-#swift_store_container = glance
-
-# The size, in MB, that Glance will start chunking image files and do
-# a large object manifest in Swift. (integer value)
-#swift_store_large_object_size = 5120
-
-# The amount of data written to a temporary disk buffer during the
-# process of chunking the image file. (integer value)
-#swift_store_large_object_chunk_size = 200
-
-# A boolean value that determines if we create the container if it
-# does not exist. (boolean value)
-#swift_store_create_container_on_put = false
-
-# If set to True, enables multi-tenant storage mode which causes
-# Glance images to be stored in tenant specific Swift accounts.
-# (boolean value)
-#swift_store_multi_tenant = false
-
-# When set to 0, a single-tenant store will only use one container to
-# store all images. When set to an integer value between 1 and 32, a
-# single-tenant store will use multiple containers to store images,
-# and this value will determine how many containers are created.Used
-# only when swift_store_multi_tenant is disabled. The total number of
-# containers that will be used is equal to 16^N, so if this config
-# option is set to 2, then 16^2=256 containers will be used to store
-# images. (integer value)
-#swift_store_multiple_containers_seed = 0
-
-# A list of tenants that will be granted read/write access on all
-# Swift containers created by Glance in multi-tenant mode. (list
-# value)
-#swift_store_admin_tenants =
-
-# If set to False, disables SSL layer compression of https swift
-# requests. Setting to False may improve performance for images which
-# are already in a compressed format, eg qcow2. (boolean value)
-#swift_store_ssl_compression = true
-
-# The number of times a Swift download will be retried before the
-# request fails. (integer value)
-#swift_store_retry_get_count = 0
-
-# The period of time (in seconds) before token expirationwhen
-# glance_store will try to reques new user token. Default value 60 sec
-# means that if token is going to expire in 1 min then glance_store
-# request new user token. (integer value)
-#swift_store_expire_soon_interval = 60
-
-# If set to True create a trust for each add/get request to Multi-
-# tenant store in order to prevent authentication token to be expired
-# during uploading/downloading data. If set to False then user token
-# is used for Swift connection (so no overhead on trust creation).
-# Please note that this option is considered only and only if
-# swift_store_multi_tenant=True (boolean value)
-#swift_store_use_trusts = true
-
-# The reference to the default swift account/backing store parameters
-# to use for adding new images. (string value)
-#default_swift_reference = ref1
-
-# Version of the authentication service to use. Valid versions are 2
-# and 3 for keystone and 1 (deprecated) for swauth and rackspace.
-# (deprecated - use "auth_version" in swift_store_config_file) (string
-# value)
-#swift_store_auth_version = 2
-
-# The address where the Swift authentication service is listening.
-# (deprecated - use "auth_address" in swift_store_config_file) (string
-# value)
-#swift_store_auth_address = <None>
-
-# The user to authenticate against the Swift authentication service
-# (deprecated - use "user" in swift_store_config_file) (string value)
-#swift_store_user = <None>
-
-# Auth key for the user authenticating against the Swift
-# authentication service. (deprecated - use "key" in
-# swift_store_config_file) (string value)
-#swift_store_key = <None>
-
-# The config file that has the swift account(s)configs. (string value)
-#swift_store_config_file = <None>
-
-# RADOS images will be chunked into objects of this size (in
-# megabytes). For best performance, this should be a power of two.
-# (integer value)
-#rbd_store_chunk_size = 8
-
-# RADOS pool in which images are stored. (string value)
-#rbd_store_pool = images
-
-# RADOS user to authenticate as (only applicable if using Cephx. If
-# <None>, a default will be chosen based on the client. section in
-# rbd_store_ceph_conf) (string value)
-#rbd_store_user = <None>
-
-# Ceph configuration file path. If <None>, librados will locate the
-# default config. If using cephx authentication, this file should
-# include a reference to the right keyring in a client.<USER> section
-# (string value)
-#rbd_store_ceph_conf = /etc/ceph/ceph.conf
-
-# Timeout value (in seconds) used when connecting to ceph cluster. If
-# value <= 0, no timeout is set and default librados value is used.
-# (integer value)
-#rados_connect_timeout = 0
-
-# Info to match when looking for cinder in the service catalog. Format
-# is : separated values of the form:
-# <service_type>:<service_name>:<endpoint_type> (string value)
-#cinder_catalog_info = volumev2::publicURL
-
-# Override service catalog lookup with template for cinder endpoint
-# e.g. http://localhost:8776/v2/%(tenant)s (string value)
-#cinder_endpoint_template = <None>
-
-# Region name of this node. If specified, it will be used to locate
-# OpenStack services for stores. (string value)
-# Deprecated group/name - [DEFAULT]/os_region_name
-#cinder_os_region_name = <None>
-
-# Location of ca certicates file to use for cinder client requests.
-# (string value)
-#cinder_ca_certificates_file = <None>
-
-# Number of cinderclient retries on failed http calls (integer value)
-#cinder_http_retries = 3
-
-# Time period of time in seconds to wait for a cinder volume
-# transition to complete. (integer value)
-#cinder_state_transition_timeout = 300
-
-# Allow to perform insecure SSL requests to cinder (boolean value)
-#cinder_api_insecure = false
-
-# The address where the Cinder authentication service is listening. If
-# <None>, the cinder endpoint in the service catalog is used. (string
-# value)
-#cinder_store_auth_address = <None>
-
-# User name to authenticate against Cinder. If <None>, the user of
-# current context is used. (string value)
-#cinder_store_user_name = <None>
-
-# Password for the user authenticating against Cinder. If <None>, the
-# current context auth token is used. (string value)
-#cinder_store_password = <None>
-
-# Project name where the image is stored in Cinder. If <None>, the
-# project in current context is used. (string value)
-#cinder_store_project_name = <None>
-
-# Path to the rootwrap configuration file to use for running commands
-# as root. (string value)
-#rootwrap_config = /etc/glance/rootwrap.conf
-
-# The host where the S3 server is listening. (string value)
-#s3_store_host = <None>
-
-# The S3 query token access key. (string value)
-#s3_store_access_key = <None>
-
-# The S3 query token secret key. (string value)
-#s3_store_secret_key = <None>
-
-# The S3 bucket to be used to store the Glance data. (string value)
-#s3_store_bucket = <None>
-
-# The local directory where uploads will be staged before they are
-# transferred into S3. (string value)
-#s3_store_object_buffer_dir = <None>
-
-# A boolean to determine if the S3 bucket should be created on upload
-# if it does not exist or if an error should be returned to the user.
-# (boolean value)
-#s3_store_create_bucket_on_put = false
-
-# The S3 calling format used to determine the bucket. Either subdomain
-# or path can be used. (string value)
-#s3_store_bucket_url_format = subdomain
-
-# What size, in MB, should S3 start chunking image files and do a
-# multipart upload in S3. (integer value)
-#s3_store_large_object_size = 100
-
-# What multipart upload part size, in MB, should S3 use when uploading
-# parts. The size must be greater than or equal to 5M. (integer value)
-#s3_store_large_object_chunk_size = 10
-
-# The number of thread pools to perform a multipart upload in S3.
-# (integer value)
-#s3_store_thread_pools = 10
-
-# Enable the use of a proxy. (boolean value)
-#s3_store_enable_proxy = false
-
-# Address or hostname for the proxy server. (string value)
-#s3_store_proxy_host = <None>
-
-# The port to use when connecting over a proxy. (integer value)
-#s3_store_proxy_port = 8080
-
-# The username to connect to the proxy. (string value)
-#s3_store_proxy_user = <None>
-
-# The password to use when connecting over a proxy. (string value)
-#s3_store_proxy_password = <None>
-
-# Images will be chunked into objects of this size (in megabytes). For
-# best performance, this should be a power of two. (integer value)
-#sheepdog_store_chunk_size = 64
-
-# Port of sheep daemon. (integer value)
-#sheepdog_store_port = 7000
-
-# IP address of sheep daemon. (string value)
-#sheepdog_store_address = localhost
-
-# Directory to which the Filesystem backend store writes images.
-# (string value)
+#
+# Directory to which the filesystem backend store writes images.
+#
+# Upon start up, Glance creates the directory if it doesn't already
+# exist and verifies write access to the user under which
+# ``glance-api`` runs. If the write access isn't available, a
+# ``BadStoreConfiguration`` exception is raised and the filesystem
+# store may not be available for adding new images.
+#
+# NOTE: This directory is used only when filesystem store is used as a
+# storage backend. Either ``filesystem_store_datadir`` or
+# ``filesystem_store_datadirs`` option must be specified in
+# ``glance-api.conf``. If both options are specified, a
+# ``BadStoreConfiguration`` will be raised and the filesystem store
+# may not be available for adding new images.
+#
+# Possible values:
+#     * A valid path to a directory
+#
+# Related options:
+#     * ``filesystem_store_datadirs``
+#     * ``filesystem_store_file_perm``
+#
+#  (string value)
 #filesystem_store_datadir = /var/lib/glance/images
 
-# List of directories and its priorities to which the Filesystem
-# backend store writes images. (multi valued)
+#
+# List of directories and their priorities to which the filesystem
+# backend store writes images.
+#
+# The filesystem store can be configured to store images in multiple
+# directories as opposed to using a single directory specified by the
+# ``filesystem_store_datadir`` configuration option. When using
+# multiple directories, each directory can be given an optional
+# priority to specify the preference order in which they should
+# be used. Priority is an integer that is concatenated to the
+# directory path with a colon where a higher value indicates higher
+# priority. When two directories have the same priority, the directory
+# with most free space is used. When no priority is specified, it
+# defaults to zero.
+#
+# More information on configuring filesystem store with multiple store
+# directories can be found at
+# http://docs.openstack.org/developer/glance/configuring.html
+#
+# NOTE: This directory is used only when filesystem store is used as a
+# storage backend. Either ``filesystem_store_datadir`` or
+# ``filesystem_store_datadirs`` option must be specified in
+# ``glance-api.conf``. If both options are specified, a
+# ``BadStoreConfiguration`` will be raised and the filesystem store
+# may not be available for adding new images.
+#
+# Possible values:
+#     * List of strings of the following form:
+#         * ``<a valid directory path>:<optional integer priority>``
+#
+# Related options:
+#     * ``filesystem_store_datadir``
+#     * ``filesystem_store_file_perm``
+#
+#  (multi valued)
 #filesystem_store_datadirs =
 
+#
+# Filesystem store metadata file.
+#
 # The path to a file which contains the metadata to be returned with
-# any location associated with this store.  The file must contain a
-# valid JSON object. The object should contain the keys 'id' and
-# 'mountpoint'. The value for both keys should be 'string'. (string
-# value)
+# any location associated with the filesystem store. The file must
+# contain a valid JSON object. The object should contain the keys
+# ``id`` and ``mountpoint``. The value for both keys should be a
+# string.
+#
+# Possible values:
+#     * A valid path to the store metadata file
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #filesystem_store_metadata_file = <None>
 
-# The required permission for created image file. In this way the user
-# other service used, e.g. Nova, who consumes the image could be the
-# exclusive member of the group that owns the files created. Assigning
-# it less then or equal to zero means don't change the default
-# permission of the file. This value will be decoded as an octal
-# digit. (integer value)
+#
+# File access permissions for the image files.
+#
+# Set the intended file access permissions for image data. This provides
+# a way to enable other services, e.g. Nova, to consume images directly
+# from the filesystem store. The users running the services that are
+# intended to be given access to could be made a member of the group
+# that owns the files created. Assigning a value less then or equal to
+# zero for this configuration option signifies that no changes be made
+# to the  default permissions. This value will be decoded as an octal
+# digit.
+#
+# For more information, please refer the documentation at
+# http://docs.openstack.org/developer/glance/configuring.html
+#
+# Possible values:
+#     * A valid file access permission
+#     * Zero
+#     * Any negative integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #filesystem_store_file_perm = 0
 
-# ESX/ESXi or vCenter Server target system. The server value can be an
-# IP address or a DNS name. (string value)
-#vmware_server_host = <None>
+#
+# Path to the CA bundle file.
+#
+# This configuration option enables the operator to use a custom
+# Certificate Authority file to verify the remote server certificate. If
+# this option is set, the ``https_insecure`` option will be ignored and
+# the CA file specified will be used to authenticate the server
+# certificate and establish a secure connection to the server.
+#
+# Possible values:
+#     * A valid path to a CA file
+#
+# Related options:
+#     * https_insecure
+#
+#  (string value)
+#https_ca_certificates_file = <None>
 
-# Username for authenticating with VMware ESX/VC server. (string
-# value)
-#vmware_server_username = <None>
+#
+# Set verification of the remote server certificate.
+#
+# This configuration option takes in a boolean value to determine
+# whether or not to verify the remote server certificate. If set to
+# True, the remote server certificate is not verified. If the option is
+# set to False, then the default CA truststore is used for verification.
+#
+# This option is ignored if ``https_ca_certificates_file`` is set.
+# The remote server certificate will then be verified using the file
+# specified using the ``https_ca_certificates_file`` option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * https_ca_certificates_file
+#
+#  (boolean value)
+#https_insecure = true
 
-# Password for authenticating with VMware ESX/VC server. (string
-# value)
-#vmware_server_password = <None>
+#
+# The http/https proxy information to be used to connect to the remote
+# server.
+#
+# This configuration option specifies the http/https proxy information
+# that should be used to connect to the remote server. The proxy
+# information should be a key value pair of the scheme and proxy, for
+# example, http:10.0.0.1:3128. You can also specify proxies for multiple
+# schemes by separating the key value pairs with a comma, for example,
+# http:10.0.0.1:3128, https:10.0.0.1:1080.
+#
+# Possible values:
+#     * A comma separated list of scheme:proxy pairs as described above
+#
+# Related options:
+#     * None
+#
+#  (dict value)
+#http_proxy_information =
 
-# Number of times VMware ESX/VC server API must be retried upon
-# connection related issues. (integer value)
+#
+# Address of the ESX/ESXi or vCenter Server target system.
+#
+# This configuration option sets the address of the ESX/ESXi or vCenter
+# Server target system. This option is required when using the VMware
+# storage backend. The address can contain an IP address (127.0.0.1) or
+# a DNS name (www.my-domain.com).
+#
+# Possible Values:
+#     * A valid IPv4 or IPv6 address
+#     * A valid DNS name
+#
+# Related options:
+#     * vmware_server_username
+#     * vmware_server_password
+#
+#  (string value)
+#vmware_server_host = 127.0.0.1
+
+#
+# Server username.
+#
+# This configuration option takes the username for authenticating with
+# the VMware ESX/ESXi or vCenter Server. This option is required when
+# using the VMware storage backend.
+#
+# Possible Values:
+#     * Any string that is the username for a user with appropriate
+#       privileges
+#
+# Related options:
+#     * vmware_server_host
+#     * vmware_server_password
+#
+#  (string value)
+#vmware_server_username = root
+
+#
+# Server password.
+#
+# This configuration option takes the password for authenticating with
+# the VMware ESX/ESXi or vCenter Server. This option is required when
+# using the VMware storage backend.
+#
+# Possible Values:
+#     * Any string that is a password corresponding to the username
+#       specified using the "vmware_server_username" option
+#
+# Related options:
+#     * vmware_server_host
+#     * vmware_server_username
+#
+#  (string value)
+#vmware_server_password = vmware
+
+#
+# The number of VMware API retries.
+#
+# This configuration option specifies the number of times the VMware
+# ESX/VC server API must be retried upon connection related issues or
+# server API call overload. It is not possible to specify 'retry
+# forever'.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #vmware_api_retry_count = 10
 
-# The interval used for polling remote tasks invoked on VMware ESX/VC
-# server. (integer value)
+#
+# Interval in seconds used for polling remote tasks invoked on VMware
+# ESX/VC server.
+#
+# This configuration option takes in the sleep time in seconds for polling an
+# on-going async task as part of the VMWare ESX/VC server API call.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #vmware_task_poll_interval = 5
 
-# The name of the directory where the glance images will be stored in
-# the VMware datastore. (string value)
+#
+# The directory where the glance images will be stored in the datastore.
+#
+# This configuration option specifies the path to the directory where the
+# glance images will be stored in the VMware datastore. If this option
+# is not set,  the default directory where the glance images are stored
+# is openstack_glance.
+#
+# Possible Values:
+#     * Any string that is a valid path to a directory
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #vmware_store_image_dir = /openstack_glance
 
-# If true, the ESX/vCenter server certificate is not verified. If
-# false, then the default CA truststore is used for verification. This
-# option is ignored if "vmware_ca_file" is set. (boolean value)
-# Deprecated group/name - [DEFAULT]/vmware_api_insecure
+#
+# Set verification of the ESX/vCenter server certificate.
+#
+# This configuration option takes a boolean value to determine
+# whether or not to verify the ESX/vCenter server certificate. If this
+# option is set to True, the ESX/vCenter server certificate is not
+# verified. If this option is set to False, then the default CA
+# truststore is used for verification.
+#
+# This option is ignored if the "vmware_ca_file" option is set. In that
+# case, the ESX/vCenter server certificate will then be verified using
+# the file specified using the "vmware_ca_file" option .
+#
+# Possible Values:
+#     * True
+#     * False
+#
+# Related options:
+#     * vmware_ca_file
+#
+#  (boolean value)
+# Deprecated group/name - [glance_store]/vmware_api_insecure
 #vmware_insecure = false
 
-# Specify a CA bundle file to use in verifying the ESX/vCenter server
-# certificate. (string value)
-#vmware_ca_file = <None>
+#
+# Absolute path to the CA bundle file.
+#
+# This configuration option enables the operator to use a custom
+# Cerificate Authority File to verify the ESX/vCenter certificate.
+#
+# If this option is set, the "vmware_insecure" option will be ignored
+# and the CA file specified will be used to authenticate the ESX/vCenter
+# server certificate and establish a secure connection to the server.
+#
+# Possible Values:
+#     * Any string that is a valid absolute path to a CA file
+#
+# Related options:
+#     * vmware_insecure
+#
+#  (string value)
+#vmware_ca_file = /etc/ssl/certs/ca-certificates.crt
 
-# A list of datastores where the image can be stored. This option may
-# be specified multiple times for specifying multiple datastores. The
-# datastore name should be specified after its datacenter path,
-# seperated by ":". An optional weight may be given after the
-# datastore name, seperated again by ":". Thus, the required format
-# becomes <datacenter_path>:<datastore_name>:<optional_weight>. When
-# adding an image, the datastore with highest weight will be selected,
-# unless there is not enough free space available in cases where the
-# image size is already known. If no weight is given, it is assumed to
-# be zero and the directory will be considered for selection last. If
-# multiple datastores have the same weight, then the one with the most
-# free space available is selected. (multi valued)
+#
+# The datastores where the image can be stored.
+#
+# This configuration option specifies the datastores where the image can
+# be stored in the VMWare store backend. This option may be specified
+# multiple times for specifying multiple datastores. The datastore name
+# should be specified after its datacenter path, separated by ":". An
+# optional weight may be given after the datastore name, separated again
+# by ":" to specify the priority. Thus, the required format becomes
+# <datacenter_path>:<datastore_name>:<optional_weight>.
+#
+# When adding an image, the datastore with highest weight will be
+# selected, unless there is not enough free space available in cases
+# where the image size is already known. If no weight is given, it is
+# assumed to be zero and the directory will be considered for selection
+# last. If multiple datastores have the same weight, then the one with
+# the most free space available is selected.
+#
+# Possible Values:
+#     * Any string of the format:
+#       <datacenter_path>:<datastore_name>:<optional_weight>
+#
+# Related options:
+#    * None
+#
+#  (multi valued)
 #vmware_datastores =
 
+#
+# Chunk size for images to be stored in Sheepdog data store.
+#
+# Provide an integer value representing the size in mebibyte
+# (1048576 bytes) to chunk Glance images into. The default
+# chunk size is 64 mebibytes.
+#
+# When using Sheepdog distributed storage system, the images are
+# chunked into objects of this size and then stored across the
+# distributed data store to use for Glance.
+#
+# Chunk sizes, if a power of two, help avoid fragmentation and
+# enable improved performance.
+#
+# Possible values:
+#     * Positive integer value representing size in mebibytes.
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
+#sheepdog_store_chunk_size = 64
+
+#
+# Port number on which the sheep daemon will listen.
+#
+# Provide an integer value representing a valid port number on
+# which you want the Sheepdog daemon to listen on. The default
+# port is 7000.
+#
+# The Sheepdog daemon, also called 'sheep', manages the storage
+# in the distributed cluster by writing objects across the storage
+# network. It identifies and acts on the messages it receives on
+# the port number set using ``sheepdog_store_port`` option to store
+# chunks of Glance images.
+#
+# Possible values:
+#     * A valid port number (0 to 65535)
+#
+# Related Options:
+#     * sheepdog_store_address
+#
+#  (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#sheepdog_store_port = 7000
+
+#
+# Address to bind the Sheepdog daemon to.
+#
+# Provide a string value representing the address to bind the
+# Sheepdog daemon to. The default address set for the 'sheep'
+# is 127.0.0.1.
+#
+# The Sheepdog daemon, also called 'sheep', manages the storage
+# in the distributed cluster by writing objects across the storage
+# network. It identifies and acts on the messages directed to the
+# address set using ``sheepdog_store_address`` option to store
+# chunks of Glance images.
+#
+# Possible values:
+#     * A valid IPv4 address
+#     * A valid IPv6 address
+#     * A valid hostname
+#
+# Related Options:
+#     * sheepdog_store_port
+#
+#  (string value)
+#sheepdog_store_address = 127.0.0.1
+
+#
+# Size, in megabytes, to chunk RADOS images into.
+#
+# Provide an integer value representing the size in megabytes to chunk
+# Glance images into. The default chunk size is 8 megabytes. For optimal
+# performance, the value should be a power of two.
+#
+# When Ceph's RBD object storage system is used as the storage backend
+# for storing Glance images, the images are chunked into objects of the
+# size set using this option. These chunked objects are then stored
+# across the distributed block data store to use for Glance.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
+#rbd_store_chunk_size = 8
+
+#
+# RADOS pool in which images are stored.
+#
+# When RBD is used as the storage backend for storing Glance images, the
+# images are stored by means of logical grouping of the objects (chunks
+# of images) into a ``pool``. Each pool is defined with the number of
+# placement groups it can contain. The default pool that is used is
+# 'images'.
+#
+# More information on the RBD storage backend can be found here:
+# http://ceph.com/planet/how-data-is-stored-in-ceph-cluster/
+#
+# Possible Values:
+#     * A valid pool name
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#rbd_store_pool = images
+
+#
+# RADOS user to authenticate as.
+#
+# This configuration option takes in the RADOS user to authenticate as.
+# This is only needed when RADOS authentication is enabled and is
+# applicable only if the user is using Cephx authentication. If the
+# value for this option is not set by the user or is set to None, a
+# default value will be chosen, which will be based on the client.
+# section in rbd_store_ceph_conf.
+#
+# Possible Values:
+#     * A valid RADOS user
+#
+# Related options:
+#     * rbd_store_ceph_conf
+#
+#  (string value)
+#rbd_store_user = <None>
+
+#
+# Ceph configuration file path.
+#
+# This configuration option takes in the path to the Ceph configuration
+# file to be used. If the value for this option is not set by the user
+# or is set to None, librados will locate the default configuration file
+# which is located at /etc/ceph/ceph.conf. If using Cephx
+# authentication, this file should include a reference to the right
+# keyring in a client.<USER> section
+#
+# Possible Values:
+#     * A valid path to a configuration file
+#
+# Related options:
+#     * rbd_store_user
+#
+#  (string value)
+#rbd_store_ceph_conf = /etc/ceph/ceph.conf
+
+#
+# Timeout value for connecting to Ceph cluster.
+#
+# This configuration option takes in the timeout value in seconds used
+# when connecting to the Ceph cluster i.e. it sets the time to wait for
+# glance-api before closing the connection. This prevents glance-api
+# hangups during the connection to RBD. If the value for this option
+# is set to less than or equal to 0, no timeout is set and the default
+# librados value is used.
+#
+# Possible Values:
+#     * Any integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+#rados_connect_timeout = 0
+
+#
+# Information to match when looking for cinder in the service catalog.
+#
+# When the ``cinder_endpoint_template`` is not set and any of
+# ``cinder_store_auth_address``, ``cinder_store_user_name``,
+# ``cinder_store_project_name``, ``cinder_store_password`` is not set,
+# cinder store uses this information to lookup cinder endpoint from the service
+# catalog in the current context. ``cinder_os_region_name``, if set, is taken
+# into consideration to fetch the appropriate endpoint.
+#
+# The service catalog can be listed by the ``openstack catalog list`` command.
+#
+# Possible values:
+#     * A string of of the following form:
+#       ``<service_type>:<service_name>:<endpoint_type>``
+#       At least ``service_type`` and ``endpoint_type`` should be specified.
+#       ``service_name`` can be omitted.
+#
+# Related options:
+#     * cinder_os_region_name
+#     * cinder_endpoint_template
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#     * cinder_store_password
+#
+#  (string value)
+#cinder_catalog_info = volumev2::publicURL
+
+#
+# Override service catalog lookup with template for cinder endpoint.
+#
+# When this option is set, this value is used to generate cinder endpoint,
+# instead of looking up from the service catalog.
+# This value is ignored if ``cinder_store_auth_address``,
+# ``cinder_store_user_name``, ``cinder_store_project_name``, and
+# ``cinder_store_password`` are specified.
+#
+# If this configuration option is set, ``cinder_catalog_info`` will be ignored.
+#
+# Possible values:
+#     * URL template string for cinder endpoint, where ``%%(tenant)s`` is
+#       replaced with the current tenant (project) name.
+#       For example: ``http://cinder.openstack.example.org/v2/%%(tenant)s``
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#     * cinder_store_password
+#     * cinder_catalog_info
+#
+#  (string value)
+#cinder_endpoint_template = <None>
+
+#
+# Region name to lookup cinder service from the service catalog.
+#
+# This is used only when ``cinder_catalog_info`` is used for determining the
+# endpoint. If set, the lookup for cinder endpoint by this node is filtered to
+# the specified region. It is useful when multiple regions are listed in the
+# catalog. If this is not set, the endpoint is looked up from every region.
+#
+# Possible values:
+#     * A string that is a valid region name.
+#
+# Related options:
+#     * cinder_catalog_info
+#
+#  (string value)
+# Deprecated group/name - [glance_store]/os_region_name
+#cinder_os_region_name = <None>
+
+#
+# Location of a CA certificates file used for cinder client requests.
+#
+# The specified CA certificates file, if set, is used to verify cinder
+# connections via HTTPS endpoint. If the endpoint is HTTP, this value is
+# ignored.
+# ``cinder_api_insecure`` must be set to ``True`` to enable the verification.
+#
+# Possible values:
+#     * Path to a ca certificates file
+#
+# Related options:
+#     * cinder_api_insecure
+#
+#  (string value)
+#cinder_ca_certificates_file = <None>
+
+#
+# Number of cinderclient retries on failed http calls.
+#
+# When a call failed by any errors, cinderclient will retry the call up to the
+# specified times after sleeping a few seconds.
+#
+# Possible values:
+#     * A positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#cinder_http_retries = 3
+
+#
+# Time period, in seconds, to wait for a cinder volume transition to
+# complete.
+#
+# When the cinder volume is created, deleted, or attached to the glance node to
+# read/write the volume data, the volume's state is changed. For example, the
+# newly created volume status changes from ``creating`` to ``available`` after
+# the creation process is completed. This specifies the maximum time to wait for
+# the status change. If a timeout occurs while waiting, or the status is changed
+# to an unexpected value (e.g. `error``), the image creation fails.
+#
+# Possible values:
+#     * A positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#cinder_state_transition_timeout = 300
+
+#
+# Allow to perform insecure SSL requests to cinder.
+#
+# If this option is set to True, HTTPS endpoint connection is verified using the
+# CA certificates file specified by ``cinder_ca_certificates_file`` option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * cinder_ca_certificates_file
+#
+#  (boolean value)
+#cinder_api_insecure = false
+
+#
+# The address where the cinder authentication service is listening.
+#
+# When all of ``cinder_store_auth_address``, ``cinder_store_user_name``,
+# ``cinder_store_project_name``, and ``cinder_store_password`` options are
+# specified, the specified values are always used for the authentication.
+# This is useful to hide the image volumes from users by storing them in a
+# project/tenant specific to the image service. It also enables users to share
+# the image volume among other projects under the control of glance's ACL.
+#
+# If either of these options are not set, the cinder endpoint is looked up
+# from the service catalog, and current context's user and project are used.
+#
+# Possible values:
+#     * A valid authentication service address, for example:
+#       ``http://openstack.example.org/identity/v2.0``
+#
+# Related options:
+#     * cinder_store_user_name
+#     * cinder_store_password
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_auth_address = <None>
+
+#
+# User name to authenticate against cinder.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the user of the current context is used.
+#
+# Possible values:
+#     * A valid user name
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_password
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_user_name = <None>
+
+#
+# Password for the user authenticating against cinder.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the user of the current context is used.
+#
+# Possible values:
+#     * A valid password for the user specified by ``cinder_store_user_name``
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_password = <None>
+
+#
+# Project name where the image volume is stored in cinder.
+#
+# If this configuration option is not set, the project in current context is
+# used.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the project of the current context is used.
+#
+# Possible values:
+#     * A valid project name
+#
+# Related options:
+#     * ``cinder_store_auth_address``
+#     * ``cinder_store_user_name``
+#     * ``cinder_store_password``
+#
+#  (string value)
+#cinder_store_project_name = <None>
+
+#
+# Path to the rootwrap configuration file to use for running commands as root.
+#
+# The cinder store requires root privileges to operate the image volumes (for
+# connecting to iSCSI/FC volumes and reading/writing the volume data, etc.).
+# The configuration file should allow the required commands by cinder store and
+# os-brick library.
+#
+# Possible values:
+#     * Path to the rootwrap config file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#rootwrap_config = /etc/glance/rootwrap.conf
+
+#
+# Set verification of the server certificate.
+#
+# This boolean determines whether or not to verify the server
+# certificate. If this option is set to True, swiftclient won't check
+# for a valid SSL certificate when authenticating. If the option is set
+# to False, then the default CA truststore is used for verification.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * swift_store_cacert
+#
+#  (boolean value)
+#swift_store_auth_insecure = false
+
+#
+# Path to the CA bundle file.
+#
+# This configuration option enables the operator to specify the path to
+# a custom Certificate Authority file for SSL verification when
+# connecting to Swift.
+#
+# Possible values:
+#     * A valid path to a CA file
+#
+# Related options:
+#     * swift_store_auth_insecure
+#
+#  (string value)
+#swift_store_cacert = /etc/ssl/certs/ca-certificates.crt
+
+#
+# The region of Swift endpoint to use by Glance.
+#
+# Provide a string value representing a Swift region where Glance
+# can connect to for image storage. By default, there is no region
+# set.
+#
+# When Glance uses Swift as the storage backend to store images
+# for a specific tenant that has multiple endpoints, setting of a
+# Swift region with ``swift_store_region`` allows Glance to connect
+# to Swift in the specified region as opposed to a single region
+# connectivity.
+#
+# This option can be configured for both single-tenant and
+# multi-tenant storage.
+#
+# NOTE: Setting the region with ``swift_store_region`` is
+# tenant-specific and is necessary ``only if`` the tenant has
+# multiple endpoints across different regions.
+#
+# Possible values:
+#     * A string value representing a valid Swift region.
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_region = RegionTwo
+
+#
+# The URL endpoint to use for Swift backend storage.
+#
+# Provide a string value representing the URL endpoint to use for
+# storing Glance images in Swift store. By default, an endpoint
+# is not set and the storage URL returned by ``auth`` is used.
+# Setting an endpoint with ``swift_store_endpoint`` overrides the
+# storage URL and is used for Glance image storage.
+#
+# NOTE: The URL should include the path up to, but excluding the
+# container. The location of an object is obtained by appending
+# the container and object to the configured URL.
+#
+# Possible values:
+#     * String value representing a valid URL path up to a Swift container
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_endpoint = https://swift.openstack.example.org/v1/path_not_including_container_name
+
+#
+# Endpoint Type of Swift service.
+#
+# This string value indicates the endpoint type to use to fetch the
+# Swift endpoint. The endpoint type determines the actions the user will
+# be allowed to perform, for instance, reading and writing to the Store.
+# This setting is only used if swift_store_auth_version is greater than
+# 1.
+#
+# Possible values:
+#     * publicURL
+#     * adminURL
+#     * internalURL
+#
+# Related options:
+#     * swift_store_endpoint
+#
+#  (string value)
+# Allowed values: publicURL, adminURL, internalURL
+#swift_store_endpoint_type = publicURL
+
+#
+# Type of Swift service to use.
+#
+# Provide a string value representing the service type to use for
+# storing images while using Swift backend storage. The default
+# service type is set to ``object-store``.
+#
+# NOTE: If ``swift_store_auth_version`` is set to 2, the value for
+# this configuration option needs to be ``object-store``. If using
+# a higher version of Keystone or a different auth scheme, this
+# option may be modified.
+#
+# Possible values:
+#     * A string representing a valid service type for Swift storage.
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_service_type = object-store
+
+#
+# Name of single container to store images/name prefix for multiple containers
+#
+# When a single container is being used to store images, this configuration
+# option indicates the container within the Glance account to be used for
+# storing all images. When multiple containers are used to store images, this
+# will be the name prefix for all containers. Usage of single/multiple
+# containers can be controlled using the configuration option
+# ``swift_store_multiple_containers_seed``.
+#
+# When using multiple containers, the containers will be named after the value
+# set for this configuration option with the first N chars of the image UUID
+# as the suffix delimited by an underscore (where N is specified by
+# ``swift_store_multiple_containers_seed``).
+#
+# Example: if the seed is set to 3 and swift_store_container = ``glance``, then
+# an image with UUID ``fdae39a1-bac5-4238-aba4-69bcc726e848`` would be placed in
+# the container ``glance_fda``. All dashes in the UUID are included when
+# creating the container name but do not count toward the character limit, so
+# when N=10 the container name would be ``glance_fdae39a1-ba.``
+#
+# Possible values:
+#     * If using single container, this configuration option can be any string
+#       that is a valid swift container name in Glance's Swift account
+#     * If using multiple containers, this configuration option can be any
+#       string as long as it satisfies the container naming rules enforced by
+#       Swift. The value of ``swift_store_multiple_containers_seed`` should be
+#       taken into account as well.
+#
+# Related options:
+#     * ``swift_store_multiple_containers_seed``
+#     * ``swift_store_multi_tenant``
+#     * ``swift_store_create_container_on_put``
+#
+#  (string value)
+#swift_store_container = glance
+
+#
+# The size threshold, in MB, after which Glance will start segmenting image
+# data.
+#
+# Swift has an upper limit on the size of a single uploaded object. By default,
+# this is 5GB. To upload objects bigger than this limit, objects are segmented
+# into multiple smaller objects that are tied together with a manifest file.
+# For more detail, refer to
+# http://docs.openstack.org/developer/swift/overview_large_objects.html
+#
+# This configuration option specifies the size threshold over which the Swift
+# driver will start segmenting image data into multiple smaller files.
+# Currently, the Swift driver only supports creating Dynamic Large Objects.
+#
+# NOTE: This should be set by taking into account the large object limit
+# enforced by the Swift cluster in consideration.
+#
+# Possible values:
+#     * A positive integer that is less than or equal to the large object limit
+#       enforced by the Swift cluster in consideration.
+#
+# Related options:
+#     * ``swift_store_large_object_chunk_size``
+#
+#  (integer value)
+# Minimum value: 1
+#swift_store_large_object_size = 5120
+
+#
+# The maximum size, in MB, of the segments when image data is segmented.
+#
+# When image data is segmented to upload images that are larger than the limit
+# enforced by the Swift cluster, image data is broken into segments that are no
+# bigger than the size specified by this configuration option.
+# Refer to ``swift_store_large_object_size`` for more detail.
+#
+# For example: if ``swift_store_large_object_size`` is 5GB and
+# ``swift_store_large_object_chunk_size`` is 1GB, an image of size 6.2GB will be
+# segmented into 7 segments where the first six segments will be 1GB in size and
+# the seventh segment will be 0.2GB.
+#
+# Possible values:
+#     * A positive integer that is less than or equal to the large object limit
+#       enforced by Swift cluster in consideration.
+#
+# Related options:
+#     * ``swift_store_large_object_size``
+#
+#  (integer value)
+# Minimum value: 1
+#swift_store_large_object_chunk_size = 200
+
+#
+# Create container, if it doesn't already exist, when uploading image.
+#
+# At the time of uploading an image, if the corresponding container doesn't
+# exist, it will be created provided this configuration option is set to True.
+# By default, it won't be created. This behavior is applicable for both single
+# and multiple containers mode.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
+#swift_store_create_container_on_put = false
+
+#
+# Store images in tenant's Swift account.
+#
+# This enables multi-tenant storage mode which causes Glance images to be stored
+# in tenant specific Swift accounts. If this is disabled, Glance stores all
+# images in its own account. More details multi-tenant store can be found at
+# https://wiki.openstack.org/wiki/GlanceSwiftTenantSpecificStorage
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
+#swift_store_multi_tenant = false
+
+#
+# Seed indicating the number of containers to use for storing images.
+#
+# When using a single-tenant store, images can be stored in one or more than one
+# containers. When set to 0, all images will be stored in one single container.
+# When set to an integer value between 1 and 32, multiple containers will be
+# used to store images. This configuration option will determine how many
+# containers are created. The total number of containers that will be used is
+# equal to 16^N, so if this config option is set to 2, then 16^2=256 containers
+# will be used to store images.
+#
+# Please refer to ``swift_store_container`` for more detail on the naming
+# convention. More detail about using multiple containers can be found at
+# https://specs.openstack.org/openstack/glance-specs/specs/kilo/swift-store-
+# multiple-containers.html
+#
+# NOTE: This is used only when swift_store_multi_tenant is disabled.
+#
+# Possible values:
+#     * A non-negative integer less than or equal to 32
+#
+# Related options:
+#     * ``swift_store_container``
+#     * ``swift_store_multi_tenant``
+#     * ``swift_store_create_container_on_put``
+#
+#  (integer value)
+# Minimum value: 0
+# Maximum value: 32
+#swift_store_multiple_containers_seed = 0
+
+#
+# List of tenants that will be granted admin access.
+#
+# This is a list of tenants that will be granted read/write access on
+# all Swift containers created by Glance in multi-tenant mode. The
+# default value is an empty list.
+#
+# Possible values:
+#     * A comma separated list of strings representing UUIDs of Keystone
+#       projects/tenants
+#
+# Related options:
+#     * None
+#
+#  (list value)
+#swift_store_admin_tenants =
+
+#
+# SSL layer compression for HTTPS Swift requests.
+#
+# Provide a boolean value to determine whether or not to compress
+# HTTPS Swift requests for images at the SSL layer. By default,
+# compression is enabled.
+#
+# When using Swift as the backend store for Glance image storage,
+# SSL layer compression of HTTPS Swift requests can be set using
+# this option. If set to False, SSL layer compression of HTTPS
+# Swift requests is disabled. Disabling this option may improve
+# performance for images which are already in a compressed format,
+# for example, qcow2.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related Options:
+#     * None
+#
+#  (boolean value)
+#swift_store_ssl_compression = true
+
+#
+# The number of times a Swift download will be retried before the
+# request fails.
+#
+# Provide an integer value representing the number of times an image
+# download must be retried before erroring out. The default value is
+# zero (no retry on a failed image download). When set to a positive
+# integer value, ``swift_store_retry_get_count`` ensures that the
+# download is attempted this many more times upon a download failure
+# before sending an error message.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer value
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#swift_store_retry_get_count = 0
+
+#
+# Time in seconds defining the size of the window in which a new
+# token may be requested before the current token is due to expire.
+#
+# Typically, the Swift storage driver fetches a new token upon the
+# expiration of the current token to ensure continued access to
+# Swift. However, some Swift transactions (like uploading image
+# segments) may not recover well if the token expires on the fly.
+#
+# Hence, by fetching a new token before the current token expiration,
+# we make sure that the token does not expire or is close to expiry
+# before a transaction is attempted. By default, the Swift storage
+# driver requests for a new token 60 seconds or less before the
+# current token expiration.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer value
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#swift_store_expire_soon_interval = 60
+
+#
+# Use trusts for multi-tenant Swift store.
+#
+# This option instructs the Swift store to create a trust for each
+# add/get request when the multi-tenant store is in use. Using trusts
+# allows the Swift store to avoid problems that can be caused by an
+# authentication token expiring during the upload or download of data.
+#
+# By default, ``swift_store_use_trusts`` is set to ``True``(use of
+# trusts is enabled). If set to ``False``, a user token is used for
+# the Swift connection instead, eliminating the overhead of trust
+# creation.
+#
+# NOTE: This option is considered only when
+# ``swift_store_multi_tenant`` is set to ``True``
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * swift_store_multi_tenant
+#
+#  (boolean value)
+#swift_store_use_trusts = true
+
+#
+# Reference to default Swift account/backing store parameters.
+#
+# Provide a string value representing a reference to the default set
+# of parameters required for using swift account/backing store for
+# image storage. The default reference value for this configuration
+# option is 'ref1'. This configuration option dereferences the
+# parameters and facilitates image storage in Swift storage backend
+# every time a new image is added.
+#
+# Possible values:
+#     * A valid string value
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#default_swift_reference = ref1
+
+# DEPRECATED: Version of the authentication service to use. Valid versions are 2
+# and 3 for keystone and 1 (deprecated) for swauth and rackspace. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'auth_version' in the Swift back-end configuration file is
+# used instead.
+#swift_store_auth_version = 2
+
+# DEPRECATED: The address where the Swift authentication service is listening.
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'auth_address' in the Swift back-end configuration file is
+# used instead.
+#swift_store_auth_address = <None>
+
+# DEPRECATED: The user to authenticate against the Swift authentication service.
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'user' in the Swift back-end configuration file is set instead.
+#swift_store_user = <None>
+
+# DEPRECATED: Auth key for the user authenticating against the Swift
+# authentication service. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'key' in the Swift back-end configuration file is used
+# to set the authentication key instead.
+#swift_store_key = <None>
+
+#
+# Absolute path to the file containing the swift account(s)
+# configurations.
+#
+# Include a string value representing the path to a configuration
+# file that has references for each of the configured Swift
+# account(s)/backing stores. By default, no file path is specified
+# and customized Swift referencing is disabled. Configuring this
+# option is highly recommended while using Swift storage backend for
+# image storage as it avoids storage of credentials in the database.
+#
+# Possible values:
+#     * String value representing an absolute path on the glance-api
+#       node
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#swift_store_config_file = <None>
+
 
 [keystone_authtoken]
 
@@ -744,38 +1980,44 @@
 # From keystonemiddleware.auth_token
 #
 
-# Complete public Identity API endpoint. (string value)
+# Complete "public" Identity API endpoint. This endpoint should not be an
+# "admin" endpoint, as it should be accessible by all end users. Unauthenticated
+# clients are redirected to this endpoint to authenticate. Although this
+# endpoint should  ideally be unversioned, client support in the wild varies.
+# If you're using a versioned v2 endpoint here, then this  should *not* be the
+# same endpoint the service user utilizes  for validating tokens, because normal
+# end users may not be  able to reach that endpoint. (string value)
 #auth_uri = <None>
 
 # API version of the admin Identity API endpoint. (string value)
 #auth_version = <None>
 
-# Do not handle authorization requests within the middleware, but
-# delegate the authorization decision to downstream WSGI components.
-# (boolean value)
+# Do not handle authorization requests within the middleware, but delegate the
+# authorization decision to downstream WSGI components. (boolean value)
 #delay_auth_decision = false
 
-# Request timeout value for communicating with Identity API server.
-# (integer value)
+# Request timeout value for communicating with Identity API server. (integer
+# value)
 #http_connect_timeout = <None>
 
-# How many times are we trying to reconnect when communicating with
-# Identity API Server. (integer value)
+# How many times are we trying to reconnect when communicating with Identity API
+# Server. (integer value)
 #http_request_max_retries = 3
 
-# Env key for the swift cache. (string value)
+# Request environment key where the Swift cache object is stored. When
+# auth_token middleware is deployed with a Swift cache, use this option to have
+# the middleware share a caching backend with swift. Otherwise, use the
+# ``memcached_servers`` option instead. (string value)
 #cache = <None>
 
-# Required if identity server requires client certificate (string
-# value)
+# Required if identity server requires client certificate (string value)
 #certfile = <None>
 
-# Required if identity server requires client certificate (string
-# value)
+# Required if identity server requires client certificate (string value)
 #keyfile = <None>
 
-# A PEM encoded Certificate Authority to use when verifying HTTPs
-# connections. Defaults to system CAs. (string value)
+# A PEM encoded Certificate Authority to use when verifying HTTPs connections.
+# Defaults to system CAs. (string value)
 #cafile = <None>
 
 # Verify HTTPS connections. (boolean value)
@@ -787,98 +2029,91 @@
 # Directory used to cache files related to PKI tokens. (string value)
 #signing_dir = <None>
 
-# Optionally specify a list of memcached server(s) to use for caching.
-# If left undefined, tokens will instead be cached in-process. (list
-# value)
-# Deprecated group/name - [DEFAULT]/memcache_servers
+# Optionally specify a list of memcached server(s) to use for caching. If left
+# undefined, tokens will instead be cached in-process. (list value)
+# Deprecated group/name - [keystone_authtoken]/memcache_servers
 #memcached_servers = <None>
 
-# In order to prevent excessive effort spent validating tokens, the
-# middleware caches previously-seen tokens for a configurable duration
-# (in seconds). Set to -1 to disable caching completely. (integer
-# value)
+# In order to prevent excessive effort spent validating tokens, the middleware
+# caches previously-seen tokens for a configurable duration (in seconds). Set to
+# -1 to disable caching completely. (integer value)
 #token_cache_time = 300
 
-# Determines the frequency at which the list of revoked tokens is
-# retrieved from the Identity service (in seconds). A high number of
-# revocation events combined with a low cache duration may
-# significantly reduce performance. (integer value)
+# Determines the frequency at which the list of revoked tokens is retrieved from
+# the Identity service (in seconds). A high number of revocation events combined
+# with a low cache duration may significantly reduce performance. Only valid for
+# PKI tokens. (integer value)
 #revocation_cache_time = 10
 
-# (Optional) If defined, indicate whether token data should be
-# authenticated or authenticated and encrypted. If MAC, token data is
-# authenticated (with HMAC) in the cache. If ENCRYPT, token data is
-# encrypted and authenticated in the cache. If the value is not one of
-# these options or empty, auth_token will raise an exception on
-# initialization. (string value)
+# (Optional) If defined, indicate whether token data should be authenticated or
+# authenticated and encrypted. If MAC, token data is authenticated (with HMAC)
+# in the cache. If ENCRYPT, token data is encrypted and authenticated in the
+# cache. If the value is not one of these options or empty, auth_token will
+# raise an exception on initialization. (string value)
 # Allowed values: None, MAC, ENCRYPT
 #memcache_security_strategy = None
 
-# (Optional, mandatory if memcache_security_strategy is defined) This
-# string is used for key derivation. (string value)
+# (Optional, mandatory if memcache_security_strategy is defined) This string is
+# used for key derivation. (string value)
 #memcache_secret_key = <None>
 
-# (Optional) Number of seconds memcached server is considered dead
-# before it is tried again. (integer value)
+# (Optional) Number of seconds memcached server is considered dead before it is
+# tried again. (integer value)
 #memcache_pool_dead_retry = 300
 
-# (Optional) Maximum total number of open connections to every
-# memcached server. (integer value)
+# (Optional) Maximum total number of open connections to every memcached server.
+# (integer value)
 #memcache_pool_maxsize = 10
 
-# (Optional) Socket timeout in seconds for communicating with a
-# memcached server. (integer value)
+# (Optional) Socket timeout in seconds for communicating with a memcached
+# server. (integer value)
 #memcache_pool_socket_timeout = 3
 
-# (Optional) Number of seconds a connection to memcached is held
-# unused in the pool before it is closed. (integer value)
+# (Optional) Number of seconds a connection to memcached is held unused in the
+# pool before it is closed. (integer value)
 #memcache_pool_unused_timeout = 60
 
-# (Optional) Number of seconds that an operation will wait to get a
-# memcached client connection from the pool. (integer value)
+# (Optional) Number of seconds that an operation will wait to get a memcached
+# client connection from the pool. (integer value)
 #memcache_pool_conn_get_timeout = 10
 
-# (Optional) Use the advanced (eventlet safe) memcached client pool.
-# The advanced pool will only work under python 2.x. (boolean value)
+# (Optional) Use the advanced (eventlet safe) memcached client pool. The
+# advanced pool will only work under python 2.x. (boolean value)
 #memcache_use_advanced_pool = false
 
-# (Optional) Indicate whether to set the X-Service-Catalog header. If
-# False, middleware will not ask for service catalog on token
-# validation and will not set the X-Service-Catalog header. (boolean
-# value)
+# (Optional) Indicate whether to set the X-Service-Catalog header. If False,
+# middleware will not ask for service catalog on token validation and will not
+# set the X-Service-Catalog header. (boolean value)
 #include_service_catalog = true
 
-# Used to control the use and type of token binding. Can be set to:
-# "disabled" to not check token binding. "permissive" (default) to
-# validate binding information if the bind type is of a form known to
-# the server and ignore it if not. "strict" like "permissive" but if
-# the bind type is unknown the token will be rejected. "required" any
-# form of token binding is needed to be allowed. Finally the name of a
-# binding method that must be present in tokens. (string value)
+# Used to control the use and type of token binding. Can be set to: "disabled"
+# to not check token binding. "permissive" (default) to validate binding
+# information if the bind type is of a form known to the server and ignore it if
+# not. "strict" like "permissive" but if the bind type is unknown the token will
+# be rejected. "required" any form of token binding is needed to be allowed.
+# Finally the name of a binding method that must be present in tokens. (string
+# value)
 #enforce_token_bind = permissive
 
-# If true, the revocation list will be checked for cached tokens. This
-# requires that PKI tokens are configured on the identity server.
-# (boolean value)
+# If true, the revocation list will be checked for cached tokens. This requires
+# that PKI tokens are configured on the identity server. (boolean value)
 #check_revocations_for_cached = false
 
-# Hash algorithms to use for hashing PKI tokens. This may be a single
-# algorithm or multiple. The algorithms are those supported by Python
-# standard hashlib.new(). The hashes will be tried in the order given,
-# so put the preferred one first for performance. The result of the
-# first hash will be stored in the cache. This will typically be set
-# to multiple values only while migrating from a less secure algorithm
-# to a more secure one. Once all the old tokens are expired this
-# option should be set to a single value for better performance. (list
-# value)
+# Hash algorithms to use for hashing PKI tokens. This may be a single algorithm
+# or multiple. The algorithms are those supported by Python standard
+# hashlib.new(). The hashes will be tried in the order given, so put the
+# preferred one first for performance. The result of the first hash will be
+# stored in the cache. This will typically be set to multiple values only while
+# migrating from a less secure algorithm to a more secure one. Once all the old
+# tokens are expired this option should be set to a single value for better
+# performance. (list value)
 #hash_algorithms = md5
 
-# Authentication type to load (unknown value)
-# Deprecated group/name - [DEFAULT]/auth_plugin
+# Authentication type to load (string value)
+# Deprecated group/name - [keystone_authtoken]/auth_plugin
 #auth_type = <None>
 
-# Config Section from which to load plugin specific options (unknown
-# value)
+# Config Section from which to load plugin specific options (string value)
 #auth_section = <None>
 
 
@@ -888,11 +2123,116 @@
 # From glance.glare
 #
 
-# Partial name of a pipeline in your paste configuration file with the
-# service name removed. For example, if your paste section name is
-# [pipeline:glance-api-keystone] use the value "keystone" (string
-# value)
-#flavor = <None>
+#
+# Deployment flavor to use in the server application pipeline.
+#
+# Provide a string value representing the appropriate deployment
+# flavor used in the server application pipleline. This is typically
+# the partial name of a pipeline in the paste configuration file with
+# the service name removed.
+#
+# For example, if your paste section name in the paste configuration
+# file is [pipeline:glance-api-keystone], set ``flavor`` to
+# ``keystone``.
+#
+# Possible values:
+#     * String value representing a partial pipeline name.
+#
+# Related Options:
+#     * config_file
+#
+#  (string value)
+#flavor = keystone
 
-# Name of the paste configuration file. (string value)
-#config_file = <None>
+#
+# Name of the paste configuration file.
+#
+# Provide a string value representing the name of the paste
+# configuration file to use for configuring piplelines for
+# server application deployments.
+#
+# NOTES:
+#     * Provide the name or the path relative to the glance directory
+#       for the paste configuration file and not the absolute path.
+#     * The sample paste configuration file shipped with Glance need
+#       not be edited in most cases as it comes with ready-made
+#       pipelines for all common deployment flavors.
+#
+# If no value is specified for this option, the ``paste.ini`` file
+# with the prefix of the corresponding Glance service's configuration
+# file name will be searched for in the known configuration
+# directories. (For example, if this option is missing from or has no
+# value set in ``glance-api.conf``, the service will look for a file
+# named ``glance-api-paste.ini``.) If the paste configuration file is
+# not found, the service will not start.
+#
+# Possible values:
+#     * A string value representing the name of the paste configuration
+#       file.
+#
+# Related Options:
+#     * flavor
+#
+#  (string value)
+#config_file = glance-api-paste.ini
+
+
+[profiler]
+
+#
+# From glance.glare
+#
+
+#
+# Enables the profiling for all services on this node. Default value is False
+# (fully disable the profiling feature).
+#
+# Possible values:
+#
+# * True: Enables the feature
+# * False: Disables the feature. The profiling cannot be started via this
+# project
+# operations. If the profiling is triggered by another project, this project
+# part
+# will be empty.
+#  (boolean value)
+# Deprecated group/name - [profiler]/profiler_enabled
+#enabled = false
+
+#
+# Enables SQL requests profiling in services. Default value is False (SQL
+# requests won't be traced).
+#
+# Possible values:
+#
+# * True: Enables SQL requests profiling. Each SQL query will be part of the
+# trace and can the be analyzed by how much time was spent for that.
+# * False: Disables SQL requests profiling. The spent time is only shown on a
+# higher level of operations. Single SQL queries cannot be analyzed this
+# way.
+#  (boolean value)
+#trace_sqlalchemy = false
+
+#
+# Secret key(s) to use for encrypting context data for performance profiling.
+# This string value should have the following format: <key1>[,<key2>,...<keyn>],
+# where each key is some random string. A user who triggers the profiling via
+# the REST API has to set one of these keys in the headers of the REST API call
+# to include profiling results of this node for this particular project.
+#
+# Both "enabled" flag and "hmac_keys" config options should be set to enable
+# profiling. Also, to generate correct profiling information across all services
+# at least one key needs to be consistent between OpenStack projects. This
+# ensures it can be used from client side to generate the trace, containing
+# information from all possible resources. (string value)
+#hmac_keys = SECRET_KEY
+
+#
+# Connection string for a notifier backend. Default value is messaging:// which
+# sets the notifier to oslo_messaging.
+#
+# Examples of possible values:
+#
+# * messaging://: use oslo_messaging driver for sending notifications.
+#  (string value)
+#connection_string = messaging://
diff --git a/etc/glance-manage.conf b/etc/glance-manage.conf
index a6736da916..f62545fa5d 100644
--- a/etc/glance-manage.conf
+++ b/etc/glance-manage.conf
@@ -4,94 +4,93 @@
 # From oslo.log
 #
 
-# If set to true, the logging level will be set to DEBUG instead of
-# the default INFO level. (boolean value)
+# If set to true, the logging level will be set to DEBUG instead of the default
+# INFO level. (boolean value)
+# Note: This option can be changed without restarting.
 #debug = false
 
-# If set to false, the logging level will be set to WARNING instead of
-# the default INFO level. (boolean value)
+# DEPRECATED: If set to false, the logging level will be set to WARNING instead
+# of the default INFO level. (boolean value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 #verbose = true
 
-# The name of a logging configuration file. This file is appended to
-# any existing logging configuration files. For details about logging
-# configuration files, see the Python logging module documentation.
-# Note that when logging configuration files are used then all logging
-# configuration is set in the configuration file and other logging
-# configuration options are ignored (for example,
-# logging_context_format_string). (string value)
+# The name of a logging configuration file. This file is appended to any
+# existing logging configuration files. For details about logging configuration
+# files, see the Python logging module documentation. Note that when logging
+# configuration files are used then all logging configuration is set in the
+# configuration file and other logging configuration options are ignored (for
+# example, logging_context_format_string). (string value)
+# Note: This option can be changed without restarting.
 # Deprecated group/name - [DEFAULT]/log_config
 #log_config_append = <None>
 
 # Defines the format string for %%(asctime)s in log records. Default:
-# %(default)s . This option is ignored if log_config_append is set.
-# (string value)
+# %(default)s . This option is ignored if log_config_append is set. (string
+# value)
 #log_date_format = %Y-%m-%d %H:%M:%S
 
-# (Optional) Name of log file to send logging output to. If no default
-# is set, logging will go to stderr as defined by use_stderr. This
-# option is ignored if log_config_append is set. (string value)
+# (Optional) Name of log file to send logging output to. If no default is set,
+# logging will go to stderr as defined by use_stderr. This option is ignored if
+# log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logfile
 #log_file = <None>
 
-# (Optional) The base directory used for relative log_file  paths.
-# This option is ignored if log_config_append is set. (string value)
+# (Optional) The base directory used for relative log_file  paths. This option
+# is ignored if log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logdir
 #log_dir = <None>
 
-# Uses logging handler designed to watch file system. When log file is
-# moved or removed this handler will open a new log file with
-# specified path instantaneously. It makes sense only if log_file
-# option is specified and Linux platform is used. This option is
-# ignored if log_config_append is set. (boolean value)
+# Uses logging handler designed to watch file system. When log file is moved or
+# removed this handler will open a new log file with specified path
+# instantaneously. It makes sense only if log_file option is specified and Linux
+# platform is used. This option is ignored if log_config_append is set. (boolean
+# value)
 #watch_log_file = false
 
-# Use syslog for logging. Existing syslog format is DEPRECATED and
-# will be changed later to honor RFC5424. This option is ignored if
-# log_config_append is set. (boolean value)
+# Use syslog for logging. Existing syslog format is DEPRECATED and will be
+# changed later to honor RFC5424. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_syslog = false
 
 # Syslog facility to receive log lines. This option is ignored if
 # log_config_append is set. (string value)
 #syslog_log_facility = LOG_USER
 
-# Log output to standard error. This option is ignored if
-# log_config_append is set. (boolean value)
+# Log output to standard error. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_stderr = true
 
 # Format string to use for log messages with context. (string value)
 #logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
 
-# Format string to use for log messages when context is undefined.
-# (string value)
+# Format string to use for log messages when context is undefined. (string
+# value)
 #logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
 
-# Additional data to append to log message when logging level for the
-# message is DEBUG. (string value)
+# Additional data to append to log message when logging level for the message is
+# DEBUG. (string value)
 #logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
 
-# Prefix each line of exception output with this format. (string
-# value)
+# Prefix each line of exception output with this format. (string value)
 #logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
 
 # Defines the format string for %(user_identity)s that is used in
 # logging_context_format_string. (string value)
 #logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
 
-# List of package logging levels in logger=LEVEL pairs. This option is
-# ignored if log_config_append is set. (list value)
+# List of package logging levels in logger=LEVEL pairs. This option is ignored
+# if log_config_append is set. (list value)
 #default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
 
 # Enables or disables publication of error events. (boolean value)
 #publish_errors = false
 
-# The format for an instance that is passed with the log message.
-# (string value)
+# The format for an instance that is passed with the log message. (string value)
 #instance_format = "[instance: %(uuid)s] "
 
-# The format for an instance UUID that is passed with the log message.
-# (string value)
+# The format for an instance UUID that is passed with the log message. (string
+# value)
 #instance_uuid_format = "[instance: %(uuid)s] "
 
 # Enables or disables fatal status of deprecations. (boolean value)
@@ -104,8 +103,12 @@
 # From oslo.db
 #
 
-# The file name to use with SQLite. (string value)
+# DEPRECATED: The file name to use with SQLite. (string value)
 # Deprecated group/name - [DEFAULT]/sqlite_db
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason: Should use config option connection or slave_connection to connect the
+# database.
 #sqlite_db = oslo.sqlite
 
 # If True, SQLite uses synchronous mode. (boolean value)
@@ -116,21 +119,21 @@
 # Deprecated group/name - [DEFAULT]/db_backend
 #backend = sqlalchemy
 
-# The SQLAlchemy connection string to use to connect to the database.
-# (string value)
+# The SQLAlchemy connection string to use to connect to the database. (string
+# value)
 # Deprecated group/name - [DEFAULT]/sql_connection
 # Deprecated group/name - [DATABASE]/sql_connection
 # Deprecated group/name - [sql]/connection
 #connection = <None>
 
-# The SQLAlchemy connection string to use to connect to the slave
-# database. (string value)
+# The SQLAlchemy connection string to use to connect to the slave database.
+# (string value)
 #slave_connection = <None>
 
-# The SQL mode to be used for MySQL sessions. This option, including
-# the default, overrides any server-set SQL mode. To use whatever SQL
-# mode is set by the server configuration, set this to no value.
-# Example: mysql_sql_mode= (string value)
+# The SQL mode to be used for MySQL sessions. This option, including the
+# default, overrides any server-set SQL mode. To use whatever SQL mode is set by
+# the server configuration, set this to no value. Example: mysql_sql_mode=
+# (string value)
 #mysql_sql_mode = TRADITIONAL
 
 # Timeout before idle SQL connections are reaped. (integer value)
@@ -139,38 +142,37 @@
 # Deprecated group/name - [sql]/idle_timeout
 #idle_timeout = 3600
 
-# Minimum number of SQL connections to keep open in a pool. (integer
-# value)
+# Minimum number of SQL connections to keep open in a pool. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_min_pool_size
 # Deprecated group/name - [DATABASE]/sql_min_pool_size
 #min_pool_size = 1
 
-# Maximum number of SQL connections to keep open in a pool. (integer
-# value)
+# Maximum number of SQL connections to keep open in a pool. Setting a value of 0
+# indicates no limit. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_pool_size
 # Deprecated group/name - [DATABASE]/sql_max_pool_size
-#max_pool_size = <None>
+#max_pool_size = 5
 
-# Maximum number of database connection retries during startup. Set to
-# -1 to specify an infinite retry count. (integer value)
+# Maximum number of database connection retries during startup. Set to -1 to
+# specify an infinite retry count. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_retries
 # Deprecated group/name - [DATABASE]/sql_max_retries
 #max_retries = 10
 
-# Interval between retries of opening a SQL connection. (integer
-# value)
+# Interval between retries of opening a SQL connection. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_retry_interval
 # Deprecated group/name - [DATABASE]/reconnect_interval
 #retry_interval = 10
 
-# If set, use this value for max_overflow with SQLAlchemy. (integer
-# value)
+# If set, use this value for max_overflow with SQLAlchemy. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_overflow
 # Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
 #max_overflow = 50
 
-# Verbosity of SQL debugging information: 0=None, 100=Everything.
-# (integer value)
+# Verbosity of SQL debugging information: 0=None, 100=Everything. (integer
+# value)
+# Minimum value: 0
+# Maximum value: 100
 # Deprecated group/name - [DEFAULT]/sql_connection_debug
 #connection_debug = 0
 
@@ -178,36 +180,34 @@
 # Deprecated group/name - [DEFAULT]/sql_connection_trace
 #connection_trace = false
 
-# If set, use this value for pool_timeout with SQLAlchemy. (integer
-# value)
+# If set, use this value for pool_timeout with SQLAlchemy. (integer value)
 # Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
 #pool_timeout = <None>
 
-# Enable the experimental use of database reconnect on connection
-# lost. (boolean value)
+# Enable the experimental use of database reconnect on connection lost. (boolean
+# value)
 #use_db_reconnect = false
 
 # Seconds between retries of a database transaction. (integer value)
 #db_retry_interval = 1
 
-# If True, increases the interval between retries of a database
-# operation up to db_max_retry_interval. (boolean value)
+# If True, increases the interval between retries of a database operation up to
+# db_max_retry_interval. (boolean value)
 #db_inc_retry_interval = true
 
-# If db_inc_retry_interval is set, the maximum seconds between retries
-# of a database operation. (integer value)
+# If db_inc_retry_interval is set, the maximum seconds between retries of a
+# database operation. (integer value)
 #db_max_retry_interval = 10
 
-# Maximum retries in case of connection error or deadlock error before
-# error is raised. Set to -1 to specify an infinite retry count.
-# (integer value)
+# Maximum retries in case of connection error or deadlock error before error is
+# raised. Set to -1 to specify an infinite retry count. (integer value)
 #db_max_retries = 20
 
 #
 # From oslo.db.concurrency
 #
 
-# Enable the experimental use of thread pooling for all DB API calls
-# (boolean value)
+# Enable the experimental use of thread pooling for all DB API calls (boolean
+# value)
 # Deprecated group/name - [DEFAULT]/dbapi_use_tpool
 #use_tpool = false
diff --git a/etc/glance-registry.conf b/etc/glance-registry.conf
index 0b382eda42..9aabc315da 100644
--- a/etc/glance-registry.conf
+++ b/etc/glance-registry.conf
@@ -7,21 +7,13 @@
 #
 # Set the image owner to tenant or the authenticated user.
 #
-# Assign a boolean value to determine the owner of an image. When set
-# to
+# Assign a boolean value to determine the owner of an image. When set to
 # True, the owner of the image is the tenant. When set to False, the
-# owner of the image will be the authenticated user issuing the
-# request.
-# Setting it to False makes the image private to the associated user
-# and
+# owner of the image will be the authenticated user issuing the request.
+# Setting it to False makes the image private to the associated user and
 # sharing with other users within the same tenant (or "project")
 # requires explicit image sharing via image membership.
 #
-# Services which consume this:
-#     * glance-api
-#     * glare-api
-#     * glance-registry
-#
 # Possible values:
 #     * True
 #     * False
@@ -40,12 +32,6 @@
 # administrative privileges. The default value for this option is
 # 'admin'.
 #
-# Services which consume this:
-#     * glance-api
-#     * glare-api
-#     * glance-registry
-#     * glance-scrubber
-#
 # Possible values:
 #     * A string value which is a valid Keystone role
 #
@@ -64,11 +50,6 @@
 # access the API with read-only privileges. This however only applies
 # when using ContextMiddleware.
 #
-# Services which consumes this:
-#     * glance-api
-#     * glare-api
-#     * glance-registry
-#
 # Possible values:
 #     * True
 #     * False
@@ -84,15 +65,9 @@
 #
 # Provide  an integer value to limit the length of the request ID to
 # the specified length. The default value is 64. Users can change this
-# to any ineteger value between 0 and 16384 however keeping in mind
-# that
+# to any ineteger value between 0 and 16384 however keeping in mind that
 # a larger value may flood the logs.
 #
-# Services which consumes this:
-#     * glance-api
-#     * glare-api
-#     * glance-registry
-#
 # Possible values:
 #     * Integer value between 0 and 16384
 #
@@ -103,257 +78,806 @@
 # Minimum value: 0
 #max_request_id_length = 64
 
-# Whether to allow users to specify image properties beyond what the
-# image schema provides (boolean value)
+#
+# Allow users to add additional/custom properties to images.
+#
+# Glance defines a standard set of properties (in its schema) that
+# appear on every image. These properties are also known as
+# ``base properties``. In addition to these properties, Glance
+# allows users to add custom properties to images. These are known
+# as ``additional properties``.
+#
+# By default, this configuration option is set to ``True`` and users
+# are allowed to add additional properties. The number of additional
+# properties that can be added to an image can be controlled via
+# ``image_property_quota`` configuration option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * image_property_quota
+#
+#  (boolean value)
 #allow_additional_image_properties = true
 
-# Maximum number of image members per image. Negative values evaluate
-# to unlimited. (integer value)
+#
+# Maximum number of image members per image.
+#
+# This limits the maximum of users an image can be shared with. Any negative
+# value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_member_quota = 128
 
-# Maximum number of properties allowed on an image. Negative values
-# evaluate to unlimited. (integer value)
+#
+# Maximum number of properties allowed on an image.
+#
+# This enforces an upper limit on the number of additional properties an image
+# can have. Any negative value is interpreted as unlimited.
+#
+# NOTE: This won't have any impact if additional properties are disabled. Please
+# refer to ``allow_additional_image_properties``.
+#
+# Related options:
+#     * ``allow_additional_image_properties``
+#
+#  (integer value)
 #image_property_quota = 128
 
-# Maximum number of tags allowed on an image. Negative values evaluate
-# to unlimited. (integer value)
+#
+# Maximum number of tags allowed on an image.
+#
+# Any negative value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_tag_quota = 128
 
-# Maximum number of locations allowed on an image. Negative values
-# evaluate to unlimited. (integer value)
+#
+# Maximum number of locations allowed on an image.
+#
+# Any negative value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_location_quota = 10
 
-# Python module path of data access API (string value)
+#
+# Python module path of data access API.
+#
+# Specifies the path to the API to use for accessing the data model.
+# This option determines how the image catalog data will be accessed.
+#
+# Possible values:
+#     * glance.db.sqlalchemy.api
+#     * glance.db.registry.api
+#     * glance.db.simple.api
+#
+# If this option is set to ``glance.db.sqlalchemy.api`` then the image
+# catalog data is stored in and read from the database via the
+# SQLAlchemy Core and ORM APIs.
+#
+# Setting this option to ``glance.db.registry.api`` will force all
+# database access requests to be routed through the Registry service.
+# This avoids data access from the Glance API nodes for an added layer
+# of security, scalability and manageability.
+#
+# NOTE: In v2 OpenStack Images API, the registry service is optional.
+# In order to use the Registry API in v2, the option
+# ``enable_v2_registry`` must be set to ``True``.
+#
+# Finally, when this configuration option is set to
+# ``glance.db.simple.api``, image catalog data is stored in and read
+# from an in-memory data structure. This is primarily used for testing.
+#
+# Related options:
+#     * enable_v2_api
+#     * enable_v2_registry
+#
+#  (string value)
 #data_api = glance.db.sqlalchemy.api
 
-# Default value for the number of items returned by a request if not
-# specified explicitly in the request (integer value)
+#
+# The default number of results to return for a request.
+#
+# Responses to certain API requests, like list images, may return
+# multiple items. The number of results returned can be explicitly
+# controlled by specifying the ``limit`` parameter in the API request.
+# However, if a ``limit`` parameter is not specified, this
+# configuration value will be used as the default number of results to
+# be returned for any API request.
+#
+# NOTES:
+#     * The value of this configuration option may not be greater than
+#       the value specified by ``api_limit_max``.
+#     * Setting this to a very large value may slow down database
+#       queries and increase response times. Setting this to a
+#       very low value may result in poor user experience.
+#
+# Possible values:
+#     * Any positive integer
+#
+# Related options:
+#     * api_limit_max
+#
+#  (integer value)
+# Minimum value: 1
 #limit_param_default = 25
 
-# Maximum permissible number of items that could be returned by a
-# request (integer value)
+#
+# Maximum number of results that could be returned by a request.
+#
+# As described in the help text of ``limit_param_default``, some
+# requests may return multiple results. The number of results to be
+# returned are governed either by the ``limit`` parameter in the
+# request or the ``limit_param_default`` configuration option.
+# The value in either case, can't be greater than the absolute maximum
+# defined by this configuration option. Anything greater than this
+# value is trimmed down to the maximum value defined here.
+#
+# NOTE: Setting this to a very large value may slow down database
+#       queries and increase response times. Setting this to a
+#       very low value may result in poor user experience.
+#
+# Possible values:
+#     * Any positive integer
+#
+# Related options:
+#     * limit_param_default
+#
+#  (integer value)
+# Minimum value: 1
 #api_limit_max = 1000
 
-# Whether to include the backend image storage location in image
-# properties. Revealing storage location can be a security risk, so
-# use this setting with caution! (boolean value)
+#
+# Show direct image location when returning an image.
+#
+# This configuration option indicates whether to show the direct image
+# location when returning image details to the user. The direct image
+# location is where the image data is stored in backend storage. This
+# image location is shown under the image property ``direct_url``.
+#
+# When multiple image locations exist for an image, the best location
+# is displayed based on the location strategy indicated by the
+# configuration option ``location_strategy``.
+#
+# NOTES:
+#     * Revealing image locations can present a GRAVE SECURITY RISK as
+#       image locations can sometimes include credentials. Hence, this
+#       is set to ``False`` by default. Set this to ``True`` with
+#       EXTREME CAUTION and ONLY IF you know what you are doing!
+#     * If an operator wishes to avoid showing any image location(s)
+#       to the user, then both this option and
+#       ``show_multiple_locations`` MUST be set to ``False``.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * show_multiple_locations
+#     * location_strategy
+#
+#  (boolean value)
 #show_image_direct_url = false
 
-# Whether to include the backend image locations in image properties.
-# For example, if using the file system store a URL of
-# "file:///path/to/image" will be returned to the user in the
-# 'direct_url' meta-data field. Revealing storage location can be a
-# security risk, so use this setting with caution! Setting this to
-# true overrides the show_image_direct_url option. (boolean value)
+# DEPRECATED:
+# Show all image locations when returning an image.
+#
+# This configuration option indicates whether to show all the image
+# locations when returning image details to the user. When multiple
+# image locations exist for an image, the locations are ordered based
+# on the location strategy indicated by the configuration opt
+# ``location_strategy``. The image locations are shown under the
+# image property ``locations``.
+#
+# NOTES:
+#     * Revealing image locations can present a GRAVE SECURITY RISK as
+#       image locations can sometimes include credentials. Hence, this
+#       is set to ``False`` by default. Set this to ``True`` with
+#       EXTREME CAUTION and ONLY IF you know what you are doing!
+#     * If an operator wishes to avoid showing any image location(s)
+#       to the user, then both this option and
+#       ``show_image_direct_url`` MUST be set to ``False``.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * show_image_direct_url
+#     * location_strategy
+#
+#  (boolean value)
+# This option is deprecated for removal since Newton.
+# Its value may be silently ignored in the future.
+# Reason: This option will be removed in the Ocata release because the same
+# functionality can be achieved with greater granularity by using policies.
+# Please see the Newton release notes for more information.
 #show_multiple_locations = false
 
-# Maximum size of image a user can upload in bytes. Defaults to
-# 1099511627776 bytes (1 TB).WARNING: this value should only be
-# increased after careful consideration and must be set to a value
-# under 8 EB (9223372036854775808). (integer value)
+#
+# Maximum size of image a user can upload in bytes.
+#
+# An image upload greater than the size mentioned here would result
+# in an image creation failure. This configuration option defaults to
+# 1099511627776 bytes (1 TiB).
+#
+# NOTES:
+#     * This value should only be increased after careful
+#       consideration and must be set less than or equal to
+#       8 EiB (9223372036854775808).
+#     * This value must be set with careful consideration of the
+#       backend storage capacity. Setting this to a very low value
+#       may result in a large number of image failures. And, setting
+#       this to a very large value may result in faster consumption
+#       of storage. Hence, this must be set according to the nature of
+#       images created and storage capacity available.
+#
+# Possible values:
+#     * Any positive number less than or equal to 9223372036854775808
+#
+#  (integer value)
+# Minimum value: 1
 # Maximum value: 9223372036854775808
 #image_size_cap = 1099511627776
 
-# Set a system wide quota for every user. This value is the total
-# capacity that a user can use across all storage systems. A value of
-# 0 means unlimited.Optional unit can be specified for the value.
-# Accepted units are B, KB, MB, GB and TB representing Bytes,
-# KiloBytes, MegaBytes, GigaBytes and TeraBytes respectively. If no
-# unit is specified then Bytes is assumed. Note that there should not
-# be any space between value and unit and units are case sensitive.
-# (string value)
+#
+# Maximum amount of image storage per tenant.
+#
+# This enforces an upper limit on the cumulative storage consumed by all images
+# of a tenant across all stores. This is a per-tenant limit.
+#
+# The default unit for this configuration option is Bytes. However, storage
+# units can be specified using case-sensitive literals ``B``, ``KB``, ``MB``,
+# ``GB`` and ``TB`` representing Bytes, KiloBytes, MegaBytes, GigaBytes and
+# TeraBytes respectively. Note that there should not be any space between the
+# value and unit. Value ``0`` signifies no quota enforcement. Negative values
+# are invalid and result in errors.
+#
+# Possible values:
+#     * A string that is a valid concatenation of a non-negative integer
+#       representing the storage value and an optional string literal
+#       representing storage units as mentioned above.
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #user_storage_quota = 0
 
-# Deploy the v1 OpenStack Images API. (boolean value)
+#
+# Deploy the v1 OpenStack Images API.
+#
+# When this option is set to ``True``, Glance service will respond to
+# requests on registered endpoints conforming to the v1 OpenStack
+# Images API.
+#
+# NOTES:
+#     * If this option is enabled, then ``enable_v1_registry`` must
+#       also be set to ``True`` to enable mandatory usage of Registry
+#       service with v1 API.
+#
+#     * If this option is disabled, then the ``enable_v1_registry``
+#       option, which is enabled by default, is also recommended
+#       to be disabled.
+#
+#     * This option is separate from ``enable_v2_api``, both v1 and v2
+#       OpenStack Images API can be deployed independent of each
+#       other.
+#
+#     * If deploying only the v2 Images API, this option, which is
+#       enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v1_registry
+#     * enable_v2_api
+#
+#  (boolean value)
 #enable_v1_api = true
 
-# Deploy the v2 OpenStack Images API. (boolean value)
+#
+# Deploy the v2 OpenStack Images API.
+#
+# When this option is set to ``True``, Glance service will respond
+# to requests on registered endpoints conforming to the v2 OpenStack
+# Images API.
+#
+# NOTES:
+#     * If this option is disabled, then the ``enable_v2_registry``
+#       option, which is enabled by default, is also recommended
+#       to be disabled.
+#
+#     * This option is separate from ``enable_v1_api``, both v1 and v2
+#       OpenStack Images API can be deployed independent of each
+#       other.
+#
+#     * If deploying only the v1 Images API, this option, which is
+#       enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v2_registry
+#     * enable_v1_api
+#
+#  (boolean value)
 #enable_v2_api = true
 
-# Deploy the v1 OpenStack Registry API. (boolean value)
+#
+# Deploy the v1 API Registry service.
+#
+# When this option is set to ``True``, the Registry service
+# will be enabled in Glance for v1 API requests.
+#
+# NOTES:
+#     * Use of Registry is mandatory in v1 API, so this option must
+#       be set to ``True`` if the ``enable_v1_api`` option is enabled.
+#
+#     * If deploying only the v2 OpenStack Images API, this option,
+#       which is enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v1_api
+#
+#  (boolean value)
 #enable_v1_registry = true
 
-# Deploy the v2 OpenStack Registry API. (boolean value)
+#
+# Deploy the v2 API Registry service.
+#
+# When this option is set to ``True``, the Registry service
+# will be enabled in Glance for v2 API requests.
+#
+# NOTES:
+#     * Use of Registry is optional in v2 API, so this option
+#       must only be enabled if both ``enable_v2_api`` is set to
+#       ``True`` and the ``data_api`` option is set to
+#       ``glance.db.registry.api``.
+#
+#     * If deploying only the v1 OpenStack Images API, this option,
+#       which is enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v2_api
+#     * data_api
+#
+#  (boolean value)
 #enable_v2_registry = true
 
-# The hostname/IP of the pydev process listening for debug connections
-# (string value)
-#pydev_worker_debug_host = <None>
+#
+# Host address of the pydev server.
+#
+# Provide a string value representing the hostname or IP of the
+# pydev server to use for debugging. The pydev server listens for
+# debug connections on this address, facilitating remote debugging
+# in Glance.
+#
+# Possible values:
+#     * Valid hostname
+#     * Valid IP address
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#pydev_worker_debug_host = localhost
 
-# The port on which a pydev process is listening for connections.
-# (port value)
+#
+# Port number that the pydev server will listen on.
+#
+# Provide a port number to bind the pydev server to. The pydev
+# process accepts debug connections on this port and facilitates
+# remote debugging in Glance.
+#
+# Possible values:
+#     * A valid port number
+#
+# Related options:
+#     * None
+#
+#  (port value)
 # Minimum value: 0
 # Maximum value: 65535
 #pydev_worker_debug_port = 5678
 
-# AES key for encrypting store 'location' metadata. This includes, if
-# used, Swift or S3 credentials. Should be set to a random string of
-# length 16, 24 or 32 bytes (string value)
+#
+# AES key for encrypting store location metadata.
+#
+# Provide a string value representing the AES cipher to use for
+# encrypting Glance store metadata.
+#
+# NOTE: The AES key to use must be set to a random string of length
+# 16, 24 or 32 bytes.
+#
+# Possible values:
+#     * String value representing a valid AES key
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #metadata_encryption_key = <None>
 
-# Digest algorithm which will be used for digital signature. Use the
-# command "openssl list-message-digest-algorithms" to get the
-# available algorithms supported by the version of OpenSSL on the
-# platform. Examples are "sha1", "sha256", "sha512", etc. (string
-# value)
+#
+# Digest algorithm to use for digital signature.
+#
+# Provide a string value representing the digest algorithm to
+# use for generating digital signatures. By default, ``sha256``
+# is used.
+#
+# To get a list of the available algorithms supported by the version
+# of OpenSSL on your platform, run the command:
+# ``openssl list-message-digest-algorithms``.
+# Examples are 'sha1', 'sha256', and 'sha512'.
+#
+# NOTE: ``digest_algorithm`` is not related to Glance's image signing
+# and verification. It is only used to sign the universally unique
+# identifier (UUID) as a part of the certificate file and key file
+# validation.
+#
+# Possible values:
+#     * An OpenSSL message digest algorithm identifier
+#
+# Relation options:
+#     * None
+#
+#  (string value)
 #digest_algorithm = sha256
 
-# Address to bind the server.  Useful when selecting a particular
-# network interface. (string value)
+#
+# IP address to bind the glance servers to.
+#
+# Provide an IP address to bind the glance server to. The default
+# value is ``0.0.0.0``.
+#
+# Edit this option to enable the server to listen on one particular
+# IP address on the network card. This facilitates selection of a
+# particular network interface for the server.
+#
+# Possible values:
+#     * A valid IPv4 address
+#     * A valid IPv6 address
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #bind_host = 0.0.0.0
 
-# The port on which the server will listen. (port value)
+#
+# Port number on which the server will listen.
+#
+# Provide a valid port number to bind the server's socket to. This
+# port is then set to identify processes and forward network messages
+# that arrive at the server. The default bind_port value for the API
+# server is 9292 and for the registry server is 9191.
+#
+# Possible values:
+#     * A valid port number (0 to 65535)
+#
+# Related options:
+#     * None
+#
+#  (port value)
 # Minimum value: 0
 # Maximum value: 65535
 #bind_port = <None>
 
-# The backlog value that will be used when creating the TCP listener
-# socket. (integer value)
+#
+# Set the number of incoming connection requests.
+#
+# Provide a positive integer value to limit the number of requests in
+# the backlog queue. The default queue size is 4096.
+#
+# An incoming connection to a TCP listener socket is queued before a
+# connection can be established with the server. Setting the backlog
+# for a TCP socket ensures a limited queue size for incoming traffic.
+#
+# Possible values:
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #backlog = 4096
 
-# The value for the socket option TCP_KEEPIDLE.  This is the time in
-# seconds that the connection must be idle before TCP starts sending
-# keepalive probes. (integer value)
+#
+# Set the wait time before a connection recheck.
+#
+# Provide a positive integer value representing time in seconds which
+# is set as the idle wait time before a TCP keep alive packet can be
+# sent to the host. The default value is 600 seconds.
+#
+# Setting ``tcp_keepidle`` helps verify at regular intervals that a
+# connection is intact and prevents frequent TCP connection
+# reestablishment.
+#
+# Possible values:
+#     * Positive integer value representing time in seconds
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #tcp_keepidle = 600
 
-# CA certificate file to use to verify connecting clients. (string
-# value)
-#ca_file = <None>
+#
+# Absolute path to the CA file.
+#
+# Provide a string value representing a valid absolute path to
+# the Certificate Authority file to use for client authentication.
+#
+# A CA file typically contains necessary trusted certificates to
+# use for the client authentication. This is essential to ensure
+# that a secure connection is established to the server via the
+# internet.
+#
+# Possible values:
+#     * Valid absolute path to the CA file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#ca_file = /etc/ssl/cafile
 
-# Certificate file to use when starting API server securely. (string
-# value)
-#cert_file = <None>
+#
+# Absolute path to the certificate file.
+#
+# Provide a string value representing a valid absolute path to the
+# certificate file which is required to start the API service
+# securely.
+#
+# A certificate file typically is a public key container and includes
+# the server's public key, server name, server information and the
+# signature which was a result of the verification process using the
+# CA certificate. This is required for a secure connection
+# establishment.
+#
+# Possible values:
+#     * Valid absolute path to the certificate file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#cert_file = /etc/ssl/certs
 
-# Private key file to use when starting API server securely. (string
-# value)
-#key_file = <None>
+#
+# Absolute path to a private key file.
+#
+# Provide a string value representing a valid absolute path to a
+# private key file which is required to establish the client-server
+# connection.
+#
+# Possible values:
+#     * Absolute path to the private key file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#key_file = /etc/ssl/key/key-file.pem
 
-# DEPRECATED: The HTTP header used to determine the scheme for the
-# original request, even if it was removed by an SSL terminating
-# proxy. Typical value is "HTTP_X_FORWARDED_PROTO". (string value)
+# DEPRECATED: The HTTP header used to determine the scheme for the original
+# request, even if it was removed by an SSL terminating proxy. Typical value is
+# "HTTP_X_FORWARDED_PROTO". (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 # Reason: Use the http_proxy_to_wsgi middleware instead.
 #secure_proxy_ssl_header = <None>
 
-# The number of child process workers that will be created to service
-# requests. The default will be equal to the number of CPUs available.
-# (integer value)
+#
+# Number of Glance worker processes to start.
+#
+# Provide a non-negative integer value to set the number of child
+# process workers to service requests. By default, the number of CPUs
+# available is set as the value for ``workers``.
+#
+# Each worker process is made to listen on the port set in the
+# configuration file and contains a greenthread pool of size 1000.
+#
+# NOTE: Setting the number of workers to zero, triggers the creation
+# of a single API process with a greenthread pool of size 1000.
+#
+# Possible values:
+#     * 0
+#     * Positive integer value (typically equal to the number of CPUs)
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #workers = <None>
 
-# Maximum line size of message headers to be accepted. max_header_line
-# may need to be increased when using large tokens (typically those
-# generated by the Keystone v3 API with big service catalogs (integer
-# value)
+#
+# Maximum line size of message headers.
+#
+# Provide an integer value representing a length to limit the size of
+# message headers. The default value is 16384.
+#
+# NOTE: ``max_header_line`` may need to be increased when using large
+# tokens (typically those generated by the Keystone v3 API with big
+# service catalogs). However, it is to be kept in mind that larger
+# values for ``max_header_line`` would flood the logs.
+#
+# Setting ``max_header_line`` to 0 sets no limit for the line size of
+# message headers.
+#
+# Possible values:
+#     * 0
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #max_header_line = 16384
 
-# If False, server will return the header "Connection: close", If
-# True, server will return "Connection: Keep-Alive" in its responses.
-# In order to close the client socket connection explicitly after the
-# response is sent and read successfully by the client, you simply
-# have to set this option to False when you create a wsgi server.
-# (boolean value)
+#
+# Set keep alive option for HTTP over TCP.
+#
+# Provide a boolean value to determine sending of keep alive packets.
+# If set to ``False``, the server returns the header
+# "Connection: close". If set to ``True``, the server returns a
+# "Connection: Keep-Alive" in its responses. This enables retention of
+# the same TCP connection for HTTP conversations instead of opening a
+# new one with each new request.
+#
+# This option must be set to ``False`` if the client socket connection
+# needs to be closed explicitly after the response is received and
+# read successfully by the client.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
 #http_keepalive = true
 
-# Timeout for client connections' socket operations. If an incoming
-# connection is idle for this number of seconds it will be closed. A
-# value of '0' means wait forever. (integer value)
+#
+# Timeout for client connections' socket operations.
+#
+# Provide a valid integer value representing time in seconds to set
+# the period of wait before an incoming connection can be closed. The
+# default value is 900 seconds.
+#
+# The value zero implies wait forever.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #client_socket_timeout = 900
 
 #
 # From oslo.log
 #
 
-# If set to true, the logging level will be set to DEBUG instead of
-# the default INFO level. (boolean value)
+# If set to true, the logging level will be set to DEBUG instead of the default
+# INFO level. (boolean value)
 # Note: This option can be changed without restarting.
 #debug = false
 
-# DEPRECATED: If set to false, the logging level will be set to
-# WARNING instead of the default INFO level. (boolean value)
+# DEPRECATED: If set to false, the logging level will be set to WARNING instead
+# of the default INFO level. (boolean value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 #verbose = true
 
-# The name of a logging configuration file. This file is appended to
-# any existing logging configuration files. For details about logging
-# configuration files, see the Python logging module documentation.
-# Note that when logging configuration files are used then all logging
-# configuration is set in the configuration file and other logging
-# configuration options are ignored (for example,
-# logging_context_format_string). (string value)
+# The name of a logging configuration file. This file is appended to any
+# existing logging configuration files. For details about logging configuration
+# files, see the Python logging module documentation. Note that when logging
+# configuration files are used then all logging configuration is set in the
+# configuration file and other logging configuration options are ignored (for
+# example, logging_context_format_string). (string value)
 # Note: This option can be changed without restarting.
 # Deprecated group/name - [DEFAULT]/log_config
 #log_config_append = <None>
 
 # Defines the format string for %%(asctime)s in log records. Default:
-# %(default)s . This option is ignored if log_config_append is set.
-# (string value)
+# %(default)s . This option is ignored if log_config_append is set. (string
+# value)
 #log_date_format = %Y-%m-%d %H:%M:%S
 
-# (Optional) Name of log file to send logging output to. If no default
-# is set, logging will go to stderr as defined by use_stderr. This
-# option is ignored if log_config_append is set. (string value)
+# (Optional) Name of log file to send logging output to. If no default is set,
+# logging will go to stderr as defined by use_stderr. This option is ignored if
+# log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logfile
 #log_file = <None>
 
-# (Optional) The base directory used for relative log_file  paths.
-# This option is ignored if log_config_append is set. (string value)
+# (Optional) The base directory used for relative log_file  paths. This option
+# is ignored if log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logdir
 #log_dir = <None>
 
-# Uses logging handler designed to watch file system. When log file is
-# moved or removed this handler will open a new log file with
-# specified path instantaneously. It makes sense only if log_file
-# option is specified and Linux platform is used. This option is
-# ignored if log_config_append is set. (boolean value)
+# Uses logging handler designed to watch file system. When log file is moved or
+# removed this handler will open a new log file with specified path
+# instantaneously. It makes sense only if log_file option is specified and Linux
+# platform is used. This option is ignored if log_config_append is set. (boolean
+# value)
 #watch_log_file = false
 
-# Use syslog for logging. Existing syslog format is DEPRECATED and
-# will be changed later to honor RFC5424. This option is ignored if
-# log_config_append is set. (boolean value)
+# Use syslog for logging. Existing syslog format is DEPRECATED and will be
+# changed later to honor RFC5424. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_syslog = false
 
 # Syslog facility to receive log lines. This option is ignored if
 # log_config_append is set. (string value)
 #syslog_log_facility = LOG_USER
 
-# Log output to standard error. This option is ignored if
-# log_config_append is set. (boolean value)
+# Log output to standard error. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_stderr = true
 
 # Format string to use for log messages with context. (string value)
 #logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
 
-# Format string to use for log messages when context is undefined.
-# (string value)
+# Format string to use for log messages when context is undefined. (string
+# value)
 #logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
 
-# Additional data to append to log message when logging level for the
-# message is DEBUG. (string value)
+# Additional data to append to log message when logging level for the message is
+# DEBUG. (string value)
 #logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
 
-# Prefix each line of exception output with this format. (string
-# value)
+# Prefix each line of exception output with this format. (string value)
 #logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
 
 # Defines the format string for %(user_identity)s that is used in
 # logging_context_format_string. (string value)
 #logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
 
-# List of package logging levels in logger=LEVEL pairs. This option is
-# ignored if log_config_append is set. (list value)
+# List of package logging levels in logger=LEVEL pairs. This option is ignored
+# if log_config_append is set. (list value)
 #default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
 
 # Enables or disables publication of error events. (boolean value)
 #publish_errors = false
 
-# The format for an instance that is passed with the log message.
-# (string value)
+# The format for an instance that is passed with the log message. (string value)
 #instance_format = "[instance: %(uuid)s] "
 
-# The format for an instance UUID that is passed with the log message.
-# (string value)
+# The format for an instance UUID that is passed with the log message. (string
+# value)
 #instance_uuid_format = "[instance: %(uuid)s] "
 
 # Enables or disables fatal status of deprecations. (boolean value)
@@ -367,68 +891,100 @@
 # Deprecated group/name - [DEFAULT]/rpc_conn_pool_size
 #rpc_conn_pool_size = 30
 
-# ZeroMQ bind address. Should be a wildcard (*), an ethernet
-# interface, or IP. The "host" option should point or resolve to this
-# address. (string value)
+# The pool size limit for connections expiration policy (integer value)
+#conn_pool_min_size = 2
+
+# The time-to-live in sec of idle connections in the pool (integer value)
+#conn_pool_ttl = 1200
+
+# ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP.
+# The "host" option should point or resolve to this address. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_address
 #rpc_zmq_bind_address = *
 
 # MatchMaker driver. (string value)
 # Allowed values: redis, dummy
+# Deprecated group/name - [DEFAULT]/rpc_zmq_matchmaker
 #rpc_zmq_matchmaker = redis
 
 # Number of ZeroMQ contexts, defaults to 1. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_contexts
 #rpc_zmq_contexts = 1
 
-# Maximum number of ingress messages to locally buffer per topic.
-# Default is unlimited. (integer value)
+# Maximum number of ingress messages to locally buffer per topic. Default is
+# unlimited. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_topic_backlog
 #rpc_zmq_topic_backlog = <None>
 
 # Directory for holding IPC sockets. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_ipc_dir
 #rpc_zmq_ipc_dir = /var/run/openstack
 
-# Name of this node. Must be a valid hostname, FQDN, or IP address.
-# Must match "host" option, if running Nova. (string value)
+# Name of this node. Must be a valid hostname, FQDN, or IP address. Must match
+# "host" option, if running Nova. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_host
 #rpc_zmq_host = localhost
 
-# Seconds to wait before a cast expires (TTL). The default value of -1
-# specifies an infinite linger period. The value of 0 specifies no
-# linger period. Pending messages shall be discarded immediately when
-# the socket is closed. Only supported by impl_zmq. (integer value)
+# Seconds to wait before a cast expires (TTL). The default value of -1 specifies
+# an infinite linger period. The value of 0 specifies no linger period. Pending
+# messages shall be discarded immediately when the socket is closed. Only
+# supported by impl_zmq. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_cast_timeout
 #rpc_cast_timeout = -1
 
-# The default number of seconds that poll should wait. Poll raises
-# timeout exception when timeout expired. (integer value)
+# The default number of seconds that poll should wait. Poll raises timeout
+# exception when timeout expired. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_poll_timeout
 #rpc_poll_timeout = 1
 
-# Expiration timeout in seconds of a name service record about
-# existing target ( < 0 means no timeout). (integer value)
+# Expiration timeout in seconds of a name service record about existing target (
+# < 0 means no timeout). (integer value)
+# Deprecated group/name - [DEFAULT]/zmq_target_expire
 #zmq_target_expire = 300
 
-# Update period in seconds of a name service record about existing
-# target. (integer value)
+# Update period in seconds of a name service record about existing target.
+# (integer value)
+# Deprecated group/name - [DEFAULT]/zmq_target_update
 #zmq_target_update = 180
 
-# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy.
-# (boolean value)
+# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. (boolean
+# value)
+# Deprecated group/name - [DEFAULT]/use_pub_sub
 #use_pub_sub = true
 
 # Use ROUTER remote proxy. (boolean value)
+# Deprecated group/name - [DEFAULT]/use_router_proxy
 #use_router_proxy = true
 
 # Minimal port number for random ports range. (port value)
 # Minimum value: 0
 # Maximum value: 65535
+# Deprecated group/name - [DEFAULT]/rpc_zmq_min_port
 #rpc_zmq_min_port = 49153
 
 # Maximal port number for random ports range. (integer value)
 # Minimum value: 1
 # Maximum value: 65536
+# Deprecated group/name - [DEFAULT]/rpc_zmq_max_port
 #rpc_zmq_max_port = 65536
 
-# Number of retries to find free port number before fail with
-# ZMQBindError. (integer value)
+# Number of retries to find free port number before fail with ZMQBindError.
+# (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_port_retries
 #rpc_zmq_bind_port_retries = 100
 
+# Default serialization mechanism for serializing/deserializing
+# outgoing/incoming messages (string value)
+# Allowed values: json, msgpack
+# Deprecated group/name - [DEFAULT]/rpc_zmq_serialization
+#rpc_zmq_serialization = json
+
+# This option configures round-robin mode in zmq socket. True means not keeping
+# a queue when server side disconnects. False means to keep queue and messages
+# even if server is disconnected, when the server appears we send all
+# accumulated messages to it. (boolean value)
+#zmq_immediate = false
+
 # Size of executor thread pool. (integer value)
 # Deprecated group/name - [DEFAULT]/rpc_thread_pool_size
 #executor_thread_pool_size = 64
@@ -436,20 +992,19 @@
 # Seconds to wait for a response from a call. (integer value)
 #rpc_response_timeout = 60
 
-# A URL representing the messaging driver to use and its full
-# configuration. (string value)
+# A URL representing the messaging driver to use and its full configuration.
+# (string value)
 #transport_url = <None>
 
-# DEPRECATED: The messaging driver to use, defaults to rabbit. Other
-# drivers include amqp and zmq. (string value)
+# DEPRECATED: The messaging driver to use, defaults to rabbit. Other drivers
+# include amqp and zmq. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 # Reason: Replaced by [DEFAULT]/transport_url
 #rpc_backend = rabbit
 
-# The default exchange under which topics are scoped. May be
-# overridden by an exchange name specified in the transport_url
-# option. (string value)
+# The default exchange under which topics are scoped. May be overridden by an
+# exchange name specified in the transport_url option. (string value)
 #control_exchange = openstack
 
 
@@ -463,8 +1018,8 @@
 # Deprecated group/name - [DEFAULT]/sqlite_db
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: Should use config option connection or slave_connection to
-# connect the database.
+# Reason: Should use config option connection or slave_connection to connect the
+# database.
 #sqlite_db = oslo.sqlite
 
 # If True, SQLite uses synchronous mode. (boolean value)
@@ -475,21 +1030,21 @@
 # Deprecated group/name - [DEFAULT]/db_backend
 #backend = sqlalchemy
 
-# The SQLAlchemy connection string to use to connect to the database.
-# (string value)
+# The SQLAlchemy connection string to use to connect to the database. (string
+# value)
 # Deprecated group/name - [DEFAULT]/sql_connection
 # Deprecated group/name - [DATABASE]/sql_connection
 # Deprecated group/name - [sql]/connection
 #connection = <None>
 
-# The SQLAlchemy connection string to use to connect to the slave
-# database. (string value)
+# The SQLAlchemy connection string to use to connect to the slave database.
+# (string value)
 #slave_connection = <None>
 
-# The SQL mode to be used for MySQL sessions. This option, including
-# the default, overrides any server-set SQL mode. To use whatever SQL
-# mode is set by the server configuration, set this to no value.
-# Example: mysql_sql_mode= (string value)
+# The SQL mode to be used for MySQL sessions. This option, including the
+# default, overrides any server-set SQL mode. To use whatever SQL mode is set by
+# the server configuration, set this to no value. Example: mysql_sql_mode=
+# (string value)
 #mysql_sql_mode = TRADITIONAL
 
 # Timeout before idle SQL connections are reaped. (integer value)
@@ -498,38 +1053,37 @@
 # Deprecated group/name - [sql]/idle_timeout
 #idle_timeout = 3600
 
-# Minimum number of SQL connections to keep open in a pool. (integer
-# value)
+# Minimum number of SQL connections to keep open in a pool. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_min_pool_size
 # Deprecated group/name - [DATABASE]/sql_min_pool_size
 #min_pool_size = 1
 
-# Maximum number of SQL connections to keep open in a pool. (integer
-# value)
+# Maximum number of SQL connections to keep open in a pool. Setting a value of 0
+# indicates no limit. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_pool_size
 # Deprecated group/name - [DATABASE]/sql_max_pool_size
-#max_pool_size = <None>
+#max_pool_size = 5
 
-# Maximum number of database connection retries during startup. Set to
-# -1 to specify an infinite retry count. (integer value)
+# Maximum number of database connection retries during startup. Set to -1 to
+# specify an infinite retry count. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_retries
 # Deprecated group/name - [DATABASE]/sql_max_retries
 #max_retries = 10
 
-# Interval between retries of opening a SQL connection. (integer
-# value)
+# Interval between retries of opening a SQL connection. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_retry_interval
 # Deprecated group/name - [DATABASE]/reconnect_interval
 #retry_interval = 10
 
-# If set, use this value for max_overflow with SQLAlchemy. (integer
-# value)
+# If set, use this value for max_overflow with SQLAlchemy. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_overflow
 # Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
 #max_overflow = 50
 
-# Verbosity of SQL debugging information: 0=None, 100=Everything.
-# (integer value)
+# Verbosity of SQL debugging information: 0=None, 100=Everything. (integer
+# value)
+# Minimum value: 0
+# Maximum value: 100
 # Deprecated group/name - [DEFAULT]/sql_connection_debug
 #connection_debug = 0
 
@@ -537,37 +1091,35 @@
 # Deprecated group/name - [DEFAULT]/sql_connection_trace
 #connection_trace = false
 
-# If set, use this value for pool_timeout with SQLAlchemy. (integer
-# value)
+# If set, use this value for pool_timeout with SQLAlchemy. (integer value)
 # Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
 #pool_timeout = <None>
 
-# Enable the experimental use of database reconnect on connection
-# lost. (boolean value)
+# Enable the experimental use of database reconnect on connection lost. (boolean
+# value)
 #use_db_reconnect = false
 
 # Seconds between retries of a database transaction. (integer value)
 #db_retry_interval = 1
 
-# If True, increases the interval between retries of a database
-# operation up to db_max_retry_interval. (boolean value)
+# If True, increases the interval between retries of a database operation up to
+# db_max_retry_interval. (boolean value)
 #db_inc_retry_interval = true
 
-# If db_inc_retry_interval is set, the maximum seconds between retries
-# of a database operation. (integer value)
+# If db_inc_retry_interval is set, the maximum seconds between retries of a
+# database operation. (integer value)
 #db_max_retry_interval = 10
 
-# Maximum retries in case of connection error or deadlock error before
-# error is raised. Set to -1 to specify an infinite retry count.
-# (integer value)
+# Maximum retries in case of connection error or deadlock error before error is
+# raised. Set to -1 to specify an infinite retry count. (integer value)
 #db_max_retries = 20
 
 #
 # From oslo.db.concurrency
 #
 
-# Enable the experimental use of thread pooling for all DB API calls
-# (boolean value)
+# Enable the experimental use of thread pooling for all DB API calls (boolean
+# value)
 # Deprecated group/name - [DEFAULT]/dbapi_use_tpool
 #use_tpool = false
 
@@ -578,45 +1130,44 @@
 # From keystonemiddleware.auth_token
 #
 
-# Complete "public" Identity API endpoint. This endpoint should not be
-# an "admin" endpoint, as it should be accessible by all end users.
-# Unauthenticated clients are redirected to this endpoint to
-# authenticate. Although this endpoint should  ideally be unversioned,
-# client support in the wild varies.  If you're using a versioned v2
-# endpoint here, then this  should *not* be the same endpoint the
-# service user utilizes  for validating tokens, because normal end
-# users may not be  able to reach that endpoint. (string value)
+# Complete "public" Identity API endpoint. This endpoint should not be an
+# "admin" endpoint, as it should be accessible by all end users. Unauthenticated
+# clients are redirected to this endpoint to authenticate. Although this
+# endpoint should  ideally be unversioned, client support in the wild varies.
+# If you're using a versioned v2 endpoint here, then this  should *not* be the
+# same endpoint the service user utilizes  for validating tokens, because normal
+# end users may not be  able to reach that endpoint. (string value)
 #auth_uri = <None>
 
 # API version of the admin Identity API endpoint. (string value)
 #auth_version = <None>
 
-# Do not handle authorization requests within the middleware, but
-# delegate the authorization decision to downstream WSGI components.
-# (boolean value)
+# Do not handle authorization requests within the middleware, but delegate the
+# authorization decision to downstream WSGI components. (boolean value)
 #delay_auth_decision = false
 
-# Request timeout value for communicating with Identity API server.
-# (integer value)
+# Request timeout value for communicating with Identity API server. (integer
+# value)
 #http_connect_timeout = <None>
 
-# How many times are we trying to reconnect when communicating with
-# Identity API Server. (integer value)
+# How many times are we trying to reconnect when communicating with Identity API
+# Server. (integer value)
 #http_request_max_retries = 3
 
-# Env key for the swift cache. (string value)
+# Request environment key where the Swift cache object is stored. When
+# auth_token middleware is deployed with a Swift cache, use this option to have
+# the middleware share a caching backend with swift. Otherwise, use the
+# ``memcached_servers`` option instead. (string value)
 #cache = <None>
 
-# Required if identity server requires client certificate (string
-# value)
+# Required if identity server requires client certificate (string value)
 #certfile = <None>
 
-# Required if identity server requires client certificate (string
-# value)
+# Required if identity server requires client certificate (string value)
 #keyfile = <None>
 
-# A PEM encoded Certificate Authority to use when verifying HTTPs
-# connections. Defaults to system CAs. (string value)
+# A PEM encoded Certificate Authority to use when verifying HTTPs connections.
+# Defaults to system CAs. (string value)
 #cafile = <None>
 
 # Verify HTTPS connections. (boolean value)
@@ -628,99 +1179,91 @@
 # Directory used to cache files related to PKI tokens. (string value)
 #signing_dir = <None>
 
-# Optionally specify a list of memcached server(s) to use for caching.
-# If left undefined, tokens will instead be cached in-process. (list
-# value)
+# Optionally specify a list of memcached server(s) to use for caching. If left
+# undefined, tokens will instead be cached in-process. (list value)
 # Deprecated group/name - [keystone_authtoken]/memcache_servers
 #memcached_servers = <None>
 
-# In order to prevent excessive effort spent validating tokens, the
-# middleware caches previously-seen tokens for a configurable duration
-# (in seconds). Set to -1 to disable caching completely. (integer
-# value)
+# In order to prevent excessive effort spent validating tokens, the middleware
+# caches previously-seen tokens for a configurable duration (in seconds). Set to
+# -1 to disable caching completely. (integer value)
 #token_cache_time = 300
 
-# Determines the frequency at which the list of revoked tokens is
-# retrieved from the Identity service (in seconds). A high number of
-# revocation events combined with a low cache duration may
-# significantly reduce performance. Only valid for PKI tokens.
-# (integer value)
+# Determines the frequency at which the list of revoked tokens is retrieved from
+# the Identity service (in seconds). A high number of revocation events combined
+# with a low cache duration may significantly reduce performance. Only valid for
+# PKI tokens. (integer value)
 #revocation_cache_time = 10
 
-# (Optional) If defined, indicate whether token data should be
-# authenticated or authenticated and encrypted. If MAC, token data is
-# authenticated (with HMAC) in the cache. If ENCRYPT, token data is
-# encrypted and authenticated in the cache. If the value is not one of
-# these options or empty, auth_token will raise an exception on
-# initialization. (string value)
+# (Optional) If defined, indicate whether token data should be authenticated or
+# authenticated and encrypted. If MAC, token data is authenticated (with HMAC)
+# in the cache. If ENCRYPT, token data is encrypted and authenticated in the
+# cache. If the value is not one of these options or empty, auth_token will
+# raise an exception on initialization. (string value)
 # Allowed values: None, MAC, ENCRYPT
 #memcache_security_strategy = None
 
-# (Optional, mandatory if memcache_security_strategy is defined) This
-# string is used for key derivation. (string value)
+# (Optional, mandatory if memcache_security_strategy is defined) This string is
+# used for key derivation. (string value)
 #memcache_secret_key = <None>
 
-# (Optional) Number of seconds memcached server is considered dead
-# before it is tried again. (integer value)
+# (Optional) Number of seconds memcached server is considered dead before it is
+# tried again. (integer value)
 #memcache_pool_dead_retry = 300
 
-# (Optional) Maximum total number of open connections to every
-# memcached server. (integer value)
+# (Optional) Maximum total number of open connections to every memcached server.
+# (integer value)
 #memcache_pool_maxsize = 10
 
-# (Optional) Socket timeout in seconds for communicating with a
-# memcached server. (integer value)
+# (Optional) Socket timeout in seconds for communicating with a memcached
+# server. (integer value)
 #memcache_pool_socket_timeout = 3
 
-# (Optional) Number of seconds a connection to memcached is held
-# unused in the pool before it is closed. (integer value)
+# (Optional) Number of seconds a connection to memcached is held unused in the
+# pool before it is closed. (integer value)
 #memcache_pool_unused_timeout = 60
 
-# (Optional) Number of seconds that an operation will wait to get a
-# memcached client connection from the pool. (integer value)
+# (Optional) Number of seconds that an operation will wait to get a memcached
+# client connection from the pool. (integer value)
 #memcache_pool_conn_get_timeout = 10
 
-# (Optional) Use the advanced (eventlet safe) memcached client pool.
-# The advanced pool will only work under python 2.x. (boolean value)
+# (Optional) Use the advanced (eventlet safe) memcached client pool. The
+# advanced pool will only work under python 2.x. (boolean value)
 #memcache_use_advanced_pool = false
 
-# (Optional) Indicate whether to set the X-Service-Catalog header. If
-# False, middleware will not ask for service catalog on token
-# validation and will not set the X-Service-Catalog header. (boolean
-# value)
+# (Optional) Indicate whether to set the X-Service-Catalog header. If False,
+# middleware will not ask for service catalog on token validation and will not
+# set the X-Service-Catalog header. (boolean value)
 #include_service_catalog = true
 
-# Used to control the use and type of token binding. Can be set to:
-# "disabled" to not check token binding. "permissive" (default) to
-# validate binding information if the bind type is of a form known to
-# the server and ignore it if not. "strict" like "permissive" but if
-# the bind type is unknown the token will be rejected. "required" any
-# form of token binding is needed to be allowed. Finally the name of a
-# binding method that must be present in tokens. (string value)
+# Used to control the use and type of token binding. Can be set to: "disabled"
+# to not check token binding. "permissive" (default) to validate binding
+# information if the bind type is of a form known to the server and ignore it if
+# not. "strict" like "permissive" but if the bind type is unknown the token will
+# be rejected. "required" any form of token binding is needed to be allowed.
+# Finally the name of a binding method that must be present in tokens. (string
+# value)
 #enforce_token_bind = permissive
 
-# If true, the revocation list will be checked for cached tokens. This
-# requires that PKI tokens are configured on the identity server.
-# (boolean value)
+# If true, the revocation list will be checked for cached tokens. This requires
+# that PKI tokens are configured on the identity server. (boolean value)
 #check_revocations_for_cached = false
 
-# Hash algorithms to use for hashing PKI tokens. This may be a single
-# algorithm or multiple. The algorithms are those supported by Python
-# standard hashlib.new(). The hashes will be tried in the order given,
-# so put the preferred one first for performance. The result of the
-# first hash will be stored in the cache. This will typically be set
-# to multiple values only while migrating from a less secure algorithm
-# to a more secure one. Once all the old tokens are expired this
-# option should be set to a single value for better performance. (list
-# value)
+# Hash algorithms to use for hashing PKI tokens. This may be a single algorithm
+# or multiple. The algorithms are those supported by Python standard
+# hashlib.new(). The hashes will be tried in the order given, so put the
+# preferred one first for performance. The result of the first hash will be
+# stored in the cache. This will typically be set to multiple values only while
+# migrating from a less secure algorithm to a more secure one. Once all the old
+# tokens are expired this option should be set to a single value for better
+# performance. (list value)
 #hash_algorithms = md5
 
 # Authentication type to load (string value)
 # Deprecated group/name - [keystone_authtoken]/auth_plugin
 #auth_type = <None>
 
-# Config Section from which to load plugin specific options (string
-# value)
+# Config Section from which to load plugin specific options (string value)
 #auth_section = <None>
 
 
@@ -761,10 +1304,10 @@
 #sentinel_group_name = oslo-messaging-zeromq
 
 # Time in ms to wait between connection attempts. (integer value)
-#wait_timeout = 5000
+#wait_timeout = 2000
 
 # Time in ms to wait before the transaction is killed. (integer value)
-#check_timeout = 60000
+#check_timeout = 20000
 
 # Timeout in ms on blocking socket operations (integer value)
 #socket_timeout = 10000
@@ -776,19 +1319,8 @@
 # From oslo.messaging
 #
 
-# address prefix used when sending to a specific server (string value)
-# Deprecated group/name - [amqp1]/server_request_prefix
-#server_request_prefix = exclusive
-
-# address prefix used when broadcasting to all servers (string value)
-# Deprecated group/name - [amqp1]/broadcast_prefix
-#broadcast_prefix = broadcast
-
-# address prefix when sending to any server in group (string value)
-# Deprecated group/name - [amqp1]/group_request_prefix
-#group_request_prefix = unicast
-
-# Name for the AMQP container (string value)
+# Name for the AMQP container. must be globally unique. Defaults to a generated
+# UUID (string value)
 # Deprecated group/name - [amqp1]/container_name
 #container_name = <None>
 
@@ -804,13 +1336,11 @@
 # Deprecated group/name - [amqp1]/ssl_ca_file
 #ssl_ca_file =
 
-# Identifying certificate PEM file to present to clients (string
-# value)
+# Identifying certificate PEM file to present to clients (string value)
 # Deprecated group/name - [amqp1]/ssl_cert_file
 #ssl_cert_file =
 
-# Private key PEM file used to sign cert_file certificate (string
-# value)
+# Private key PEM file used to sign cert_file certificate (string value)
 # Deprecated group/name - [amqp1]/ssl_key_file
 #ssl_key_file =
 
@@ -826,8 +1356,7 @@
 # Deprecated group/name - [amqp1]/sasl_mechanisms
 #sasl_mechanisms =
 
-# Path to directory that contains the SASL configuration (string
-# value)
+# Path to directory that contains the SASL configuration (string value)
 # Deprecated group/name - [amqp1]/sasl_config_dir
 #sasl_config_dir =
 
@@ -843,6 +1372,108 @@
 # Deprecated group/name - [amqp1]/password
 #password =
 
+# Seconds to pause before attempting to re-connect. (integer value)
+# Minimum value: 1
+#connection_retry_interval = 1
+
+# Increase the connection_retry_interval by this many seconds after each
+# unsuccessful failover attempt. (integer value)
+# Minimum value: 0
+#connection_retry_backoff = 2
+
+# Maximum limit for connection_retry_interval + connection_retry_backoff
+# (integer value)
+# Minimum value: 1
+#connection_retry_interval_max = 30
+
+# Time to pause between re-connecting an AMQP 1.0 link that failed due to a
+# recoverable error. (integer value)
+# Minimum value: 1
+#link_retry_delay = 10
+
+# The deadline for an rpc reply message delivery. Only used when caller does not
+# provide a timeout expiry. (integer value)
+# Minimum value: 5
+#default_reply_timeout = 30
+
+# The deadline for an rpc cast or call message delivery. Only used when caller
+# does not provide a timeout expiry. (integer value)
+# Minimum value: 5
+#default_send_timeout = 30
+
+# The deadline for a sent notification message delivery. Only used when caller
+# does not provide a timeout expiry. (integer value)
+# Minimum value: 5
+#default_notify_timeout = 30
+
+# Indicates the addressing mode used by the driver.
+# Permitted values:
+# 'legacy'   - use legacy non-routable addressing
+# 'routable' - use routable addresses
+# 'dynamic'  - use legacy addresses if the message bus does not support routing
+# otherwise use routable addressing (string value)
+#addressing_mode = dynamic
+
+# address prefix used when sending to a specific server (string value)
+# Deprecated group/name - [amqp1]/server_request_prefix
+#server_request_prefix = exclusive
+
+# address prefix used when broadcasting to all servers (string value)
+# Deprecated group/name - [amqp1]/broadcast_prefix
+#broadcast_prefix = broadcast
+
+# address prefix when sending to any server in group (string value)
+# Deprecated group/name - [amqp1]/group_request_prefix
+#group_request_prefix = unicast
+
+# Address prefix for all generated RPC addresses (string value)
+#rpc_address_prefix = openstack.org/om/rpc
+
+# Address prefix for all generated Notification addresses (string value)
+#notify_address_prefix = openstack.org/om/notify
+
+# Appended to the address prefix when sending a fanout message. Used by the
+# message bus to identify fanout messages. (string value)
+#multicast_address = multicast
+
+# Appended to the address prefix when sending to a particular RPC/Notification
+# server. Used by the message bus to identify messages sent to a single
+# destination. (string value)
+#unicast_address = unicast
+
+# Appended to the address prefix when sending to a group of consumers. Used by
+# the message bus to identify messages that should be delivered in a round-robin
+# fashion across consumers. (string value)
+#anycast_address = anycast
+
+# Exchange name used in notification addresses.
+# Exchange name resolution precedence:
+# Target.exchange if set
+# else default_notification_exchange if set
+# else control_exchange if set
+# else 'notify' (string value)
+#default_notification_exchange = <None>
+
+# Exchange name used in RPC addresses.
+# Exchange name resolution precedence:
+# Target.exchange if set
+# else default_rpc_exchange if set
+# else control_exchange if set
+# else 'rpc' (string value)
+#default_rpc_exchange = <None>
+
+# Window size for incoming RPC Reply messages. (integer value)
+# Minimum value: 1
+#reply_link_credit = 200
+
+# Window size for incoming RPC Request messages (integer value)
+# Minimum value: 1
+#rpc_server_credit = 100
+
+# Window size for incoming Notification messages (integer value)
+# Minimum value: 1
+#notify_server_credit = 100
+
 
 [oslo_messaging_notifications]
 
@@ -850,14 +1481,13 @@
 # From oslo.messaging
 #
 
-# The Drivers(s) to handle sending notifications. Possible values are
-# messaging, messagingv2, routing, log, test, noop (multi valued)
+# The Drivers(s) to handle sending notifications. Possible values are messaging,
+# messagingv2, routing, log, test, noop (multi valued)
 # Deprecated group/name - [DEFAULT]/notification_driver
 #driver =
 
-# A URL representing the messaging driver to use for notifications. If
-# not set, we fall back to the same configuration used for RPC.
-# (string value)
+# A URL representing the messaging driver to use for notifications. If not set,
+# we fall back to the same configuration used for RPC. (string value)
 # Deprecated group/name - [DEFAULT]/notification_transport_url
 #transport_url = <None>
 
@@ -882,9 +1512,9 @@
 # Deprecated group/name - [DEFAULT]/amqp_auto_delete
 #amqp_auto_delete = false
 
-# SSL version to use (valid only if SSL enabled). Valid values are
-# TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be
-# available on some distributions. (string value)
+# SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and
+# SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some
+# distributions. (string value)
 # Deprecated group/name - [DEFAULT]/kombu_ssl_version
 #kombu_ssl_version =
 
@@ -896,43 +1526,39 @@
 # Deprecated group/name - [DEFAULT]/kombu_ssl_certfile
 #kombu_ssl_certfile =
 
-# SSL certification authority file (valid only if SSL enabled).
-# (string value)
+# SSL certification authority file (valid only if SSL enabled). (string value)
 # Deprecated group/name - [DEFAULT]/kombu_ssl_ca_certs
 #kombu_ssl_ca_certs =
 
-# How long to wait before reconnecting in response to an AMQP consumer
-# cancel notification. (floating point value)
+# How long to wait before reconnecting in response to an AMQP consumer cancel
+# notification. (floating point value)
 # Deprecated group/name - [DEFAULT]/kombu_reconnect_delay
 #kombu_reconnect_delay = 1.0
 
-# EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression
-# will not be used. This option may notbe available in future
-# versions. (string value)
+# EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not
+# be used. This option may not be available in future versions. (string value)
 #kombu_compression = <None>
 
-# How long to wait a missing client beforce abandoning to send it its
-# replies. This value should not be longer than rpc_response_timeout.
-# (integer value)
+# How long to wait a missing client before abandoning to send it its replies.
+# This value should not be longer than rpc_response_timeout. (integer value)
 # Deprecated group/name - [oslo_messaging_rabbit]/kombu_reconnect_timeout
 #kombu_missing_consumer_retry_timeout = 60
 
-# Determines how the next RabbitMQ node is chosen in case the one we
-# are currently connected to becomes unavailable. Takes effect only if
-# more than one RabbitMQ node is provided in config. (string value)
+# Determines how the next RabbitMQ node is chosen in case the one we are
+# currently connected to becomes unavailable. Takes effect only if more than one
+# RabbitMQ node is provided in config. (string value)
 # Allowed values: round-robin, shuffle
 #kombu_failover_strategy = round-robin
 
-# DEPRECATED: The RabbitMQ broker address where a single node is used.
-# (string value)
+# DEPRECATED: The RabbitMQ broker address where a single node is used. (string
+# value)
 # Deprecated group/name - [DEFAULT]/rabbit_host
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 # Reason: Replaced by [DEFAULT]/transport_url
 #rabbit_host = localhost
 
-# DEPRECATED: The RabbitMQ broker port where a single node is used.
-# (port value)
+# DEPRECATED: The RabbitMQ broker port where a single node is used. (port value)
 # Minimum value: 0
 # Maximum value: 65535
 # Deprecated group/name - [DEFAULT]/rabbit_port
@@ -980,52 +1606,51 @@
 # How frequently to retry connecting with RabbitMQ. (integer value)
 #rabbit_retry_interval = 1
 
-# How long to backoff for between retries when connecting to RabbitMQ.
-# (integer value)
+# How long to backoff for between retries when connecting to RabbitMQ. (integer
+# value)
 # Deprecated group/name - [DEFAULT]/rabbit_retry_backoff
 #rabbit_retry_backoff = 2
 
-# Maximum interval of RabbitMQ connection retries. Default is 30
-# seconds. (integer value)
+# Maximum interval of RabbitMQ connection retries. Default is 30 seconds.
+# (integer value)
 #rabbit_interval_max = 30
 
-# Maximum number of RabbitMQ connection retries. Default is 0
+# DEPRECATED: Maximum number of RabbitMQ connection retries. Default is 0
 # (infinite retry count). (integer value)
 # Deprecated group/name - [DEFAULT]/rabbit_max_retries
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
 #rabbit_max_retries = 0
 
-# Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change
-# this option, you must wipe the RabbitMQ database. In RabbitMQ 3.0,
-# queue mirroring is no longer controlled by the x-ha-policy argument
-# when declaring a queue. If you just want to make sure that all
-# queues (except  those with auto-generated names) are mirrored across
-# all nodes, run: "rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-
-# mode": "all"}' " (boolean value)
+# Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change this
+# option, you must wipe the RabbitMQ database. In RabbitMQ 3.0, queue mirroring
+# is no longer controlled by the x-ha-policy argument when declaring a queue. If
+# you just want to make sure that all queues (except  those with auto-generated
+# names) are mirrored across all nodes, run: "rabbitmqctl set_policy HA
+# '^(?!amq\.).*' '{"ha-mode": "all"}' " (boolean value)
 # Deprecated group/name - [DEFAULT]/rabbit_ha_queues
 #rabbit_ha_queues = false
 
-# Positive integer representing duration in seconds for queue TTL
-# (x-expires). Queues which are unused for the duration of the TTL are
-# automatically deleted. The parameter affects only reply and fanout
-# queues. (integer value)
+# Positive integer representing duration in seconds for queue TTL (x-expires).
+# Queues which are unused for the duration of the TTL are automatically deleted.
+# The parameter affects only reply and fanout queues. (integer value)
 # Minimum value: 1
 #rabbit_transient_queues_ttl = 1800
 
-# Specifies the number of messages to prefetch. Setting to zero allows
-# unlimited messages. (integer value)
+# Specifies the number of messages to prefetch. Setting to zero allows unlimited
+# messages. (integer value)
 #rabbit_qos_prefetch_count = 0
 
-# Number of seconds after which the Rabbit broker is considered down
-# if heartbeat's keep-alive fails (0 disable the heartbeat).
-# EXPERIMENTAL (integer value)
+# Number of seconds after which the Rabbit broker is considered down if
+# heartbeat's keep-alive fails (0 disable the heartbeat). EXPERIMENTAL (integer
+# value)
 #heartbeat_timeout_threshold = 60
 
-# How often times during the heartbeat_timeout_threshold we check the
-# heartbeat. (integer value)
+# How often times during the heartbeat_timeout_threshold we check the heartbeat.
+# (integer value)
 #heartbeat_rate = 2
 
-# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake
-# (boolean value)
+# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake (boolean value)
 # Deprecated group/name - [DEFAULT]/fake_rabbit
 #fake_rabbit = false
 
@@ -1035,8 +1660,7 @@
 # The maximum byte size for an AMQP frame (integer value)
 #frame_max = <None>
 
-# How often to send heartbeats for consumer's connections (integer
-# value)
+# How often to send heartbeats for consumer's connections (integer value)
 #heartbeat_interval = 3
 
 # Enable SSL (boolean value)
@@ -1045,16 +1669,14 @@
 # Arguments passed to ssl.wrap_socket (dict value)
 #ssl_options = <None>
 
-# Set socket timeout in seconds for connection's socket (floating
-# point value)
+# Set socket timeout in seconds for connection's socket (floating point value)
 #socket_timeout = 0.25
 
-# Set TCP_USER_TIMEOUT in seconds for connection's socket (floating
-# point value)
+# Set TCP_USER_TIMEOUT in seconds for connection's socket (floating point value)
 #tcp_user_timeout = 0.25
 
-# Set delay for reconnection to some host which has connection error
-# (floating point value)
+# Set delay for reconnection to some host which has connection error (floating
+# point value)
 #host_connection_reconnect_delay = 0.25
 
 # Connection factory implementation (string value)
@@ -1064,22 +1686,20 @@
 # Maximum number of connections to keep queued. (integer value)
 #pool_max_size = 30
 
-# Maximum number of connections to create above `pool_max_size`.
-# (integer value)
+# Maximum number of connections to create above `pool_max_size`. (integer value)
 #pool_max_overflow = 0
 
-# Default number of seconds to wait for a connections to available
-# (integer value)
+# Default number of seconds to wait for a connections to available (integer
+# value)
 #pool_timeout = 30
 
-# Lifetime of a connection (since creation) in seconds or None for no
-# recycling. Expired connections are closed on acquire. (integer
-# value)
+# Lifetime of a connection (since creation) in seconds or None for no recycling.
+# Expired connections are closed on acquire. (integer value)
 #pool_recycle = 600
 
-# Threshold at which inactive (since release) connections are
-# considered stale in seconds or None for no staleness. Stale
-# connections are closed on acquire. (integer value)
+# Threshold at which inactive (since release) connections are considered stale
+# in seconds or None for no staleness. Stale connections are closed on acquire.
+# (integer value)
 #pool_stale = 60
 
 # Persist notification messages. (boolean value)
@@ -1088,20 +1708,19 @@
 # Exchange name for sending notifications (string value)
 #default_notification_exchange = ${control_exchange}_notification
 
-# Max number of not acknowledged message which RabbitMQ can send to
-# notification listener. (integer value)
+# Max number of not acknowledged message which RabbitMQ can send to notification
+# listener. (integer value)
 #notification_listener_prefetch_count = 100
 
-# Reconnecting retry count in case of connectivity problem during
-# sending notification, -1 means infinite retry. (integer value)
+# Reconnecting retry count in case of connectivity problem during sending
+# notification, -1 means infinite retry. (integer value)
 #default_notification_retry_attempts = -1
 
-# Reconnecting retry delay in case of connectivity problem during
-# sending notification message (floating point value)
+# Reconnecting retry delay in case of connectivity problem during sending
+# notification message (floating point value)
 #notification_retry_delay = 0.25
 
-# Time to live for rpc queues without consumers in seconds. (integer
-# value)
+# Time to live for rpc queues without consumers in seconds. (integer value)
 #rpc_queue_expiration = 60
 
 # Exchange name for sending RPC messages (string value)
@@ -1110,34 +1729,127 @@
 # Exchange name for receiving RPC replies (string value)
 #rpc_reply_exchange = ${control_exchange}_rpc_reply
 
-# Max number of not acknowledged message which RabbitMQ can send to
-# rpc listener. (integer value)
+# Max number of not acknowledged message which RabbitMQ can send to rpc
+# listener. (integer value)
 #rpc_listener_prefetch_count = 100
 
-# Max number of not acknowledged message which RabbitMQ can send to
-# rpc reply listener. (integer value)
+# Max number of not acknowledged message which RabbitMQ can send to rpc reply
+# listener. (integer value)
 #rpc_reply_listener_prefetch_count = 100
 
-# Reconnecting retry count in case of connectivity problem during
-# sending reply. -1 means infinite retry during rpc_timeout (integer
-# value)
+# Reconnecting retry count in case of connectivity problem during sending reply.
+# -1 means infinite retry during rpc_timeout (integer value)
 #rpc_reply_retry_attempts = -1
 
-# Reconnecting retry delay in case of connectivity problem during
-# sending reply. (floating point value)
+# Reconnecting retry delay in case of connectivity problem during sending reply.
+# (floating point value)
 #rpc_reply_retry_delay = 0.25
 
-# Reconnecting retry count in case of connectivity problem during
-# sending RPC message, -1 means infinite retry. If actual retry
-# attempts in not 0 the rpc request could be processed more then one
-# time (integer value)
+# Reconnecting retry count in case of connectivity problem during sending RPC
+# message, -1 means infinite retry. If actual retry attempts in not 0 the rpc
+# request could be processed more then one time (integer value)
 #default_rpc_retry_attempts = -1
 
-# Reconnecting retry delay in case of connectivity problem during
-# sending RPC message (floating point value)
+# Reconnecting retry delay in case of connectivity problem during sending RPC
+# message (floating point value)
 #rpc_retry_delay = 0.25
 
 
+[oslo_messaging_zmq]
+
+#
+# From oslo.messaging
+#
+
+# ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP.
+# The "host" option should point or resolve to this address. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_address
+#rpc_zmq_bind_address = *
+
+# MatchMaker driver. (string value)
+# Allowed values: redis, dummy
+# Deprecated group/name - [DEFAULT]/rpc_zmq_matchmaker
+#rpc_zmq_matchmaker = redis
+
+# Number of ZeroMQ contexts, defaults to 1. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_contexts
+#rpc_zmq_contexts = 1
+
+# Maximum number of ingress messages to locally buffer per topic. Default is
+# unlimited. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_topic_backlog
+#rpc_zmq_topic_backlog = <None>
+
+# Directory for holding IPC sockets. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_ipc_dir
+#rpc_zmq_ipc_dir = /var/run/openstack
+
+# Name of this node. Must be a valid hostname, FQDN, or IP address. Must match
+# "host" option, if running Nova. (string value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_host
+#rpc_zmq_host = localhost
+
+# Seconds to wait before a cast expires (TTL). The default value of -1 specifies
+# an infinite linger period. The value of 0 specifies no linger period. Pending
+# messages shall be discarded immediately when the socket is closed. Only
+# supported by impl_zmq. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_cast_timeout
+#rpc_cast_timeout = -1
+
+# The default number of seconds that poll should wait. Poll raises timeout
+# exception when timeout expired. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_poll_timeout
+#rpc_poll_timeout = 1
+
+# Expiration timeout in seconds of a name service record about existing target (
+# < 0 means no timeout). (integer value)
+# Deprecated group/name - [DEFAULT]/zmq_target_expire
+#zmq_target_expire = 300
+
+# Update period in seconds of a name service record about existing target.
+# (integer value)
+# Deprecated group/name - [DEFAULT]/zmq_target_update
+#zmq_target_update = 180
+
+# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. (boolean
+# value)
+# Deprecated group/name - [DEFAULT]/use_pub_sub
+#use_pub_sub = true
+
+# Use ROUTER remote proxy. (boolean value)
+# Deprecated group/name - [DEFAULT]/use_router_proxy
+#use_router_proxy = true
+
+# Minimal port number for random ports range. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+# Deprecated group/name - [DEFAULT]/rpc_zmq_min_port
+#rpc_zmq_min_port = 49153
+
+# Maximal port number for random ports range. (integer value)
+# Minimum value: 1
+# Maximum value: 65536
+# Deprecated group/name - [DEFAULT]/rpc_zmq_max_port
+#rpc_zmq_max_port = 65536
+
+# Number of retries to find free port number before fail with ZMQBindError.
+# (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_port_retries
+#rpc_zmq_bind_port_retries = 100
+
+# Default serialization mechanism for serializing/deserializing
+# outgoing/incoming messages (string value)
+# Allowed values: json, msgpack
+# Deprecated group/name - [DEFAULT]/rpc_zmq_serialization
+#rpc_zmq_serialization = json
+
+# This option configures round-robin mode in zmq socket. True means not keeping
+# a queue when server side disconnects. False means to keep queue and messages
+# even if server is disconnected, when the server appears we send all
+# accumulated messages to it. (boolean value)
+#zmq_immediate = false
+
+
 [oslo_policy]
 
 #
@@ -1148,16 +1860,15 @@
 # Deprecated group/name - [DEFAULT]/policy_file
 #policy_file = policy.json
 
-# Default rule. Enforced when a requested rule is not found. (string
-# value)
+# Default rule. Enforced when a requested rule is not found. (string value)
 # Deprecated group/name - [DEFAULT]/policy_default_rule
 #policy_default_rule = default
 
-# Directories where policy configuration files are stored. They can be
-# relative to any directory in the search path defined by the
-# config_dir option, or absolute paths. The file defined by
-# policy_file must exist for these directories to be searched.
-# Missing or empty directories are ignored. (multi valued)
+# Directories where policy configuration files are stored. They can be relative
+# to any directory in the search path defined by the config_dir option, or
+# absolute paths. The file defined by policy_file must exist for these
+# directories to be searched.  Missing or empty directories are ignored. (multi
+# valued)
 # Deprecated group/name - [DEFAULT]/policy_dirs
 #policy_dirs = policy.d
 
@@ -1168,14 +1879,58 @@
 # From glance.registry
 #
 
-# Partial name of a pipeline in your paste configuration file with the
-# service name removed. For example, if your paste section name is
-# [pipeline:glance-api-keystone] use the value "keystone" (string
-# value)
-#flavor = <None>
+#
+# Deployment flavor to use in the server application pipeline.
+#
+# Provide a string value representing the appropriate deployment
+# flavor used in the server application pipleline. This is typically
+# the partial name of a pipeline in the paste configuration file with
+# the service name removed.
+#
+# For example, if your paste section name in the paste configuration
+# file is [pipeline:glance-api-keystone], set ``flavor`` to
+# ``keystone``.
+#
+# Possible values:
+#     * String value representing a partial pipeline name.
+#
+# Related Options:
+#     * config_file
+#
+#  (string value)
+#flavor = keystone
 
-# Name of the paste configuration file. (string value)
-#config_file = <None>
+#
+# Name of the paste configuration file.
+#
+# Provide a string value representing the name of the paste
+# configuration file to use for configuring piplelines for
+# server application deployments.
+#
+# NOTES:
+#     * Provide the name or the path relative to the glance directory
+#       for the paste configuration file and not the absolute path.
+#     * The sample paste configuration file shipped with Glance need
+#       not be edited in most cases as it comes with ready-made
+#       pipelines for all common deployment flavors.
+#
+# If no value is specified for this option, the ``paste.ini`` file
+# with the prefix of the corresponding Glance service's configuration
+# file name will be searched for in the known configuration
+# directories. (For example, if this option is missing from or has no
+# value set in ``glance-api.conf``, the service will look for a file
+# named ``glance-api-paste.ini``.) If the paste configuration file is
+# not found, the service will not start.
+#
+# Possible values:
+#     * A string value representing the name of the paste configuration
+#       file.
+#
+# Related Options:
+#     * flavor
+#
+#  (string value)
+#config_file = glance-api-paste.ini
 
 
 [profiler]
@@ -1185,59 +1940,55 @@
 #
 
 #
-# Enables the profiling for all services on this node. Default value
-# is False
+# Enables the profiling for all services on this node. Default value is False
 # (fully disable the profiling feature).
 #
 # Possible values:
 #
 # * True: Enables the feature
-# * False: Disables the feature. The profiling cannot be started via
-# this project
-# operations. If the profiling is triggered by another project, this
-# project part
+# * False: Disables the feature. The profiling cannot be started via this
+# project
+# operations. If the profiling is triggered by another project, this project
+# part
 # will be empty.
 #  (boolean value)
 # Deprecated group/name - [profiler]/profiler_enabled
 #enabled = false
 
 #
-# Enables SQL requests profiling in services. Default value is False
-# (SQL
+# Enables SQL requests profiling in services. Default value is False (SQL
 # requests won't be traced).
 #
 # Possible values:
 #
-# * True: Enables SQL requests profiling. Each SQL query will be part
-# of the
+# * True: Enables SQL requests profiling. Each SQL query will be part of the
 # trace and can the be analyzed by how much time was spent for that.
-# * False: Disables SQL requests profiling. The spent time is only
-# shown on a
-# higher level of operations. Single SQL queries cannot be analyzed
-# this
+# * False: Disables SQL requests profiling. The spent time is only shown on a
+# higher level of operations. Single SQL queries cannot be analyzed this
 # way.
 #  (boolean value)
 #trace_sqlalchemy = false
 
 #
-# Secret key(s) to use for encrypting context data for performance
-# profiling.
-# This string value should have the following format:
-# <key1>[,<key2>,...<keyn>],
-# where each key is some random string. A user who triggers the
-# profiling via
-# the REST API has to set one of these keys in the headers of the REST
-# API call
-# to include profiling results of this node for this particular
-# project.
+# Secret key(s) to use for encrypting context data for performance profiling.
+# This string value should have the following format: <key1>[,<key2>,...<keyn>],
+# where each key is some random string. A user who triggers the profiling via
+# the REST API has to set one of these keys in the headers of the REST API call
+# to include profiling results of this node for this particular project.
 #
-# Both "enabled" flag and "hmac_keys" config options should be set to
-# enable
-# profiling. Also, to generate correct profiling information across
-# all services
-# at least one key needs to be consistent between OpenStack projects.
-# This
-# ensures it can be used from client side to generate the trace,
-# containing
+# Both "enabled" flag and "hmac_keys" config options should be set to enable
+# profiling. Also, to generate correct profiling information across all services
+# at least one key needs to be consistent between OpenStack projects. This
+# ensures it can be used from client side to generate the trace, containing
 # information from all possible resources. (string value)
 #hmac_keys = SECRET_KEY
+
+#
+# Connection string for a notifier backend. Default value is messaging:// which
+# sets the notifier to oslo_messaging.
+#
+# Examples of possible values:
+#
+# * messaging://: use oslo_messaging driver for sending notifications.
+#  (string value)
+#connection_string = messaging://
diff --git a/etc/glance-scrubber.conf b/etc/glance-scrubber.conf
index 74f8cda0c6..9440b7ac65 100644
--- a/etc/glance-scrubber.conf
+++ b/etc/glance-scrubber.conf
@@ -4,112 +4,548 @@
 # From glance.scrubber
 #
 
-# Whether to allow users to specify image properties beyond what the
-# image schema provides (boolean value)
+#
+# Allow users to add additional/custom properties to images.
+#
+# Glance defines a standard set of properties (in its schema) that
+# appear on every image. These properties are also known as
+# ``base properties``. In addition to these properties, Glance
+# allows users to add custom properties to images. These are known
+# as ``additional properties``.
+#
+# By default, this configuration option is set to ``True`` and users
+# are allowed to add additional properties. The number of additional
+# properties that can be added to an image can be controlled via
+# ``image_property_quota`` configuration option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * image_property_quota
+#
+#  (boolean value)
 #allow_additional_image_properties = true
 
-# Maximum number of image members per image. Negative values evaluate
-# to unlimited. (integer value)
+#
+# Maximum number of image members per image.
+#
+# This limits the maximum of users an image can be shared with. Any negative
+# value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_member_quota = 128
 
-# Maximum number of properties allowed on an image. Negative values
-# evaluate to unlimited. (integer value)
+#
+# Maximum number of properties allowed on an image.
+#
+# This enforces an upper limit on the number of additional properties an image
+# can have. Any negative value is interpreted as unlimited.
+#
+# NOTE: This won't have any impact if additional properties are disabled. Please
+# refer to ``allow_additional_image_properties``.
+#
+# Related options:
+#     * ``allow_additional_image_properties``
+#
+#  (integer value)
 #image_property_quota = 128
 
-# Maximum number of tags allowed on an image. Negative values evaluate
-# to unlimited. (integer value)
+#
+# Maximum number of tags allowed on an image.
+#
+# Any negative value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_tag_quota = 128
 
-# Maximum number of locations allowed on an image. Negative values
-# evaluate to unlimited. (integer value)
+#
+# Maximum number of locations allowed on an image.
+#
+# Any negative value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #image_location_quota = 10
 
-# Python module path of data access API (string value)
+#
+# Python module path of data access API.
+#
+# Specifies the path to the API to use for accessing the data model.
+# This option determines how the image catalog data will be accessed.
+#
+# Possible values:
+#     * glance.db.sqlalchemy.api
+#     * glance.db.registry.api
+#     * glance.db.simple.api
+#
+# If this option is set to ``glance.db.sqlalchemy.api`` then the image
+# catalog data is stored in and read from the database via the
+# SQLAlchemy Core and ORM APIs.
+#
+# Setting this option to ``glance.db.registry.api`` will force all
+# database access requests to be routed through the Registry service.
+# This avoids data access from the Glance API nodes for an added layer
+# of security, scalability and manageability.
+#
+# NOTE: In v2 OpenStack Images API, the registry service is optional.
+# In order to use the Registry API in v2, the option
+# ``enable_v2_registry`` must be set to ``True``.
+#
+# Finally, when this configuration option is set to
+# ``glance.db.simple.api``, image catalog data is stored in and read
+# from an in-memory data structure. This is primarily used for testing.
+#
+# Related options:
+#     * enable_v2_api
+#     * enable_v2_registry
+#
+#  (string value)
 #data_api = glance.db.sqlalchemy.api
 
-# Default value for the number of items returned by a request if not
-# specified explicitly in the request (integer value)
+#
+# The default number of results to return for a request.
+#
+# Responses to certain API requests, like list images, may return
+# multiple items. The number of results returned can be explicitly
+# controlled by specifying the ``limit`` parameter in the API request.
+# However, if a ``limit`` parameter is not specified, this
+# configuration value will be used as the default number of results to
+# be returned for any API request.
+#
+# NOTES:
+#     * The value of this configuration option may not be greater than
+#       the value specified by ``api_limit_max``.
+#     * Setting this to a very large value may slow down database
+#       queries and increase response times. Setting this to a
+#       very low value may result in poor user experience.
+#
+# Possible values:
+#     * Any positive integer
+#
+# Related options:
+#     * api_limit_max
+#
+#  (integer value)
+# Minimum value: 1
 #limit_param_default = 25
 
-# Maximum permissible number of items that could be returned by a
-# request (integer value)
+#
+# Maximum number of results that could be returned by a request.
+#
+# As described in the help text of ``limit_param_default``, some
+# requests may return multiple results. The number of results to be
+# returned are governed either by the ``limit`` parameter in the
+# request or the ``limit_param_default`` configuration option.
+# The value in either case, can't be greater than the absolute maximum
+# defined by this configuration option. Anything greater than this
+# value is trimmed down to the maximum value defined here.
+#
+# NOTE: Setting this to a very large value may slow down database
+#       queries and increase response times. Setting this to a
+#       very low value may result in poor user experience.
+#
+# Possible values:
+#     * Any positive integer
+#
+# Related options:
+#     * limit_param_default
+#
+#  (integer value)
+# Minimum value: 1
 #api_limit_max = 1000
 
-# Whether to include the backend image storage location in image
-# properties. Revealing storage location can be a security risk, so
-# use this setting with caution! (boolean value)
+#
+# Show direct image location when returning an image.
+#
+# This configuration option indicates whether to show the direct image
+# location when returning image details to the user. The direct image
+# location is where the image data is stored in backend storage. This
+# image location is shown under the image property ``direct_url``.
+#
+# When multiple image locations exist for an image, the best location
+# is displayed based on the location strategy indicated by the
+# configuration option ``location_strategy``.
+#
+# NOTES:
+#     * Revealing image locations can present a GRAVE SECURITY RISK as
+#       image locations can sometimes include credentials. Hence, this
+#       is set to ``False`` by default. Set this to ``True`` with
+#       EXTREME CAUTION and ONLY IF you know what you are doing!
+#     * If an operator wishes to avoid showing any image location(s)
+#       to the user, then both this option and
+#       ``show_multiple_locations`` MUST be set to ``False``.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * show_multiple_locations
+#     * location_strategy
+#
+#  (boolean value)
 #show_image_direct_url = false
 
-# Whether to include the backend image locations in image properties.
-# For example, if using the file system store a URL of
-# "file:///path/to/image" will be returned to the user in the
-# 'direct_url' meta-data field. Revealing storage location can be a
-# security risk, so use this setting with caution! Setting this to
-# true overrides the show_image_direct_url option. (boolean value)
+# DEPRECATED:
+# Show all image locations when returning an image.
+#
+# This configuration option indicates whether to show all the image
+# locations when returning image details to the user. When multiple
+# image locations exist for an image, the locations are ordered based
+# on the location strategy indicated by the configuration opt
+# ``location_strategy``. The image locations are shown under the
+# image property ``locations``.
+#
+# NOTES:
+#     * Revealing image locations can present a GRAVE SECURITY RISK as
+#       image locations can sometimes include credentials. Hence, this
+#       is set to ``False`` by default. Set this to ``True`` with
+#       EXTREME CAUTION and ONLY IF you know what you are doing!
+#     * If an operator wishes to avoid showing any image location(s)
+#       to the user, then both this option and
+#       ``show_image_direct_url`` MUST be set to ``False``.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * show_image_direct_url
+#     * location_strategy
+#
+#  (boolean value)
+# This option is deprecated for removal since Newton.
+# Its value may be silently ignored in the future.
+# Reason: This option will be removed in the Ocata release because the same
+# functionality can be achieved with greater granularity by using policies.
+# Please see the Newton release notes for more information.
 #show_multiple_locations = false
 
-# Maximum size of image a user can upload in bytes. Defaults to
-# 1099511627776 bytes (1 TB).WARNING: this value should only be
-# increased after careful consideration and must be set to a value
-# under 8 EB (9223372036854775808). (integer value)
+#
+# Maximum size of image a user can upload in bytes.
+#
+# An image upload greater than the size mentioned here would result
+# in an image creation failure. This configuration option defaults to
+# 1099511627776 bytes (1 TiB).
+#
+# NOTES:
+#     * This value should only be increased after careful
+#       consideration and must be set less than or equal to
+#       8 EiB (9223372036854775808).
+#     * This value must be set with careful consideration of the
+#       backend storage capacity. Setting this to a very low value
+#       may result in a large number of image failures. And, setting
+#       this to a very large value may result in faster consumption
+#       of storage. Hence, this must be set according to the nature of
+#       images created and storage capacity available.
+#
+# Possible values:
+#     * Any positive number less than or equal to 9223372036854775808
+#
+#  (integer value)
+# Minimum value: 1
 # Maximum value: 9223372036854775808
 #image_size_cap = 1099511627776
 
-# Set a system wide quota for every user. This value is the total
-# capacity that a user can use across all storage systems. A value of
-# 0 means unlimited.Optional unit can be specified for the value.
-# Accepted units are B, KB, MB, GB and TB representing Bytes,
-# KiloBytes, MegaBytes, GigaBytes and TeraBytes respectively. If no
-# unit is specified then Bytes is assumed. Note that there should not
-# be any space between value and unit and units are case sensitive.
-# (string value)
+#
+# Maximum amount of image storage per tenant.
+#
+# This enforces an upper limit on the cumulative storage consumed by all images
+# of a tenant across all stores. This is a per-tenant limit.
+#
+# The default unit for this configuration option is Bytes. However, storage
+# units can be specified using case-sensitive literals ``B``, ``KB``, ``MB``,
+# ``GB`` and ``TB`` representing Bytes, KiloBytes, MegaBytes, GigaBytes and
+# TeraBytes respectively. Note that there should not be any space between the
+# value and unit. Value ``0`` signifies no quota enforcement. Negative values
+# are invalid and result in errors.
+#
+# Possible values:
+#     * A string that is a valid concatenation of a non-negative integer
+#       representing the storage value and an optional string literal
+#       representing storage units as mentioned above.
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #user_storage_quota = 0
 
-# Deploy the v1 OpenStack Images API. (boolean value)
+#
+# Deploy the v1 OpenStack Images API.
+#
+# When this option is set to ``True``, Glance service will respond to
+# requests on registered endpoints conforming to the v1 OpenStack
+# Images API.
+#
+# NOTES:
+#     * If this option is enabled, then ``enable_v1_registry`` must
+#       also be set to ``True`` to enable mandatory usage of Registry
+#       service with v1 API.
+#
+#     * If this option is disabled, then the ``enable_v1_registry``
+#       option, which is enabled by default, is also recommended
+#       to be disabled.
+#
+#     * This option is separate from ``enable_v2_api``, both v1 and v2
+#       OpenStack Images API can be deployed independent of each
+#       other.
+#
+#     * If deploying only the v2 Images API, this option, which is
+#       enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v1_registry
+#     * enable_v2_api
+#
+#  (boolean value)
 #enable_v1_api = true
 
-# Deploy the v2 OpenStack Images API. (boolean value)
+#
+# Deploy the v2 OpenStack Images API.
+#
+# When this option is set to ``True``, Glance service will respond
+# to requests on registered endpoints conforming to the v2 OpenStack
+# Images API.
+#
+# NOTES:
+#     * If this option is disabled, then the ``enable_v2_registry``
+#       option, which is enabled by default, is also recommended
+#       to be disabled.
+#
+#     * This option is separate from ``enable_v1_api``, both v1 and v2
+#       OpenStack Images API can be deployed independent of each
+#       other.
+#
+#     * If deploying only the v1 Images API, this option, which is
+#       enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v2_registry
+#     * enable_v1_api
+#
+#  (boolean value)
 #enable_v2_api = true
 
-# Deploy the v1 OpenStack Registry API. (boolean value)
+#
+# Deploy the v1 API Registry service.
+#
+# When this option is set to ``True``, the Registry service
+# will be enabled in Glance for v1 API requests.
+#
+# NOTES:
+#     * Use of Registry is mandatory in v1 API, so this option must
+#       be set to ``True`` if the ``enable_v1_api`` option is enabled.
+#
+#     * If deploying only the v2 OpenStack Images API, this option,
+#       which is enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v1_api
+#
+#  (boolean value)
 #enable_v1_registry = true
 
-# Deploy the v2 OpenStack Registry API. (boolean value)
+#
+# Deploy the v2 API Registry service.
+#
+# When this option is set to ``True``, the Registry service
+# will be enabled in Glance for v2 API requests.
+#
+# NOTES:
+#     * Use of Registry is optional in v2 API, so this option
+#       must only be enabled if both ``enable_v2_api`` is set to
+#       ``True`` and the ``data_api`` option is set to
+#       ``glance.db.registry.api``.
+#
+#     * If deploying only the v1 OpenStack Images API, this option,
+#       which is enabled by default, should be disabled.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * enable_v2_api
+#     * data_api
+#
+#  (boolean value)
 #enable_v2_registry = true
 
-# The hostname/IP of the pydev process listening for debug connections
-# (string value)
-#pydev_worker_debug_host = <None>
+#
+# Host address of the pydev server.
+#
+# Provide a string value representing the hostname or IP of the
+# pydev server to use for debugging. The pydev server listens for
+# debug connections on this address, facilitating remote debugging
+# in Glance.
+#
+# Possible values:
+#     * Valid hostname
+#     * Valid IP address
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#pydev_worker_debug_host = localhost
 
-# The port on which a pydev process is listening for connections.
-# (port value)
+#
+# Port number that the pydev server will listen on.
+#
+# Provide a port number to bind the pydev server to. The pydev
+# process accepts debug connections on this port and facilitates
+# remote debugging in Glance.
+#
+# Possible values:
+#     * A valid port number
+#
+# Related options:
+#     * None
+#
+#  (port value)
 # Minimum value: 0
 # Maximum value: 65535
 #pydev_worker_debug_port = 5678
 
-# AES key for encrypting store 'location' metadata. This includes, if
-# used, Swift or S3 credentials. Should be set to a random string of
-# length 16, 24 or 32 bytes (string value)
+#
+# AES key for encrypting store location metadata.
+#
+# Provide a string value representing the AES cipher to use for
+# encrypting Glance store metadata.
+#
+# NOTE: The AES key to use must be set to a random string of length
+# 16, 24 or 32 bytes.
+#
+# Possible values:
+#     * String value representing a valid AES key
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #metadata_encryption_key = <None>
 
-# Digest algorithm which will be used for digital signature. Use the
-# command "openssl list-message-digest-algorithms" to get the
-# available algorithms supported by the version of OpenSSL on the
-# platform. Examples are "sha1", "sha256", "sha512", etc. (string
-# value)
+#
+# Digest algorithm to use for digital signature.
+#
+# Provide a string value representing the digest algorithm to
+# use for generating digital signatures. By default, ``sha256``
+# is used.
+#
+# To get a list of the available algorithms supported by the version
+# of OpenSSL on your platform, run the command:
+# ``openssl list-message-digest-algorithms``.
+# Examples are 'sha1', 'sha256', and 'sha512'.
+#
+# NOTE: ``digest_algorithm`` is not related to Glance's image signing
+# and verification. It is only used to sign the universally unique
+# identifier (UUID) as a part of the certificate file and key file
+# validation.
+#
+# Possible values:
+#     * An OpenSSL message digest algorithm identifier
+#
+# Relation options:
+#     * None
+#
+#  (string value)
 #digest_algorithm = sha256
 
-# The amount of time in seconds to delay before performing a delete.
-# (integer value)
+#
+# The amount of time, in seconds, to delay image scrubbing.
+#
+# When delayed delete is turned on, an image is put into ``pending_delete``
+# state upon deletion until the scrubber deletes its image data. Typically, soon
+# after the image is put into ``pending_delete`` state, it is available for
+# scrubbing. However, scrubbing can be delayed until a later point using this
+# configuration option. This option denotes the time period an image spends in
+# ``pending_delete`` state before it is available for scrubbing.
+#
+# It is important to realize that this has storage implications. The larger the
+# ``scrub_time``, the longer the time to reclaim backend storage from deleted
+# images.
+#
+# Possible values:
+#     * Any non-negative integer
+#
+# Related options:
+#     * ``delayed_delete``
+#
+#  (integer value)
+# Minimum value: 0
 #scrub_time = 0
 
-# The size of thread pool to be used for scrubbing images. The default
-# is one, which signifies serial scrubbing. Any value above one
-# indicates the max number of images that may be scrubbed in parallel.
-# (integer value)
+#
+# The size of thread pool to be used for scrubbing images.
+#
+# When there are a large number of images to scrub, it is beneficial to scrub
+# images in parallel so that the scrub queue stays in control and the backend
+# storage is reclaimed in a timely fashion. This configuration option denotes
+# the maximum number of images to be scrubbed in parallel. The default value is
+# one, which signifies serial scrubbing. Any value above one indicates parallel
+# scrubbing.
+#
+# Possible values:
+#     * Any non-zero positive integer
+#
+# Related options:
+#     * ``delayed_delete``
+#
+#  (integer value)
+# Minimum value: 1
 #scrub_pool_size = 1
 
-# Turn on/off delayed delete. (boolean value)
+#
+# Turn on/off delayed delete.
+#
+# Typically when an image is deleted, the ``glance-api`` service puts the image
+# into ``deleted`` state and deletes its data at the same time. Delayed delete
+# is a feature in Glance that delays the actual deletion of image data until a
+# later point in time (as determined by the configuration option
+# ``scrub_time``).
+# When delayed delete is turned on, the ``glance-api`` service puts the image
+# into ``pending_delete`` state upon deletion and leaves the image data in the
+# storage backend for the image scrubber to delete at a later time. The image
+# scrubber will move the image into ``deleted`` state upon successful deletion
+# of image data.
+#
+# NOTE: When delayed delete is turned on, image scrubber MUST be running as a
+# periodic task to prevent the backend storage from filling up with undesired
+# usage.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * ``scrub_time``
+#     * ``wakeup_time``
+#     * ``scrub_pool_size``
+#
+#  (boolean value)
 #delayed_delete = false
 
 #
@@ -120,12 +556,6 @@
 # administrative privileges. The default value for this option is
 # 'admin'.
 #
-# Services which consume this:
-#     * glance-api
-#     * glare-api
-#     * glance-registry
-#     * glance-scrubber
-#
 # Possible values:
 #     * A string value which is a valid Keystone role
 #
@@ -135,138 +565,319 @@
 #  (string value)
 #admin_role = admin
 
-# Whether to pass through headers containing user and tenant
-# information when making requests to the registry. This allows the
-# registry to use the context middleware without keystonemiddleware's
-# auth_token middleware, removing calls to the keystone auth service.
-# It is recommended that when using this option, secure communication
-# between glance api and glance registry is ensured by means other
-# than auth_token middleware. (boolean value)
+#
+# Send headers received from identity when making requests to
+# registry.
+#
+# Typically, Glance registry can be deployed in multiple flavors,
+# which may or may not include authentication. For example,
+# ``trusted-auth`` is a flavor that does not require the registry
+# service to authenticate the requests it receives. However, the
+# registry service may still need a user context to be populated to
+# serve the requests. This can be achieved by the caller
+# (the Glance API usually) passing through the headers it received
+# from authenticating with identity for the same request. The typical
+# headers sent are ``X-User-Id``, ``X-Tenant-Id``, ``X-Roles``,
+# ``X-Identity-Status`` and ``X-Service-Catalog``.
+#
+# Provide a boolean value to determine whether to send the identity
+# headers to provide tenant and user information along with the
+# requests to registry service. By default, this option is set to
+# ``False``, which means that user and tenant information is not
+# available readily. It must be obtained by authenticating. Hence, if
+# this is set to ``False``, ``flavor`` must be set to value that
+# either includes authentication or authenticated user context.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * flavor
+#
+#  (boolean value)
 #send_identity_headers = false
 
-# Loop time between checking for new items to schedule for delete.
-# (integer value)
+#
+# Time interval, in seconds, between scrubber runs in daemon mode.
+#
+# Scrubber can be run either as a cron job or daemon. When run as a daemon, this
+# configuration time specifies the time period between two runs. When the
+# scrubber wakes up, it fetches and scrubs all ``pending_delete`` images that
+# are available for scrubbing after taking ``scrub_time`` into consideration.
+#
+# If the wakeup time is set to a large number, there may be a large number of
+# images to be scrubbed for each run. Also, this impacts how quickly the backend
+# storage is reclaimed.
+#
+# Possible values:
+#     * Any non-negative integer
+#
+# Related options:
+#     * ``daemon``
+#     * ``delayed_delete``
+#
+#  (integer value)
+# Minimum value: 0
 #wakeup_time = 300
 
-# Run as a long-running process. When not specified (the default) run
-# the scrub operation once and then exits. When specified do not exit
-# and run scrub on wakeup_time interval as specified in the config.
-# (boolean value)
+#
+# Run scrubber as a daemon.
+#
+# This boolean configuration option indicates whether scrubber should
+# run as a long-running process that wakes up at regular intervals to
+# scrub images. The wake up interval can be specified using the
+# configuration option ``wakeup_time``.
+#
+# If this configuration option is set to ``False``, which is the
+# default value, scrubber runs once to scrub images and exits. In this
+# case, if the operator wishes to implement continuous scrubbing of
+# images, scrubber needs to be scheduled as a cron job.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * ``wakeup_time``
+#
+#  (boolean value)
 #daemon = false
 
-# The protocol to use for communication with the registry server.
-# Either http or https. (string value)
+#
+# Protocol to use for communication with the registry server.
+#
+# Provide a string value representing the protocol to use for
+# communication with the registry server. By default, this option is
+# set to ``http` and the connection is not secure.
+#
+# This option can be set to ``https`` to establish a secure connection
+# to the registry server. In this case, provide a key to use for the
+# SSL connection using the ``registry_client_key_file`` option. Also
+# include the CA file and cert file using the options
+# ``registry_client_ca_file`` and ``registry_client_cert_file``
+# respectively.
+#
+# Possible values:
+#     * http
+#     * https
+#
+# Related options:
+#     * registry_client_key_file
+#     * registry_client_cert_file
+#     * registry_client_ca_file
+#
+#  (string value)
+# Allowed values: http, https
 #registry_client_protocol = http
 
-# The path to the key file to use in SSL connections to the registry
-# server, if any. Alternately, you may set the GLANCE_CLIENT_KEY_FILE
-# environment variable to a filepath of the key file (string value)
-#registry_client_key_file = <None>
+#
+# Absolute path to the private key file.
+#
+# Provide a string value representing a valid absolute path to the
+# private key file to use for establishing a secure connection to
+# the registry server.
+#
+# NOTE: This option must be set if ``registry_client_protocol`` is
+# set to ``https``. Alternatively, the GLANCE_CLIENT_KEY_FILE
+# environment variable may be set to a filepath of the key file.
+#
+# Possible values:
+#     * String value representing a valid absolute path to the key
+#       file.
+#
+# Related options:
+#     * registry_client_protocol
+#
+#  (string value)
+#registry_client_key_file = /etc/ssl/key/key-file.pem
 
-# The path to the cert file to use in SSL connections to the registry
-# server, if any. Alternately, you may set the GLANCE_CLIENT_CERT_FILE
-# environment variable to a filepath of the CA cert file (string
-# value)
-#registry_client_cert_file = <None>
+#
+# Absolute path to the certificate file.
+#
+# Provide a string value representing a valid absolute path to the
+# certificate file to use for establishing a secure connection to
+# the registry server.
+#
+# NOTE: This option must be set if ``registry_client_protocol`` is
+# set to ``https``. Alternatively, the GLANCE_CLIENT_CERT_FILE
+# environment variable may be set to a filepath of the certificate
+# file.
+#
+# Possible values:
+#     * String value representing a valid absolute path to the
+#       certificate file.
+#
+# Related options:
+#     * registry_client_protocol
+#
+#  (string value)
+#registry_client_cert_file = /etc/ssl/certs/file.crt
 
-# The path to the certifying authority cert file to use in SSL
-# connections to the registry server, if any. Alternately, you may set
-# the GLANCE_CLIENT_CA_FILE environment variable to a filepath of the
-# CA cert file. (string value)
-#registry_client_ca_file = <None>
+#
+# Absolute path to the Certificate Authority file.
+#
+# Provide a string value representing a valid absolute path to the
+# certificate authority file to use for establishing a secure
+# connection to the registry server.
+#
+# NOTE: This option must be set if ``registry_client_protocol`` is
+# set to ``https``. Alternatively, the GLANCE_CLIENT_CA_FILE
+# environment variable may be set to a filepath of the CA file.
+# This option is ignored if the ``registry_client_insecure`` option
+# is set to ``True``.
+#
+# Possible values:
+#     * String value representing a valid absolute path to the CA
+#       file.
+#
+# Related options:
+#     * registry_client_protocol
+#     * registry_client_insecure
+#
+#  (string value)
+#registry_client_ca_file = /etc/ssl/cafile/file.ca
 
-# When using SSL in connections to the registry server, do not require
-# validation via a certifying authority. This is the registry's
-# equivalent of specifying --insecure on the command line using
-# glanceclient for the API. (boolean value)
+#
+# Set verification of the registry server certificate.
+#
+# Provide a boolean value to determine whether or not to validate
+# SSL connections to the registry server. By default, this option
+# is set to ``False`` and the SSL connections are validated.
+#
+# If set to ``True``, the connection to the registry server is not
+# validated via a certifying authority and the
+# ``registry_client_ca_file`` option is ignored. This is the
+# registry's equivalent of specifying --insecure on the command line
+# using glanceclient for the API.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * registry_client_protocol
+#     * registry_client_ca_file
+#
+#  (boolean value)
 #registry_client_insecure = false
 
-# The period of time, in seconds, that the API server will wait for a
-# registry request to complete. A value of 0 implies no timeout.
-# (integer value)
+#
+# Timeout value for registry requests.
+#
+# Provide an integer value representing the period of time in seconds
+# that the API server will wait for a registry request to complete.
+# The default value is 600 seconds.
+#
+# A value of 0 implies that a request will never timeout.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #registry_client_timeout = 600
 
-# DEPRECATED: Whether to pass through the user token when making
-# requests to the registry. To prevent failures with token expiration
-# during big files upload, it is recommended to set this parameter to
-# False.If "use_user_token" is not in effect, then admin credentials
-# can be specified. (boolean value)
+# DEPRECATED: Whether to pass through the user token when making requests to the
+# registry. To prevent failures with token expiration during big files upload,
+# it is recommended to set this parameter to False.If "use_user_token" is not in
+# effect, then admin credentials can be specified. (boolean value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #use_user_token = true
 
-# DEPRECATED: The administrators user name. If "use_user_token" is not
-# in effect, then admin credentials can be specified. (string value)
+# DEPRECATED: The administrators user name. If "use_user_token" is not in
+# effect, then admin credentials can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #admin_user = <None>
 
-# DEPRECATED: The administrators password. If "use_user_token" is not
-# in effect, then admin credentials can be specified. (string value)
+# DEPRECATED: The administrators password. If "use_user_token" is not in effect,
+# then admin credentials can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #admin_password = <None>
 
-# DEPRECATED: The tenant name of the administrative user. If
-# "use_user_token" is not in effect, then admin tenant name can be
-# specified. (string value)
+# DEPRECATED: The tenant name of the administrative user. If "use_user_token" is
+# not in effect, then admin tenant name can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #admin_tenant_name = <None>
 
-# DEPRECATED: The URL to the keystone service. If "use_user_token" is
-# not in effect and using keystone auth, then URL of keystone can be
-# specified. (string value)
+# DEPRECATED: The URL to the keystone service. If "use_user_token" is not in
+# effect and using keystone auth, then URL of keystone can be specified. (string
+# value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #auth_url = <None>
 
-# DEPRECATED: The strategy to use for authentication. If
-# "use_user_token" is not in effect, then auth strategy can be
-# specified. (string value)
+# DEPRECATED: The strategy to use for authentication. If "use_user_token" is not
+# in effect, then auth strategy can be specified. (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #auth_strategy = noauth
 
-# DEPRECATED: The region for the authentication service. If
-# "use_user_token" is not in effect and using keystone auth, then
-# region name can be specified. (string value)
+# DEPRECATED: The region for the authentication service. If "use_user_token" is
+# not in effect and using keystone auth, then region name can be specified.
+# (string value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: This option was considered harmful and has been deprecated
-# in M release. It will be removed in O release. For more information
-# read OSSN-0060. Related functionality with uploading big images has
-# been implemented with Keystone trusts support.
+# Reason: This option was considered harmful and has been deprecated in M
+# release. It will be removed in O release. For more information read OSSN-0060.
+# Related functionality with uploading big images has been implemented with
+# Keystone trusts support.
 #auth_region = <None>
 
-# Address to find the registry server. (string value)
+#
+# Address the registry server is hosted on.
+#
+# Possible values:
+#     * A valid IP or hostname
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #registry_host = 0.0.0.0
 
-# Port the registry server is listening on. (port value)
+#
+# Port the registry server is listening on.
+#
+# Possible values:
+#     * A valid port number
+#
+# Related options:
+#     * None
+#
+#  (port value)
 # Minimum value: 0
 # Maximum value: 65535
 #registry_port = 9191
@@ -275,96 +886,93 @@
 # From oslo.log
 #
 
-# If set to true, the logging level will be set to DEBUG instead of
-# the default INFO level. (boolean value)
+# If set to true, the logging level will be set to DEBUG instead of the default
+# INFO level. (boolean value)
 # Note: This option can be changed without restarting.
 #debug = false
 
-# DEPRECATED: If set to false, the logging level will be set to
-# WARNING instead of the default INFO level. (boolean value)
+# DEPRECATED: If set to false, the logging level will be set to WARNING instead
+# of the default INFO level. (boolean value)
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
 #verbose = true
 
-# The name of a logging configuration file. This file is appended to
-# any existing logging configuration files. For details about logging
-# configuration files, see the Python logging module documentation.
-# Note that when logging configuration files are used then all logging
-# configuration is set in the configuration file and other logging
-# configuration options are ignored (for example,
-# logging_context_format_string). (string value)
+# The name of a logging configuration file. This file is appended to any
+# existing logging configuration files. For details about logging configuration
+# files, see the Python logging module documentation. Note that when logging
+# configuration files are used then all logging configuration is set in the
+# configuration file and other logging configuration options are ignored (for
+# example, logging_context_format_string). (string value)
 # Note: This option can be changed without restarting.
 # Deprecated group/name - [DEFAULT]/log_config
 #log_config_append = <None>
 
 # Defines the format string for %%(asctime)s in log records. Default:
-# %(default)s . This option is ignored if log_config_append is set.
-# (string value)
+# %(default)s . This option is ignored if log_config_append is set. (string
+# value)
 #log_date_format = %Y-%m-%d %H:%M:%S
 
-# (Optional) Name of log file to send logging output to. If no default
-# is set, logging will go to stderr as defined by use_stderr. This
-# option is ignored if log_config_append is set. (string value)
+# (Optional) Name of log file to send logging output to. If no default is set,
+# logging will go to stderr as defined by use_stderr. This option is ignored if
+# log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logfile
 #log_file = <None>
 
-# (Optional) The base directory used for relative log_file  paths.
-# This option is ignored if log_config_append is set. (string value)
+# (Optional) The base directory used for relative log_file  paths. This option
+# is ignored if log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logdir
 #log_dir = <None>
 
-# Uses logging handler designed to watch file system. When log file is
-# moved or removed this handler will open a new log file with
-# specified path instantaneously. It makes sense only if log_file
-# option is specified and Linux platform is used. This option is
-# ignored if log_config_append is set. (boolean value)
+# Uses logging handler designed to watch file system. When log file is moved or
+# removed this handler will open a new log file with specified path
+# instantaneously. It makes sense only if log_file option is specified and Linux
+# platform is used. This option is ignored if log_config_append is set. (boolean
+# value)
 #watch_log_file = false
 
-# Use syslog for logging. Existing syslog format is DEPRECATED and
-# will be changed later to honor RFC5424. This option is ignored if
-# log_config_append is set. (boolean value)
+# Use syslog for logging. Existing syslog format is DEPRECATED and will be
+# changed later to honor RFC5424. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_syslog = false
 
 # Syslog facility to receive log lines. This option is ignored if
 # log_config_append is set. (string value)
 #syslog_log_facility = LOG_USER
 
-# Log output to standard error. This option is ignored if
-# log_config_append is set. (boolean value)
+# Log output to standard error. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_stderr = true
 
 # Format string to use for log messages with context. (string value)
 #logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
 
-# Format string to use for log messages when context is undefined.
-# (string value)
+# Format string to use for log messages when context is undefined. (string
+# value)
 #logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
 
-# Additional data to append to log message when logging level for the
-# message is DEBUG. (string value)
+# Additional data to append to log message when logging level for the message is
+# DEBUG. (string value)
 #logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
 
-# Prefix each line of exception output with this format. (string
-# value)
+# Prefix each line of exception output with this format. (string value)
 #logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
 
 # Defines the format string for %(user_identity)s that is used in
 # logging_context_format_string. (string value)
 #logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
 
-# List of package logging levels in logger=LEVEL pairs. This option is
-# ignored if log_config_append is set. (list value)
+# List of package logging levels in logger=LEVEL pairs. This option is ignored
+# if log_config_append is set. (list value)
 #default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
 
 # Enables or disables publication of error events. (boolean value)
 #publish_errors = false
 
-# The format for an instance that is passed with the log message.
-# (string value)
+# The format for an instance that is passed with the log message. (string value)
 #instance_format = "[instance: %(uuid)s] "
 
-# The format for an instance UUID that is passed with the log message.
-# (string value)
+# The format for an instance UUID that is passed with the log message. (string
+# value)
 #instance_uuid_format = "[instance: %(uuid)s] "
 
 # Enables or disables fatal status of deprecations. (boolean value)
@@ -381,8 +989,8 @@
 # Deprecated group/name - [DEFAULT]/sqlite_db
 # This option is deprecated for removal.
 # Its value may be silently ignored in the future.
-# Reason: Should use config option connection or slave_connection to
-# connect the database.
+# Reason: Should use config option connection or slave_connection to connect the
+# database.
 #sqlite_db = oslo.sqlite
 
 # If True, SQLite uses synchronous mode. (boolean value)
@@ -393,21 +1001,21 @@
 # Deprecated group/name - [DEFAULT]/db_backend
 #backend = sqlalchemy
 
-# The SQLAlchemy connection string to use to connect to the database.
-# (string value)
+# The SQLAlchemy connection string to use to connect to the database. (string
+# value)
 # Deprecated group/name - [DEFAULT]/sql_connection
 # Deprecated group/name - [DATABASE]/sql_connection
 # Deprecated group/name - [sql]/connection
 #connection = <None>
 
-# The SQLAlchemy connection string to use to connect to the slave
-# database. (string value)
+# The SQLAlchemy connection string to use to connect to the slave database.
+# (string value)
 #slave_connection = <None>
 
-# The SQL mode to be used for MySQL sessions. This option, including
-# the default, overrides any server-set SQL mode. To use whatever SQL
-# mode is set by the server configuration, set this to no value.
-# Example: mysql_sql_mode= (string value)
+# The SQL mode to be used for MySQL sessions. This option, including the
+# default, overrides any server-set SQL mode. To use whatever SQL mode is set by
+# the server configuration, set this to no value. Example: mysql_sql_mode=
+# (string value)
 #mysql_sql_mode = TRADITIONAL
 
 # Timeout before idle SQL connections are reaped. (integer value)
@@ -416,38 +1024,37 @@
 # Deprecated group/name - [sql]/idle_timeout
 #idle_timeout = 3600
 
-# Minimum number of SQL connections to keep open in a pool. (integer
-# value)
+# Minimum number of SQL connections to keep open in a pool. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_min_pool_size
 # Deprecated group/name - [DATABASE]/sql_min_pool_size
 #min_pool_size = 1
 
-# Maximum number of SQL connections to keep open in a pool. (integer
-# value)
+# Maximum number of SQL connections to keep open in a pool. Setting a value of 0
+# indicates no limit. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_pool_size
 # Deprecated group/name - [DATABASE]/sql_max_pool_size
-#max_pool_size = <None>
+#max_pool_size = 5
 
-# Maximum number of database connection retries during startup. Set to
-# -1 to specify an infinite retry count. (integer value)
+# Maximum number of database connection retries during startup. Set to -1 to
+# specify an infinite retry count. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_retries
 # Deprecated group/name - [DATABASE]/sql_max_retries
 #max_retries = 10
 
-# Interval between retries of opening a SQL connection. (integer
-# value)
+# Interval between retries of opening a SQL connection. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_retry_interval
 # Deprecated group/name - [DATABASE]/reconnect_interval
 #retry_interval = 10
 
-# If set, use this value for max_overflow with SQLAlchemy. (integer
-# value)
+# If set, use this value for max_overflow with SQLAlchemy. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_overflow
 # Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
 #max_overflow = 50
 
-# Verbosity of SQL debugging information: 0=None, 100=Everything.
-# (integer value)
+# Verbosity of SQL debugging information: 0=None, 100=Everything. (integer
+# value)
+# Minimum value: 0
+# Maximum value: 100
 # Deprecated group/name - [DEFAULT]/sql_connection_debug
 #connection_debug = 0
 
@@ -455,37 +1062,35 @@
 # Deprecated group/name - [DEFAULT]/sql_connection_trace
 #connection_trace = false
 
-# If set, use this value for pool_timeout with SQLAlchemy. (integer
-# value)
+# If set, use this value for pool_timeout with SQLAlchemy. (integer value)
 # Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
 #pool_timeout = <None>
 
-# Enable the experimental use of database reconnect on connection
-# lost. (boolean value)
+# Enable the experimental use of database reconnect on connection lost. (boolean
+# value)
 #use_db_reconnect = false
 
 # Seconds between retries of a database transaction. (integer value)
 #db_retry_interval = 1
 
-# If True, increases the interval between retries of a database
-# operation up to db_max_retry_interval. (boolean value)
+# If True, increases the interval between retries of a database operation up to
+# db_max_retry_interval. (boolean value)
 #db_inc_retry_interval = true
 
-# If db_inc_retry_interval is set, the maximum seconds between retries
-# of a database operation. (integer value)
+# If db_inc_retry_interval is set, the maximum seconds between retries of a
+# database operation. (integer value)
 #db_max_retry_interval = 10
 
-# Maximum retries in case of connection error or deadlock error before
-# error is raised. Set to -1 to specify an infinite retry count.
-# (integer value)
+# Maximum retries in case of connection error or deadlock error before error is
+# raised. Set to -1 to specify an infinite retry count. (integer value)
 #db_max_retries = 20
 
 #
 # From oslo.db.concurrency
 #
 
-# Enable the experimental use of thread pooling for all DB API calls
-# (boolean value)
+# Enable the experimental use of thread pooling for all DB API calls (boolean
+# value)
 # Deprecated group/name - [DEFAULT]/dbapi_use_tpool
 #use_tpool = false
 
@@ -496,361 +1101,1325 @@
 # From glance.store
 #
 
-# List of stores enabled. Valid stores are: cinder, file, http, rbd,
-# sheepdog, swift, s3, vsphere (list value)
+#
+# List of enabled Glance stores.
+#
+# Register the storage backends to use for storing disk images
+# as a comma separated list. The default stores enabled for
+# storing disk images with Glance are ``file`` and ``http``.
+#
+# Possible values:
+#     * A comma separated list that could include:
+#         * file
+#         * http
+#         * swift
+#         * rbd
+#         * sheepdog
+#         * cinder
+#         * vmware
+#
+# Related Options:
+#     * default_store
+#
+#  (list value)
 #stores = file,http
 
-# Default scheme to use to store image data. The scheme must be
-# registered by one of the stores defined by the 'stores' config
-# option. (string value)
+#
+# The default scheme to use for storing images.
+#
+# Provide a string value representing the default scheme to use for
+# storing images. If not set, Glance uses ``file`` as the default
+# scheme to store images with the ``file`` store.
+#
+# NOTE: The value given for this configuration option must be a valid
+# scheme for a store registered with the ``stores`` configuration
+# option.
+#
+# Possible values:
+#     * file
+#     * filesystem
+#     * http
+#     * https
+#     * swift
+#     * swift+http
+#     * swift+https
+#     * swift+config
+#     * rbd
+#     * sheepdog
+#     * cinder
+#     * vsphere
+#
+# Related Options:
+#     * stores
+#
+#  (string value)
+# Allowed values: file, filesystem, http, https, swift, swift+http, swift+https, swift+config, rbd, sheepdog, cinder, vsphere
 #default_store = file
 
-# Minimum interval seconds to execute updating dynamic storage
-# capabilities based on backend status then. It's not a periodic
-# routine, the update logic will be executed only when interval
-# seconds elapsed and an operation of store has triggered. The feature
-# will be enabled only when the option value greater then zero.
-# (integer value)
+#
+# Minimum interval in seconds to execute updating dynamic storage
+# capabilities based on current backend status.
+#
+# Provide an integer value representing time in seconds to set the
+# minimum interval before an update of dynamic storage capabilities
+# for a storage backend can be attempted. Setting
+# ``store_capabilities_update_min_interval`` does not mean updates
+# occur periodically based on the set interval. Rather, the update
+# is performed at the elapse of this interval set, if an operation
+# of the store is triggered.
+#
+# By default, this option is set to zero and is disabled. Provide an
+# integer value greater than zero to enable this option.
+#
+# NOTE: For more information on store capabilities and their updates,
+# please visit: https://specs.openstack.org/openstack/glance-specs/specs/kilo
+# /store-capabilities.html
+#
+# For more information on setting up a particular store in your
+# deplyment and help with the usage of this feature, please contact
+# the storage driver maintainers listed here:
+# http://docs.openstack.org/developer/glance_store/drivers/index.html
+#
+# Possible values:
+#     * Zero
+#     * Positive integer
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
 #store_capabilities_update_min_interval = 0
 
-# Specify the path to the CA bundle file to use in verifying the
-# remote server certificate. (string value)
-#https_ca_certificates_file = <None>
-
-# If true, the remote server certificate is not verified. If false,
-# then the default CA truststore is used for verification. This option
-# is ignored if "https_ca_certificates_file" is set. (boolean value)
-#https_insecure = true
-
-# Specify the http/https proxy information that should be used to
-# connect to the remote server. The proxy information should be a key
-# value pair of the scheme and proxy. e.g. http:10.0.0.1:3128. You can
-# specify proxies for multiple schemes by seperating the key value
-# pairs with a comma.e.g. http:10.0.0.1:3128, https:10.0.0.1:1080.
-# (dict value)
-#http_proxy_information =
-
-# If True, swiftclient won't check for a valid SSL certificate when
-# authenticating. (boolean value)
-#swift_store_auth_insecure = false
-
-# A string giving the CA certificate file to use in SSL connections
-# for verifying certs. (string value)
-#swift_store_cacert = <None>
-
-# The region of the swift endpoint to be used for single tenant. This
-# setting is only necessary if the tenant has multiple swift
-# endpoints. (string value)
-#swift_store_region = <None>
-
-# If set, the configured endpoint will be used. If None, the storage
-# url from the auth response will be used. (string value)
-#swift_store_endpoint = <None>
-
-# A string giving the endpoint type of the swift service to use
-# (publicURL, adminURL or internalURL). This setting is only used if
-# swift_store_auth_version is 2. (string value)
-#swift_store_endpoint_type = publicURL
-
-# A string giving the service type of the swift service to use. This
-# setting is only used if swift_store_auth_version is 2. (string
-# value)
-#swift_store_service_type = object-store
-
-# Container within the account that the account should use for storing
-# images in Swift when using single container mode. In multiple
-# container mode, this will be the prefix for all containers. (string
-# value)
-#swift_store_container = glance
-
-# The size, in MB, that Glance will start chunking image files and do
-# a large object manifest in Swift. (integer value)
-#swift_store_large_object_size = 5120
-
-# The amount of data written to a temporary disk buffer during the
-# process of chunking the image file. (integer value)
-#swift_store_large_object_chunk_size = 200
-
-# A boolean value that determines if we create the container if it
-# does not exist. (boolean value)
-#swift_store_create_container_on_put = false
-
-# If set to True, enables multi-tenant storage mode which causes
-# Glance images to be stored in tenant specific Swift accounts.
-# (boolean value)
-#swift_store_multi_tenant = false
-
-# When set to 0, a single-tenant store will only use one container to
-# store all images. When set to an integer value between 1 and 32, a
-# single-tenant store will use multiple containers to store images,
-# and this value will determine how many containers are created.Used
-# only when swift_store_multi_tenant is disabled. The total number of
-# containers that will be used is equal to 16^N, so if this config
-# option is set to 2, then 16^2=256 containers will be used to store
-# images. (integer value)
-#swift_store_multiple_containers_seed = 0
-
-# A list of tenants that will be granted read/write access on all
-# Swift containers created by Glance in multi-tenant mode. (list
-# value)
-#swift_store_admin_tenants =
-
-# If set to False, disables SSL layer compression of https swift
-# requests. Setting to False may improve performance for images which
-# are already in a compressed format, eg qcow2. (boolean value)
-#swift_store_ssl_compression = true
-
-# The number of times a Swift download will be retried before the
-# request fails. (integer value)
-#swift_store_retry_get_count = 0
-
-# The period of time (in seconds) before token expirationwhen
-# glance_store will try to reques new user token. Default value 60 sec
-# means that if token is going to expire in 1 min then glance_store
-# request new user token. (integer value)
-#swift_store_expire_soon_interval = 60
-
-# If set to True create a trust for each add/get request to Multi-
-# tenant store in order to prevent authentication token to be expired
-# during uploading/downloading data. If set to False then user token
-# is used for Swift connection (so no overhead on trust creation).
-# Please note that this option is considered only and only if
-# swift_store_multi_tenant=True (boolean value)
-#swift_store_use_trusts = true
-
-# The reference to the default swift account/backing store parameters
-# to use for adding new images. (string value)
-#default_swift_reference = ref1
-
-# Version of the authentication service to use. Valid versions are 2
-# and 3 for keystone and 1 (deprecated) for swauth and rackspace.
-# (deprecated - use "auth_version" in swift_store_config_file) (string
-# value)
-#swift_store_auth_version = 2
-
-# The address where the Swift authentication service is listening.
-# (deprecated - use "auth_address" in swift_store_config_file) (string
-# value)
-#swift_store_auth_address = <None>
-
-# The user to authenticate against the Swift authentication service
-# (deprecated - use "user" in swift_store_config_file) (string value)
-#swift_store_user = <None>
-
-# Auth key for the user authenticating against the Swift
-# authentication service. (deprecated - use "key" in
-# swift_store_config_file) (string value)
-#swift_store_key = <None>
-
-# The config file that has the swift account(s)configs. (string value)
-#swift_store_config_file = <None>
-
-# Directory to which the Filesystem backend store writes images.
-# (string value)
+#
+# Directory to which the filesystem backend store writes images.
+#
+# Upon start up, Glance creates the directory if it doesn't already
+# exist and verifies write access to the user under which
+# ``glance-api`` runs. If the write access isn't available, a
+# ``BadStoreConfiguration`` exception is raised and the filesystem
+# store may not be available for adding new images.
+#
+# NOTE: This directory is used only when filesystem store is used as a
+# storage backend. Either ``filesystem_store_datadir`` or
+# ``filesystem_store_datadirs`` option must be specified in
+# ``glance-api.conf``. If both options are specified, a
+# ``BadStoreConfiguration`` will be raised and the filesystem store
+# may not be available for adding new images.
+#
+# Possible values:
+#     * A valid path to a directory
+#
+# Related options:
+#     * ``filesystem_store_datadirs``
+#     * ``filesystem_store_file_perm``
+#
+#  (string value)
 #filesystem_store_datadir = /var/lib/glance/images
 
-# List of directories and its priorities to which the Filesystem
-# backend store writes images. (multi valued)
+#
+# List of directories and their priorities to which the filesystem
+# backend store writes images.
+#
+# The filesystem store can be configured to store images in multiple
+# directories as opposed to using a single directory specified by the
+# ``filesystem_store_datadir`` configuration option. When using
+# multiple directories, each directory can be given an optional
+# priority to specify the preference order in which they should
+# be used. Priority is an integer that is concatenated to the
+# directory path with a colon where a higher value indicates higher
+# priority. When two directories have the same priority, the directory
+# with most free space is used. When no priority is specified, it
+# defaults to zero.
+#
+# More information on configuring filesystem store with multiple store
+# directories can be found at
+# http://docs.openstack.org/developer/glance/configuring.html
+#
+# NOTE: This directory is used only when filesystem store is used as a
+# storage backend. Either ``filesystem_store_datadir`` or
+# ``filesystem_store_datadirs`` option must be specified in
+# ``glance-api.conf``. If both options are specified, a
+# ``BadStoreConfiguration`` will be raised and the filesystem store
+# may not be available for adding new images.
+#
+# Possible values:
+#     * List of strings of the following form:
+#         * ``<a valid directory path>:<optional integer priority>``
+#
+# Related options:
+#     * ``filesystem_store_datadir``
+#     * ``filesystem_store_file_perm``
+#
+#  (multi valued)
 #filesystem_store_datadirs =
 
+#
+# Filesystem store metadata file.
+#
 # The path to a file which contains the metadata to be returned with
-# any location associated with this store.  The file must contain a
-# valid JSON object. The object should contain the keys 'id' and
-# 'mountpoint'. The value for both keys should be 'string'. (string
-# value)
+# any location associated with the filesystem store. The file must
+# contain a valid JSON object. The object should contain the keys
+# ``id`` and ``mountpoint``. The value for both keys should be a
+# string.
+#
+# Possible values:
+#     * A valid path to the store metadata file
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #filesystem_store_metadata_file = <None>
 
-# The required permission for created image file. In this way the user
-# other service used, e.g. Nova, who consumes the image could be the
-# exclusive member of the group that owns the files created. Assigning
-# it less then or equal to zero means don't change the default
-# permission of the file. This value will be decoded as an octal
-# digit. (integer value)
+#
+# File access permissions for the image files.
+#
+# Set the intended file access permissions for image data. This provides
+# a way to enable other services, e.g. Nova, to consume images directly
+# from the filesystem store. The users running the services that are
+# intended to be given access to could be made a member of the group
+# that owns the files created. Assigning a value less then or equal to
+# zero for this configuration option signifies that no changes be made
+# to the  default permissions. This value will be decoded as an octal
+# digit.
+#
+# For more information, please refer the documentation at
+# http://docs.openstack.org/developer/glance/configuring.html
+#
+# Possible values:
+#     * A valid file access permission
+#     * Zero
+#     * Any negative integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #filesystem_store_file_perm = 0
 
-# The host where the S3 server is listening. (string value)
-#s3_store_host = <None>
+#
+# Path to the CA bundle file.
+#
+# This configuration option enables the operator to use a custom
+# Certificate Authority file to verify the remote server certificate. If
+# this option is set, the ``https_insecure`` option will be ignored and
+# the CA file specified will be used to authenticate the server
+# certificate and establish a secure connection to the server.
+#
+# Possible values:
+#     * A valid path to a CA file
+#
+# Related options:
+#     * https_insecure
+#
+#  (string value)
+#https_ca_certificates_file = <None>
 
-# The S3 query token access key. (string value)
-#s3_store_access_key = <None>
+#
+# Set verification of the remote server certificate.
+#
+# This configuration option takes in a boolean value to determine
+# whether or not to verify the remote server certificate. If set to
+# True, the remote server certificate is not verified. If the option is
+# set to False, then the default CA truststore is used for verification.
+#
+# This option is ignored if ``https_ca_certificates_file`` is set.
+# The remote server certificate will then be verified using the file
+# specified using the ``https_ca_certificates_file`` option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * https_ca_certificates_file
+#
+#  (boolean value)
+#https_insecure = true
 
-# The S3 query token secret key. (string value)
-#s3_store_secret_key = <None>
+#
+# The http/https proxy information to be used to connect to the remote
+# server.
+#
+# This configuration option specifies the http/https proxy information
+# that should be used to connect to the remote server. The proxy
+# information should be a key value pair of the scheme and proxy, for
+# example, http:10.0.0.1:3128. You can also specify proxies for multiple
+# schemes by separating the key value pairs with a comma, for example,
+# http:10.0.0.1:3128, https:10.0.0.1:1080.
+#
+# Possible values:
+#     * A comma separated list of scheme:proxy pairs as described above
+#
+# Related options:
+#     * None
+#
+#  (dict value)
+#http_proxy_information =
 
-# The S3 bucket to be used to store the Glance data. (string value)
-#s3_store_bucket = <None>
+#
+# Address of the ESX/ESXi or vCenter Server target system.
+#
+# This configuration option sets the address of the ESX/ESXi or vCenter
+# Server target system. This option is required when using the VMware
+# storage backend. The address can contain an IP address (127.0.0.1) or
+# a DNS name (www.my-domain.com).
+#
+# Possible Values:
+#     * A valid IPv4 or IPv6 address
+#     * A valid DNS name
+#
+# Related options:
+#     * vmware_server_username
+#     * vmware_server_password
+#
+#  (string value)
+#vmware_server_host = 127.0.0.1
 
-# The local directory where uploads will be staged before they are
-# transferred into S3. (string value)
-#s3_store_object_buffer_dir = <None>
+#
+# Server username.
+#
+# This configuration option takes the username for authenticating with
+# the VMware ESX/ESXi or vCenter Server. This option is required when
+# using the VMware storage backend.
+#
+# Possible Values:
+#     * Any string that is the username for a user with appropriate
+#       privileges
+#
+# Related options:
+#     * vmware_server_host
+#     * vmware_server_password
+#
+#  (string value)
+#vmware_server_username = root
 
-# A boolean to determine if the S3 bucket should be created on upload
-# if it does not exist or if an error should be returned to the user.
-# (boolean value)
-#s3_store_create_bucket_on_put = false
+#
+# Server password.
+#
+# This configuration option takes the password for authenticating with
+# the VMware ESX/ESXi or vCenter Server. This option is required when
+# using the VMware storage backend.
+#
+# Possible Values:
+#     * Any string that is a password corresponding to the username
+#       specified using the "vmware_server_username" option
+#
+# Related options:
+#     * vmware_server_host
+#     * vmware_server_username
+#
+#  (string value)
+#vmware_server_password = vmware
 
-# The S3 calling format used to determine the bucket. Either subdomain
-# or path can be used. (string value)
-#s3_store_bucket_url_format = subdomain
-
-# What size, in MB, should S3 start chunking image files and do a
-# multipart upload in S3. (integer value)
-#s3_store_large_object_size = 100
-
-# What multipart upload part size, in MB, should S3 use when uploading
-# parts. The size must be greater than or equal to 5M. (integer value)
-#s3_store_large_object_chunk_size = 10
-
-# The number of thread pools to perform a multipart upload in S3.
-# (integer value)
-#s3_store_thread_pools = 10
-
-# Enable the use of a proxy. (boolean value)
-#s3_store_enable_proxy = false
-
-# Address or hostname for the proxy server. (string value)
-#s3_store_proxy_host = <None>
-
-# The port to use when connecting over a proxy. (integer value)
-#s3_store_proxy_port = 8080
-
-# The username to connect to the proxy. (string value)
-#s3_store_proxy_user = <None>
-
-# The password to use when connecting over a proxy. (string value)
-#s3_store_proxy_password = <None>
-
-# Info to match when looking for cinder in the service catalog. Format
-# is : separated values of the form:
-# <service_type>:<service_name>:<endpoint_type> (string value)
-#cinder_catalog_info = volumev2::publicURL
-
-# Override service catalog lookup with template for cinder endpoint
-# e.g. http://localhost:8776/v2/%(tenant)s (string value)
-#cinder_endpoint_template = <None>
-
-# Region name of this node. If specified, it will be used to locate
-# OpenStack services for stores. (string value)
-# Deprecated group/name - [glance_store]/os_region_name
-#cinder_os_region_name = <None>
-
-# Location of ca certicates file to use for cinder client requests.
-# (string value)
-#cinder_ca_certificates_file = <None>
-
-# Number of cinderclient retries on failed http calls (integer value)
-#cinder_http_retries = 3
-
-# Time period of time in seconds to wait for a cinder volume
-# transition to complete. (integer value)
-#cinder_state_transition_timeout = 300
-
-# Allow to perform insecure SSL requests to cinder (boolean value)
-#cinder_api_insecure = false
-
-# The address where the Cinder authentication service is listening. If
-# <None>, the cinder endpoint in the service catalog is used. (string
-# value)
-#cinder_store_auth_address = <None>
-
-# User name to authenticate against Cinder. If <None>, the user of
-# current context is used. (string value)
-#cinder_store_user_name = <None>
-
-# Password for the user authenticating against Cinder. If <None>, the
-# current context auth token is used. (string value)
-#cinder_store_password = <None>
-
-# Project name where the image is stored in Cinder. If <None>, the
-# project in current context is used. (string value)
-#cinder_store_project_name = <None>
-
-# Path to the rootwrap configuration file to use for running commands
-# as root. (string value)
-#rootwrap_config = /etc/glance/rootwrap.conf
-
-# ESX/ESXi or vCenter Server target system. The server value can be an
-# IP address or a DNS name. (string value)
-#vmware_server_host = <None>
-
-# Username for authenticating with VMware ESX/VC server. (string
-# value)
-#vmware_server_username = <None>
-
-# Password for authenticating with VMware ESX/VC server. (string
-# value)
-#vmware_server_password = <None>
-
-# Number of times VMware ESX/VC server API must be retried upon
-# connection related issues. (integer value)
+#
+# The number of VMware API retries.
+#
+# This configuration option specifies the number of times the VMware
+# ESX/VC server API must be retried upon connection related issues or
+# server API call overload. It is not possible to specify 'retry
+# forever'.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #vmware_api_retry_count = 10
 
-# The interval used for polling remote tasks invoked on VMware ESX/VC
-# server. (integer value)
+#
+# Interval in seconds used for polling remote tasks invoked on VMware
+# ESX/VC server.
+#
+# This configuration option takes in the sleep time in seconds for polling an
+# on-going async task as part of the VMWare ESX/VC server API call.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #vmware_task_poll_interval = 5
 
-# The name of the directory where the glance images will be stored in
-# the VMware datastore. (string value)
+#
+# The directory where the glance images will be stored in the datastore.
+#
+# This configuration option specifies the path to the directory where the
+# glance images will be stored in the VMware datastore. If this option
+# is not set,  the default directory where the glance images are stored
+# is openstack_glance.
+#
+# Possible Values:
+#     * Any string that is a valid path to a directory
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #vmware_store_image_dir = /openstack_glance
 
-# If true, the ESX/vCenter server certificate is not verified. If
-# false, then the default CA truststore is used for verification. This
-# option is ignored if "vmware_ca_file" is set. (boolean value)
+#
+# Set verification of the ESX/vCenter server certificate.
+#
+# This configuration option takes a boolean value to determine
+# whether or not to verify the ESX/vCenter server certificate. If this
+# option is set to True, the ESX/vCenter server certificate is not
+# verified. If this option is set to False, then the default CA
+# truststore is used for verification.
+#
+# This option is ignored if the "vmware_ca_file" option is set. In that
+# case, the ESX/vCenter server certificate will then be verified using
+# the file specified using the "vmware_ca_file" option .
+#
+# Possible Values:
+#     * True
+#     * False
+#
+# Related options:
+#     * vmware_ca_file
+#
+#  (boolean value)
 # Deprecated group/name - [glance_store]/vmware_api_insecure
 #vmware_insecure = false
 
-# Specify a CA bundle file to use in verifying the ESX/vCenter server
-# certificate. (string value)
-#vmware_ca_file = <None>
+#
+# Absolute path to the CA bundle file.
+#
+# This configuration option enables the operator to use a custom
+# Cerificate Authority File to verify the ESX/vCenter certificate.
+#
+# If this option is set, the "vmware_insecure" option will be ignored
+# and the CA file specified will be used to authenticate the ESX/vCenter
+# server certificate and establish a secure connection to the server.
+#
+# Possible Values:
+#     * Any string that is a valid absolute path to a CA file
+#
+# Related options:
+#     * vmware_insecure
+#
+#  (string value)
+#vmware_ca_file = /etc/ssl/certs/ca-certificates.crt
 
-# A list of datastores where the image can be stored. This option may
-# be specified multiple times for specifying multiple datastores. The
-# datastore name should be specified after its datacenter path,
-# seperated by ":". An optional weight may be given after the
-# datastore name, seperated again by ":". Thus, the required format
-# becomes <datacenter_path>:<datastore_name>:<optional_weight>. When
-# adding an image, the datastore with highest weight will be selected,
-# unless there is not enough free space available in cases where the
-# image size is already known. If no weight is given, it is assumed to
-# be zero and the directory will be considered for selection last. If
-# multiple datastores have the same weight, then the one with the most
-# free space available is selected. (multi valued)
+#
+# The datastores where the image can be stored.
+#
+# This configuration option specifies the datastores where the image can
+# be stored in the VMWare store backend. This option may be specified
+# multiple times for specifying multiple datastores. The datastore name
+# should be specified after its datacenter path, separated by ":". An
+# optional weight may be given after the datastore name, separated again
+# by ":" to specify the priority. Thus, the required format becomes
+# <datacenter_path>:<datastore_name>:<optional_weight>.
+#
+# When adding an image, the datastore with highest weight will be
+# selected, unless there is not enough free space available in cases
+# where the image size is already known. If no weight is given, it is
+# assumed to be zero and the directory will be considered for selection
+# last. If multiple datastores have the same weight, then the one with
+# the most free space available is selected.
+#
+# Possible Values:
+#     * Any string of the format:
+#       <datacenter_path>:<datastore_name>:<optional_weight>
+#
+# Related options:
+#    * None
+#
+#  (multi valued)
 #vmware_datastores =
 
-# Images will be chunked into objects of this size (in megabytes). For
-# best performance, this should be a power of two. (integer value)
+#
+# Chunk size for images to be stored in Sheepdog data store.
+#
+# Provide an integer value representing the size in mebibyte
+# (1048576 bytes) to chunk Glance images into. The default
+# chunk size is 64 mebibytes.
+#
+# When using Sheepdog distributed storage system, the images are
+# chunked into objects of this size and then stored across the
+# distributed data store to use for Glance.
+#
+# Chunk sizes, if a power of two, help avoid fragmentation and
+# enable improved performance.
+#
+# Possible values:
+#     * Positive integer value representing size in mebibytes.
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #sheepdog_store_chunk_size = 64
 
-# Port of sheep daemon. (integer value)
+#
+# Port number on which the sheep daemon will listen.
+#
+# Provide an integer value representing a valid port number on
+# which you want the Sheepdog daemon to listen on. The default
+# port is 7000.
+#
+# The Sheepdog daemon, also called 'sheep', manages the storage
+# in the distributed cluster by writing objects across the storage
+# network. It identifies and acts on the messages it receives on
+# the port number set using ``sheepdog_store_port`` option to store
+# chunks of Glance images.
+#
+# Possible values:
+#     * A valid port number (0 to 65535)
+#
+# Related Options:
+#     * sheepdog_store_address
+#
+#  (port value)
+# Minimum value: 0
+# Maximum value: 65535
 #sheepdog_store_port = 7000
 
-# IP address of sheep daemon. (string value)
-#sheepdog_store_address = localhost
+#
+# Address to bind the Sheepdog daemon to.
+#
+# Provide a string value representing the address to bind the
+# Sheepdog daemon to. The default address set for the 'sheep'
+# is 127.0.0.1.
+#
+# The Sheepdog daemon, also called 'sheep', manages the storage
+# in the distributed cluster by writing objects across the storage
+# network. It identifies and acts on the messages directed to the
+# address set using ``sheepdog_store_address`` option to store
+# chunks of Glance images.
+#
+# Possible values:
+#     * A valid IPv4 address
+#     * A valid IPv6 address
+#     * A valid hostname
+#
+# Related Options:
+#     * sheepdog_store_port
+#
+#  (string value)
+#sheepdog_store_address = 127.0.0.1
 
-# RADOS images will be chunked into objects of this size (in
-# megabytes). For best performance, this should be a power of two.
-# (integer value)
+#
+# Size, in megabytes, to chunk RADOS images into.
+#
+# Provide an integer value representing the size in megabytes to chunk
+# Glance images into. The default chunk size is 8 megabytes. For optimal
+# performance, the value should be a power of two.
+#
+# When Ceph's RBD object storage system is used as the storage backend
+# for storing Glance images, the images are chunked into objects of the
+# size set using this option. These chunked objects are then stored
+# across the distributed block data store to use for Glance.
+#
+# Possible Values:
+#     * Any positive integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 1
 #rbd_store_chunk_size = 8
 
-# RADOS pool in which images are stored. (string value)
+#
+# RADOS pool in which images are stored.
+#
+# When RBD is used as the storage backend for storing Glance images, the
+# images are stored by means of logical grouping of the objects (chunks
+# of images) into a ``pool``. Each pool is defined with the number of
+# placement groups it can contain. The default pool that is used is
+# 'images'.
+#
+# More information on the RBD storage backend can be found here:
+# http://ceph.com/planet/how-data-is-stored-in-ceph-cluster/
+#
+# Possible Values:
+#     * A valid pool name
+#
+# Related options:
+#     * None
+#
+#  (string value)
 #rbd_store_pool = images
 
-# RADOS user to authenticate as (only applicable if using Cephx. If
-# <None>, a default will be chosen based on the client. section in
-# rbd_store_ceph_conf) (string value)
+#
+# RADOS user to authenticate as.
+#
+# This configuration option takes in the RADOS user to authenticate as.
+# This is only needed when RADOS authentication is enabled and is
+# applicable only if the user is using Cephx authentication. If the
+# value for this option is not set by the user or is set to None, a
+# default value will be chosen, which will be based on the client.
+# section in rbd_store_ceph_conf.
+#
+# Possible Values:
+#     * A valid RADOS user
+#
+# Related options:
+#     * rbd_store_ceph_conf
+#
+#  (string value)
 #rbd_store_user = <None>
 
-# Ceph configuration file path. If <None>, librados will locate the
-# default config. If using cephx authentication, this file should
-# include a reference to the right keyring in a client.<USER> section
-# (string value)
+#
+# Ceph configuration file path.
+#
+# This configuration option takes in the path to the Ceph configuration
+# file to be used. If the value for this option is not set by the user
+# or is set to None, librados will locate the default configuration file
+# which is located at /etc/ceph/ceph.conf. If using Cephx
+# authentication, this file should include a reference to the right
+# keyring in a client.<USER> section
+#
+# Possible Values:
+#     * A valid path to a configuration file
+#
+# Related options:
+#     * rbd_store_user
+#
+#  (string value)
 #rbd_store_ceph_conf = /etc/ceph/ceph.conf
 
-# Timeout value (in seconds) used when connecting to ceph cluster. If
-# value <= 0, no timeout is set and default librados value is used.
-# (integer value)
+#
+# Timeout value for connecting to Ceph cluster.
+#
+# This configuration option takes in the timeout value in seconds used
+# when connecting to the Ceph cluster i.e. it sets the time to wait for
+# glance-api before closing the connection. This prevents glance-api
+# hangups during the connection to RBD. If the value for this option
+# is set to less than or equal to 0, no timeout is set and the default
+# librados value is used.
+#
+# Possible Values:
+#     * Any integer value
+#
+# Related options:
+#     * None
+#
+#  (integer value)
 #rados_connect_timeout = 0
 
+#
+# Information to match when looking for cinder in the service catalog.
+#
+# When the ``cinder_endpoint_template`` is not set and any of
+# ``cinder_store_auth_address``, ``cinder_store_user_name``,
+# ``cinder_store_project_name``, ``cinder_store_password`` is not set,
+# cinder store uses this information to lookup cinder endpoint from the service
+# catalog in the current context. ``cinder_os_region_name``, if set, is taken
+# into consideration to fetch the appropriate endpoint.
+#
+# The service catalog can be listed by the ``openstack catalog list`` command.
+#
+# Possible values:
+#     * A string of of the following form:
+#       ``<service_type>:<service_name>:<endpoint_type>``
+#       At least ``service_type`` and ``endpoint_type`` should be specified.
+#       ``service_name`` can be omitted.
+#
+# Related options:
+#     * cinder_os_region_name
+#     * cinder_endpoint_template
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#     * cinder_store_password
+#
+#  (string value)
+#cinder_catalog_info = volumev2::publicURL
+
+#
+# Override service catalog lookup with template for cinder endpoint.
+#
+# When this option is set, this value is used to generate cinder endpoint,
+# instead of looking up from the service catalog.
+# This value is ignored if ``cinder_store_auth_address``,
+# ``cinder_store_user_name``, ``cinder_store_project_name``, and
+# ``cinder_store_password`` are specified.
+#
+# If this configuration option is set, ``cinder_catalog_info`` will be ignored.
+#
+# Possible values:
+#     * URL template string for cinder endpoint, where ``%%(tenant)s`` is
+#       replaced with the current tenant (project) name.
+#       For example: ``http://cinder.openstack.example.org/v2/%%(tenant)s``
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#     * cinder_store_password
+#     * cinder_catalog_info
+#
+#  (string value)
+#cinder_endpoint_template = <None>
+
+#
+# Region name to lookup cinder service from the service catalog.
+#
+# This is used only when ``cinder_catalog_info`` is used for determining the
+# endpoint. If set, the lookup for cinder endpoint by this node is filtered to
+# the specified region. It is useful when multiple regions are listed in the
+# catalog. If this is not set, the endpoint is looked up from every region.
+#
+# Possible values:
+#     * A string that is a valid region name.
+#
+# Related options:
+#     * cinder_catalog_info
+#
+#  (string value)
+# Deprecated group/name - [glance_store]/os_region_name
+#cinder_os_region_name = <None>
+
+#
+# Location of a CA certificates file used for cinder client requests.
+#
+# The specified CA certificates file, if set, is used to verify cinder
+# connections via HTTPS endpoint. If the endpoint is HTTP, this value is
+# ignored.
+# ``cinder_api_insecure`` must be set to ``True`` to enable the verification.
+#
+# Possible values:
+#     * Path to a ca certificates file
+#
+# Related options:
+#     * cinder_api_insecure
+#
+#  (string value)
+#cinder_ca_certificates_file = <None>
+
+#
+# Number of cinderclient retries on failed http calls.
+#
+# When a call failed by any errors, cinderclient will retry the call up to the
+# specified times after sleeping a few seconds.
+#
+# Possible values:
+#     * A positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#cinder_http_retries = 3
+
+#
+# Time period, in seconds, to wait for a cinder volume transition to
+# complete.
+#
+# When the cinder volume is created, deleted, or attached to the glance node to
+# read/write the volume data, the volume's state is changed. For example, the
+# newly created volume status changes from ``creating`` to ``available`` after
+# the creation process is completed. This specifies the maximum time to wait for
+# the status change. If a timeout occurs while waiting, or the status is changed
+# to an unexpected value (e.g. `error``), the image creation fails.
+#
+# Possible values:
+#     * A positive integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#cinder_state_transition_timeout = 300
+
+#
+# Allow to perform insecure SSL requests to cinder.
+#
+# If this option is set to True, HTTPS endpoint connection is verified using the
+# CA certificates file specified by ``cinder_ca_certificates_file`` option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * cinder_ca_certificates_file
+#
+#  (boolean value)
+#cinder_api_insecure = false
+
+#
+# The address where the cinder authentication service is listening.
+#
+# When all of ``cinder_store_auth_address``, ``cinder_store_user_name``,
+# ``cinder_store_project_name``, and ``cinder_store_password`` options are
+# specified, the specified values are always used for the authentication.
+# This is useful to hide the image volumes from users by storing them in a
+# project/tenant specific to the image service. It also enables users to share
+# the image volume among other projects under the control of glance's ACL.
+#
+# If either of these options are not set, the cinder endpoint is looked up
+# from the service catalog, and current context's user and project are used.
+#
+# Possible values:
+#     * A valid authentication service address, for example:
+#       ``http://openstack.example.org/identity/v2.0``
+#
+# Related options:
+#     * cinder_store_user_name
+#     * cinder_store_password
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_auth_address = <None>
+
+#
+# User name to authenticate against cinder.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the user of the current context is used.
+#
+# Possible values:
+#     * A valid user name
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_password
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_user_name = <None>
+
+#
+# Password for the user authenticating against cinder.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the user of the current context is used.
+#
+# Possible values:
+#     * A valid password for the user specified by ``cinder_store_user_name``
+#
+# Related options:
+#     * cinder_store_auth_address
+#     * cinder_store_user_name
+#     * cinder_store_project_name
+#
+#  (string value)
+#cinder_store_password = <None>
+
+#
+# Project name where the image volume is stored in cinder.
+#
+# If this configuration option is not set, the project in current context is
+# used.
+#
+# This must be used with all the following related options. If any of these are
+# not specified, the project of the current context is used.
+#
+# Possible values:
+#     * A valid project name
+#
+# Related options:
+#     * ``cinder_store_auth_address``
+#     * ``cinder_store_user_name``
+#     * ``cinder_store_password``
+#
+#  (string value)
+#cinder_store_project_name = <None>
+
+#
+# Path to the rootwrap configuration file to use for running commands as root.
+#
+# The cinder store requires root privileges to operate the image volumes (for
+# connecting to iSCSI/FC volumes and reading/writing the volume data, etc.).
+# The configuration file should allow the required commands by cinder store and
+# os-brick library.
+#
+# Possible values:
+#     * Path to the rootwrap config file
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#rootwrap_config = /etc/glance/rootwrap.conf
+
+#
+# Set verification of the server certificate.
+#
+# This boolean determines whether or not to verify the server
+# certificate. If this option is set to True, swiftclient won't check
+# for a valid SSL certificate when authenticating. If the option is set
+# to False, then the default CA truststore is used for verification.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * swift_store_cacert
+#
+#  (boolean value)
+#swift_store_auth_insecure = false
+
+#
+# Path to the CA bundle file.
+#
+# This configuration option enables the operator to specify the path to
+# a custom Certificate Authority file for SSL verification when
+# connecting to Swift.
+#
+# Possible values:
+#     * A valid path to a CA file
+#
+# Related options:
+#     * swift_store_auth_insecure
+#
+#  (string value)
+#swift_store_cacert = /etc/ssl/certs/ca-certificates.crt
+
+#
+# The region of Swift endpoint to use by Glance.
+#
+# Provide a string value representing a Swift region where Glance
+# can connect to for image storage. By default, there is no region
+# set.
+#
+# When Glance uses Swift as the storage backend to store images
+# for a specific tenant that has multiple endpoints, setting of a
+# Swift region with ``swift_store_region`` allows Glance to connect
+# to Swift in the specified region as opposed to a single region
+# connectivity.
+#
+# This option can be configured for both single-tenant and
+# multi-tenant storage.
+#
+# NOTE: Setting the region with ``swift_store_region`` is
+# tenant-specific and is necessary ``only if`` the tenant has
+# multiple endpoints across different regions.
+#
+# Possible values:
+#     * A string value representing a valid Swift region.
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_region = RegionTwo
+
+#
+# The URL endpoint to use for Swift backend storage.
+#
+# Provide a string value representing the URL endpoint to use for
+# storing Glance images in Swift store. By default, an endpoint
+# is not set and the storage URL returned by ``auth`` is used.
+# Setting an endpoint with ``swift_store_endpoint`` overrides the
+# storage URL and is used for Glance image storage.
+#
+# NOTE: The URL should include the path up to, but excluding the
+# container. The location of an object is obtained by appending
+# the container and object to the configured URL.
+#
+# Possible values:
+#     * String value representing a valid URL path up to a Swift container
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_endpoint = https://swift.openstack.example.org/v1/path_not_including_container_name
+
+#
+# Endpoint Type of Swift service.
+#
+# This string value indicates the endpoint type to use to fetch the
+# Swift endpoint. The endpoint type determines the actions the user will
+# be allowed to perform, for instance, reading and writing to the Store.
+# This setting is only used if swift_store_auth_version is greater than
+# 1.
+#
+# Possible values:
+#     * publicURL
+#     * adminURL
+#     * internalURL
+#
+# Related options:
+#     * swift_store_endpoint
+#
+#  (string value)
+# Allowed values: publicURL, adminURL, internalURL
+#swift_store_endpoint_type = publicURL
+
+#
+# Type of Swift service to use.
+#
+# Provide a string value representing the service type to use for
+# storing images while using Swift backend storage. The default
+# service type is set to ``object-store``.
+#
+# NOTE: If ``swift_store_auth_version`` is set to 2, the value for
+# this configuration option needs to be ``object-store``. If using
+# a higher version of Keystone or a different auth scheme, this
+# option may be modified.
+#
+# Possible values:
+#     * A string representing a valid service type for Swift storage.
+#
+# Related Options:
+#     * None
+#
+#  (string value)
+#swift_store_service_type = object-store
+
+#
+# Name of single container to store images/name prefix for multiple containers
+#
+# When a single container is being used to store images, this configuration
+# option indicates the container within the Glance account to be used for
+# storing all images. When multiple containers are used to store images, this
+# will be the name prefix for all containers. Usage of single/multiple
+# containers can be controlled using the configuration option
+# ``swift_store_multiple_containers_seed``.
+#
+# When using multiple containers, the containers will be named after the value
+# set for this configuration option with the first N chars of the image UUID
+# as the suffix delimited by an underscore (where N is specified by
+# ``swift_store_multiple_containers_seed``).
+#
+# Example: if the seed is set to 3 and swift_store_container = ``glance``, then
+# an image with UUID ``fdae39a1-bac5-4238-aba4-69bcc726e848`` would be placed in
+# the container ``glance_fda``. All dashes in the UUID are included when
+# creating the container name but do not count toward the character limit, so
+# when N=10 the container name would be ``glance_fdae39a1-ba.``
+#
+# Possible values:
+#     * If using single container, this configuration option can be any string
+#       that is a valid swift container name in Glance's Swift account
+#     * If using multiple containers, this configuration option can be any
+#       string as long as it satisfies the container naming rules enforced by
+#       Swift. The value of ``swift_store_multiple_containers_seed`` should be
+#       taken into account as well.
+#
+# Related options:
+#     * ``swift_store_multiple_containers_seed``
+#     * ``swift_store_multi_tenant``
+#     * ``swift_store_create_container_on_put``
+#
+#  (string value)
+#swift_store_container = glance
+
+#
+# The size threshold, in MB, after which Glance will start segmenting image
+# data.
+#
+# Swift has an upper limit on the size of a single uploaded object. By default,
+# this is 5GB. To upload objects bigger than this limit, objects are segmented
+# into multiple smaller objects that are tied together with a manifest file.
+# For more detail, refer to
+# http://docs.openstack.org/developer/swift/overview_large_objects.html
+#
+# This configuration option specifies the size threshold over which the Swift
+# driver will start segmenting image data into multiple smaller files.
+# Currently, the Swift driver only supports creating Dynamic Large Objects.
+#
+# NOTE: This should be set by taking into account the large object limit
+# enforced by the Swift cluster in consideration.
+#
+# Possible values:
+#     * A positive integer that is less than or equal to the large object limit
+#       enforced by the Swift cluster in consideration.
+#
+# Related options:
+#     * ``swift_store_large_object_chunk_size``
+#
+#  (integer value)
+# Minimum value: 1
+#swift_store_large_object_size = 5120
+
+#
+# The maximum size, in MB, of the segments when image data is segmented.
+#
+# When image data is segmented to upload images that are larger than the limit
+# enforced by the Swift cluster, image data is broken into segments that are no
+# bigger than the size specified by this configuration option.
+# Refer to ``swift_store_large_object_size`` for more detail.
+#
+# For example: if ``swift_store_large_object_size`` is 5GB and
+# ``swift_store_large_object_chunk_size`` is 1GB, an image of size 6.2GB will be
+# segmented into 7 segments where the first six segments will be 1GB in size and
+# the seventh segment will be 0.2GB.
+#
+# Possible values:
+#     * A positive integer that is less than or equal to the large object limit
+#       enforced by Swift cluster in consideration.
+#
+# Related options:
+#     * ``swift_store_large_object_size``
+#
+#  (integer value)
+# Minimum value: 1
+#swift_store_large_object_chunk_size = 200
+
+#
+# Create container, if it doesn't already exist, when uploading image.
+#
+# At the time of uploading an image, if the corresponding container doesn't
+# exist, it will be created provided this configuration option is set to True.
+# By default, it won't be created. This behavior is applicable for both single
+# and multiple containers mode.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
+#swift_store_create_container_on_put = false
+
+#
+# Store images in tenant's Swift account.
+#
+# This enables multi-tenant storage mode which causes Glance images to be stored
+# in tenant specific Swift accounts. If this is disabled, Glance stores all
+# images in its own account. More details multi-tenant store can be found at
+# https://wiki.openstack.org/wiki/GlanceSwiftTenantSpecificStorage
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * None
+#
+#  (boolean value)
+#swift_store_multi_tenant = false
+
+#
+# Seed indicating the number of containers to use for storing images.
+#
+# When using a single-tenant store, images can be stored in one or more than one
+# containers. When set to 0, all images will be stored in one single container.
+# When set to an integer value between 1 and 32, multiple containers will be
+# used to store images. This configuration option will determine how many
+# containers are created. The total number of containers that will be used is
+# equal to 16^N, so if this config option is set to 2, then 16^2=256 containers
+# will be used to store images.
+#
+# Please refer to ``swift_store_container`` for more detail on the naming
+# convention. More detail about using multiple containers can be found at
+# https://specs.openstack.org/openstack/glance-specs/specs/kilo/swift-store-
+# multiple-containers.html
+#
+# NOTE: This is used only when swift_store_multi_tenant is disabled.
+#
+# Possible values:
+#     * A non-negative integer less than or equal to 32
+#
+# Related options:
+#     * ``swift_store_container``
+#     * ``swift_store_multi_tenant``
+#     * ``swift_store_create_container_on_put``
+#
+#  (integer value)
+# Minimum value: 0
+# Maximum value: 32
+#swift_store_multiple_containers_seed = 0
+
+#
+# List of tenants that will be granted admin access.
+#
+# This is a list of tenants that will be granted read/write access on
+# all Swift containers created by Glance in multi-tenant mode. The
+# default value is an empty list.
+#
+# Possible values:
+#     * A comma separated list of strings representing UUIDs of Keystone
+#       projects/tenants
+#
+# Related options:
+#     * None
+#
+#  (list value)
+#swift_store_admin_tenants =
+
+#
+# SSL layer compression for HTTPS Swift requests.
+#
+# Provide a boolean value to determine whether or not to compress
+# HTTPS Swift requests for images at the SSL layer. By default,
+# compression is enabled.
+#
+# When using Swift as the backend store for Glance image storage,
+# SSL layer compression of HTTPS Swift requests can be set using
+# this option. If set to False, SSL layer compression of HTTPS
+# Swift requests is disabled. Disabling this option may improve
+# performance for images which are already in a compressed format,
+# for example, qcow2.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related Options:
+#     * None
+#
+#  (boolean value)
+#swift_store_ssl_compression = true
+
+#
+# The number of times a Swift download will be retried before the
+# request fails.
+#
+# Provide an integer value representing the number of times an image
+# download must be retried before erroring out. The default value is
+# zero (no retry on a failed image download). When set to a positive
+# integer value, ``swift_store_retry_get_count`` ensures that the
+# download is attempted this many more times upon a download failure
+# before sending an error message.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer value
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#swift_store_retry_get_count = 0
+
+#
+# Time in seconds defining the size of the window in which a new
+# token may be requested before the current token is due to expire.
+#
+# Typically, the Swift storage driver fetches a new token upon the
+# expiration of the current token to ensure continued access to
+# Swift. However, some Swift transactions (like uploading image
+# segments) may not recover well if the token expires on the fly.
+#
+# Hence, by fetching a new token before the current token expiration,
+# we make sure that the token does not expire or is close to expiry
+# before a transaction is attempted. By default, the Swift storage
+# driver requests for a new token 60 seconds or less before the
+# current token expiration.
+#
+# Possible values:
+#     * Zero
+#     * Positive integer value
+#
+# Related Options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#swift_store_expire_soon_interval = 60
+
+#
+# Use trusts for multi-tenant Swift store.
+#
+# This option instructs the Swift store to create a trust for each
+# add/get request when the multi-tenant store is in use. Using trusts
+# allows the Swift store to avoid problems that can be caused by an
+# authentication token expiring during the upload or download of data.
+#
+# By default, ``swift_store_use_trusts`` is set to ``True``(use of
+# trusts is enabled). If set to ``False``, a user token is used for
+# the Swift connection instead, eliminating the overhead of trust
+# creation.
+#
+# NOTE: This option is considered only when
+# ``swift_store_multi_tenant`` is set to ``True``
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * swift_store_multi_tenant
+#
+#  (boolean value)
+#swift_store_use_trusts = true
+
+#
+# Reference to default Swift account/backing store parameters.
+#
+# Provide a string value representing a reference to the default set
+# of parameters required for using swift account/backing store for
+# image storage. The default reference value for this configuration
+# option is 'ref1'. This configuration option dereferences the
+# parameters and facilitates image storage in Swift storage backend
+# every time a new image is added.
+#
+# Possible values:
+#     * A valid string value
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#default_swift_reference = ref1
+
+# DEPRECATED: Version of the authentication service to use. Valid versions are 2
+# and 3 for keystone and 1 (deprecated) for swauth and rackspace. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'auth_version' in the Swift back-end configuration file is
+# used instead.
+#swift_store_auth_version = 2
+
+# DEPRECATED: The address where the Swift authentication service is listening.
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'auth_address' in the Swift back-end configuration file is
+# used instead.
+#swift_store_auth_address = <None>
+
+# DEPRECATED: The user to authenticate against the Swift authentication service.
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'user' in the Swift back-end configuration file is set instead.
+#swift_store_user = <None>
+
+# DEPRECATED: Auth key for the user authenticating against the Swift
+# authentication service. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason:
+# The option 'key' in the Swift back-end configuration file is used
+# to set the authentication key instead.
+#swift_store_key = <None>
+
+#
+# Absolute path to the file containing the swift account(s)
+# configurations.
+#
+# Include a string value representing the path to a configuration
+# file that has references for each of the configured Swift
+# account(s)/backing stores. By default, no file path is specified
+# and customized Swift referencing is disabled. Configuring this
+# option is highly recommended while using Swift storage backend for
+# image storage as it avoids storage of credentials in the database.
+#
+# Possible values:
+#     * String value representing an absolute path on the glance-api
+#       node
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#swift_store_config_file = <None>
+
 
 [oslo_concurrency]
 
@@ -862,10 +2431,10 @@
 # Deprecated group/name - [DEFAULT]/disable_process_locking
 #disable_process_locking = false
 
-# Directory to use for lock files.  For security, the specified
-# directory should only be writable by the user running the processes
-# that need locking. Defaults to environment variable OSLO_LOCK_PATH.
-# If external locks are used, a lock path must be set. (string value)
+# Directory to use for lock files.  For security, the specified directory should
+# only be writable by the user running the processes that need locking. Defaults
+# to environment variable OSLO_LOCK_PATH. If external locks are used, a lock
+# path must be set. (string value)
 # Deprecated group/name - [DEFAULT]/lock_path
 #lock_path = <None>
 
@@ -880,15 +2449,14 @@
 # Deprecated group/name - [DEFAULT]/policy_file
 #policy_file = policy.json
 
-# Default rule. Enforced when a requested rule is not found. (string
-# value)
+# Default rule. Enforced when a requested rule is not found. (string value)
 # Deprecated group/name - [DEFAULT]/policy_default_rule
 #policy_default_rule = default
 
-# Directories where policy configuration files are stored. They can be
-# relative to any directory in the search path defined by the
-# config_dir option, or absolute paths. The file defined by
-# policy_file must exist for these directories to be searched.
-# Missing or empty directories are ignored. (multi valued)
+# Directories where policy configuration files are stored. They can be relative
+# to any directory in the search path defined by the config_dir option, or
+# absolute paths. The file defined by policy_file must exist for these
+# directories to be searched.  Missing or empty directories are ignored. (multi
+# valued)
 # Deprecated group/name - [DEFAULT]/policy_dirs
 #policy_dirs = policy.d