puppet-designate/manifests/mdns.pp

132 lines
3.9 KiB
Puppet

# == Class designate::mdns
#
# Configure designate Mini DNS service
#
# === Parameters:
#
# [*package_ensure*]
# (Optional) The state of the package.
# Defaults to 'present'.
#
# [*mdns_package_name*]
# (Optional) Name of the package containing mdns resources.
# Defaults to mdns_package_name from designate::params.
#
# [*enabled*]
# (Optional) Whether to enable services.
# Defaults to true.
#
# [*manage_service*]
# (Optional) Whether the designate mdns service will be managed.
# Defaults to true.
#
# [*workers*]
# (Optional) Number of mdns worker processes to spawn.
# Defaults to $facts['os_workers'].
#
# [*threads*]
# (Optional) Number of mdns greenthreads to spawn.
# Defaults to $facts['os_service_default'].
#
# [*tcp_backlog*]
# (Optional) mDNS TCP Backlog.
# Defaults to $facts['os_service_default'].
#
# [*tcp_recv_timeout*]
# (Optional) mDNS TCP Receive Timeout.
# Defaults to $facts['os_service_default'].
#
# [*query_enforce_tsig*]
# (Optional) Enforce all incoming queries (including AXFR) are TSIG signed.
# Defaults to $facts['os_service_default'].
#
# [*max_message_size*]
# (Optional) Maximum message size to emit.
# Defaults to $facts['os_service_default'].
#
# [*listen*]
# (Optional) mDNS host:port pairs to listen on.
# Defaults to $facts['os_service_default'].
#
# DEPRECATED PARAMETERS
#
# [*topic*]
# (Optional) RPC topic name for mdns.
# Defaults to undef.
#
# [*all_tcp*]
# (Optional) Send all traffic over TCP.
# Defaults to undef.
#
# [*xfr_timeout*]
# (Optional) Timeout in seconds for XFR's.
# Defaults to undef.
#
# [*storage_driver*]
# (Optional) The storage driver to use.
# Defaults to undef.
#
class designate::mdns (
$package_ensure = present,
$mdns_package_name = $::designate::params::mdns_package_name,
Boolean $enabled = true,
Boolean $manage_service = true,
$workers = $facts['os_workers'],
$threads = $facts['os_service_default'],
$tcp_backlog = $facts['os_service_default'],
$tcp_recv_timeout = $facts['os_service_default'],
$query_enforce_tsig = $facts['os_service_default'],
$max_message_size = $facts['os_service_default'],
$listen = $facts['os_service_default'],
# DEPRECATED PARAMETERS
$topic = undef,
$all_tcp = undef,
$xfr_timeout = undef,
$storage_driver = undef,
) inherits designate::params {
include designate::deps
include designate::db
if $topic != undef {
warning('The topic parameter is deprecated and has no effect')
}
['all_tcp', 'xfr_timeout'].each |$opt| {
if getvar($opt) != undef {
warning("The designate::mdns::${opt} parameter is deprecated and has no effect. \
Use the designate::worker::${opt} parameter instead.")
}
}
if $storage_driver {
warning('The storage driver parameter is deprecated and has no effect')
}
designate_config {
'service:mdns/workers' : value => $workers;
'service:mdns/threads' : value => $threads;
'service:mdns/tcp_backlog' : value => $tcp_backlog;
'service:mdns/tcp_recv_timeout' : value => $tcp_recv_timeout;
'service:mdns/query_enforce_tsig' : value => $query_enforce_tsig;
'service:mdns/max_message_size' : value => $max_message_size;
'service:mdns/listen' : value => join(any2array($listen), ',');
}
# TODO(tkajinam): Remove this after 2024.1 release.
designate_config {
'service:mdns/all_tcp' : ensure => absent;
'service:mdns/topic' : ensure => absent;
'service:mdns/xfr_timeout' : ensure => absent;
'service:mdns/storage_driver': ensure => absent;
}
designate::generic_service { 'mdns':
enabled => $enabled,
manage_service => $manage_service,
package_ensure => $package_ensure,
package_name => $mdns_package_name,
service_name => $::designate::params::mdns_service_name,
}
}