Configuration Options

Configuration Options

The following is an overview of all available configuration options in Placement. For a sample configuration file, refer to Sample Configuration File.

DEFAULT

tempdir
Type:string
Default:<None>

Explicitly specify the temporary working directory.

pybasedir
Type:string
Default:<Path>

This option has a sample default set, which means that its actual default value may vary from the one documented above.

The directory where the Placement python modules are installed.

This is the default path for other config options which need to persist Placement internal data. It is very unlikely that you need to change this option from its default value.

Possible values:

  • The full path to a directory.

Related options:

  • state_path
state_path
Type:string
Default:$pybasedir

The top-level directory for maintaining state used in Placement.

This directory is used to store Placement’s internal state. It is used by some tests that have behaviors carried over from Nova.

Possible values:

  • The full path to a directory. Defaults to value provided in pybasedir.

api

Options under this group are used to define Placement API.

auth_strategy
Type:string
Default:keystone
Valid Values:keystone, noauth2

This determines the strategy to use for authentication: keystone or noauth2. ‘noauth2’ is designed for testing only, as it does no actual credential checking. ‘noauth2’ provides administrative credentials only if ‘admin’ is specified as the username.

Deprecated Variations
Group Name
DEFAULT auth_strategy

keystone_authtoken

www_authenticate_uri
Type:string
Default:<None>

Complete “public” Identity API endpoint. This endpoint should not be an “admin” endpoint, as it should be accessible by all end users. Unauthenticated clients are redirected to this endpoint to authenticate. Although this endpoint should ideally be unversioned, client support in the wild varies. If you’re using a versioned v2 endpoint here, then this should not be the same endpoint the service user utilizes for validating tokens, because normal end users may not be able to reach that endpoint.

Deprecated Variations
Group Name
keystone_authtoken auth_uri
auth_uri
Type:string
Default:<None>

Complete “public” Identity API endpoint. This endpoint should not be an “admin” endpoint, as it should be accessible by all end users. Unauthenticated clients are redirected to this endpoint to authenticate. Although this endpoint should ideally be unversioned, client support in the wild varies. If you’re using a versioned v2 endpoint here, then this should not be the same endpoint the service user utilizes for validating tokens, because normal end users may not be able to reach that endpoint. This option is deprecated in favor of www_authenticate_uri and will be removed in the S release.

Warning

This option is deprecated for removal since Queens. Its value may be silently ignored in the future.

Reason:The auth_uri option is deprecated in favor of www_authenticate_uri and will be removed in the S release.
auth_version
Type:string
Default:<None>

API version of the admin Identity API endpoint.

delay_auth_decision
Type:boolean
Default:false

Do not handle authorization requests within the middleware, but delegate the authorization decision to downstream WSGI components.

http_connect_timeout
Type:integer
Default:<None>

Request timeout value for communicating with Identity API server.

http_request_max_retries
Type:integer
Default:3

How many times are we trying to reconnect when communicating with Identity API Server.

cache
Type:string
Default:<None>

Request environment key where the Swift cache object is stored. When auth_token middleware is deployed with a Swift cache, use this option to have the middleware share a caching backend with swift. Otherwise, use the memcached_servers option instead.

certfile
Type:string
Default:<None>

Required if identity server requires client certificate

keyfile
Type:string
Default:<None>

Required if identity server requires client certificate

cafile
Type:string
Default:<None>

A PEM encoded Certificate Authority to use when verifying HTTPs connections. Defaults to system CAs.

insecure
Type:boolean
Default:false

Verify HTTPS connections.

region_name
Type:string
Default:<None>

The region in which the identity server can be found.

signing_dir
Type:string
Default:<None>

Directory used to cache files related to PKI tokens. This option has been deprecated in the Ocata release and will be removed in the P release.

Warning

This option is deprecated for removal since Ocata. Its value may be silently ignored in the future.

Reason:PKI token format is no longer supported.
memcached_servers
Type:list
Default:<None>

Optionally specify a list of memcached server(s) to use for caching. If left undefined, tokens will instead be cached in-process.

Deprecated Variations
Group Name
keystone_authtoken memcache_servers
token_cache_time
Type:integer
Default:300

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.

memcache_security_strategy
Type:string
Default:None
Valid Values:None, MAC, ENCRYPT

(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_secret_key
Type:string
Default:<None>

(Optional, mandatory if memcache_security_strategy is defined) This string is used for key derivation.

memcache_pool_dead_retry
Type:integer
Default:300

(Optional) Number of seconds memcached server is considered dead before it is tried again.

memcache_pool_maxsize
Type:integer
Default:10

(Optional) Maximum total number of open connections to every memcached server.

memcache_pool_socket_timeout
Type:integer
Default:3

(Optional) Socket timeout in seconds for communicating with a memcached server.

memcache_pool_unused_timeout
Type:integer
Default:60

(Optional) Number of seconds a connection to memcached is held unused in the pool before it is closed.

memcache_pool_conn_get_timeout
Type:integer
Default:10

(Optional) Number of seconds that an operation will wait to get a memcached client connection from the pool.

memcache_use_advanced_pool
Type:boolean
Default:false

(Optional) Use the advanced (eventlet safe) memcached client pool. The advanced pool will only work under python 2.x.

include_service_catalog
Type:boolean
Default:true

(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.

enforce_token_bind
Type:string
Default:permissive

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
Type:list
Default:md5

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.

Warning

This option is deprecated for removal since Ocata. Its value may be silently ignored in the future.

Reason:PKI token format is no longer supported.
service_token_roles
Type:list
Default:service

A choice of roles that must be present in a service token. Service tokens are allowed to request that an expired token can be used and so this check should tightly control that only actual services should be sending this token. Roles here are applied as an ANY check so any role in this list must be present. For backwards compatibility reasons this currently only affects the allow_expired check.

service_token_roles_required
Type:boolean
Default:false

For backwards compatibility reasons we must let valid service tokens pass that don’t pass the service_token_roles check as valid. Setting this true will become the default in a future release and should be enabled if possible.

auth_type
Type:unknown type
Default:<None>

Authentication type to load

Deprecated Variations
Group Name
keystone_authtoken auth_plugin
auth_section
Type:unknown type
Default:<None>

Config Section from which to load plugin specific options

placement

randomize_allocation_candidates
Type:boolean
Default:false

If True, when limiting allocation candidate results, the results will be a random sampling of the full result set. If False, allocation candidates are returned in a deterministic but undefined order. That is, all things being equal, two requests for allocation candidates will return the same results in the same order; but no guarantees are made as to how that order is determined.

policy_file
Type:string
Default:policy.yaml

The file that defines placement policies. This can be an absolute path or relative to the configuration file.

incomplete_consumer_project_id
Type:string
Default:00000000-0000-0000-0000-000000000000

Early API microversions (<1.8) allowed creating allocations and not specifying a project or user identifier for the consumer. In cleaning up the data modeling, we no longer allow missing project and user information. If an older client makes an allocation, we’ll use this in place of the information it doesn’t provide.

incomplete_consumer_user_id
Type:string
Default:00000000-0000-0000-0000-000000000000

Early API microversions (<1.8) allowed creating allocations and not specifying a project or user identifier for the consumer. In cleaning up the data modeling, we no longer allow missing project and user information. If an older client makes an allocation, we’ll use this in place of the information it doesn’t provide.

placement_database

The Placement API Database is a the database used with the placement service. If the connection option is not set, the placement service will not start.

connection
Type:string
Default:<None>

The SQLAlchemy connection string to use to connect to the database.

connection_parameters
Type:string
Default:''

Optional URL parameters to append onto the connection URL at connect time; specify as param1=value1&param2=value2&…

sqlite_synchronous
Type:boolean
Default:true

If True, SQLite uses synchronous mode.

slave_connection
Type:string
Default:<None>

The SQLAlchemy connection string to use to connect to the slave database.

mysql_sql_mode
Type:string
Default:TRADITIONAL

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=

connection_recycle_time
Type:integer
Default:3600

Connections which have been present in the connection pool longer than this number of seconds will be replaced with a new one the next time they are checked out from the pool.

max_pool_size
Type:integer
Default:<None>

Maximum number of SQL connections to keep open in a pool. Setting a value of 0 indicates no limit.

max_retries
Type:integer
Default:10

Maximum number of database connection retries during startup. Set to -1 to specify an infinite retry count.

retry_interval
Type:integer
Default:10

Interval between retries of opening a SQL connection.

max_overflow
Type:integer
Default:<None>

If set, use this value for max_overflow with SQLAlchemy.

connection_debug
Type:integer
Default:0

Verbosity of SQL debugging information: 0=None, 100=Everything.

connection_trace
Type:boolean
Default:false

Add Python stack traces to SQL as comment strings.

pool_timeout
Type:integer
Default:<None>

If set, use this value for pool_timeout with SQLAlchemy.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.