Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

Chapter 11. Orchestration

The Orchestration service is designed to manage the lifecycle of infrastructure and applications within OpenStack clouds. Its various agents and services are configured in the /etc/heat/heat.conf file.
The following tables provide a comprehensive list of the Orchestration configuration options.

Table 11.1.  Description of authorization token configuration options

Configuration option = Default valueDescription
[keystone_authtoken]
admin_password = None (String) Service user password.
admin_tenant_name = admin (String) Service tenant name.
admin_token = None (String) This option is deprecated and may be removed in a future release. Single shared secret with the Keystone configuration used for bootstrapping a Keystone installation, or otherwise bypassing the normal authentication process. This option should not be used, use `admin_user` and `admin_password` instead.
admin_user = None (String) Service username.
auth_admin_prefix = (String) Prefix to prepend at the beginning of the path. Deprecated, use identity_uri.
auth_host = 127.0.0.1 (String) Host providing the admin Identity API endpoint. Deprecated, use identity_uri.
auth_port = 35357 (Integer) Port of the admin Identity API endpoint. Deprecated, use identity_uri.
auth_protocol = https (String) Protocol of the admin Identity API endpoint. Deprecated, use identity_uri.
auth_section = None (Unknown) Config Section from which to load plugin specific options
auth_type = None (Unknown) Authentication type to load
auth_uri = None (String) Complete public Identity API endpoint.
auth_version = None (String) API version of the admin Identity API endpoint.
cache = None (String) Env key for the swift cache.
cafile = None (String) A PEM encoded Certificate Authority to use when verifying HTTPs connections. Defaults to system CAs.
certfile = None (String) Required if identity server requires client certificate
check_revocations_for_cached = False (Boolean) If true, the revocation list will be checked for cached tokens. This requires that PKI tokens are configured on the identity server.
delay_auth_decision = False (Boolean) Do not handle authorization requests within the middleware, but delegate the authorization decision to downstream WSGI components.
enforce_token_bind = permissive (String) 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.
hash_algorithms = md5 (List) 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.
http_connect_timeout = None (Integer) Request timeout value for communicating with Identity API server.
http_request_max_retries = 3 (Integer) How many times are we trying to reconnect when communicating with Identity API Server.
identity_uri = None (String) Complete admin Identity API endpoint. This should specify the unversioned root endpoint e.g. https://localhost:35357/
include_service_catalog = True (Boolean) (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.
insecure = False (Boolean) Verify HTTPS connections.
keyfile = None (String) Required if identity server requires client certificate
memcache_pool_conn_get_timeout = 10 (Integer) (Optional) Number of seconds that an operation will wait to get a memcached client connection from the pool.
memcache_pool_dead_retry = 300 (Integer) (Optional) Number of seconds memcached server is considered dead before it is tried again.
memcache_pool_maxsize = 10 (Integer) (Optional) Maximum total number of open connections to every memcached server.
memcache_pool_socket_timeout = 3 (Integer) (Optional) Socket timeout in seconds for communicating with a memcached server.
memcache_pool_unused_timeout = 60 (Integer) (Optional) Number of seconds a connection to memcached is held unused in the pool before it is closed.
memcache_secret_key = None (String) (Optional, mandatory if memcache_security_strategy is defined) This string is used for key derivation.
memcache_security_strategy = None (String) (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.
memcache_use_advanced_pool = False (Boolean) (Optional) Use the advanced (eventlet safe) memcached client pool. The advanced pool will only work under python 2.x.
memcached_servers = None (List) Optionally specify a list of memcached server(s) to use for caching. If left undefined, tokens will instead be cached in-process.
region_name = None (String) The region in which the identity server can be found.
revocation_cache_time = 10 (Integer) 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.
signing_dir = None (String) Directory used to cache files related to PKI tokens.
token_cache_time = 300 (Integer) 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.

Table 11.2.  Description of common configuration options

Configuration option = Default valueDescription
[DEFAULT]
client_retry_limit = 2 (Integer) Number of times to retry when a client encounters an expected intermittent error. Set to 0 to disable retries.
convergence_engine = False (Boolean) Enables engine with convergence architecture. All stacks with this option will be created using convergence engine.
default_deployment_signal_transport = CFN_SIGNAL (String) Template default for how the server should signal to heat with the deployment output values. CFN_SIGNAL will allow an HTTP POST to a CFN keypair signed URL (requires enabled heat-api-cfn). TEMP_URL_SIGNAL will create a Swift TempURL to be signaled via HTTP PUT (requires object-store endpoint which supports TempURL). HEAT_SIGNAL will allow calls to the Heat API resource-signal using the provided keystone credentials. ZAQAR_SIGNAL will create a dedicated zaqar queue to be signaled using the provided keystone credentials.
default_software_config_transport = POLL_SERVER_CFN (String) Template default for how the server should receive the metadata required for software configuration. POLL_SERVER_CFN will allow calls to the cfn API action DescribeStackResource authenticated with the provided keypair (requires enabled heat-api-cfn). POLL_SERVER_HEAT will allow calls to the Heat API resource-show using the provided keystone credentials (requires keystone v3 API, and configured stack_user_* config options). POLL_TEMP_URL will create and populate a Swift TempURL with metadata for polling (requires object-store endpoint which supports TempURL).ZAQAR_MESSAGE will create a dedicated zaqar queue and post the metadata for polling.
deferred_auth_method = trusts (String) Select deferred auth method, stored password or trusts.
environment_dir = /etc/heat/environment.d (String) The directory to search for environment files.
error_wait_time = 240 (Integer) Error wait time in seconds for stack action (ie. create or update).
event_purge_batch_size = 10 (Integer) Controls how many events will be pruned whenever a stack's events exceed max_events_per_stack. Set this lower to keep more events at the expense of more frequent purges.
executor_thread_pool_size = 64 (Integer) Size of executor thread pool.
host = localhost (String) Name of the engine node. This can be an opaque identifier. It is not necessarily a hostname, FQDN, or IP address.
keystone_backend = heat.common.heat_keystoneclient.KeystoneClientV3 (String) Fully qualified class name to use as a keystone backend.
max_interface_check_attempts = 10 (Integer) Number of times to check whether an interface has been attached or detached.
memcached_servers = None (List) Memcached servers or None for in process cache.
periodic_interval = 60 (Integer) Seconds between running periodic tasks.
plugin_dirs = /usr/lib64/heat, /usr/lib/heat, /usr/local/lib/heat, /usr/local/lib64/heat (List) List of directories to search for plug-ins.
reauthentication_auth_method = (String) Allow reauthentication on token expiry, such that long-running tasks may complete. Note this defeats the expiry of any provided user tokens.
watch_log_file = False (Boolean) 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.
[cache]
backend = dogpile.cache.null (String) Dogpile.cache backend module. It is recommended that Memcache with pooling (oslo_cache.memcache_pool) or Redis (dogpile.cache.redis) be used in production deployments. Small workloads (single process) like devstack can use the dogpile.cache.memory backend.
backend_argument = [] (Multi-valued) Arguments supplied to the backend module. Specify this option once per argument to be passed to the dogpile.cache backend. Example format: "<argname>:<value>".
config_prefix = cache.oslo (String) Prefix for building the configuration dictionary for the cache region. This should not need to be changed unless there is another dogpile.cache region with the same configuration name.
debug_cache_backend = False (Boolean) Extra debugging from the cache backend (cache keys, get/set/delete/etc calls). This is only really useful if you need to see the specific cache-backend get/set/delete calls with the keys/values. Typically this should be left set to false.
enabled = False (Boolean) Global toggle for caching.
expiration_time = 600 (Integer) Default TTL, in seconds, for any cached item in the dogpile.cache region. This applies to any cached method that doesn't have an explicit cache expiration time defined for it.
memcache_dead_retry = 300 (Integer) Number of seconds memcached server is considered dead before it is tried again. (dogpile.cache.memcache and oslo_cache.memcache_pool backends only).
memcache_pool_connection_get_timeout = 10 (Integer) Number of seconds that an operation will wait to get a memcache client connection.
memcache_pool_maxsize = 10 (Integer) Max total number of open connections to every memcached server. (oslo_cache.memcache_pool backend only).
memcache_pool_unused_timeout = 60 (Integer) Number of seconds a connection to memcached is held unused in the pool before it is closed. (oslo_cache.memcache_pool backend only).
memcache_servers = localhost:11211 (List) Memcache servers in the format of "host:port". (dogpile.cache.memcache and oslo_cache.memcache_pool backends only).
memcache_socket_timeout = 3 (Integer) Timeout in seconds for every call to a server. (dogpile.cache.memcache and oslo_cache.memcache_pool backends only).
proxies = (List) Proxy classes to import that will affect the way the dogpile.cache backend functions. See the dogpile.cache documentation on changing-backend-behavior.
[constraint_validation_cache]
caching = True (Boolean) Toggle to enable/disable caching when Orchestration Engine validates property constraints of stack.During property validation with constraints Orchestration Engine caches requests to other OpenStack services. Please note that the global toggle for oslo.cache(enabled=True in [cache] group) must be enabled to use this feature.
expiration_time = 60 (Integer) TTL, in seconds, for any cached item in the dogpile.cache region used for caching of validation constraints.
[resource_finder_cache]
caching = True (Boolean) Toggle to enable/disable caching when Orchestration Engine looks for other OpenStack service resources using name or id. Please note that the global toggle for oslo.cache(enabled=True in [cache] group) must be enabled to use this feature.
expiration_time = 3600 (Integer) TTL, in seconds, for any cached item in the dogpile.cache region used for caching of OpenStack service finder functions.
[revision]
heat_revision = unknown (String) Heat build revision. If you would prefer to manage your build revision separately, you can move this section to a different file and add it as another config option.
[service_extension_cache]
caching = True (Boolean) Toggle to enable/disable caching when Orchestration Engine retrieves extensions from other OpenStack services. Please note that the global toggle for oslo.cache(enabled=True in [cache] group) must be enabled to use this feature.
expiration_time = 3600 (Integer) TTL, in seconds, for any cached item in the dogpile.cache region used for caching of service extensions.

Table 11.3.  Description of CORS configuration options

Configuration option = Default valueDescription
[cors]
allow_credentials = True (Boolean) Indicate that the actual request can include user credentials
allow_headers = Content-Type, Cache-Control, Content-Language, Expires, Last-Modified, Pragma (List) Indicate which header field names may be used during the actual request.
allow_methods = GET, POST, PUT, DELETE, OPTIONS (List) Indicate which methods can be used during the actual request.
allowed_origin = None (List) Indicate whether this resource may be shared with the domain received in the requests "origin" header.
expose_headers = Content-Type, Cache-Control, Content-Language, Expires, Last-Modified, Pragma (List) Indicate which headers are safe to expose to the API. Defaults to HTTP Simple Headers.
max_age = 3600 (Integer) Maximum cache age of CORS preflight requests.
[cors.subdomain]
allow_credentials = True (Boolean) Indicate that the actual request can include user credentials
allow_headers = Content-Type, Cache-Control, Content-Language, Expires, Last-Modified, Pragma (List) Indicate which header field names may be used during the actual request.
allow_methods = GET, POST, PUT, DELETE, OPTIONS (List) Indicate which methods can be used during the actual request.
allowed_origin = None (List) Indicate whether this resource may be shared with the domain received in the requests "origin" header.
expose_headers = Content-Type, Cache-Control, Content-Language, Expires, Last-Modified, Pragma (List) Indicate which headers are safe to expose to the API. Defaults to HTTP Simple Headers.
max_age = 3600 (Integer) Maximum cache age of CORS preflight requests.

Table 11.4.  Description of crypt configuration options

Configuration option = Default valueDescription
[DEFAULT]
auth_encryption_key = notgood but just long enough i t (String) Key used to encrypt authentication info in the database. Length of this key must be 32 characters.

Table 11.5.  Description of database configuration options

Configuration option = Default valueDescription
[database]
backend = sqlalchemy (String) The back end to use for the database.
connection = None (String) The SQLAlchemy connection string to use to connect to the database.
connection_debug = 0 (Integer) Verbosity of SQL debugging information: 0=None, 100=Everything.
connection_trace = False (Boolean) Add Python stack traces to SQL as comment strings.
db_inc_retry_interval = True (Boolean) If True, increases the interval between retries of a database operation up to db_max_retry_interval.
db_max_retries = 20 (Integer) Maximum retries in case of connection error or deadlock error before error is raised. Set to -1 to specify an infinite retry count.
db_max_retry_interval = 10 (Integer) If db_inc_retry_interval is set, the maximum seconds between retries of a database operation.
db_retry_interval = 1 (Integer) Seconds between retries of a database transaction.
idle_timeout = 3600 (Integer) Timeout before idle SQL connections are reaped.
max_overflow = 50 (Integer) If set, use this value for max_overflow with SQLAlchemy.
max_pool_size = None (Integer) Maximum number of SQL connections to keep open in a pool.
max_retries = 10 (Integer) Maximum number of database connection retries during startup. Set to -1 to specify an infinite retry count.
min_pool_size = 1 (Integer) Minimum number of SQL connections to keep open in a pool.
mysql_sql_mode = TRADITIONAL (String) 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=
pool_timeout = None (Integer) If set, use this value for pool_timeout with SQLAlchemy.
retry_interval = 10 (Integer) Interval between retries of opening a SQL connection.
slave_connection = None (String) The SQLAlchemy connection string to use to connect to the slave database.
sqlite_db = oslo.sqlite (String) The file name to use with SQLite.
sqlite_synchronous = True (Boolean) If True, SQLite uses synchronous mode.
use_db_reconnect = False (Boolean) Enable the experimental use of database reconnect on connection lost.

Table 11.6. Description of logging configuration options

Configuration option = Default value Description
[DEFAULT]
backdoor_port = None (StrOpt) Enable eventlet backdoor. Acceptable values are 0, <port>, and <start>:<end>, where 0 results in listening on a random tcp port number; <port> results in listening on the specified port number (and not enabling backdoor if that port is in use); and <start>:<end> results in listening on the smallest unused port number within the specified range of port numbers. The chosen port is displayed in the service's log file.

Table 11.7.  Description of load balancer configuration options

Configuration option = Default valueDescription
[DEFAULT]
loadbalancer_template = None (String) Custom template for the built-in loadbalancer nested stack.

Table 11.8.  Description of logging configuration options

Configuration option = Default valueDescription
[DEFAULT]
debug = False (Boolean) If set to true, the logging level will be set to DEBUG instead of the default INFO level.
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 (List) List of package logging levels in logger=LEVEL pairs. This option is ignored if log_config_append is set.
fatal_deprecations = False (Boolean) Enables or disables fatal status of deprecations.
instance_format = "[instance: %(uuid)s] " (String) The format for an instance that is passed with the log message.
instance_uuid_format = "[instance: %(uuid)s] " (String) The format for an instance UUID that is passed with the log message.
log_config_append = None (String) 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).
log_date_format = %Y-%m-%d %H:%M:%S (String) Defines the format string for %%(asctime)s in log records. Default: %(default)s . This option is ignored if log_config_append is set.
log_dir = None (String) (Optional) The base directory used for relative log_file paths. This option is ignored if log_config_append is set.
log_file = None (String) (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.
logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s (String) Format string to use for log messages with context.
logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d (String) Additional data to append to log message when logging level for the message is DEBUG.
logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s (String) Format string to use for log messages when context is undefined.
logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s (String) Prefix each line of exception output with this format.
logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s (String) Defines the format string for %(user_identity)s that is used in logging_context_format_string.
publish_errors = False (Boolean) Enables or disables publication of error events.
syslog_log_facility = LOG_USER (String) Syslog facility to receive log lines. This option is ignored if log_config_append is set.
use_stderr = True (Boolean) Log output to standard error. This option is ignored if log_config_append is set.
use_syslog = False (Boolean) 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.
verbose = True (Boolean) DEPRECATED: If set to false, the logging level will be set to WARNING instead of the default INFO level.

Table 11.9. Description of oslo_middleware configuration options

Configuration option = Default value Description
[oslo_middleware]
max_request_body_size = 114688 (IntOpt) The maximum body size for each request, in bytes.

Table 11.10.  Description of quota configuration options

Configuration option = Default valueDescription
[DEFAULT]
max_events_per_stack = 1000 (Integer) Maximum events that will be available per stack. Older events will be deleted when this is reached. Set to 0 for unlimited events per stack.
max_nested_stack_depth = 5 (Integer) Maximum depth allowed when using nested stacks.
max_resources_per_stack = 1000 (Integer) Maximum resources allowed per top-level stack. -1 stands for unlimited.
max_stacks_per_tenant = 100 (Integer) Maximum number of stacks any one tenant may have active at one time.
max_template_size = 524288 (Integer) Maximum raw byte size of any template.

Table 11.11.  Description of Redis configuration options

Configuration option = Default valueDescription
[matchmaker_redis]
check_timeout = 20000 (Integer) Time in ms to wait before the transaction is killed.
host = 127.0.0.1 (String) Host to locate redis.
password = (String) Password for Redis server (optional).
port = 6379 (Port number) Use this port to connect to redis host.
sentinel_group_name = oslo-messaging-zeromq (String) Redis replica set name.
sentinel_hosts = (List) List of Redis Sentinel hosts (fault tolerance mode) e.g. [host:port, host1:port ... ]
socket_timeout = 1000 (Integer) Timeout in ms on blocking socket operations
wait_timeout = 500 (Integer) Time in ms to wait between connection attempts.

Table 11.12.  Description of testing configuration options

Configuration option = Default valueDescription
[profiler]
enabled = False (Boolean) 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.
hmac_keys = SECRET_KEY (String) 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.
trace_sqlalchemy = False (Boolean) 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.

Table 11.13.  Description of trustee configuration options

Configuration option = Default valueDescription
[trustee]
auth_plugin = None (String) Name of the plugin to load
auth_section = None (String) Config Section from which to load plugin specific options

11.1. Configure APIs

The following options allow configuration of the APIs that Orchestration supports. Currently this includes compatibility APIs for CloudFormation and CloudWatch and a native API.

Table 11.14.  Description of API configuration options

Configuration option = Default valueDescription
[DEFAULT]
action_retry_limit = 5 (Integer) Number of times to retry to bring a resource to a non-error state. Set to 0 to disable retries.
enable_stack_abandon = False (Boolean) Enable the preview Stack Abandon feature.
enable_stack_adopt = False (Boolean) Enable the preview Stack Adopt feature.
encrypt_parameters_and_properties = False (Boolean) Encrypt template parameters that were marked as hidden and also all the resource properties before storing them in database.
heat_metadata_server_url = None (String) URL of the Heat metadata server. NOTE: Setting this is only needed if you require instances to use a different endpoint than in the keystone catalog
heat_stack_user_role = heat_stack_user (String) Keystone role for heat template-defined users.
heat_waitcondition_server_url = None (String) URL of the Heat waitcondition server.
heat_watch_server_url = (String) URL of the Heat CloudWatch server.
hidden_stack_tags = data-processing-cluster (List) Stacks containing these tag names will be hidden. Multiple tags should be given in a comma-delimited list (eg. hidden_stack_tags=hide_me,me_too).
max_json_body_size = 1048576 (Integer) Maximum raw byte size of JSON request body. Should be larger than max_template_size.
num_engine_workers = None (Integer) Number of heat-engine processes to fork and run.
observe_on_update = False (Boolean) On update, enables heat to collect existing resource properties from reality and converge to updated template.
stack_action_timeout = 3600 (Integer) Timeout in seconds for stack action (ie. create or update).
stack_domain_admin = None (String) Keystone username, a user with roles sufficient to manage users and projects in the stack_user_domain.
stack_domain_admin_password = None (String) Keystone password for stack_domain_admin user.
stack_scheduler_hints = False (Boolean) When this feature is enabled, scheduler hints identifying the heat stack context of a server or volume resource are passed to the configured schedulers in nova and cinder, for creates done using heat resource types OS::Cinder::Volume, OS::Nova::Server, and AWS::EC2::Instance. heat_root_stack_id will be set to the id of the root stack of the resource, heat_stack_id will be set to the id of the resource's parent stack, heat_stack_name will be set to the name of the resource's parent stack, heat_path_in_stack will be set to a list of tuples, (stackresourcename, stackname) with list[0] being (None, rootstackname), heat_resource_name will be set to the resource's name, and heat_resource_uuid will be set to the resource's orchestration id.
stack_user_domain_id = None (String) Keystone domain ID which contains heat template-defined users. If this option is set, stack_user_domain_name option will be ignored.
stack_user_domain_name = None (String) Keystone domain name which contains heat template-defined users. If `stack_user_domain_id` option is set, this option is ignored.
stale_token_duration = 30 (Integer) Gap, in seconds, to determine whether the given token is about to expire.
trusts_delegated_roles = (List) Subset of trustor roles to be delegated to heat. If left unset, all roles of a user will be delegated to heat when creating a stack.
[auth_password]
allowed_auth_uris = (List) Allowed keystone endpoints for auth_uri when multi_cloud is enabled. At least one endpoint needs to be specified.
multi_cloud = False (Boolean) Allow orchestration of multiple clouds.
[ec2authtoken]
allowed_auth_uris = (List) Allowed keystone endpoints for auth_uri when multi_cloud is enabled. At least one endpoint needs to be specified.
auth_uri = None (String) Authentication Endpoint URI.
ca_file = None (String) Optional CA cert file to use in SSL connections.
cert_file = None (String) Optional PEM-formatted certificate chain file.
insecure = False (Boolean) If set, then the server's certificate will not be verified.
key_file = None (String) Optional PEM-formatted file that contains the private key.
multi_cloud = False (Boolean) Allow orchestration of multiple clouds.
[eventlet_opts]
client_socket_timeout = 900 (Integer) 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.
wsgi_keep_alive = True (Boolean) If False, closes the client socket connection explicitly.
[heat_api]
backlog = 4096 (Integer) Number of backlog requests to configure the socket with.
bind_host = 0.0.0.0 (Unknown) Address to bind the server. Useful when selecting a particular network interface.
bind_port = 8004 (Port number) The port on which the server will listen.
cert_file = None (String) Location of the SSL certificate file to use for SSL mode.
key_file = None (String) Location of the SSL key file to use for enabling SSL mode.
max_header_line = 16384 (Integer) 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).
tcp_keepidle = 600 (Integer) 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.
workers = 0 (Integer) Number of workers for Heat service. Default value 0 means, that service will start number of workers equal number of cores on server.
[oslo_middleware]
max_request_body_size = 114688 (Integer) The maximum body size for each request, in bytes.
secure_proxy_ssl_header = X-Forwarded-Proto (String) DEPRECATED: The HTTP Header that will be used to determine what the original request protocol scheme was, even if it was hidden by an SSL termination proxy.
[oslo_policy]
policy_default_rule = default (String) Default rule. Enforced when a requested rule is not found.
policy_dirs = ['policy.d'] (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.
policy_file = policy.json (String) The JSON file that defines policies.
[oslo_versionedobjects]
fatal_exception_format_errors = False (Boolean) Make exception message format errors fatal
[paste_deploy]
api_paste_config = api-paste.ini (String) The API paste config file to use.
flavor = None (String) The flavor to use.

Table 11.15.  Description of Cloudformation-compatible API configuration options

Configuration option = Default valueDescription
[DEFAULT]
instance_connection_https_validate_certificates = 1 (String) Instance connection to CFN/CW API validate certs if SSL is used.
instance_connection_is_secure = 0 (String) Instance connection to CFN/CW API via https.
[heat_api_cfn]
backlog = 4096 (Integer) Number of backlog requests to configure the socket with.
bind_host = 0.0.0.0 (Unknown) Address to bind the server. Useful when selecting a particular network interface.
bind_port = 8000 (Port number) The port on which the server will listen.
cert_file = None (String) Location of the SSL certificate file to use for SSL mode.
key_file = None (String) Location of the SSL key file to use for enabling SSL mode.
max_header_line = 16384 (Integer) 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).
tcp_keepidle = 600 (Integer) 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.
workers = 1 (Integer) Number of workers for Heat service.

Table 11.16.  Description of CloudWatch API configuration options

Configuration option = Default valueDescription
[DEFAULT]
enable_cloud_watch_lite = False (Boolean) Enable the legacy OS::Heat::CWLiteAlarm resource.
heat_watch_server_url = (String) URL of the Heat CloudWatch server.
[heat_api_cloudwatch]
backlog = 4096 (Integer) Number of backlog requests to configure the socket with.
bind_host = 0.0.0.0 (Unknown) Address to bind the server. Useful when selecting a particular network interface.
bind_port = 8003 (Port number) The port on which the server will listen.
cert_file = None (String) Location of the SSL certificate file to use for SSL mode.
key_file = None (String) Location of the SSL key file to use for enabling SSL mode.
max_header_line = 16384 (Integer) 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.)
tcp_keepidle = 600 (Integer) 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.
workers = 1 (Integer) Number of workers for Heat service.

Table 11.17.  Description of metadata API configuration options

Configuration option = Default valueDescription
[DEFAULT]
heat_metadata_server_url = None (String) URL of the Heat metadata server. NOTE: Setting this is only needed if you require instances to use a different endpoint than in the keystone catalog

Table 11.18.  Description of waitcondition API configuration options

Configuration option = Default valueDescription
[DEFAULT]
heat_waitcondition_server_url = None (String) URL of the Heat waitcondition server.