Settings description
The following tables describe the config.yaml
configuration file settings:
Common settings
Setting |
Description |
common |
Defines generic Decapod settings not related to API or controller. You
can specify the following parameters:
password
Describes settings for Decapod key derivation function. Decapod does
not store user passwords in plain text. Instead, it uses key
derivation functions to calculate a cryptographic secure hash from the
password. To do so, it uses the
Argon2 key
derivation function that is similar to the scrypt key derivation
function but has a property for
defense against concurrent attacks with GPUs.
To change the default settings, follow the
Argon2 documentation.
password_reset_ttl_in_seconds
- Sets the TTL value in seconds for the password reset token. When
resetting the password, the user gets a secret token. Consuming this
token performs the actual password reset. This parameter sets the TTL
of such token. The token is valid only for the specified amount of
time and expires after.
email
- Defines how to send emails from Decapod. The
from parameter
defines the email to set in the From field. The enabled
parameter (boolean) enables or disables the email sending. If
disabled, all other fields in this section are ignored.
|
The api
section contains settings specific to the API service only. Some
parameters propagate directly to Flask.
For Flask settings description, see
Flask documentation.
The following parameters are related to Flask:
DEBUG
TESTING
LOGGER_NAME
LOGGER_HANDLER_POLICY
JSON_SORT_KEYS
JSON_AS_ASCII
JSONIFY_PRETTYPRINT_REGULAR
If you are not sure which parameter to specify, use the default ones.
The following parameters of the api
section are Decapod-related:
Decapod-related API settings
Setting |
Description |
pagination_per_page |
Sets a default count of items per page in paginated listings. If the
number of items is less than pagination_per_page , then fewer
elements would be returned. |
server_discovery_token |
Defines the server discovery token. Servers found during the server
discovery must have an authentication token to access the
POST /v1/server API endpoint. This token does not refer to any
certain user and allows accessing only the mentioned API endpoint.
However, Ansible will access the remote host to gather facts and
verify the access. |
reset_password_url |
Defines the template of the URL that will be used for generating the
email during the password reset. The email sent to the user will
contain this URL. Decapod will replace {reset_token} to a correct
password reset token. |
token |
Contains configuration for authentication tokens. The
ttl_in_seconds is the TTL value in seconds. This parameter applies
only to newly generated tokens. This section is used only if native
authentication back end is enabled. For example, Keystone integration
will not use this parameter because Keystone manages its own tokens. |
logging |
Defines specific parameters for logging in API. Applies the parameters
specified in the logging setting to API only. |
auth |
Configures the authentication back end used by Decapod. If not
specified, the native authentication back end with default
configuration is used. The type parameter defines the type of the
back end to use and parameters define the back-end configuration.
for details on available authentication back ends, see
Authentication back ends. |
Controller settings
Setting |
Description |
controller |
Defines specific settings for the controller service. This service
manages the task queue and runs Ansible for tasks. You can specify the
following parameters:
daemon
- Defines whether to run the controller service as a UNIX daemon. If you
use
systemd or Docker containers, set this to false .
pidfile
- Defines the PIDFile for the daemon if the controller service is run as
a daemon.
ansible_config
- Defines the path to the default Ansible configuration to use. You can
leave this parameter as is.
worker_threads
- Defines the number of workers per controller. The controller service
uses the worker pool to manage Ansible executions concurrently. The
0 value means to define this number automatically. By default, it
is 2 * cpu_count .
graceful_stop
- Defines the graceful stop for external processes in seconds. Since
the controller service executes a number of processes, it cannot be
stopped immediately, the processes should be correctly finished.
Initially, the controller service sends the
SIGTERM signal to the
processes and if they do not stop after the amount of time specified
in graceful_stop , the controller service stops them with
SIGKILL .
logging
- Defines specific parameters for logging in the controller service.
Applies the parameters specified in the
logging setting to the
controller service only.
|
Cron settings
Setting |
Description |
cron |
Defines Cron-related settings. You can specify the following parameters:
clean_finished_tasks_after_seconds
- Defines the TTL for finished tasks. After the specified amount of
time, the tasks will be purged from the database. This is related
only to finished tasks that were completed or failed and is not
related to not started tasks.
|
Database settings
Setting |
Description |
db |
Defines the MongoDB-related settings, for example, how to connect to
the database and some specifics of the database client configuration.
You can specify the following parameters:
uri
- Defines the URI to connect to MongoDB. For information on connection
URIs, see the
MongoDB documentation.
connect
- Defines whether Decapod will connect to MongoDB immediately after
initialization of a client or on the first request. We suggest that
you keep this parameter value
false .
socket_timeout
- Defines the amount of time in milliseconds the driver will wait
during server monitoring when connecting a new socket to a server
before concluding that the server is unavailable.
socket_timeout
- Defines the amount of time in milliseconds the driver will wait for
a response after sending an ordinary (non-monitoring) database
operation before concluding that a network error has occurred.
pool_size
- Defines the maximum allowed number of concurrent connections to
each connected server. Requests to a server will be blocked if there
are more connections to the requested served than defined in
pool_size .
gridfs_chunk_size_in_bytes
- Defines the size of file chunk (a part of the file, stored in a
separate document) for
GridFS. It is 255
kilobytes by default.
|
Plugins and logs settings
Setting |
Description |
plugins |
Describes what to do with plugins: disable, enable, and others. All
plugins are split into 2 categories, alerts and plugins .
- The
alerts section contains a list of enabled alerts plugins
responsible for issues alerting, for example, in case of a 500
error. Every parameter except enabled defines how to set up each
alert plugin.
- The
playbooks section has only 1 parameter: disabled that
lists the plugins that are disabled even if installed.
|
logging |
Defines the configuration of Decapod logging. For more information on
this setting and its options, see
Python documentation. |