Fix ovn dbs control port

When an OCF bundle is managed by pacemaker it runs pacemaker-remote
inside the container. The communication between the pacemaker cluster
and the remote happens through a so-called control port. In the case of
ovn-dbs, this port is set to 3125 by default:
https://github.com/openstack/puppet-tripleo/blob/master/manifests/profile/pacemaker/ovn_dbs_bundle.pp#L62

We need to make sure that the cluster is always able to connect to said
port as the connection might come from a cluster node that is not the
same node where the ovn bundle is running.

This has worked so far only by pure luck because pacemaker will retry
the connection from each controller node and eventually when the
connection comes from the same host as the one where the bundle is
running it succeeds (INPUT rules do not apply to same-host connections).

Tested and correctly observed port 3125/tcp being open in iptables:
* Before
[root@controller-0]# iptables -nvL INPUT |grep 3125
[root@controller-0]#

* After
[root@controller-0]# iptables -nvL INPUT |grep 3125
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 3125,6641,6642 state NEW /* 121 OVN DB server ports ipv4 */

Closes-Bug: #1834856
Change-Id: Ia455702d75a450f1c3ac88ed69853e9b98b98644
This commit is contained in:
Michele Baldessari 2019-07-01 14:52:21 +02:00
parent f0f41a1deb
commit 743b816929
1 changed files with 8 additions and 0 deletions

View File

@ -105,6 +105,14 @@ outputs:
- tripleo::profile::pacemaker::ovn_dbs_bundle::sb_db_port: {get_param: OVNSouthboundServerPort}
- tripleo::profile::pacemaker::ovn_dbs_bundle::container_backend: {get_param: ContainerCli}
- tripleo::haproxy::ovn_dbs_manage_lb: false
- tripleo::ovn_dbs::firewall_rules:
'121 OVN DB server ports':
proto: 'tcp'
dport:
# Control port for pcmk remote bundle
- 3125
- {get_param: OVNNorthboundServerPort}
- {get_param: OVNSouthboundServerPort}
service_config_settings: {}
# BEGIN DOCKER SETTINGS
puppet_config: