Adjusting and refactoring salt-formula for Queens

Change-Id: Ib6647f9a4967b5f2ba4fbfaec2e6f6d00622a671
diff --git a/glance/files/queens/glance-cache.conf.Debian b/glance/files/queens/glance-cache.conf.Debian
new file mode 100644
index 0000000..34eba0d
--- /dev/null
+++ b/glance/files/queens/glance-cache.conf.Debian
@@ -0,0 +1,2627 @@
+{%- from "glance/map.jinja" import server with context %}
+[DEFAULT]
+
+#
+# From glance.cache
+#
+
+#
+# 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.
+#
+# 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.
+#
+# 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.
+#
+# Any negative value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+#image_tag_quota = 128
+
+#
+# Maximum number of locations allowed on an image.
+#
+# Any negative value is interpreted as unlimited.
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+#image_location_quota = 10
+
+# DEPRECATED:
+# 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)
+# This option is deprecated for removal since Queens.
+# Its value may be silently ignored in the future.
+# Reason:
+# Glance registry service is deprecated for removal.
+#
+# More information can be found from the spec:
+# http://specs.openstack.org/openstack/glance-
+# specs/specs/queens/approved/glance/deprecate-registry.html
+#data_api = glance.db.sqlalchemy.api
+
+#
+# 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 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
+
+#
+# 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
+
+# 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 Pike release or later
+# 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.
+#
+# 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
+
+#
+# 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.
+#
+# 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.
+#
+# 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 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
+
+# DEPRECATED:
+# 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)
+# This option is deprecated for removal since Queens.
+# Its value may be silently ignored in the future.
+# Reason:
+# Glance registry service is deprecated for removal.
+#
+# More information can be found from the spec:
+# http://specs.openstack.org/openstack/glance-
+# specs/specs/queens/approved/glance/deprecate-registry.html
+#enable_v2_registry = true
+
+#
+# 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
+#
+#  (unknown value)
+#pydev_worker_debug_host = localhost
+
+#
+# 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.
+#
+# 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 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 URL provides location where the temporary data will be stored
+#
+# This option is for Glance internal use only. Glance will save the
+# image data uploaded by the user to 'staging' endpoint during the
+# image import process.
+#
+# This option does not change the 'staging' API endpoint by any means.
+#
+# NOTE: It is discouraged to use same path as [task]/work_dir
+#
+# NOTE: 'file://<absolute-directory-path>' is the only option
+# api_image_import flow will support for now.
+#
+# NOTE: The staging path must be on shared filesystem available to all
+# Glance API nodes.
+#
+# Possible values:
+#     * String starting with 'file://' followed by absolute FS path
+#
+# Related options:
+#     * [task]/work_dir
+#     * [DEFAULT]/enable_image_import (*deprecated*)
+#
+#  (string value)
+#node_staging_uri = file:///tmp/staging/
+
+# DEPRECATED:
+# Enables the Image Import workflow introduced in Pike
+#
+# As '[DEFAULT]/node_staging_uri' is required for the Image
+# Import, it's disabled per default in Pike, enabled per
+# default in Queens and removed in Rocky. This allows Glance to
+# operate with previous version configs upon upgrade.
+#
+# Setting this option to False will disable the endpoints related
+# to Image Import Refactoring work.
+#
+# Related options:
+#     * [DEFAULT]/node_staging_uri (boolean value)
+# This option is deprecated for removal since Pike.
+# Its value may be silently ignored in the future.
+# Reason:
+# This option is deprecated for removal in Rocky.
+#
+# It was introduced to make sure that the API is not enabled
+# before the '[DEFAULT]/node_staging_uri' is defined and is
+# long term redundant.
+#enable_image_import = true
+
+#
+# List of enabled Image Import Methods
+#
+# Both 'glance-direct' and 'web-download' are enabled by default.
+#
+# Related options:
+#     * [DEFAULT]/node_staging_uri
+#     * [DEFAULT]/enable_image_import (list value)
+#enabled_import_methods = glance-direct,web-download
+
+#
+# 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 lightweight database with just one table.
+#
+# Possible values:
+#     * A valid relative path to sqlite file database
+#
+# Related options:
+#     * ``image_cache_dir``
+#
+#  (string value)
+#image_cache_sqlite_db = cache.db
+
+#
+# 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
+# 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
+# store the information about cached images:
+#     * 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
+#     when accessed.
+#
+# Possible values:
+#     * sqlite
+#     * xattr
+#
+# Related options:
+#     * None
+#
+#  (string value)
+# Possible values:
+# sqlite - <No description provided>
+# xattr - <No description provided>
+#image_cache_driver = sqlite
+
+#
+# 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.
+#
+# 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 is less than or equal to size specified here.
+#
+# Possible values:
+#     * Any non-negative integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#image_cache_max_size = 10737418240
+{% if server.get('image_cache', {}).get('enabled', False) %}
+
+image_cache_max_size = {{ server.image_cache.get('max_size', '10737418240') }}
+image_cache_stall_time = {{ server.image_cache.get('stall_time', '86400') }}
+image_cache_dir = {{ server.image_cache.get('directory', '/var/lib/glance/image-cache/') }}
+{% endif %}
+
+{% if server.identity.region is defined %}
+os_region_name = {{ server.identity.region }}
+{% endif %}
+
+#
+# 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
+# removed by cache-cleaner on its next run.
+#
+# 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.
+#
+# Possible values:
+#     * Any non-negative integer
+#
+# Related options:
+#     * None
+#
+#  (integer value)
+# Minimum value: 0
+#image_cache_stall_time = 86400
+
+#
+# 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``.
+#
+# 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,
+# 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
+# next time cache-prefetcher runs.
+#
+# Possible values:
+#     * A valid path
+#
+# Related options:
+#     * ``image_cache_sqlite_db``
+#
+#  (string value)
+#image_cache_dir = <None>
+
+# DEPRECATED:
+# Address the registry server is hosted on.
+#
+# Possible values:
+#     * A valid IP or hostname
+#
+# Related options:
+#     * None
+#
+#  (unknown value)
+# This option is deprecated for removal since Queens.
+# Its value may be silently ignored in the future.
+# Reason:
+# Glance registry service is deprecated for removal.
+#
+# More information can be found from the spec:
+# http://specs.openstack.org/openstack/glance-
+# specs/specs/queens/approved/glance/deprecate-registry.html
+#registry_host = {{ server.registry.host }}
+
+# DEPRECATED:
+# Port the registry server is listening on.
+#
+# Possible values:
+#     * A valid port number
+#
+# Related options:
+#     * None
+#
+#  (port value)
+# Minimum value: 0
+# Maximum value: 65535
+# This option is deprecated for removal since Queens.
+# Its value may be silently ignored in the future.
+# Reason:
+# Glance registry service is deprecated for removal.
+#
+# More information can be found from the spec:
+# http://specs.openstack.org/openstack/glance-
+# specs/specs/queens/approved/glance/deprecate-registry.html
+#registry_port = {{ server.registry.port }}
+
+# DEPRECATED:
+# 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)
+# Possible values:
+# http - <No description provided>
+# https - <No description provided>
+# This option is deprecated for removal since Queens.
+# Its value may be silently ignored in the future.
+# Reason:
+# Glance registry service is deprecated for removal.
+#
+# More information can be found from the spec:
+# http://specs.openstack.org/openstack/glance-
+# specs/specs/queens/approved/glance/deprecate-registry.html
+#registry_client_protocol = http
+
+# DEPRECATED:
+# 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)
+# This option is deprecated for removal since Queens.
+# Its value may be silently ignored in the future.
+# Reason:
+# Glance registry service is deprecated for removal.
+#
+# More information can be found from the spec:
+# http://specs.openstack.org/openstack/glance-
+# specs/specs/queens/approved/glance/deprecate-registry.html
+#registry_client_key_file = /etc/ssl/key/key-file.pem
+
+# DEPRECATED:
+# 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)
+# This option is deprecated for removal since Queens.
+# Its value may be silently ignored in the future.
+# Reason:
+# Glance registry service is deprecated for removal.
+#
+# More information can be found from the spec:
+# http://specs.openstack.org/openstack/glance-
+# specs/specs/queens/approved/glance/deprecate-registry.html
+#registry_client_cert_file = /etc/ssl/certs/file.crt
+
+# DEPRECATED:
+# 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)
+# This option is deprecated for removal since Queens.
+# Its value may be silently ignored in the future.
+# Reason:
+# Glance registry service is deprecated for removal.
+#
+# More information can be found from the spec:
+# http://specs.openstack.org/openstack/glance-
+# specs/specs/queens/approved/glance/deprecate-registry.html
+#registry_client_ca_file = /etc/ssl/cafile/file.ca
+
+# DEPRECATED:
+# 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)
+# This option is deprecated for removal since Queens.
+# Its value may be silently ignored in the future.
+# Reason:
+# Glance registry service is deprecated for removal.
+#
+# More information can be found from the spec:
+# http://specs.openstack.org/openstack/glance-
+# specs/specs/queens/approved/glance/deprecate-registry.html
+#registry_client_insecure = false
+
+# DEPRECATED:
+# 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
+# This option is deprecated for removal since Queens.
+# Its value may be silently ignored in the future.
+# Reason:
+# Glance registry service is deprecated for removal.
+#
+# More information can be found from the spec:
+# http://specs.openstack.org/openstack/glance-
+# specs/specs/queens/approved/glance/deprecate-registry.html
+#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.
+#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)
+# 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.
+#admin_user = <None>
+
+# 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.
+#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)
+# 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.
+#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)
+# 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.
+#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)
+# 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.
+#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)
+# 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.
+#auth_region = <None>
+
+{%- if server.logging is defined %}
+{%- set _data = server.logging %}
+{%- do _data.update({'log_file': '/var/log/glance/image-cache.log'}) %}
+{%- include "oslo_templates/files/queens/oslo/_log.conf" %}
+{%- endif %}
+
+[glance_store]
+
+#
+# From glance.store
+#
+
+#
+# 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
+
+#
+# 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)
+# Possible values:
+# file - <No description provided>
+# filesystem - <No description provided>
+# http - <No description provided>
+# https - <No description provided>
+# swift - <No description provided>
+# swift+http - <No description provided>
+# swift+https - <No description provided>
+# swift+config - <No description provided>
+# rbd - <No description provided>
+# sheepdog - <No description provided>
+# cinder - <No description provided>
+# vsphere - <No description provided>
+#default_store = file
+
+#
+# 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
+# deployment 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
+
+#
+# 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>:<interface>``
+#       At least ``service_type`` and ``interface`` 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
+
+#
+# Volume type that will be used for volume creation in cinder.
+#
+# Some cinder backends can have several volume types to optimize
+# storage usage.
+# Adding this option allows an operator to choose a specific volume
+# type
+# in cinder that can be optimized for images.
+#
+# If this is not set, then the default volume type specified in the
+# cinder
+# configuration will be used for volume creation.
+#
+# Possible values:
+#     * A valid volume type from cinder
+#
+# Related options:
+#     * None
+#
+#  (string value)
+#cinder_volume_type = <None>
+
+#
+# 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 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 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>
+{%- if server.filesystem_store_metadata_file is defined %}
+filesystem_store_metadata_file = {{ server.get('filesystem_store_metadata_file', '/etc/glance/filesystem_store_metadata.json') }}
+{%- endif %}
+
+#
+# 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
+
+#
+# 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>
+
+#
+# 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 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 =
+
+#
+# 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
+
+#
+# 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
+#
+#  (unknown value)
+#sheepdog_store_address = 127.0.0.1
+
+#
+# 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)
+# Possible values:
+# publicURL - <No description provided>
+# adminURL - <No description provided>
+# internalURL - <No description provided>
+#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
+#
+# NOTE: If using multi-tenant swift store, please make sure
+# that you do not set a swift configuration file with the
+# 'swift_store_config_file' option.
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * swift_store_config_file
+#
+#  (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
+
+#
+# Buffer image segments before upload to Swift.
+#
+# Provide a boolean value to indicate whether or not Glance should
+# buffer image data to disk while uploading to swift. This enables
+# Glance to resume uploads on error.
+#
+# NOTES:
+# When enabling this option, one should take great care as this
+# increases disk usage on the API node. Be aware that depending
+# upon how the file system is configured, the disk space used
+# for buffering may decrease the actual disk space available for
+# the glance image cache.  Disk utilization will cap according to
+# the following equation:
+# (``swift_store_large_object_chunk_size`` * ``workers`` * 1000)
+#
+# Possible values:
+#     * True
+#     * False
+#
+# Related options:
+#     * swift_upload_buffer_dir
+#
+#  (boolean value)
+#swift_buffer_on_upload = false
+
+#
+# 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.
+#
+# NOTE: Please do not configure this option if you have set
+# ``swift_store_multi_tenant`` to ``True``.
+#
+# Possible values:
+#     * String value representing an absolute path on the glance-api
+#       node
+#
+# Related options:
+#     * swift_store_multi_tenant
+#
+#  (string value)
+#swift_store_config_file = <None>
+
+#
+# Directory to buffer image segments before upload to Swift.
+#
+# Provide a string value representing the absolute path to the
+# directory on the glance node where image segments will be
+# buffered briefly before they are uploaded to swift.
+#
+# NOTES:
+# * This is required only when the configuration option
+#   ``swift_buffer_on_upload`` is set to True.
+# * This directory should be provisioned keeping in mind the
+#   ``swift_store_large_object_chunk_size`` and the maximum
+#   number of images that could be uploaded simultaneously by
+#   a given glance node.
+#
+# Possible values:
+#     * String value representing an absolute directory path
+#
+# Related options:
+#     * swift_buffer_on_upload
+#     * swift_store_large_object_chunk_size
+#
+#  (string value)
+#swift_upload_buffer_dir = <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
+#
+#  (unknown 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
+
+#
+# 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 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
+
+#
+# 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
+
+#
+# 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
+
+#
+# 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 =
+
+{% if server.identity.region is defined %}
+os_region_name = {{ server.identity.region }}
+{% endif %}
+
+[oslo_policy]
+{%- if server.policy is defined %}
+{%- set _data = server.policy %}
+{%- include "oslo_templates/files/queens/oslo/_policy.conf" %}
+{%- endif %}
+