An example configuration can be found here - https://github.com/CentOS/duffy/blob/dev/etc/duffy-example-config.yaml
# `app` section
This section has all the configuration settings for the `duffy` application.
## Key/value pairs
1. `loglevel` - Set the default loglevel for the `duffy` application.
2. `host` - Set the default host address for the `duffy` application to listen to.
3. `port` - Set the default port number for the `duffy` application to listen to.
4. `logging` - Set the global logging configuration for the parts of the `duffy` application.
# `metaclient` section
This section has all the configuration settings for the `duffy` metaclient application.
## Key/value pairs
1. `loglevel` - Set the default loglevel for the `duffy` metaclient application.
2. `host` - Set the default host address for the `duffy` metaclient application to listen to.
3. `port` - Set the default port number for the `duffy` metaclient application to listen to.
4. `dest` - Set the destination address and port number for the deployed `duffy` application.
5. `usermap` - Set the mapping of UUIDs with legacy `duffy` usernames.
6. `poolmap` - Set the mapping of poolname and hardware configuration (`version` and `arch`).
# `tasks` section
This section has all the configuration settings required for the `duffy` worker backend.
## Key/value pairs
1. `celery` - Configure the Celery backend.
1. `broker_url` - Set the address to a reachable Redis store.
2. `result_backend` - Set the address to a reachable Redis store.
3. `worker_redirect_stdouts_level` - Set the loglevel for worker redirect operations.
2. `locking` - Configure the Celery backend.
1. `url` - Set the address to a reachable Redis store.
3. `periodic` - Configure recurring operations.
1. `fill-pools` - Configure checking for new devices for the pools.
1. `interval` - Set the interval in seconds for the period.
1. `expire-sessions` - Configure checking for provisioned nodes reaching expiry.
1. `interval` - Set the interval in seconds for the period.
# `database` section
This section has all the configuration settings required for the `duffy` database.
## Key/value pairs
1. `sqlalchemy` - Configure SQLAlchemy settings.
1. `sync_url` - Set the reachable database location for synchronous database operations.
2. `async_url` - Set the reachable database location for asynchronous database operations.
# `misc` section
This section has all the configuration settings required for the session allowed time.
## Key/value pairs
1. `session-lifetime` - Set the allowed time for a normal session.
2. `session-lifetime-max` - Set the allowed time for an extended session.
# `nodepools` section
This section has all the configuration settings required for describing node pools.
## Key/value pairs
1. `abstract` - Set the Ansible paths and settings for physical and virtual nodes.
2. `concrete` - Set the settings for physical and virtual nodes by extending configs.