# An example for an ovirt-imageio configuration file.
#
# Below is a list of available options which can be configured.
# imageio supports drop-in configuration, which means there can
# be multiple config files, which are all read in succession to get
# final configuration.
#
# imageio searches the following directories for config files:
# - /etc/ovirt-imageio/conf.d/ where admins should place their configs.
# Also oVirt engine-setup writes there a config file.
# - /usr/lib/ovirt-imageio/conf.d/ where vendor configs should be placed.
#
# Config files have to be in the directories listed above and must have *.conf
# suffix. Files are read in alphabetical order, taking into account only
# base name of the config file, not directory name. E.g. if there are two
# config files, 50-vdsm.conf and 99-admin.conf (see conf.d listing below),
# config options specified in 99-admin.conf will overwrite corresponding
# config options in 50-vdsm.conf.
#
# $ tree /etc/ovirt-imageio/conf.d/
# /etc/ovirt-imageio/conf.d/
# ├── 50-vdsm.conf
# └── 99-admin.conf
#
# You can check the final configuration by executing
#
# ovirt-imageio --show-config
[daemon]
# Interval in seconds for checking termination conditions.
# The default internal:
# poll_interval = 1.0
# Maximum number of connections for same /image/ticket-id URL. Using more
# connections improves throughput of a single image transfer. When transferring
# images concurrently, using more connections per transfer may decrease
# throughput.
#
# Some backends do not support more than 8 connections, regardless of this
# value set here. Some backends limit the number of writers regardless of the
# value set here.
#
# To disable multiple connections set the value to 1. This will ensure single
# reader or writer for upload and downloads.
#
# The default value:
# max_connections = 8
# Number of seconds before unauthorized connections are
# disconnected.
# The default value:
# auth_timeout = 15
# Number of seconds before inactive connections are disconnected.
# Clients with special needs can request a larger timeout when
# creating an image transfer.
# The default value:
# inactivity_timeout = 60
[tls]
# Enable TLS. Note that without TLS transfer tickets and image data are
# transferred in clear text. If TLS is enabled, paths to related files
# with keys/certificates (see lines below) have to be configured as well,
# otherwise server will fails to start.
# The default value:
# enable = true
# Private key file.
# There's no default private key and needs to be configured if tls is
# enabled:
# key_file =
# Certificate file.
# There's no default cert file and needs to be configured if tls is
# enabled:
# cert_file =
# CA certificate file.
# This should be configured if tls is enabled and cert_file is not
# signed by a certificate authority trusted by the host. An example is
# the default self-signed certificate used in oVirt. Leave empty if
# cert_file is signed by a trusted certificate authority.
# ca_file =
# Enable TLSv1.1, for legacy user applications that do not support TLSv1.2.
# The default value:
# enable_tls1_1 = false
[backend_file]
# Buffer size in bytes for reading and writing using the file backend.
# The default value seems to give optimal throughput with both low end
# and high end storage, using iSCSI and FC. Larger values may increase
# throughput slightly, but may also decrease it significantly. The
# default value was tested with single connection and requires more
# testing with multiple connections.
# The default buffer size:
# buffer_size = 8388608
[backend_http]
# CA certificate file to be used with HTTP backend. Empty value is valid,
# meaning use CA file configured in TLS section.
# This option has to be used when the daemon serving as a proxy uses
# different CA than daemon serving storage backend. In most of the cases
# these CAs are the same and one would use same value as configured in
# tls.ca_file option.
# The default value:
# ca_file =
# Buffer size in bytes for handling proxy requests. The default value
# was copied from the file backend and requires more testing with
# multiple connections.
# The default buffer size:
# buffer_size = 8388608
[backend_nbd]
# Buffer size in bytes for reading and writing to the nbd backend. The
# default value was copied from the file backend and requires more
# testing with multiple connections.
# The default buffer size:
# buffer_size = 8388608
[remote]
# Remote service interface. Use "::" to listen on any interface on both
# IPv4 and IPv6. To listen only on IPv4, use "0.0.0.0".
# The default value:
# host = ::
# Remote service port. Changing this value requires changes in the
# firewall rules on the host, and changing this value in engine
# configuration.
# The defualt value:
# port = 54322
[local]
# Enable local service.
# The defualt value:
# enable = true
# Local service socket for accessing images locally.
# The default socket:
# socket = "\0/org/ovirt/imageio"
# Set to empty to use random socket:
# socket =
[control]
# Transport be used to communicate with control service socket.
# Can be either "tcp" or "unix". If "unix" is used, communication will
# be done over UNIX socket which path is specified in "socket" option.
# In case of TCP transport, you must specify the port using "port" option.
# Preferred transport is unix as has better security - only users in
# ovirtimg group can read/write into the socket.
# transport = "unix"
# Control service socket path. This socket is used to control the daemon
# and must be accessible only to the program controlling the daemon.
# The default value:
# socket = /run/ovirt-imageio/sock
# Control service port when run over TCP. Changing this value require
# changing this value in engine configuration.
# The default value is not set. If you want to use TCP transport, you
# must specify port.
# port = -1
# Determines if IPv4 address should be preferred when the address of
# control service is resolved. This option allows compatibility with java
# clients which may prefer IPv4 address and don't try other addresses on
# dual stack system.
# prefer_ipv4 = true
# Number of seconds to wait when removing a ticket. If ticket cannot be removed
# within this timeout, the request will fail with "409 Conflict", and the user
# need to retry the request again. A ticket can be removed only when the number
# of connections using the ticket is zero.
# The default value:
# remove_timeout = 60
[profile]
# Filename for storing profile data. Profiling requires the "yappi"
# package. Version 0.93 is recommended for best performance.
# The default filename:
# filename = /run/ovirt-imageio/profile
# Logger configuration.
# See Python logging documentation for details how to configure loggers.
# (https://docs.python.org/3/howto/logging.html)
[loggers]
keys = root
[handlers]
keys = logfile
[formatters]
keys = long
[logger_root]
level = INFO
handlers = logfile
propagate = 0
[handler_logfile]
class = logging.handlers.RotatingFileHandler
args = ('/var/log/ovirt-imageio/daemon.log',)
kwargs = {'maxBytes': 20971520, 'backupCount': 10}
level = DEBUG
formatter = long
[handler_stderr]
class = logging.StreamHandler
level = DEBUG
formatter = long
[formatter_long]
format = %(asctime)s %(levelname)-7s (%(threadName)s) [%(name)s] %(message)s