puppet-neutron/manifests/agents/l2gw.pp
Takashi Kajinami a080398821 Restart specific agents after updating agent config
Currently we restart all neutron services regardless of the config
files being updated. This is the first step to improve that redundancy
and update the notification to restart only a specific agent service
when an agent config file is updated.

Change-Id: Ibe22978383c2e1758d91b7bee545479e947829d0
2023-07-26 21:42:00 +09:00

132 lines
4.5 KiB
Puppet

# == Class: neutron::agents::l2gw
#
# Installs and configures the Neutron L2gw service
#
# === Parameters
#
# [*package_ensure*]
# (optional) The state of the package
# Defaults to present
#
# [*enabled*]
# (optional) The state of the service
# Defaults to true
#
# [*manage_service*]
# (optional) Whether to start/stop the service
# Defaults to true
#
# [*debug*]
# (optional) Print debug info in logs
# Defaults to $facts['os_service_default']
#
# [*ovsdb_hosts*]
# (optional) OVSDB server tuples in the format
# Example: ovsdb_hosts = 'ovsdb1:16.95.16.1:6632,ovsdb2:16.95.16.2:6632'
# Defaults to $facts['os_service_default']
#
# [*enable_manager*]
# (optional) connection can be initiated by the ovsdb server.
# Defaults to false
#
# [*manager_table_listening_port*]
# (optional) set port number for l2gateway agent, so that it can listen
# Defaults to '6632'
#
# [*l2_gw_agent_priv_key_base_path*]
# (optional) Base path to private key file(s).
# Example: l2_gw_agent_priv_key_base_path = '/home/someuser/keys'
# Defaults to $facts['os_service_default']
#
# [*l2_gw_agent_cert_base_path*]
# (optional) Base path to cert file(s).
# Example: l2_gw_agent_cert_base_path = '/home/someuser/certs'
# Defaults to $facts['os_service_default']
#
# [*l2_gw_agent_ca_cert_base_path*]
# (optional) Base path to ca cert file(s).
# Example: l2_gw_agent_ca_cert_base_path = '/home/someuser/ca_certs'
# Defaults to $facts['os_service_default']
#
# [*periodic_interval*]
# (optional) The L2 gateway agent checks connection state with the OVSDB
# servers. The interval is number of seconds between attempts.
# Example: periodic_interval = 20
# Defaults to $facts['os_service_default']
#
# [*max_connection_retries*]
# (optional) The L2 gateway agent retries to connect to the OVSDB server
# Example: max_connection_retries = 10
# Defaults to $facts['os_service_default']
#
# [*socket_timeout*]
# (optional) socket timeout
# Defaults to '30'
#
# [*purge_config*]
# (optional) Whether to set only the specified config options
# in the l2gateway config.
# Default to false.
#
class neutron::agents::l2gw (
$package_ensure = 'present',
Boolean $enabled = true,
Boolean $manage_service = true,
$debug = $facts['os_service_default'],
$ovsdb_hosts = $facts['os_service_default'],
$enable_manager = false,
$manager_table_listening_port = '6632',
$l2_gw_agent_priv_key_base_path = $facts['os_service_default'],
$l2_gw_agent_cert_base_path = $facts['os_service_default'],
$l2_gw_agent_ca_cert_base_path = $facts['os_service_default'],
$periodic_interval = $facts['os_service_default'],
$max_connection_retries = $facts['os_service_default'],
$socket_timeout = '30',
Boolean $purge_config = false,
) {
include neutron::deps
include neutron::params
resources { 'neutron_l2gw_agent_config':
purge => $purge_config,
}
neutron_l2gw_agent_config {
'DEFAULT/debug': value => $debug;
'ovsdb/ovsdb_hosts': value => join(any2array($ovsdb_hosts), ',');
'ovsdb/enable_manager': value => $enable_manager;
'ovsdb/manager_table_listening_port': value => $manager_table_listening_port;
'ovsdb/l2_gw_agent_priv_key_base_path': value => $l2_gw_agent_priv_key_base_path;
'ovsdb/l2_gw_agent_cert_base_path': value => $l2_gw_agent_cert_base_path;
'ovsdb/l2_gw_agent_ca_cert_base_path': value => $l2_gw_agent_ca_cert_base_path;
'ovsdb/max_connection_retries': value => $max_connection_retries;
'ovsdb/socket_timeout': value => $socket_timeout;
'ovsdb/periodic_interval': value => $periodic_interval;
}
if $::neutron::params::l2gw_agent_package {
package { 'neutron-l2gw-agent':
ensure => $package_ensure,
name => $::neutron::params::l2gw_agent_package,
tag => ['openstack', 'neutron-package'],
}
}
if $manage_service {
if $enabled {
$service_ensure = 'running'
} else {
$service_ensure = 'stopped'
}
service { 'neutron-l2gw-agent':
ensure => $service_ensure,
name => $::neutron::params::l2gw_agent_service,
enable => $enabled,
tag => 'neutron-service',
}
Neutron_l2gw_agent_config<||> ~> Service['neutron-l2gw-agent']
}
}