Add support for logging service plugin configuration

This patch adds possibility to configure logging's service plugin
in Neutron.
See [1] for details.

[1] https://docs.openstack.org/neutron/latest/admin/config-logging.html

Conflicts:
    manifests/agents/ml2/ovs.pp

Change-Id: I569fa71e84582b8deb1b45dee6b619d511692b36
(cherry picked from commit 61f4fc966b)
This commit is contained in:
Slawek Kaplonski 2021-08-11 11:48:17 +02:00
parent 2d67a8474c
commit bd97629f73
7 changed files with 178 additions and 92 deletions

View File

@ -95,6 +95,23 @@
# (optional) Name of Open vSwitch bridge to use
# Defaults to $::os_service_default
#
# [*network_log_rate_limit*]
# (Optional) Maximum packets logging per second.
# Used by logging service plugin.
# Defaults to $::os_service_default.
# Minimum possible value is 100.
#
# [*network_log_burst_limit*]
# (Optional) Maximum number of packets per rate_limit.
# Used by logging service plugin.
# Defaults to $::os_service_default.
# Minimum possible value is 25.
#
# [*network_log_local_output_log_base*]
# (Optional) Output logfile path on agent side, default syslog file.
# Used by logging service plugin.
# Defaults to $::os_service_default.
#
# DEPRECATED PARAMETERS
#
# [*gateway_external_network_id*]
@ -102,26 +119,29 @@
# Defaults to undef
#
class neutron::agents::l3 (
$package_ensure = 'present',
$enabled = true,
$manage_service = true,
$debug = $::os_service_default,
$interface_driver = 'neutron.agent.linux.interface.OVSInterfaceDriver',
$handle_internal_only_routers = $::os_service_default,
$metadata_port = $::os_service_default,
$periodic_interval = $::os_service_default,
$periodic_fuzzy_delay = $::os_service_default,
$enable_metadata_proxy = $::os_service_default,
$ha_enabled = false,
$ha_vrrp_auth_type = 'PASS',
$ha_vrrp_auth_password = $::os_service_default,
$ha_vrrp_advert_int = '3',
$agent_mode = 'legacy',
$purge_config = false,
$availability_zone = $::os_service_default,
$extensions = $::os_service_default,
$radvd_user = $::os_service_default,
$ovs_integration_bridge = $::os_service_default,
$package_ensure = 'present',
$enabled = true,
$manage_service = true,
$debug = $::os_service_default,
$interface_driver = 'neutron.agent.linux.interface.OVSInterfaceDriver',
$handle_internal_only_routers = $::os_service_default,
$metadata_port = $::os_service_default,
$periodic_interval = $::os_service_default,
$periodic_fuzzy_delay = $::os_service_default,
$enable_metadata_proxy = $::os_service_default,
$ha_enabled = false,
$ha_vrrp_auth_type = 'PASS',
$ha_vrrp_auth_password = $::os_service_default,
$ha_vrrp_advert_int = '3',
$agent_mode = 'legacy',
$purge_config = false,
$availability_zone = $::os_service_default,
$extensions = $::os_service_default,
$radvd_user = $::os_service_default,
$ovs_integration_bridge = $::os_service_default,
$network_log_rate_limit = $::os_service_default,
$network_log_burst_limit = $::os_service_default,
$network_log_local_output_log_base = $::os_service_default,
# DEPRECATED PARAMETERS
$gateway_external_network_id = undef,
) {
@ -162,6 +182,9 @@ class neutron::agents::l3 (
'ovs/integration_bridge': value => $ovs_integration_bridge;
'agent/availability_zone': value => $availability_zone;
'agent/extensions': value => join(any2array($extensions), ',');
'network_log/rate_limit': value => $network_log_rate_limit;
'network_log/burst_limit': value => $network_log_burst_limit;
'network_log/local_output_log_base': value => $network_log_local_output_log_base;
}
if $::neutron::params::l3_agent_package {

View File

@ -199,6 +199,23 @@
# final egress tables direct output flows for unicast traffic. (boolean value)
# Defaults to $::os_service_default
#
# [*network_log_rate_limit*]
# (Optional) Maximum packets logging per second.
# Used by logging service plugin.
# Defaults to $::os_service_default.
# Minimum possible value is 100.
#
# [*network_log_burst_limit*]
# (Optional) Maximum number of packets per rate_limit.
# Used by logging service plugin.
# Defaults to $::os_service_default.
# Minimum possible value is 25.
#
# [*network_log_local_output_log_base*]
# (Optional) Output logfile path on agent side, default syslog file.
# Used by logging service plugin.
# Defaults to $::os_service_default.
#
# DEPRECATED
#
# [*ovsdb_interface*]
@ -207,45 +224,48 @@
# Defaults to undef
#
class neutron::agents::ml2::ovs (
$package_ensure = 'present',
$enabled = true,
$manage_service = true,
$extensions = $::os_service_default,
$bridge_uplinks = [],
$bridge_mappings = [],
$ovsdb_timeout = $::os_service_default,
$of_connect_timeout = $::os_service_default,
$of_request_timeout = $::os_service_default,
$of_inactivity_probe = $::os_service_default,
$integration_bridge = 'br-int',
$tunnel_types = [],
$local_ip = false,
$tunnel_bridge = 'br-tun',
$vxlan_udp_port = 4789,
$polling_interval = $::os_service_default,
$l2_population = $::os_service_default,
$arp_responder = $::os_service_default,
$firewall_driver = 'iptables_hybrid',
$enable_distributed_routing = $::os_service_default,
$drop_flows_on_start = false,
$manage_vswitch = true,
$int_peer_patch_port = $::os_service_default,
$tun_peer_patch_port = $::os_service_default,
$datapath_type = $::os_service_default,
$vhostuser_socket_dir = $::os_service_default,
$purge_config = false,
$enable_dpdk = false,
$enable_security_group = $::os_service_default,
$permitted_ethertypes = $::os_service_default,
$minimize_polling = $::os_service_default,
$tunnel_csum = $::os_service_default,
$bridge_mac_table_size = $::os_service_default,
$igmp_snooping_enable = $::os_service_default,
$resource_provider_bandwidths = [],
$resource_provider_hypervisors = [],
$explicitly_egress_direct = $::os_service_default,
$package_ensure = 'present',
$enabled = true,
$manage_service = true,
$extensions = $::os_service_default,
$bridge_uplinks = [],
$bridge_mappings = [],
$ovsdb_timeout = $::os_service_default,
$of_connect_timeout = $::os_service_default,
$of_request_timeout = $::os_service_default,
$of_inactivity_probe = $::os_service_default,
$integration_bridge = 'br-int',
$tunnel_types = [],
$local_ip = false,
$tunnel_bridge = 'br-tun',
$vxlan_udp_port = 4789,
$polling_interval = $::os_service_default,
$l2_population = $::os_service_default,
$arp_responder = $::os_service_default,
$firewall_driver = 'iptables_hybrid',
$enable_distributed_routing = $::os_service_default,
$drop_flows_on_start = false,
$manage_vswitch = true,
$int_peer_patch_port = $::os_service_default,
$tun_peer_patch_port = $::os_service_default,
$datapath_type = $::os_service_default,
$vhostuser_socket_dir = $::os_service_default,
$purge_config = false,
$enable_dpdk = false,
$enable_security_group = $::os_service_default,
$permitted_ethertypes = $::os_service_default,
$minimize_polling = $::os_service_default,
$tunnel_csum = $::os_service_default,
$bridge_mac_table_size = $::os_service_default,
$igmp_snooping_enable = $::os_service_default,
$resource_provider_bandwidths = [],
$resource_provider_hypervisors = [],
$explicitly_egress_direct = $::os_service_default,
$network_log_rate_limit = $::os_service_default,
$network_log_burst_limit = $::os_service_default,
$network_log_local_output_log_base = $::os_service_default,
# DEPRECATED
$ovsdb_interface = undef,
$ovsdb_interface = undef,
) {
include neutron::deps
@ -374,6 +394,9 @@ class neutron::agents::ml2::ovs (
'securitygroup/enable_security_group': value => $enable_security_group;
'ovs/bridge_mac_table_size': value => $bridge_mac_table_size;
'ovs/igmp_snooping_enable': value => $igmp_snooping_enable;
'network_log/rate_limit': value => $network_log_rate_limit;
'network_log/burst_limit': value => $network_log_burst_limit;
'network_log/local_output_log_base': value => $network_log_local_output_log_base;
}
if $firewall_driver {

View File

@ -96,6 +96,23 @@
# Type: boolean
# Defaults to $::os_service_default
#
# [*network_log_rate_limit*]
# (Optional) Maximum packets logging per second.
# Used by logging service plugin.
# Defaults to $::os_service_default.
# Minimum possible value is 100.
#
# [*network_log_burst_limit*]
# (Optional) Maximum number of packets per rate_limit.
# Used by logging service plugin.
# Defaults to $::os_service_default.
# Minimum possible value is 25.
#
# [*network_log_local_output_log_base*]
# (Optional) Output logfile path on agent side, default syslog file.
# Used by logging service plugin.
# Defaults to $::os_service_default.
#
# DEPRECATED PARAMETERS
#
# [*ovn_l3_mode*]
@ -105,25 +122,28 @@
# Defaults to undef
#
class neutron::plugins::ml2::ovn(
$ovn_nb_connection = $::os_service_default,
$ovn_sb_connection = $::os_service_default,
$ovn_nb_private_key = $::os_service_default,
$ovn_nb_certificate = $::os_service_default,
$ovn_nb_ca_cert = $::os_service_default,
$ovn_sb_private_key = $::os_service_default,
$ovn_sb_certificate = $::os_service_default,
$ovn_sb_ca_cert = $::os_service_default,
$package_ensure = 'present',
$ovsdb_connection_timeout = $::os_service_default,
$neutron_sync_mode = $::os_service_default,
$ovn_metadata_enabled = $::os_service_default,
$dvr_enabled = $::os_service_default,
$dns_servers = $::os_service_default,
$vhostuser_socket_dir = $::os_service_default,
$ovn_emit_need_to_frag = $::os_service_default,
$ovn_nb_connection = $::os_service_default,
$ovn_sb_connection = $::os_service_default,
$ovn_nb_private_key = $::os_service_default,
$ovn_nb_certificate = $::os_service_default,
$ovn_nb_ca_cert = $::os_service_default,
$ovn_sb_private_key = $::os_service_default,
$ovn_sb_certificate = $::os_service_default,
$ovn_sb_ca_cert = $::os_service_default,
$package_ensure = 'present',
$ovsdb_connection_timeout = $::os_service_default,
$neutron_sync_mode = $::os_service_default,
$ovn_metadata_enabled = $::os_service_default,
$dvr_enabled = $::os_service_default,
$dns_servers = $::os_service_default,
$vhostuser_socket_dir = $::os_service_default,
$ovn_emit_need_to_frag = $::os_service_default,
$network_log_rate_limit = $::os_service_default,
$network_log_burst_limit = $::os_service_default,
$network_log_local_output_log_base = $::os_service_default,
# DEPRECATED PARAMETERS
$ovn_l3_mode = undef,
$vif_type = undef,
$ovn_l3_mode = undef,
$vif_type = undef,
) {
include neutron::deps
@ -149,21 +169,24 @@ class neutron::plugins::ml2::ovn(
)
neutron_plugin_ml2 {
'ovn/ovn_nb_connection' : value => $ovn_nb_connection;
'ovn/ovn_sb_connection' : value => $ovn_sb_connection;
'ovn/ovn_nb_private_key' : value => $ovn_nb_private_key;
'ovn/ovn_nb_certificate' : value => $ovn_nb_certificate;
'ovn/ovn_nb_ca_cert' : value => $ovn_nb_ca_cert;
'ovn/ovn_sb_private_key' : value => $ovn_sb_private_key;
'ovn/ovn_sb_certificate' : value => $ovn_sb_certificate;
'ovn/ovn_sb_ca_cert' : value => $ovn_sb_ca_cert;
'ovn/ovsdb_connection_timeout' : value => $ovsdb_connection_timeout;
'ovn/neutron_sync_mode' : value => $neutron_sync_mode;
'ovn/ovn_metadata_enabled' : value => $ovn_metadata_enabled;
'ovn/enable_distributed_floating_ip' : value => $dvr_enabled;
'ovn/dns_servers' : value => join(any2array($dns_servers), ',');
'ovn/vhost_sock_dir' : value => $vhostuser_socket_dir;
'ovn/ovn_emit_need_to_frag' : value => $ovn_emit_need_to_frag;
'ovn/ovn_nb_connection' : value => $ovn_nb_connection;
'ovn/ovn_sb_connection' : value => $ovn_sb_connection;
'ovn/ovn_nb_private_key' : value => $ovn_nb_private_key;
'ovn/ovn_nb_certificate' : value => $ovn_nb_certificate;
'ovn/ovn_nb_ca_cert' : value => $ovn_nb_ca_cert;
'ovn/ovn_sb_private_key' : value => $ovn_sb_private_key;
'ovn/ovn_sb_certificate' : value => $ovn_sb_certificate;
'ovn/ovn_sb_ca_cert' : value => $ovn_sb_ca_cert;
'ovn/ovsdb_connection_timeout' : value => $ovsdb_connection_timeout;
'ovn/neutron_sync_mode' : value => $neutron_sync_mode;
'ovn/ovn_metadata_enabled' : value => $ovn_metadata_enabled;
'ovn/enable_distributed_floating_ip': value => $dvr_enabled;
'ovn/dns_servers' : value => join(any2array($dns_servers), ',');
'ovn/vhost_sock_dir' : value => $vhostuser_socket_dir;
'ovn/ovn_emit_need_to_frag' : value => $ovn_emit_need_to_frag;
'network_log/rate_limit' : value => $network_log_rate_limit;
'network_log/burst_limit' : value => $network_log_burst_limit;
'network_log/local_output_log_base' : value => $network_log_local_output_log_base;
}
# TODO(tkajinam): Remove this when removing the deprecated parameters

View File

@ -0,0 +1,9 @@
---
features:
- |
Support for the logging serivce plugin parameters has been added to
the following classes.
- ``neutron::agent::l3``
- ``neutron::agent::ml2::ovs``
- ``neutron::plugins::ml2::ovn``

View File

@ -41,6 +41,9 @@ describe 'neutron::agents::l3' do
should contain_neutron_l3_agent_config('ovs/integration_bridge').with_value('<SERVICE DEFAULT>')
should contain_neutron_l3_agent_config('agent/availability_zone').with_value('<SERVICE DEFAULT>')
should contain_neutron_l3_agent_config('agent/extensions').with_value('<SERVICE DEFAULT>')
should contain_neutron_l3_agent_config('network_log/rate_limit').with_value('<SERVICE DEFAULT>')
should contain_neutron_l3_agent_config('network_log/burst_limit').with_value('<SERVICE DEFAULT>')
should contain_neutron_l3_agent_config('network_log/local_output_log_base').with_value('<SERVICE DEFAULT>')
end
it 'passes purge to resource' do

View File

@ -71,6 +71,9 @@ describe 'neutron::agents::ml2::ovs' do
should contain_neutron_agent_ovs('ovs/resource_provider_hypervisors').\
with_value('<SERVICE DEFAULT>')
should contain_neutron_agent_ovs('agent/explicitly_egress_direct').with_value(['<SERVICE DEFAULT>'])
should contain_neutron_agent_ovs('network_log/rate_limit').with_value('<SERVICE DEFAULT>')
should contain_neutron_agent_ovs('network_log/burst_limit').with_value('<SERVICE DEFAULT>')
should contain_neutron_agent_ovs('network_log/local_output_log_base').with_value('<SERVICE DEFAULT>')
end
it 'installs neutron ovs agent package' do

View File

@ -52,8 +52,10 @@ describe 'neutron::plugins::ml2::ovn' do
should contain_neutron_plugin_ml2('ovn/dns_servers').with_value(params[:dns_servers].join(','))
should contain_neutron_plugin_ml2('ovn/vhost_sock_dir').with_value('<SERVICE DEFAULT>')
should contain_neutron_plugin_ml2('ovn/ovn_emit_need_to_frag').with_value(params[:ovn_emit_need_to_frag])
should contain_neutron_plugin_ml2('network_log/rate_limit').with_value('<SERVICE DEFAULT>')
should contain_neutron_plugin_ml2('network_log/burst_limit').with_value('<SERVICE DEFAULT>')
should contain_neutron_plugin_ml2('network_log/local_output_log_base').with_value('<SERVICE DEFAULT>')
end
end
shared_examples 'Validating parameters' do