fuel-plugin-opendaylight/deployment_scripts/puppet/manifests/odl-netconfig.pp

128 lines
3.8 KiB
Puppet

notice('MODULAR: odl-netconfig.pp')
$roles = hiera('roles')
#ODL custome network schema
$network_scheme = odl_network_scheme($roles)
prepare_network_config($network_scheme)
if ( $::l23_os =~ /(?i:centos6)/ and $::kernelmajversion == '3.10' ) {
$ovs_datapath_package_name = 'kmod-openvswitch-lt'
}
$dpdk_options = hiera_hash('dpdk', {})
class { '::l23network' :
use_ovs => hiera('use_ovs', false),
use_ovs_dkms_datapath_module => $::l23_os ? {
/(?i:redhat7|centos7)/ => false,
default => true
},
ovs_datapath_package_name => $ovs_datapath_package_name,
use_dpdk => pick($dpdk_options['enabled'], false),
dpdk_options => $dpdk_options,
}
$sdn = generate_network_config()
notify {'SDN': message => $sdn }
#Set arp_accept to 1 by default #lp1456272
sysctl::value { 'net.ipv4.conf.all.arp_accept': value => '1' }
sysctl::value { 'net.ipv4.conf.default.arp_accept': value => '1' }
### TCP connections keepalives and failover related parameters ###
# configure TCP keepalive for host OS.
# Send 3 probes each 8 seconds, if the connection was idle
# for a 30 seconds. Consider it dead, if there was no responces
# during the check time frame, i.e. 30+3*8=54 seconds overall.
# (note: overall check time frame should be lower then
# nova_report_interval).
class { '::openstack::keepalive' :
tcpka_time => '30',
tcpka_probes => '8',
tcpka_intvl => '3',
tcp_retries2 => '5',
}
# increase network backlog for performance on fast networks
sysctl::value { 'net.core.netdev_max_backlog': value => '261144' }
L2_port<||> -> Sysfs_config_value<||>
L3_ifconfig<||> -> Sysfs_config_value<||>
L3_route<||> -> Sysfs_config_value<||>
class { '::sysfs' :}
if hiera('set_rps', true) {
sysfs_config_value { 'rps_cpus' :
ensure => 'present',
name => '/etc/sysfs.d/rps_cpus.conf',
value => cpu_affinity_hex($::processorcount),
sysfs => '/sys/class/net/*/queues/rx-*/rps_cpus',
exclude => '/sys/class/net/lo/*',
}
} else {
sysfs_config_value { 'rps_cpus' :
ensure => 'absent',
name => '/etc/sysfs.d/rps_cpus.conf',
}
}
if hiera('set_xps', true) {
sysfs_config_value { 'xps_cpus' :
ensure => 'present',
name => '/etc/sysfs.d/xps_cpus.conf',
value => cpu_affinity_hex($::processorcount),
sysfs => '/sys/class/net/*/queues/tx-*/xps_cpus',
exclude => '/sys/class/net/lo/*',
}
} else {
sysfs_config_value { 'xps_cpus' :
ensure => 'absent',
name => '/etc/sysfs.d/xps_cpus.conf',
}
}
if !defined(Package['irqbalance']) {
package { 'irqbalance':
ensure => installed,
}
}
if !defined(Service['irqbalance']) {
service { 'irqbalance':
ensure => running,
require => Package['irqbalance'],
}
}
# We need to wait at least 30 seconds for the bridges and other interfaces to
# come up after being created. This should allow for all interfaces to be up
# and ready for traffic before proceeding with further deploy steps. LP#1458954
exec { 'wait-for-interfaces':
path => '/usr/bin:/bin',
command => 'sleep 32',
}
$run_ping_checker = hiera('run_ping_checker', true)
if $run_ping_checker {
# check that network was configured successfully
# and the default gateway is online
if hiera('default_gateway', false) {
$default_gateway = hiera('default_gateway')
} else {
$default_gateway = get_default_gateways()
}
ping_host { $default_gateway :
ensure => 'up',
}
L2_port<||> -> Ping_host[$default_gateway]
L2_bond<||> -> Ping_host[$default_gateway]
L3_ifconfig<||> -> Ping_host[$default_gateway]
L3_route<||> -> Ping_host[$default_gateway]
}
Class['::l23network'] ->
Exec['wait-for-interfaces']