tripleo-heat-templates/environments/neutron-ml2-ovn-dvr-ha.yaml
Numan Siddique 5ed628f353 OVN: Set sysctl value 'net.ipv4.ip_nonlocal_bind' to 1
When OVN DBs pacemaker bundle is started on the controller nodes,
all the ovsdb-servers are configured to listen on the virtual ip
(on ports 6641/6642). But only master node is configured with virtual ip.
On the other nodes, we see the below error messages

ovsdb_jsonrpc_server|ERR|ptcp:6641:172.17.1.18: listen failed: Cannot assign
requested address.

The commit [1] addressed this issue in puppet-tripleo by setting the
sysctl value 'net.ipv4.ip_nonlocal_bind' to 1 using puppet's sysctl::value.
But the ovn-dbs.yaml service file is missing this puppet tag when the
container 'ovn_dbs_init_bundle' is started.

We can fix the issue by defining this tag, but this also requires setting
'privileged=true' when starting the docker container.

Instead, this patch makes use of the t-h-t param 'KernelIpNonLocalBind'
which was introduced in this commit [2].

[1] - I6f762534350a3f96696c87ccd2d14545dccc8a0b
[2] - Idd3d432b8f7eb573d94cd56be8e05614510ebddf

Change-Id: I5ae8cd368bcd58810b18e172ee685fdbf0e48d98
Closes-bug: #1781585
2018-07-17 23:47:19 +05:30

31 lines
1.3 KiB
YAML

# A Heat environment file which can be used to enable OVN
# extensions, configured via docker
resource_registry:
OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginML2OVN
OS::TripleO::Services::OVNController: ../docker/services/ovn-controller.yaml
OS::TripleO::Services::OVNDBs: ../docker/services/pacemaker/ovn-dbs.yaml
# Disabling Neutron services that overlap with OVN
OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
OS::TripleO::Services::ComputeNeutronL3Agent: OS::Heat::None
OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
OS::TripleO::Services::ComputeNeutronMetadataAgent: OS::Heat::None
OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None
parameter_defaults:
NeutronMechanismDrivers: ovn
OVNVifType: ovs
OVNNeutronSyncMode: log
OVNQosDriver: ovn-qos
OVNTunnelEncapType: geneve
NeutronEnableDHCPAgent: false
NeutronTypeDrivers: 'geneve,vlan,flat'
NeutronNetworkType: 'geneve'
NeutronServicePlugins: 'qos,ovn-router,trunk'
NeutronVniRanges: ['1:65536', ]
NeutronEnableDVR: true
KernelIpNonLocalBind: 1