Skip to content

Ops: Configuration

Nils Philippsen edited this page Jul 27, 2022 · 2 revisions

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
  • loglevel - Set the default loglevel for the duffy application.
  • host - Set the default host address for the duffy application to listen to.
  • port - Set the default port number for the duffy application to listen to.
  • 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
  • loglevel - Set the default loglevel for the duffy metaclient application.
  • host - Set the default host address for the duffy metaclient application to listen to.
  • port - Set the default port number for the duffy metaclient application to listen to.
  • dest - Set the destination address and port number for the deployed duffy application.
  • usermap - Set the mapping of UUIDs with legacy duffy usernames.
  • poolmap - Set the mapping of poolname and hardware configuration (version and arch).
  • mangle_hostname - Optional Jinja template to mangle host names returned from the API. The hostname variable will be passed into the template for filtering. For example, to strip off second- and top-level domains: mangle_hostname: "{{ hostname | replace('.domain.tld', '') }}"

tasks section

This section has all the configuration settings required for the duffy worker backend.

Key/value pairs
  • celery - Configure the Celery backend.
    • broker_url - Set the address to a reachable Redis store.
    • result_backend - Set the address to a reachable Redis store.
    • worker_redirect_stdouts_level - Set the loglevel for worker redirect operations.
  • locking - Configure the Celery backend.
    • url - Set the address to a reachable Redis store.
  • periodic - Configure recurring operations.
    • fill-pools - Configure checking for new devices for the pools.
      • interval - Set the interval in seconds for the period.
    • expire-sessions - Configure checking for provisioned nodes reaching expiry.
      • 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
  • sqlalchemy - Configure SQLAlchemy settings.
    • sync_url - Set the reachable database location for synchronous database operations.
    • 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
  • session-lifetime - Set the allowed time for a normal session.
  • 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
  • abstract - Set the Ansible paths and settings for physical and virtual nodes.
  • concrete - Set the settings for physical and virtual nodes by extending configs.